使用MicroPython開發ESP32(01):快速入門


在這裏插入圖片描述

爲什麼使用MicroPython開發ESP32

ESP32是非常熱門的一款物聯網芯片,它的開發方式非常多樣,其中使用MicroPython的方式非常快速便捷,適合試驗測試等使用,當然如果設計合理的話也可以用於正式產品開發。

MicroPython官方首頁:
MicroPython - Python for microcontrollers
ESP32相關說明見下面文章(包含最小系統電路示例):
《ESP32概述與入門準備》

快速入門

開發板準備

入門學習使用MicroPython開發ESP32可以使用樂鑫官方的 ESP32-DevKitC開發板 ,某寶上一搜一大把。也可以使用上面鏈接文章中的最小系統,反正就是準備個能上電運行、能燒寫固件的電路模塊就成。
在這裏插入圖片描述

開發工具選擇

MicroPython的開發工具選擇面非常大,通常情況下只要找個能夠啓用串口的工具就行,在Windows上常見的有putty、VScode+插件等很多選擇。在這裏我推薦使用 Thonny ,這個工具是目前我認爲最適合用在MicroPython開發上的,其官方網站與項目地址如下:
https://thonny.org
https://github.com/thonny/thonny/
該工具集固件燒錄、Python Shell調試、文件管理於一體,是目前用MicroPython開發最理想的工具。
在這裏插入圖片描述

固件下載與燒錄

固件可以從MicroPython官網進行下載,ESP32的固件目前分爲兩類,分別基於ESP-IDF v3.x和ESP-IDF v4.x開發,目前支持的功能上稍有差異。每一類又細分爲 GENERIC 普通的GENERIC-SPIRAM 支持外部SPI RAM的
在這裏插入圖片描述
常見的 ESP32-WROOM-32 等模塊是不帶SPI RAM的,而 ESP32-WROVER-B 等模塊是帶SPI RAM的。
在這裏插入圖片描述
固件可以用上面的 Thonny 進行燒錄:
在這裏插入圖片描述

程序入門

在固件燒錄完成後復位芯片程序就開始執行,默認情況下會進入Python Shell交互環境。
MicroPython For ESP32默認使用UART0進行交互,默認波特率爲115200

MicroPython可以使用help函數獲得幫助:
在這裏插入圖片描述
可以進行運算或輸出信息:
在這裏插入圖片描述
可以控制GPIO口:
在這裏插入圖片描述
上圖中先是通過 help() 查看相關說明,然後導入machine模塊中的Pin類。接着聲明一個GPIO口對象(p13),該對象綁定到芯片的GPIO13,並且設置爲輸出。接下來使用 help 函數查看了p13對象的說明,最後使用 on() 讓GPIO13輸出高電平。

在IO口上接上LED,並加入延時就可以實現控制小燈閃爍了:
在這裏插入圖片描述
上圖中 time.sleep(0.5) 相當於延時0.5秒,整段while語句相當於使GPIO13持續翻轉,當我敲出兩個空行時while語句開始運行。最後我按下鍵盤上 CTRL + C 結束了程序。

使用MicroPython控制ESP32連接無線網絡也非常方便:
在這裏插入圖片描述
上圖中我連接了名爲(SSID) AAA 、密碼是12345678的無線網絡,連上網絡後打印了IP、子網掩碼、網關等信息。

更多程序相關內容可以參考官方文檔,我也會在之後的文章中進行詳細說明:
http://docs.micropython.org/en/latest/esp32/quickref.html

通過文件運行程序

上面的程序都是在Python Shell交互環境中進行的,當然也可以將代碼保存到文件上,通過文件運行程序。MicroPython的固件會在開發板ESP32模塊的flash上創建一個文件系統,可以用來存放文件。
我們可以使用 Thonny 打開、刪除開發板上存儲的文件:
在這裏插入圖片描述
Thonny 也可以將文件保存到開發板上,還可以啓動運行文件:
在這裏插入圖片描述
默認情況下MicroPython會生成一個 boot.py 文件,當系統啓動完成之後會先運行該文件中的內容,該文件一般用於運行一些系統層面開機時需要啓動的功能,一般不推推薦用戶修改。在 boot.py 文件中的程序運行結束之後系統緊接着會運行 main.py 文件(如果沒有該文件則跳過)。在 main.py 文件運行結束後會則進入Python Shell調試模式:
在這裏插入圖片描述
上圖中我建立了 main.py 文件,將它上傳到開發板,然後按下開發板上覆位按鈕。可以看到系統復位後 main.py 文件中的內容被執行。

如果在 main.py 文件中寫個死循環,然後所有程序都寫在該循環中,那用起來就和傳統的單片機差不多了,只不過從固件變成了文件。不過如果這樣做的話就進不了Python Shell調試模式了,並且無法再次進行文件修改上傳等操作,只有重寫燒寫MicroPython固件才能恢復(或者死循環的程序中有文件系統讀寫的功能)。
在這裏插入圖片描述
Thonny 可以支持文件樹狀視圖,是目前唯一一個支持以文件夾形式上傳文件的工具:
在這裏插入圖片描述

總結

MicroPython和CPython一樣非常快速便捷,適合拿來直接試驗測試等使用。具體各個庫的使用將在之後的文章中進行介紹。

MicroPython的語法和標準的CPython相似,可以學習CPython語法來了解基本語法,可以參考下面教程:
https://www.liaoxuefeng.com/wiki/1016959663602400

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章