NodeMCU的Python開發指南(三)使用ampy上傳及執行Python程式

透過前一個單元的說明,同學們應該可以知道如何利用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)

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *