2021年10月16日 星期六

建構 Micro Python 的工作環境

(一)下載、安裝 Python 的最新版本

網址:https://www.python.org/

可以看到網站上現在可以下載的最新版本是:Python 3.10.0 版,下載、安裝完成後,我們需要確認是否安裝成功,在 Windows 系統請開啟命令提示字元後,輸入:

C:\python -V
Python 3.10.0

若版本訊息顯示如上面黃字一樣 3.10.0,那就代表安裝成功。若你的系統是 MAC,則請輸入

tmps07@> python3 -V
Python 3.10.0

(二)下載 MicroPython 韌體

網址:https://micropython.org/download/

找到自己要運行的控制板,如我使用的是 WeMos D1 Mini,所以我選擇 ESP8266:

進入後我們可以選取最新的版本 esp8266-20210902-v1.17.bin,如下圖:

(三)下載 ESP8266 韌體燒錄程式:esptool

esptool 是使用 Python 語言編寫成的 ESP8266 韌體燒入程式,我們可以用它來把上面下載的韌體 esp8266-20210902-v1.17.bin 寫到 ESP8266 的晶片,esptool 的下載指令為:

tmps07@> sudo pip3 install esptool

pip 會自動搜尋、下載並安裝指定的套件,同時也會依據套件的相依性安裝額外需要的套件,從下載的過程中可以看到,除了 esptool 以外,pip 還連帶下載了其他 3 個套件。

pip 套件管理員還具備列表(list)、更新(upgrade)、刪除(uninstall) 等功能。

列表
tmps07@> pip3 list
更新:更新套件
tmps07@> sudo pip3 install --upgrade esptool
更新:pip
tmps07@> python3 -m pip install --upgrade pip
刪除:刪除套件
tmps07@> sudo pip3 uninstall esptool

(四)安裝 USB 驅動程式

CH340 晶片:CH34x Serial
CP2102 晶片:CP210x Serial

驅動程式安裝後,將控制板使用 USB 連接線連接,在 Windows 系統可以透過以下步驟來檢查驅動程式是否有正確安裝:

Windows 圖示按右鍵 -> 裝置管理員 -> 連接埠 (COM 和 LPT)

在 MAC 系統則以指令來檢查:

tmps07@> ls -l /dev/tty.*

(五)利用 esptool 將韌體寫入晶片

要將下載的韌體寫入 ESP8266 晶片前,宣要先將晶片內目前的程式清除,指令為:

tmps07@> esptool.py --port /dev/tty.subserial1420 erase_flash

其中 /dev/tty.subserial1420 是控制板與電腦的連接埠。

清除晶片的程式後,就可以將韌體寫入晶片了:

tmps07@> esptool.py --port /dev/tty.subserial1420 --baud 460800 write_flash --flash_size=detect 0 esp8266-20210902-v1.17.bin

(六)使用 Screen 終端機來操作 MicroPython 控制板

tmps07@> screen /dev/tty.subserial1420 115200

MicroPython 快速鍵:

Up ArrowDown Arrow:瀏覽之前輸入過的指令。
Ctrl+A:進入原始模式(Raw)。
Ctrl+B:離開原始模式。
Ctrl+C:中斷程式執行。
Ctrl+E:進入貼入模式。
Ctrl+D:在非貼入模式為「暖開機,將控制板重新啟動」。
在貼入模式時 Ctrl+C -> Ctrl+D:離開貼入模式。
Ctrl+A -> K -> Y:結束 screen,離開 MicroPython 的 REPL 模式。

(七)下載安裝 ampy 控制板管理程式

tmps07@> pip3 install adafruit-ampy

日後若需要更新 ampy,則以指令:

tmps07@> pip3 install adafruit-ampy --upgrade

來更新。

(七)ampy 控制板管理程式的操作

在我們利用 esptool 將韌體寫入 ESP8266 控制板後,除了可以使用 screen 指令來即時操作 MicroPython 控制板,我們還可以利用其他的文字編輯器(例如:vsCode)先把我們的 MicroPython 程式編完後,再利用 ampy 上傳到 MicroPython 控制板執行。

只執行 led.py 不上傳:

tmps07@> ampy --port /dev/tty.subserial-1410 run --no-output led.py

把 led.py 上傳到控制板:

tmps07@> ampy --port /dev/tty.subserial-1410 put led.py

列出控制板上目前有哪些程式:

tmps07@> ampy --port /dev/tty.subserial-1410 ls

把控制板上 led.py 下載到電腦:

tmps07@> ampy --port /dev/tty.subserial-1410 get led.py

刪除控制板上 led.py 程式:

tmps07@> ampy --port /dev/tty.subserial-1410 rm led.py

在控制板上建立資料夾 dd:

tmps07@> ampy --port /dev/tty.subserial-1410 mkdir dd

刪除控制板上的資料夾 dd:

tmps07@> ampy --port /dev/tty.subserial-1410 rmdir dd