2023年12月15日 星期五

MicroPython v1.21 釋出

好久沒玩 MicroPython 了, 今天突然想起來就去官網看看, 發現 1.21 版的韌體已於 10 月初釋出, 下載網址如下 : 


此版的最大亮點是更改了內建模組命名方式, 將開頭的 'u' 移除, 例如 utime 改為 time, 跟 CPython 完全一樣, 可避免開發者對於該匯入 utime 還是 time 的困擾. 唯一還保留 u 開頭的模組是 uctype, 因為它與 CPython 的 ctype 不相容之故. 

但為了向後相容舊版程式, 下列模組仍然可以用 u 開頭名稱匯入使用 : 

array, asyncio, binascii, bluetooth, collections, cryptolib, errno, hashlib, heapq, io, json, machine, os, platform, random, re, select, socket, ssl, struct, time, websocket

參考 : 



以下統一使用 esptool 模組來燒錄 ESP32/ESP8266 韌體, 使用前先確認電腦的 Python 執行環境是否已安裝 esptool, 否則用 pip install 安裝 :

pip install esptool 


一. ESP32 韌體燒錄 :

將 ESP32 WROOM 開發板連接電腦 USB 埠後, 首先到裝置管理員查看該 USB 目前是連接到哪個 COM 埠以便於指令中指定 COM 埠, 指令如下 :
  1. 檢查 Flash 容量 (WROOM 為 4MB) :
    esptool.py --port COM13 flash_id    
  2. 抹除 Flash :
    esptool.py --chip esp32 --port COM13 erase_flash   
  3. 燒錄韌體 (下燒錄指令前須按住 ESP32 WROOM 板右下角的 Flash 鈕) : 
    esptool.py --chip esp32 --port COM13 write_flash -z 0x1000 ESP32_GENERIC-20231005-v1.21.0.bin      
燒錄完成後按板子左下角 Reset 鈕, 用 Putty 或 Thonny 連線該 COM 埠 :

MicroPython v1.21.0 on 2023-10-05; Generic ESP32 module with ESP32

Type "help()" for more information.
>>> import os 
>>> os.uname()  
(sysname='esp32', nodename='esp32', release='1.21.0', version='v1.21.0 on 2023-10-05', machine='Generic ESP32 module with ESP32')

可見版本確實為 1.21.0. 


二. ESP8266 韌體燒錄 :   

常見的 ESP8266 開發板有 D1 mini (Pro) 與 Witty Cloud 等, 燒錄時有的要按住 Flash 鈕直到進度 % 出現 (Witty Cloud), 有的須將特定 GPIO 腳接地燒錄完移除 (D1 mini), 有的不須任何前提直接燒錄即可 (D1 mini Pro). 燒錄指令如下 :
  1. 檢查 Flash 容量 (D1 mini/Witty Cloud 為 4MB) :
    esptool.py --port COM13 flash_id    
  2. 抹除 Flash :
    esptool.py --chip esp8266 --port COM13 erase_flash   
  3. 燒錄韌體 (下燒錄指令前須按住右下角的 Flash 鈕) : 
    esptool.py --port COM13 --baud 115200 write_flash --flash_size=detect -fm dio 0 ESP8266_GENERIC-20231005-v1.21.0.bin      
燒錄完成後, D1 mini 要拔掉 D3 的接地線, 用 Putty 或 Thonny 連線該 COM 埠, 按板子左下角 Reset 鈕 :

MicroPython v1.21.0 on 2023-10-05; ESP module with ESP8266

Type "help()" for more information.
>>> import os  
>>> os.uname()  
(sysname='esp8266', nodename='esp8266', release='2.2.0-dev(9422289)', version='v1.21.0 on 2023-10-05', machine='ESP module with ESP8266')

參考 : 

MicroPython v1.19 釋出 (以 ESP32 WROOM 為例)
WeMOS D1 Mini 開發板測試 (以 D1 mini 為例)

沒有留言 :