山姆的編程實作分享。。。

Sam Blog, Sam Sharing, Sam Studio

2020年11月28日

[MicroPython 教學] Ampy 基本操作


 Boot Process

MicroPython (MPY) 在 power-up 或是 hardware  reset 後, 正規 (standard) Boot Mode 是先執行 File System 上的 boot.py,然後 configure USB, 接著就是執行 main.py。

從 MPY 官方的文件裡,boot.py 是不建議一般使用者去更改他的,除非你是高級用戶 (advance user) ;也就是說,我們寫的 script 盡可能是改寫在 main.py 或是小改 main.py 來載入你自己的模組了。而能讓 MPY 執行你改寫的 script 方法,有以下 2 種方式可以達成。

  1. 和 Arduino 一樣,將改寫好的 main.py 和 MPY source code 重新編譯 ,然後再 download 重新編譯好的 MPY firmware,這樣你的 script 就能被順利的執行了。但這方法其實已失去 MPY 的設計原意了,因為這方法應該只有在改寫或新增 MPY Library 才發生才對,區區 main.py 更改應該使用第 2 種方法。

  2. 透過 Tool 載入改寫好的 main.py ( Load File ) 並執行他 ( Run File );MicroPython 官方提供的 File System Tool 是 rshell ( Remote MicroPython shell );rshell 功能完整,但對於只是想更改 MPY File System 內容的簡單目的則是過於複雜了,而且 rshell 在 Windows OS 有跑不起來的問題

ampy - Adafruit MicroPython Tool 

ampy 是一個相對精簡於 rshell 功能的 command line tool ;精簡而不複雜,對於只是想更改 MPY File System 內容的簡單目的則是綽綽有餘,加上能跨平台 Windows OS 也能 Run,也就成就他的普及率了。

Install ampy 


以下是安裝 ampy 的方法

Windows OS: 

pip install adafruit-ampy

Ubuntu OS: 

sudo pip3 install adafruit-ampy

Ampy Usage

ampy 的使用方法說明,只要在 Command Line 或 Terminal 的視窗需要輸入 ampy 就可以看到了;如下的畫面就是 ampy 跑在 Windows OS 的截圖。


當然, 以下的指令更為正規

ampy --help 

Command Format

 從上圖的說明,我們可以得知 ampy command format

ampy [OPTIONS] COMMAND [ARGS] 


Serial Port

不管是 rshell 或是 ampy ,在做檔案操作 (File Operation) 之前,都是必須先知道你板子 serial port 的位址。例如我的板子就是在 COM7,這可以在裝置管理員查到,如下圖。

所以想知道 MPY SD 的檔案資料就可如此下指令

ampy --port com7 ls

Set Path for Serial Port

在 Command Line / Terminal 視窗, 雖是一個上鍵就可以重複上一個指令,但若是想簡化指令,不再重複出現 --port com7 這段字串,是可以在 Command Line / Terminal 下輸入以下字串來設定 serial port 的路徑的。

set ampy_port=com7



List File : ls

在 Windows 要查一個檔案目錄的資訊是透過 dir (directory) command ,在 Linux 則是 ls (list) command ,因為 ampy 是從 rshell 簡化而來的,有 Linux 的身影,所以所有的 Commands 都是和 Linux 相同。

Syntax : ampy --port comport ls


Create and remove directory : mkdir / rmdir

新增一個檔案目錄的。

Syntax : ampy --port comport mkdir new/directory

Load File : put / get

將你電腦上的檔案複製到 MPY 板子上目錄的指令是 put 。

將MPY 板子上的檔案複製到你電腦上的指令則是 get 。

Syntax : ampy --port comport put filename

Run File : run

想讓 MPY 板子馬上執行你的 script 的指令則是 run 。

Syntax : ampy --port comport run filename



Remove File : rm

刪除 MPY 板子上檔案的指令則是 rm。

Syntax : ampy --port comport rm filename

Soft-Reset / Reboot : reset

最後一個 ampy 支援的 command 是 reset,reset command 則是執行 softreset ,讓 MPY 做 reboot 的動作。

Syntax : ampy --port comport reset

小技巧

示範完所有 ampy 支援的 commands 後,你是否有發覺沒有 rename 的 command, 想直接將 test.py 改名成 main.py ,是不是只能在 PC 端改好檔名再重新上載到 MPY 板端 ?

這裡教你一個小技巧,利用 put command ,直接做到 "側妃變正宮" 的方法。

Syntax : ampy --port comport put test.py main.py



熱門文章