iT邦幫忙

2023 iThome 鐵人賽

DAY 28
1
自我挑戰組

WiFiBoy Python 玩學機介紹系列 第 28

28. 玩學機與 Jupyter Notebook 協作

  • 分享至 

  • xImage
  •  

什麼是Jupyter NoteBook?

https://ithelp.ithome.com.tw/upload/images/20230929/201057077Yxn0UKVdF.png

Jupyter Notebook 是一個基於 Web 的互動式計算環境,用來建立 Jupyter Notebook 檔案。Jupyter Notebook 檔案是由一個 JSON 檔案所構成,裡面包含了輸入輸出的 Cells(單元格列表),這些單元格可包含文字檔案(使用 Markdown 格式)、程式碼、數學公式、圖表與多媒體檔案。Jupyter Notebook的檔案以 「.ipynb」為副檔名。

這些筆記本檔案可以透過 nbconvert 函式庫轉換成許多開源標準輸出格式,像是 HTML、PDF、Markdown 等格式),為了更容易在網頁中呈現,nbconvert 函式可透過 nbviewer 產生一組可公開存取的 URL,將執行結果動態地轉換成網頁內容,讓使用者閱讀。

Jupyter Notebook 支援多種程式語言進行程式設計。如果您要讓系統核心支援其他的程式語言,您需要額外安裝核心程式,相關核心擴充支援,請參考此網址:

https://github.com/jupyter/jupyter/wiki/Jupyter-kernels

https://ithelp.ithome.com.tw/upload/images/20230929/20105707sS8RjyGK8d.png

https://ithelp.ithome.com.tw/upload/images/20230929/201057072bBoaPxHqS.png

安裝 Jupyter NoteBook

為了可以讓 Jupyter Notebook 環境在我們的 Windows 電腦上執行,首先我們要先安裝 Python3 的執行環境,各位可到 Python 官網下載 Python 3 的安裝程式,安裝到系統中。

安裝完 Python 3 後,請開啟命令列,執行下列指令。

更新 Python 套件管理程式 pip

python -m pip install --upgrade pip 

https://ithelp.ithome.com.tw/upload/images/20230929/20105707b2F2ZgXJgO.png

python -m pip install jupyter

https://ithelp.ithome.com.tw/upload/images/20230929/20105707p49eDmmd2Q.png

pip install jupyter_micropython_kernel

https://ithelp.ithome.com.tw/upload/images/20230929/20105707Ci6jKBgomb.png

python -m jupyter_micropython_kernel.install

https://ithelp.ithome.com.tw/upload/images/20230929/201057073jtoL01SOP.png

安裝完基本系統與支援 MicroPython的核心後,此時再開啟 Jupyter Notebook 環境。

第一次啟動筆記本需要選擇支援的程式語言,請選擇「MicroPython - USB」。

https://ithelp.ithome.com.tw/upload/images/20230929/20105707zUOxykd2Q9.png

開啟筆記本檔案,請先輸入「%serialconnect –port=COM6」,%serialconnect 是Jupyter Notebook micropython 核心內建的一個魔術指令,請先確認玩學機在此台電腦的 COM port,我這台玩學機被作業系統識別的 Com port 是 「COM6」。鍵盤按下 Shift-Enter,指令就會執行。此時您可以看到 Jupyter Notebook 環境已與玩學機連線。

https://ithelp.ithome.com.tw/upload/images/20230929/20105707AnnhAyVb8T.png

在 Jupyter NoteBook 中開發玩學機程式

我們此時可以用前面的例子來驗證是否可在網頁中開發玩學機程式。底下是使用小龜繪圖函式庫畫出三個旋轉的正方形。

wb.cls()
wb.ttreset()
for count2 in range(3):
	for count in range(4):
		wb.ttgo(40)
		wb.ttrot(90)
	wb.ttrot(120)

https://ithelp.ithome.com.tw/upload/images/20230929/201057079EtiDaG0NC.png

另外,Jupyter Notebook MicroPython 核心還有內建眾多的魔術指令,底下是我們列出來支援的指令:

%capture [--quiet] [--QUIET] outputfilename
    records output to a file

%comment
    print this into output

%disconnect [--raw]
    disconnects from web/serial connection

%esptool [--port PORT] {erase,esp32,esp8266} [binfile]
    commands for flashing your esp-device

%fetchfile [--binary] [--print] [--load] [--quiet] [--QUIET]
                  sourcefilename [destinationfilename]
    fetch and save a file from the device

%ls [--recurse] [dirname]
    list files on the device

%lsmagic
    list magic commands

%mpy-cross [--set-exe SET_EXE] [pyfile]
    cross-compile a .py file to a .mpy file

%readbytes [--binary]
    does serial.read_all()

%rebootdevice
    reboots device

%sendtofile [--append] [--mkdir] [--binary] [--execute]
                   [--source [SOURCE]] [--quiet] [--QUIET]
                   [destinationfilename]
    send cell contents or file/direcectory to the device

%serialconnect [--raw] [--port PORT] [--baud BAUD] [--verbose]
    connects to a device over USB wire

%socketconnect [--raw] ipnumber portnumber
    connects to a socket of a device over wifi

%suppressendcode
    doesn't send x04 or wait to read after sending the contents of the cell
  (assists for debugging using %writebytes and %readbytes)

%websocketconnect [--raw] [--password PASSWORD] [--verbose]
                         [websocketurl]
    connects to the webREPL websocket of an ESP8266 over wifi
    websocketurl defaults to ws://192.168.4.1:8266 but be sure to be connected

%writebytes [--binary] [--verbose] stringtosend
    does serial.write() of the python quoted string given

%%writefile [--append] [--execute] destinationfilename
    write contents of cell to a file

https://github.com/jupyter/jupyter/wiki/Jupyter-kernels

感謝各位讀者支持,明天我們將會介紹如何用 Arduino IDE 來開發玩學機的程式。


上一篇
27. 專案介紹-玩學機協助社團課程教學
下一篇
# 29. 建立玩學機 Arduino 開發環境
系列文
WiFiBoy Python 玩學機介紹30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言