MicroPython 是一種精簡且高效率實作的 Python 3 程式語言,其中含有少量 Python 標準函式庫子集,針對在微控制器和受限環境中執行進行最佳化。
執行MicroPython需要的硬體如下:
至少
256K Flash Rom
16K RAM
時脈80MHz
------------------------------------------------------------------------------------
要在ESP8266上運行MicroPython,需要至少1MB的Flash Rom 版本,
(MicroPython Firmware大約佔去512K) ,而Node MCU選用的是ESP12E,
有4MB Flash Rom,十分足夠。
1.首先要下載MicroPython Firmware。
http://micropython.org/download#esp8266
到此連結選擇最新的穩定版本,撰寫本文時最新版本為esp8266-20180511-v1.9.4.bin這
2.燒錄工具 (電腦需要有python環境以及pip工具), 建議用python3
pip3 install esptool
3.檔案工具
Adafruit MicroPython Tool (AMPY)
pip3 install adafruit-ampy
4.將Node MCU連接到電腦 ,確認是否可以看到Node MCU的Serial Port
ls /dev/cu.*
若能夠看到/dev/cu.wchusbserial1410(或1420) 代表能夠捉到Node MCU的Serial Port (驅動成功安裝) , 如果沒有看到
需要確定您使用的Node MCU是使用那一個版本的USB to TTL晶片
若是CH340
安裝以下驅動(安裝完畢後必須重開機,並且在隱私設定中允許)
http://www.wch.cn/download/CH341SER_MAC_ZIP.html
若是CP2102 則安裝以下驅動,並允許隱私權中的設定,然候重開機
https://www.silabs.com/products/development-tools/software/usb-to-uart-bridge-vcp-drivers
5.抺除Node MCU中原廠的Firmware (注意 port可能和我不同)
CH340
esptool.py --port /dev/cu.wchusbserial1410 erase_flash
CP2102
6.寫入MicroPython Firmware
CP2102
esptool.py --port /dev/cu.SLAB_USBtoUART --baud 460800 write_flash --flash_size=detect 0 ~/Downloads/esp8266-20180511-v1.9.4.bin
CH340
esptool.py --port /dev/cu.wchusbserial1410 --baud 115200 write_flash --flash_size=detect 0 ~/Downloads/esp8266-20180511-v1.9.4.bin
7.透過ampy 查詢一下Node MCU中有什麼東要(測試燒錄是否成功)
CH340
ampy --port /dev/cu.wchusbserial1410 ls
出現錯誤 colud not entr raw repl
俺試過加入Delay 2秒也沒用,最後發現跟本是沒有燒好(MBP 2015不會跳錯,但不一定燒錄成功,而MBP 2017則是無法燒錄),在CH340的USB To TTL晶片記得要在燒錄時把baud 改成 115200.
CP2102
ampy --port /dev/cu.SLAB_USBtoUART ls
8.到此燒錄MicroPython已完成,接下來寫一個main.py
import time
from machine import Pin
led = Pin(2, Pin.OUT)
led.value(1)
while True:
led.value(0)
time.sleep_ms(500)
led.value(1)
time.sleep_ms(500)
9.將main.py丟到Node MCU
CP2102
ampy --port /dev/cu.SLAB_USBtoUART ls
CH340
ampy --port /dev/cu.wchusbserial1410 put main.py
接下來按下RST鍵,藍色LED就會以0.5秒間隔閃爍。
參考資料:
Malo老師的GitHub
CH340 OSX flash error with speed greater 115200