入門指南

Ameba MicroPython: Getting Started with AMB21/AMB22

工作環境

AmebaD RTL8722CSM/RTL8722DM MicroPython SDK 目前支持 Windows 10 以及 Linux 作業系統。

AmebaD【AMB21/AMB22】

Ameba是一個易於編程的微控制器平台,可用於開發各種物聯網應用程序。 AmebaD有各種外圍接口,包括WiFi, BLE, GPIO, I2C, UART, SPI, PWM, ADC。通過這些接口,AmebaD可以連接LED、開關、壓力計、濕度計、PM2.5粉塵傳感器等電子元件。

Ameba所收集的數據可以通過WiFi無線上傳,並被智能設備上的應用程序使用,實現物聯網的應用。

1

AMB21/AMB22 和Arduino Uno的尺寸類似,如上圖所示,並且AmebaD上的引腳與Arduino Uno兼容。

AmebaD使用Micro USB來供電,這在許多智能設備中很常見。

AMB21/AMB22 的引腳圖和功能請參考下圖和表格。

2


PIN name

GPIO

ADC

PWM

UART

SPI

I2C

D00

GPIOB_2

ADC5

UART3_RX(b)

D01

GPIOB_1

ADC4

UART3_TX(b)

D02

GPIOB_3

ADC6

D03

GPIOB_31

D04

GPIOB_30

D05

GPIOB_28

D06

GPIOB_29

D07

NC

D08

GPIOB_22

PWM14

D09

GPIOB_23

PWM15

D10

GPIOB_21

PWM13

UART0_RTS(b)

SPI0_CS

D11

GPIOB_18

PWM10

UART0_RX(b)

SPI0_MOSI

D12

GPIOB_19

PWM11

UART0_TX(b)

SPI0_MISO

D13

GPIOB_20

PWM12

UART0_CTS(b)

SPI0_CLK

D14

GPIOA_7

UART2_TX(log)

D15

GPIOA_8

UART2_RX(log)

D16

GPIOA_25

PWM4

UART3_RX(a)

I2C0_SCL

D17

GPIOA_26

PWM5

UART3_TX(a)

I2C0_SDA

D18

GPIOB_7

ADC3

PWM17

SPI1_CS

D19

GPIOB_6

ADC2

SPI1_CLK

D20

GPIOB_5

ADC1

PWM9

SPI1_MISO

D21

GPIOB_4

ADC0

PWM8

SPI1_MOSI

D22

GPIOA_28

D23

GPIOA_24

PWM3

UART0_CTS(a)

I2C1_SDA

D24

GPIOA_23

PWM2

UART0_RTS(a)

I2C1_SCL

D25

GPIOA_22

UART0_RX(a)

D26

GPIOA_21

UART0_TX(a)

D27

GPIOA_20

D28

GPIOA_19

3

備註

上圖/表中顯示的並非所有外圍設備都可以在MicroPython上使用,請參閱 API文件 部分以獲取更多資訊。

AMB21/AMB22 MicroPython 移植簡介

基本背景

REPL代表Read-Evaluation-Print-Loop,它是一個交互式提示,可用於存取和控制微控制器。

REPL具有其他強大的特色,例如tab處理,行編輯,自動縮排,輸入歷史記錄等。 它的基本功能類似於標準的Python IDLE,但是運行在微控制器上。

要使用REPL,只需在PC上打開任何串行終端軟件(最常用的工具是teraterm,putty等),然後連接到微控制器的串行端口,然後將baudrate設置為115200,然後手動重置開發板,即可看到>>> MicroPython提示符出現在終端畫面上。 您就可以在REPL上輸入任何Python腳本。

建議多嘗試使用 help() 函數以獲得更多資訊。 例如,微控制器上電並顯示REPL後,只需鍵入

>>> help()

您將看到一個幫助頁面,為您提供有關此移植的更多詳細信息。 如果您輸入

>>> help(modules)

,它將列出所有可用的內建模塊供您使用。

此外,如果您想了解有關模塊的更多資訊,例如可用的API和CONSTANT,只需鍵入以下代碼help(您感興趣的模塊)來獲取該模塊的詳細信息。

>>> help(the module of your interest)

讓我們以Pin模塊(GPIO)為例:

>>> help(Pin)
object <class 'Pin'> is of type type
   id -- <function>
   init -- <function>
   value -- <function>
   off -- <function>
   on -- <function>
   toggle -- <function>
   board -- <class 'board'>
   IN -- 0
   OUT -- 1
   PULL_NONE --0
   PULL_UP --1
   PULL_DOWN --2

