透過前一個單元的說明,同學們應該可以知道如何利用MU Editor在NodeMCU上測試程式了。MU Editor在執行的時候可以自動偵測NodeMCU板的COM port並可自動連線,在執行上非常方便。然而現階段的MU Editor只能立即執行程式,並沒有把程式直接放到板子上的功能,所以,在這裡我們還要再介紹另外一個工具,ampy。
ampy是一個Python的程式,在使用之前需要另行利用以下的指令安裝:
pip install adafruit-ampy
安裝完成之後,在命令提示字元下直接下達ampy指令,可以看到以下的使用說明:
D:\course\nodemcu>ampy
Usage: ampy [OPTIONS] COMMAND [ARGS]...
ampy - Adafruit MicroPython Tool
Ampy is a tool to control MicroPython boards over a serial
connection. Using ampy you can manipulate files on the board's
internal filesystem and even run scripts.
Options:
-p, --port PORT Name of serial port for connected board. Can
optionally specify with AMPY_PORT environment
variable. [required]
-b, --baud BAUD Baud rate for the serial connection (default
115200). Can optionally specify with AMPY_BAUD
environment variable.
-d, --delay DELAY Delay in seconds before entering RAW MODE
(default 0). Can optionally specify with
AMPY_DELAY environment variable.
--version Show the version and exit.
--help Show this message and exit.
Commands:
get Retrieve a file from the board.
ls List contents of a directory on the board.
mkdir Create a directory on the board.
put Put a file or folder and its contents on the board.
reset Perform soft reset/reboot of the board.
rm Remove a file from the board.
rmdir Forcefully remove a folder and all its children from the...
run Run a script and print its output.
在一般的情況下,下達指令所需要使用的旗號就是「-p」或是「–port」,這個是用來指令COM連接埠號的旗號,一定要正確才能夠存取到NodeMCU中的內容。而後面的get、ls、mkdir、put等等指令,則是對NodeMCU進行磁碟操作的主要命令。
例如,我們想要得知目前NodeMCU上目前有哪些檔案或目錄,可以執行以下的指令:
ampy --port COM3 ls
執行的過程如下所示:
D:\course\nodemcu>ampy --port COM3 ls
/boot.py
/main.py
/test.txt
一開始如果我們沒有把任何檔案放進去的話,那麼就只會有boot.py這個檔案,這是正常的現象。如果我們想要檢視其中任一個檔案,只要使用get指令就可以了,如下所示:
ampy --port COM3 get main.py
執行上述指令之後,如果檔案是存在的,ampy就會把那個檔案的內容呈現在螢幕上,用這個方式可以檢視NodeMCU板子上任一個文字檔(包含程式檔)的內容。
NodeMCU的MicroPython預設在開機的時候會執行main.py,因此,我們可以在MU Editor編輯器上測試程式,測試成功可以順利執行之後,再把它以main.py命名,之後再回到命令提示字元,透過ampy的put指令把main.py檔案上傳,傳輸完畢再按下RST按鈕,該程式就會不斷地運行了。
ampy --port COM3 put main.py
當然,我們也可以在不上傳檔案的方式執行程式,讓在本地的程式利用NodeMCU執行,指令如下:
ampy --port COM3 run test1.py
同學們可以把以下的程式儲存成test1.py,然後再執行上述指令,看看板子上的藍色LED是否會以0.2秒的間隔不斷地閃爍喔。
from machine import Pin
import time
led = Pin(2, Pin.OUT)
while True:
led.off()
time.sleep(0.2)
led.on()
time.sleep(0.2)