MicroPython筆記(01):開始在NodeMCU上使用MicroPython語言

學習 ESP8266或ESP32 已經好一段時間了,使用Arduino IDE撰寫C語言程式上傳,控制LED或各式感測器已經很熟悉了,知道 ESP8266/ESP32 可以使用Python撰寫程式後,想在實做告一段落後,要開始學習跟樹莓派使用一樣的語言Python。要在 ESP8266/ESP32 使用 Python,第一步要上傳可以支援 MicroPython 的韌體到 ESP8266或ESP32,然後再透過 IDE的開發環境,執行 MicroPython 程式,那到底什麼MicroPython?跟Python又有什麼差別?

Python 與 MicroPython 大致是一樣的,MicroPython基於 Python 3的基礎,針對微控制器和嵌入式系統重新編寫,區別在於 MicroPython 需在受限的條件下才能正常工作。MicroPython 沒有完整的 Python 標準函式庫,它僅包含標準函式庫的一小部分,主要提供與硬體之間存取GPIO 用的函式庫,以及提供一些 Wi-Fi 常用的的函式庫。MicroPython 的目標是讓撰寫數位電子設備的程式盡可能簡單,讓大多數人可以使用它。

MicroPython 採用互動式直譯的方式控制 ESP8266/ESP32,也就是不需要編譯程式,透過描述性的語言,將程式直譯後呈現執行結果。除了支援 ESP8266/ESP32 外,還支援 Micro:Bit 或其他 ESP8266 相關的控制板,如NodeMCU等。要開始使用 Micropython 作為開發語言,需完成以下幾個步驟與程序後,才能開始使用,包括:
  • 安裝 Python v3.7以上
  • 安裝 uPyCraft IDE
  • 下載和刷新 MicroPython 韌體
  • 開始撰寫 MicroPython 程式
以下分別說明如何安裝上述軟體:

[安裝 Python v3.7]

要執行 Micropython 的環境,需先安裝 Python v3.7以上版本,您可到 Python官方網站 下載各作業系統版本的安裝檔。以Windows為例,下載頁面按下[Download Python 3.8.0]後,點擊執行安裝檔。


出現以下視窗,按下紅框處的[Install Now]開始安裝,直到最後一個步驟完成安裝。


[安裝uPyCraft IDE]

uPyCraft IDE是一個視窗環境的開發工具,來幫助開發者易於使用 Python 撰寫控制開發板的程式。各種作業系統的 uPyCraft IDE 程式可到 Dfrobot下載;執行前需確認是否已經安裝 Python V3.7以上版本。執行uPyCraft IDE畫面如下:

稍候再繼續瞭解一下 uPyCraft IDE 的操作方式。

[下載和刷新 MicroPython 韌體]

如果你還沒有燒錄韌體到 ESP8266/ESP32 中,uPyCraft IDE 會彈出燒錄韌體的對話框,提示進行韌體下載。要使用 uPyCraft IDE 更新韌體版本,首先需到 MicroPytoh 官方網站 下載 各類開發板的最新韌體版本,ESP8266 和 ESP32 需分別下載不同的韌體版本,如下圖紅框處:


如果使用的是其他控制版,可下載適合型號的韌體。開啟uPyCraft IDE,點擊[Tools] → [Serial] 連接的COM Port 是否正常?看到打勾,表示正常連接開發板。如下圖:

[Tools] → [Board] 看開發板的型號,我使用 NodeMCU,對應的是 ESP8266 裝置。

如果將 ESP8266/ESP32 接到電腦後,在 uPyCraft IDE 中找不到可用的 Port 時,有可能是沒有安裝開發板使用的晶片驅動程式,或是 USB 連接線的問題。可看一下開發板上的 USB 連接晶片是 CH340 或 CP2102,再安裝驅動程式即可。

要刷新/上傳 MicroPython 韌體,點選 [Tools] → [Burn Firmware] ,出現以下畫面,下拉選擇 ESP8266/ESP32 開發板,設定刪除開發板韌體 erase_flash 為 yes,再選擇連接 COM Port,再點擊 [Choose] 開啟檔案總管視窗,選擇要更新的韌體檔案所在目錄及檔名,按下 [OK]。

如果是ESP32,設定會稍有不同,如下圖:

執行過程中,會看到以下畫面:

上傳完成後,就可以開始寫一個 MicroPython 程式了。

[開始撰寫 MicroPython 程式]

我將 NodeMUC 接上電腦,開啟 uPyCraft IDE,在程式編輯窗口撰寫一個簡單的 MicroPython 程式,讓 NodeMCU 開發板上的 LED 閃爍。程式編寫完成後,如要存檔,可按右方磁碟片的圖案;如要執行程式,可按箭頭朝右的三角形圖案,就可以看到開發板上的 LED 燈在閃爍。

右方快捷列圖案,功能說明如下:

注意:在 ESP8266/ESP32 上安裝 MicroPython 韌體後,可以繼續使用 Arduino IDE,只需要在 Arduino IDE 撰寫好程式,進行編譯後上傳即可。但是如果要改用 MicroPython 撰寫程式,則需要再次刷新 MicroPython 韌體。

[程式]

from machine import Pin
from time import sleep

led = Pin(2, Pin.OUT)

while True:
  led.value(not led.value())
  sleep(0.5)

[執行結果]


[參考資料]

Post a Comment

較新的 較舊