REPL Hotkeys

  • Ctrl + d

    MicroPython將執行軟件重啟,這在您的微控制器表現異常時非常有用。並且將再次執行 boot.py 中的腳本。請注意,這只會重置MicroPython interpreter 而不重置硬件,所有先前配置的硬件將保持原樣,直到您手動重置開發板為止。

  • Ctrl + e

    Paste mode 可以一次將一大部分的代碼粘貼到REPL中,而無需一行一行地執行代碼。 適合當您找到MicroPython庫並希望通過複製和貼上立即對其進行測試時。

  • Ctrl + b

    此熱鍵會將REPL設置回Normal mode。 當你卡在某些模式下,可以利用這個解決。

  • Ctrl + c

    此熱鍵可幫助您快速取消任何輸入並另起一行

設置開發環境

步驟1: 安裝驅動程序

首先,通過Micro USB將 AMB21/AMB22 連接到電腦:

4

如果這是您第一次將AMB21/AMB22連接到您的電腦,那麼 AMB21/AMB22 的USB驅動程序將自動安裝。

如果遇到開發板連接到電腦的驅動程序問題,請參考下列USB 驅動程序 https://ftdichip.com/drivers/

你可以在你的電腦的 裝置管理員 中檢查 COM 端口號:

5

步驟2: 安裝相關工具

Windows環境:

對於Windows用戶,請安裝串行終端軟件。 最常見的串行終端是**Tera Term**和**Putty**,在這裡我們建議使用Tera Term,可以從網路下載。

對於希望從頭開始編譯MicroPython的用戶,請確保安裝 Cygwin,這是在Windows系統上運行的類似Linux的環境。選擇 Cygwin 安裝程序時,我們建議使用 Cygwin 32位元版本。在 Cygwin 安裝期間,安裝程序將提示用戶是否安裝其他軟件,請確保從 Devel 類別中選擇 make 的GNU版本(請參見下圖),然後選擇最新版本。

6

另外,在固件編譯過程中需要Python3,因此請確保從其官方網站下載最新的Python3,並在安裝過程中要求時將其添加為環境變量。

Linux環境:

對於Linux用戶,請使用 apt-get install命令安裝您選擇的串行終端軟件。 在這裡,我們建議使用 picocom

對於有興趣在C語言中開發MicroPython模塊的用戶,請確保安裝了至少3.82或更高版本的GNU make軟件以及Python3。

將固件上傳到Ameba

步驟1: 找到“Release”文件夾

GitHub 下載MicroPython repository 後,會在根目錄中看到一個“Release”文件夾,並且在該路徑下找到一個名為“Double-Click-Me-to-Upload”的工具。

步驟2: 進入UART下載模式

請先按住UART_DOWNLOAD按鈕,然後按RESET按鈕。 如果成功,您應該在 AMB21/AMB22 上看到綠色的LED閃爍。

7

步驟3: 運行 “Double-Click-Me-to-Upload”

顧名思義,雙擊該文件以運行它,然後按照屏幕上顯示的說明更新ameba的串行COM端口,這樣上傳就可以成功進行。 上傳成功後,您將在屏幕上看到一行日誌–“All images are sent successfully”。

嘗試第一個範例

步驟1: 打開 REPL

REPL代表讀取,評估,打印和循環,它是MicroPython的終端,供用戶控制微控制器。 REPL在LOG UART上運行,因此我們需要打開串行終端軟件,在本例中為Tera Term,用以查看REPL。

8

打開Tera Term後,如上圖所示選擇“Serial”,然後使用下拉列表選擇ameba的串行端口,然後單擊“OK”。 如果您的串行終端未配置為115200 baudrate,建議將115200設定為默認設置。

現在已經連接了串行端口,在ameba上按一下RESET按鈕,如下所示會看到MicroPython的歡迎頁面。

9

過程為Ameba首先檢查其校準數據,然後啟動MicroPython的固件,接著再運行 boot.py python腳本和導入的內建python庫。

現在試著輸入

>>> help()

查看更多信息,然後輸入

>>> help(modules)

檢查所有現成可用的python庫。

步驟2: 執行WiFi掃描範例

由於大多數外圍設備的範例都需要額外的硬件才能顯示該範例是否正常運行,因此我們將僅以WiFi掃描範例為例,來了解使用MicroPython控制WiFi是十分容易的。

現在,請複製並貼上以下代碼,或手動將其輸入Tera Term,然後按“Enter”。

from wireless import WLAN
wifi = WLAN(mode = WLAN.STA)
wifi.scan()

您應該能夠看到返回周圍無線網絡的結果

10

(End)


備註

如果您遇到任何問題,請參考 常见问题故障排除 的頁面。