一、緣起Raspberry Pi Pico
為什么想起寫這篇microPython環(huán)境搭建的教程呢?
起因是最近入手了一塊Raspberry Pi RP2040,通過它第一次知道有microPython這么一個系統(tǒng)。原先的概念中一直只知道ucos、free-rtos、rt-thread、mbed這些比較常用的嵌入式操作系統(tǒng)。
二、初識microPython
對于Python也接觸的不多,只是偶爾在visual studio上用來處理一些數(shù)學(xué)運算。
通過百度我對MicroPython的了解也只是這么淺薄:
- MicroPython是 Python 3 語言 的精簡高效實現(xiàn) ,包括Python標準庫的一小部分,經(jīng)過優(yōu)化可在微控制器和受限環(huán)境中運行。
- MicroPython包含了諸如交互式提示,任意精度整數(shù),關(guān)閉,列表解析,生成器,異常處理等高級功能。 足夠精簡,適合運行在只有256k的代碼空間和16k的RAM的芯片上。
- MicroPython旨在盡可能與普通Python兼容,讓您輕松將代碼從桌面?zhèn)鬏數(shù)轿⒖刂破骰?a class="article-link" target="_blank" href="/baike/502953.html">嵌入式系統(tǒng)。
- MicroPython是基于Python 3.4的語法標準。因為要適應(yīng)嵌入式微控制器,所以裁剪了大部分標準庫,僅保留部分模塊如math、sys的部分函數(shù)和類。此外,很多標準模塊如json、re等在MicroPython中變成了以u開頭的ujson、ure,表示針對MicroPython開發(fā)的標準庫。
目前,MicroPython除了可以運行在最初開發(fā)的pyboard微控制器上外,還可以運行在大量基于ARM的嵌入式系統(tǒng),如Arduino,這樣我們就可以通過Python來非常方便地開發(fā)自動控制、機器人這樣的應(yīng)用。
為了將系統(tǒng)跑起來,當(dāng)然免不了下載固件。于是就來到了microPython網(wǎng)站(http://micropython.org/)。下載固件的時候,突然眼前一亮,發(fā)現(xiàn)支持ESP8266!這時我想起了吃灰很久的ESP8266小黃板。
三、平臺初建
根據(jù)網(wǎng)上各位前輩的帖子,總共分為兩步:擦除整片的flash和從0x00地址下載固件bin。
以管理員身份安裝esptool和pyserial。(我電腦上已經(jīng)安裝過了)
配置模塊硬件引腳,使其進入下載模式:CH_PD(EN)=高,RST=高,GPIO2=高,GPIO15=低,GPIO0=低。
執(zhí)行esptool.py --port COM9 erase_flash進行擦除。(我電腦上識別的串口是COM9)
接下來就是用樂鑫官網(wǎng)的下載工具down固件。(flash_download_tool_v3.8.5_1)
根據(jù)自己模塊的信息設(shè)置SPI MODE和FLASH SIZE。
下載完成后,重新上電進入運行模式,就可以用Thonny進行編程了。關(guān)于api的使用,在http://docs.micropython.org/en/latest/esp8266/quickref.html#networking網(wǎng)頁中有詳細示例和說明。
之前沒有小黃板的原理圖,犯了一個錯誤(跳線帽沒拔掉),導(dǎo)致一直在下載模式。
四、結(jié)語
使用microPython的好處在于不需要安裝IDE,隨時隨地可以升級ESP8266的程序。相信很多多平臺開發(fā)的小伙伴們,對于電腦上安裝了太多IDE,苦于日常工作中系統(tǒng)運行越來越慢,特別痛苦。(本人電腦僅安裝了Microsoft Visual Studio、Keil uVision、MCUXpresso IDE、STM32CubeIDE、MPLAB X IDE以及一些常用辦公和圖形軟件)
而且板載的諸多外設(shè),如PWM、SPI、I2C、netwok能夠滿足我們常用的調(diào)試需求。
獻上此篇給和我一樣想要不依賴IDE編程的小伙伴們。