MicroPython簡介
早期 Python 在嵌入式系統(tǒng)中的應(yīng)用并未得到廣泛推廣,主要受到硬件成本、運(yùn)行性能、開發(fā)習(xí)慣等因素的限制。隨著半導(dǎo)體技術(shù)和制造工藝的快速發(fā)展,芯片的升級(jí)換代速度日益加快,芯片的功能和存儲(chǔ)器容量不斷增強(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ǔ)上,對(duì)嵌入式系統(tǒng)的底層進(jìn)行了出色的封裝,將常用功能都封裝到庫中,甚至為一些常用的傳感器和硬件編寫了專門的驅(qū)動(dòng)。用戶只需通過調(diào)用這些庫和函數(shù),就能快速控制LED小燈、舵機(jī)、多種傳感器、SD卡文件系統(tǒng)、UART、I2C、SPI通信總線等實(shí)現(xiàn)各種功能,而不用再去研究底層外設(shè)模塊的使用方法。這不但降低了開發(fā)難度,而且減少了重復(fù)開發(fā)工作,縮短了開發(fā)周期。
MicroPython 最早被應(yīng)用在 STM32F4 微控制器平臺(tái)上。隨著社區(qū)開發(fā)者的不斷努力,它逐漸被移植到 STM32L4、STM32F7、ESP8266、ESP32、CC3200、dsPIC33FJ256、MK20DX256、microbit、MSP432、XMC4700、RT8195、IMXRT 等眾多硬件平臺(tái)上。
MicroPython 系統(tǒng)結(jié)構(gòu) :
它是由微控制器(系統(tǒng)底層硬件)、MicroPython固件和用戶程序三大部分組成。其中,硬件和MicroPython固件是最基礎(chǔ)且相對(duì)不變的部分,而用戶程序則可以隨時(shí)變更,可以存放多個(gè)用戶程序到系統(tǒng)中,隨時(shí)調(diào)用或切換,這是使用MicroPython 的一個(gè)特色。
微控制器硬件就如同一個(gè)沒有安裝操作系統(tǒng)的計(jì)算機(jī),只有下載了程序后才能實(shí)現(xiàn)其他的功能。MicroPython 的功能就像嵌入式系統(tǒng)的操作系統(tǒng)(它不同于FreeRTOS、ucOS這樣的實(shí)時(shí)系統(tǒng),用戶程序不能單獨(dú)修改,因?yàn)橄到y(tǒng)和用戶程序是一體的,需要編譯后運(yùn)行)。只有先安裝了MicroPython系統(tǒng)(固件),才能運(yùn)行各種MicroPython程序。
目前 MicroPython 源代碼支持不同微控制器平臺(tái),這需要開發(fā)者自己編譯對(duì)應(yīng) MCU 的
MicroPython 固件,并將固件下載到微控制器中才能運(yùn)行MicroPython。
Thonny開發(fā)軟件的安裝
Thonny是一款面向Python初學(xué)者的小型集成開發(fā)環(huán)境(IDE)。它的特點(diǎn)是輕量級(jí),易于使用,且完全基于Python的內(nèi)置圖形庫tkinter開發(fā)。這款I(lǐng)DE可以幫助初學(xué)者更快地上手 Python,避免在環(huán)境設(shè)置上浪費(fèi)過多的時(shí)間。它能夠讓初學(xué)者更好地理解每一行代碼的運(yùn)行細(xì)節(jié),并且解決了初學(xué)者可能會(huì)遇到的一些繁雜的環(huán)境問題。如果不是初學(xué)者,請(qǐng)選擇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)串口芯片安裝好對(duì)應(yīng)的驅(qū)動(dòng),常見的USB轉(zhuǎn)串口芯片有,CH343、CH340、CP2102、FT232等,可到芯片官網(wǎng)下載。如下圖中開發(fā)板使用的是CH343。
安裝成功后可在電腦設(shè)備管理器中查看
Thonny軟件中打開 配置解釋器 選項(xiàng)卡
選擇好MicroPython(ESP32)解釋器和USB轉(zhuǎn)串口的端口號(hào)
下載ESP32-S3 MicroPython固件
點(diǎn)擊[MicroPython]官網(wǎng),進(jìn)入ESP32-S3固件下載頁面
根據(jù)自己開發(fā)板上的ESP32-S3模組型號(hào)來選擇下載哪一個(gè)固件,本實(shí)驗(yàn)開發(fā)板使用的ESP32-S3模組與ESP32-S3-WROOM-1-N16R8兼容的,而ESP32-S3-WROOM-1-N16R8模組的PSRAM使用的是Octal
SPI,所以選擇下圖的固件版本。注意是.bin文件
下載完后我們會(huì)得到一個(gè)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)入固件燒錄界面
選擇加載好剛下好的固件和端口號(hào),點(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ù)位按鍵,即可啟動(dòng)MicroPython固件了。最后,在Shell交互窗口上看到固件的信息,如下圖所示,表示已成功燒錄。
2.使用flash_download_tool工具燒錄
選擇下載芯片
選擇好固件,填寫好下載到芯片內(nèi)的地址,并在方框里打勾,選擇好串口號(hào)COM和下載波特率,點(diǎn)擊START開始進(jìn)行下載,直到下載完成,波特率設(shè)置的太高偶爾會(huì)下載不進(jìn),此時(shí)可以降低波特率下載
驗(yàn)證下載MicroPython應(yīng)用程序可否在ESP32-S3上運(yùn)行
下面為一個(gè)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) # 延時(shí)500ms
led.value(1) # 設(shè)置GPIO1輸出高電平
time.sleep_ms(500) # 延時(shí)500ms
打開Thonny新建一個(gè)文件,并將上述代碼復(fù)制到編輯界面中,右下角選擇好MicroPython(ESP32)解釋器和USB轉(zhuǎn)串口的端口號(hào),就出彈出了MicroPython設(shè)備,說明Thonny和ESP32-S3開發(fā)板建立了連接,此時(shí)左邊側(cè)邊欄里面出現(xiàn)了boot.py文件就是我們剛燒錄好的MicroPython(ESP32)啟動(dòng)固件,然后點(diǎn)擊運(yùn)行當(dāng)前腳本,LED的閃燈MicroPython應(yīng)用程序就在開發(fā)板上運(yùn)行了(但沒有下載到ESP32-S3卡筏板中),此時(shí)可以觀察到與板子連接的LED燈模塊在閃爍
點(diǎn)擊保存選項(xiàng),會(huì)彈出如下圖提示框,我們選擇保存到MicroPython設(shè)備,文件名稱任意,文件后綴為 .py 此時(shí)就會(huì)把應(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)容請(qǐng)點(diǎn)擊參考MicroPython開發(fā)文檔
審核編輯 黃宇
-
嵌入式
+關(guān)注
關(guān)注
5175文章
19977瀏覽量
324425 -
開發(fā)板
+關(guān)注
關(guān)注
25文章
6001瀏覽量
110070 -
Micropython
+關(guān)注
關(guān)注
0文章
69瀏覽量
5574
發(fā)布評(píng)論請(qǐng)先 登錄
【FireBeetle 2 ESP32-S3開發(fā)板測(cè)評(píng)】Arduino IDE快速開發(fā)體驗(yàn)

【FireBeetle 2 ESP32-S3開發(fā)板測(cè)評(píng)】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)】測(cè)評(píng)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主控MCU、ChirpLAN?小網(wǎng)關(guān)搭建大網(wǎng)絡(luò)
ESP32-S3開發(fā)板燒錄小智AI系統(tǒng)全流程指南

評(píng)論