MicroPython簡介
早期 Python 在嵌入式系統(tǒng)中的應(yīng)用并未得到廣泛推廣,主要受到硬件成本、運(yùn)行性能、開發(fā)習(xí)慣等因素的限制。隨著半導(dǎo)體技術(shù)和制造工藝的快速發(fā)展,芯片的升級換代速度日益加快,芯片的功能和存儲器容量不斷增強(qiáng),成本逐漸降低,為 Python在低端嵌入式系統(tǒng)上的應(yīng)用提供了可能性。
MicroPython由英國劍橋大學(xué)教授 Damien George(達(dá)米安·喬治)發(fā)明。MicroPython使用GNU C進(jìn)行開發(fā),實(shí)現(xiàn)在微控制器上 Python3 的基本功能,具備完善的解析器、編譯器、虛擬機(jī)和類庫等。在保留Python 語言主要特性的基礎(chǔ)上,對嵌入式系統(tǒng)的底層進(jìn)行了出色的封裝,將常用功能都封裝到庫中,甚至為一些常用的傳感器和硬件編寫了專門的驅(qū)動。用戶只需通過調(diào)用這些庫和函數(shù),就能快速控制LED小燈、舵機(jī)、多種傳感器、SD卡文件系統(tǒng)、UART、I2C、SPI通信總線等實(shí)現(xiàn)各種功能,而不用再去研究底層外設(shè)模塊的使用方法。這不但降低了開發(fā)難度,而且減少了重復(fù)開發(fā)工作,縮短了開發(fā)周期。
MicroPython 最早被應(yīng)用在 STM32F4 微控制器平臺上。隨著社區(qū)開發(fā)者的不斷努力,它逐漸被移植到 STM32L4、STM32F7、ESP8266、ESP32、CC3200、dsPIC33FJ256、MK20DX256、microbit、MSP432、XMC4700、RT8195、IMXRT 等眾多硬件平臺上。
MicroPython 系統(tǒng)結(jié)構(gòu) :
它是由微控制器(系統(tǒng)底層硬件)、MicroPython固件和用戶程序三大部分組成。其中,硬件和MicroPython固件是最基礎(chǔ)且相對不變的部分,而用戶程序則可以隨時變更,可以存放多個用戶程序到系統(tǒng)中,隨時調(diào)用或切換,這是使用MicroPython 的一個特色。
微控制器硬件就如同一個沒有安裝操作系統(tǒng)的計算機(jī),只有下載了程序后才能實(shí)現(xiàn)其他的功能。MicroPython 的功能就像嵌入式系統(tǒng)的操作系統(tǒng)(它不同于FreeRTOS、ucOS這樣的實(shí)時系統(tǒng),用戶程序不能單獨(dú)修改,因?yàn)橄到y(tǒng)和用戶程序是一體的,需要編譯后運(yùn)行)。只有先安裝了MicroPython系統(tǒng)(固件),才能運(yùn)行各種MicroPython程序。
目前 MicroPython 源代碼支持不同微控制器平臺,這需要開發(fā)者自己編譯對應(yīng) MCU 的
MicroPython 固件,并將固件下載到微控制器中才能運(yùn)行MicroPython。
Thonny開發(fā)軟件的安裝
Thonny是一款面向Python初學(xué)者的小型集成開發(fā)環(huán)境(IDE)。它的特點(diǎn)是輕量級,易于使用,且完全基于Python的內(nèi)置圖形庫tkinter開發(fā)。這款I(lǐng)DE可以幫助初學(xué)者更快地上手 Python,避免在環(huán)境設(shè)置上浪費(fèi)過多的時間。它能夠讓初學(xué)者更好地理解每一行代碼的運(yùn)行細(xì)節(jié),并且解決了初學(xué)者可能會遇到的一些繁雜的環(huán)境問題。如果不是初學(xué)者,請選擇PyDev和Pycharm等工具。
點(diǎn)擊[Thonny]到官網(wǎng)下載安裝
根據(jù)自己的電腦系統(tǒng)下載相應(yīng)的版本,本文以Windows為例
下載好安裝包后,雙擊一步步的安裝,安裝完成后雙擊桌面圖表進(jìn)入Thonny主界面
ESP32-S3的Thonny開發(fā)軟件的設(shè)置
查看自己的ESP32-S3開發(fā)板上的USB轉(zhuǎn)串口芯片安裝好對應(yīng)的驅(qū)動,常見的USB轉(zhuǎn)串口芯片有,CH343、CH340、CP2102、FT232等,可到芯片官網(wǎng)下載。如下圖中開發(fā)板使用的是CH343。
安裝成功后可在電腦設(shè)備管理器中查看
Thonny軟件中打開 配置解釋器 選項(xiàng)卡
選擇好MicroPython(ESP32)解釋器和USB轉(zhuǎn)串口的端口號
下載ESP32-S3 MicroPython固件
點(diǎn)擊[MicroPython]官網(wǎng),進(jìn)入ESP32-S3固件下載頁面

