Ameba MicroPython: Getting Started with AMB21/AMB22 (RTL8722DM)

介紹 AMB21/AMB22 (RTL8722DM)

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

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

get-start-1

AMB21/AMB22和Arduino Uno尺寸相似,如上圖所示,AMB21/AMB22上的引腳與Arduino Uno兼容。
AMB21/AMB22使用Micro USB來供電,這在許多智能設備中很常見。
引腳圖及功能請參考下圖及表格。

注意:並非上圖/表格中顯示的所有外圍設備組都可在 MicroPython 上使用。

get-start-1

(https://www.amebaiot.com/wp-content/uploads/2020/05/get-start-3.html)

 GPIO pinGPIO INTADCPWMUARTSPII2C
0PB2A5 SERIAL2_RX (b)*  
1PB1ADC4 SERIAL2_TX (b)*  
2PB3A6    
3PB31     
4PB30     
5PB28     
6PB29     
7NC      
8PB22    
9PB23    
10PB21  SPI_SS 
11PB18 SERIAL1_RX (b)*SPI_MOSI 
12PB19 SERIAL1_TX (b)*SPI_MISO 
13PB20  SPI_SCLK 
14PA7  LOG_TX  
15PA8  LOG_RX  
16PA25 SERIAL2_RX (a) I2C_SCL (a)
17PA26 SERIAL2_TX (a) I2C_SDA (a)
18PB7A3 SPI1_SS 
19PB6A2  SPI1_SCLKI2C_SDA (b)*
20PB5A1 SPI1_MISOI2C_SCL (b)*
21PB4A0 SPI1_MOSI 
22PA28     
23PA24   I2C1_SDA*
24PA23   I2C1_SCL*
25PA22  SERIAL1_RX (a)  
26PA21  SERIAL1_TX (a)  
27PA20     
28PA19     

*: 這些函數在 MicroPython 上不可用。

AMB21/AMB22 MicroPython 端口介紹

基本介紹

根據定義,MicroPython是專門為微控制器設計的精簡高效的Python3編譯器。

MicroPython 透過內建功能-REPL與Microcontroller進行即時交互的方法,將其與其他基於編譯的平台(Arduino等)區分開來。

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

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

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

建議多嘗試使用 “help()” 函數以獲得更多資訊。 例如,微控制器上電並顯示REPL後,只需鍵入help(),您將看到一個幫助頁面,為您提供有關的更多詳細信息。 如果您輸入help(modules),它將列出所有可用的內建模塊供您使用。

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

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

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

REPL Hotkeys

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

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

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

• Ctrl + c :
此熱鍵可幫助您快速取消任何輸入並另起一行。

設置開發環境

步驟1: OS環境

AMB21/AMB22 (RTL8722CSM/RTL8722DM) 開發板目前支持 Windows 操作系統 32 位元或 64 位元、Linux 操作系統 (Ubuntu) 和 macOS。 為獲得最佳體驗,請使用最新版本的操作系統。

步驟2: 安裝驅動程序

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

get-start-1

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

如果您有連接開發板到到的驅動程序問題,請到 https://ftdichip.com/drivers/

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

get-start-1

步驟3: 安裝相關工具

Windows環境

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

對於希望從頭開始編譯 MicroPython 的用戶,請務必安裝 WSL 和 Ubuntu。 注意請安裝版本 1 的 WSL。 有關如何安裝 WSL 的教程。 請參考這個網站:https://learn.microsoft.com/en-us/windows/wsl/install

Linux環境

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

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

將固件上傳到Ameba

步驟1: 找到“Firmware_and_DownloadTool.zip”文件夾

https://github.com/ambiot/micropython 在 Releases 選項中,您將能夠找到如下圖所示的資料夾。

get-start-1

解壓縮資料夾,根據所使用的操作系統,找到名為“Double-Click-Me-to-Upload”或“Run_Me_in_Terminal.sh”的文件。

步驟2: 進入UART下載模式

要進入上傳模式,首先按住 UART_DOWNLOAD 按鈕,然後按下並釋放 RESET 按鈕,最後釋放 UART_DOWNLOAD 按鈕。

get-start-6

步驟3: 上傳固件

按照屏幕上或“Readme.md”中打印的說明進行操作,以便上傳成功。 有一個 5 秒倒計時設置作為進入上傳模式的提醒。 上傳成功後,您會看到屏幕上打印一行 – “All images are sent successfully”。

get-start-6

嘗試第一個範例

步驟1: 打開 REPL

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

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

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

get-start-7

過程為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()

能夠看到返回的結果顯示周圍所有發現的無線網絡。

get-start-7

這樣我們可以確定 MicroPython 固件被正確編譯和安裝。

請先確認已安裝QQ通訊軟體