MicroPython: how to upload program and run code
之前的文章 (MicroPython Lab1: Blink LED) 介紹是使用互動模式在 serial REPL 鍵入在NodeMCU上執行的 python code。
這個方法很適合作即時的小實驗,但要開發比較複雜的程式時在IDE上是比較方便的。如果ESP8266開發板有1MB以上的Flash,MicroPython 啟動後會配置一個內部的 file system,可以將程式碼儲存在file system 中。
當ESP8266啟動時會自行載入特定名稱的程式執行(就像是 Arduino 執行 Arduino sketch一樣),開機之後系統預設會先執行 boot.py 然後再執行 main.py 。
本文將介紹如何使用 Adafruit MicroPython tool (AMPY) upload 程式碼以及如何執行
第一步要安裝AMPY
可以用 pip 來安裝 Adafruit MicroPython tool (AMPY),需要 Python 2.7.x或3.x的版本。
$ pip install adafruit-ampy
要確認是否安裝成功可以執行以下執令
$ ampy --help
執行MicroPython程式碼
我們可以使用 run 指令來將一份MicroPython程式上傳到NodeMCU去執行。例如以下的程式若儲存為 “blink10times.py”
import machine import time ledD2 = machine.Pin(4, machine.Pin.OUT) for i in range(10): ledD2.high() time.sleep(0.5) ledD2.low() time.sleep(0.5)
那可以執行以下的 shell command
$ ampy --port COM15 run blink10times.py
這樣 ampy 會上傳 blink10times.py 到 NodeMCU 並且執行它,其中的COM port # 要看自己的usb-ttl是接到哪一個Port 而作調整。
Copy 程式到開發板
我們也可以直接將 blink10times.py copy 到 NodeMCU 的根目錄命名為 main.py
$ ampy --port COM15 put blink10times.py main.py
這樣 Reset NodeMCU之後,它就會自動執行 main.py
其它ampy 指令
ampy還有提供其他的指令, 詳情可以參考 https://github.com/adafruit/ampy
get: Retrieve a file from the board.
ls: List contents of a directory on the board.
mkdir: create a folder
rm: Remove a file from the board.