根據(jù)自己開發(fā)板上的ESP32-S3模組型號來選擇下載哪一個固件,本實(shí)驗(yàn)開發(fā)板使用的ESP32-S3模組與ESP32-S3-WROOM-1-N16R8兼容的,而ESP32-S3-WROOM-1-N16R8模組的PSRAM使用的是Octal
SPI,所以選擇下圖的固件版本。注意是.bin文件
下載完后我們會得到一個ESP32_GENERIC_S3-SPIRAM_OCT-20250809-v1.26.0.bin文件,然后將此文件燒錄到ESP32-S3開發(fā)板中。
1.使用Thoony工具燒錄
在Thonny工具中,選擇“ 運(yùn)行 ”菜單中的“ 配置解釋器 ”選項(xiàng),然后點(diǎn)擊“ 安裝或者更新microPython(esptool) ”如下圖,進(jìn)入固件燒錄界面
選擇加載好剛下好的固件和端口號,點(diǎn)擊安裝,等待燒錄完成

關(guān)閉 Thonny選項(xiàng) 燒錄界面,重新進(jìn)入 運(yùn)行 >> 配置解釋器 再次進(jìn)入 Thonny選項(xiàng) 界面選擇好 MicroPython ESP32 與 USB Single Serial @ COM218點(diǎn)確定 并按下開發(fā)板上的復(fù)位按鍵,即可啟動MicroPython固件了。最后,在Shell交互窗口上看到固件的信息,如下圖所示,表示已成功燒錄。
2.使用flash_download_tool工具燒錄
選擇下載芯片
選擇好固件,填寫好下載到芯片內(nèi)的地址,并在方框里打勾,選擇好串口號COM和下載波特率,點(diǎn)擊START開始進(jìn)行下載,直到下載完成,波特率設(shè)置的太高偶爾會下載不進(jìn),此時可以降低波特率下載
驗(yàn)證下載MicroPython應(yīng)用程序可否在ESP32-S3上運(yùn)行
下面為一個ESP32-S3的IO1引腳上LED的閃燈MicroPython應(yīng)用程序
from machine import Pin
import time
"""
* @brief 程序入口
* @param 無
* @retval 無
"""
if __name__ == '__main__':
# 初始化LED并輸出高電平
led = Pin(1,Pin.OUT,value = 1)
while True:
led.value(0) # 設(shè)置GPIO1輸出低電平
time.sleep_ms(500) # 延時500ms
led.value(1) # 設(shè)置GPIO1輸出高電平
time.sleep_ms(500) # 延時500ms
打開Thonny新建一個文件,并將上述代碼復(fù)制到編輯界面中,右下角選擇好MicroPython(ESP32)解釋器和USB轉(zhuǎn)串口的端口號,就出彈出了MicroPython設(shè)備,說明Thonny和ESP32-S3開發(fā)板建立了連接,此時左邊側(cè)邊欄里面出現(xiàn)了boot.py文件就是我們剛燒錄好的MicroPython(ESP32)啟動固件,然后點(diǎn)擊運(yùn)行當(dāng)前腳本,LED的閃燈MicroPython應(yīng)用程序就在開發(fā)板上運(yùn)行了(但沒有下載到ESP32-S3卡筏板中),此時可以觀察到與板子連接的LED燈模塊在閃爍

點(diǎn)擊保存選項(xiàng),會彈出如下圖提示框,我們選擇保存到MicroPython設(shè)備,文件名稱任意,文件后綴為 .py 此時就會把應(yīng)用程序下載到ESP32-S3開發(fā)板中了,左邊側(cè)邊欄里面出現(xiàn)了main.py文件就是我們剛燒錄好的LED的閃燈MicroPython應(yīng)用程序。按一下ESP32-S3開發(fā)板的復(fù)位鍵,有觀察到LED在閃爍,說明應(yīng)用程序在執(zhí)行了。


總結(jié)
通過搭建Thonny IDE開發(fā)環(huán)境,我們了解了如何給ESP32-S3燒錄MircoPython固件和MircoPython應(yīng)用程序。更多的內(nèi)容請點(diǎn)擊參考MicroPython開發(fā)文檔
審核編輯 黃宇
-
嵌入式
+關(guān)注
關(guān)注
5186文章
20133瀏覽量
328395 -
開發(fā)板
+關(guān)注
關(guān)注
25文章
6112瀏覽量
112939 -
Micropython
+關(guān)注
關(guān)注
0文章
69瀏覽量
5705
發(fā)布評論請先 登錄
【FireBeetle 2 ESP32-S3開發(fā)板測評】Arduino IDE快速開發(fā)體驗(yàn)
【FireBeetle 2 ESP32-S3開發(fā)板測評】MicroPython開發(fā)體驗(yàn)
【Banana PI Leaf S3開發(fā)板試用體驗(yàn)】MicroPython環(huán)境搭建
【FireBeetle 2 ESP32-S3開發(fā)板體驗(yàn)】使用PyCharm開發(fā)MicroPython體驗(yàn)
【FireBeetle 2 ESP32-S3開發(fā)板體驗(yàn)】測評1_搭建開發(fā)環(huán)境
淺談ESP32-C3與ESP32-S3芯片
使用MicroPython開發(fā)ESP32(01):快速入門
合宙ESP32-S3開發(fā)板特性解讀
啟明去端分享| ESP32-S3如何實(shí)現(xiàn)tcp_client和tcp_server
新品上市 | 合宙ESP32-S3開發(fā)板
基于ESP32-S3的高性能開發(fā)板介紹
使用ESP32-S3搭建網(wǎng)絡(luò)攝像頭
Banana Pi 開源硬件基于ESP32-S3開發(fā)的物聯(lián)網(wǎng)開發(fā)板系列

ESP32-S3的MicroPython開發(fā)環(huán)境搭建
評論