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.
6 thoughts on “MicroPython: how to upload program and run code”
Dear Sir
請問
blink10times.py
在放在哪一個目錄底下
THANKS
Sorry 現在才看到留言.
請問你是問要放在 ESP8266 裡面的哪一目錄?
放在根目錄即可.
利用 cd 命令 change directory
例如
cd d:\mini3\
THANKS
可以請問一下,如果我是裝512K的韌體,每有內建檔案系統的話,程式要如何上傳呢???
不好意思,我不太了解你的問題。
是說要上傳程式時遇到問題了嗎?