ESP32
搬自:https://blog.csdn.net/naisu_kun/article/details/103983140

為什么使用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 進行燒錄:
- 注1:固件燒錄也可以用樂鑫官方的Flash下載工具:
https://www.espressif.com/zh-hans/support/download/other-tools - 注2:串口驅動根據需求另行安裝;
程序入門
在固件燒錄完成后復位芯片程序就開始執行,默認情況下會進入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