快速入门手册
Ameba MicroPython: 适用于 RTL8722DM 的快速入门手册
环境配置
AmebaD RTL8722CSM/RTL8722DM MicroPython SDK 目前支持 Windows 10 和 Linux 操作系统。
AmebaD RTL8722CSM/RTL8722DM介绍
Ameba是一个易于编程的微控制器平台,可用于开发各种物联网应用程序。AmebaD有各种外围接口,包括WiFi, BLE, GPIO, I2C, UART, SPI, PWM, ADC。通过这些接口,AmebaD可以连接LED、开关、压力计、湿度计、PM2.5粉尘传感器等电子组件。
Ameba所收集的数据可以通过WiFi无线上传,并被智能设备上的应用程序使用,实现物联网的应用。
AmebaD和Arduino Uno的尺寸类似,如上图所示,并且AmebaD上的引脚与Arduino Uno兼容。
引脚名 |
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 |
✓ |
注解
RTL8722 MicroPython 移植简介
基本背景
REPL 代表Read-Evaluation-Print-Loop,它是一个交互式提示,可用于存取和控制微控制器。
REPL 具有其他强大的特色,例如tab处理,行编辑,自动缩排,输入历史记录等。 它的基本功能类似于标准的 Python IDLE,但是运行在微控制器上。
要使用 REPL ,只需在PC上打开任何串行终端软件(最常用的工具是 TeraTerm, Putty 等),然后连接到微控制器的串行端口,然后将波特率设置为 115200,然后手动重置开发板,即可看到 >>> MicroPython提示符出现在终端画面上。 您就可以在REPL上输入任何Python脚本。
建议多尝试使用 “ help() ” 函数以获得更多信息。例如,微控制器上电并显示REPL后,只需键入
>>> help()
You will see a help page giving you more details about this port; also if you type
>>> help(modules)
它将列出所有可用的内建模块供您使用。
此外,如果您想了解有关模块的更多信息,例如可用的API和CONSTANT,只需键入以下代码来获取该模块的详细信息。
>>> 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 快捷键
Ctrl + dMicroPython将执行软件重启,这在您的微控制器表现异常时非常有用。并且将再次执行 “boot.py” 中的脚本。请注意,这只会重置MicroPython interpreter 而不重置硬件,所有先前配置的硬件将保持原样,直到您手动重置开发板为止。
Ctrl + e此快捷键会将
REPL设置粘贴模式,在粘贴模式下,可以一次将一大部分的代码粘贴到REPL中,而无需一行一行地执行代码。 适合当您找到MicroPython库并希望通过复制和贴上立即对其进行测试时。Ctrl + b此快捷键会将
REPL重置为普通模式, 您可以利用该指令解决某些模式下的卡死。Ctrl + c此热键可帮助您快速取消任何输入并另起一行
设置开发环境
步骤1: 安装驱动程序
首先,通过Micro USB将AmebaD连接到计算机:
步骤2: 安装相关工具
Windows环境
对于Windows用户,请安装串行终端软件。 最常见的串行终端是 Tera Term 和 Putty,在这里我们建议使用 Tera Term ,可以从网络下载。
对于希望从头开始编译MicroPython的用户,请确保安装 Cygwin,这是在Windows系统上运行的类似Linux的环境。选择 Cygwin 安装程序时,我们建议使用 Cygwin 32位版本。在 Cygwin 安装期间,安装程序将提示用户是否安装其他软件,请确保从“ Devel ”类别中选择 make 的GNU版本(请参见下图),然后选择最新版本。
另外,在固件编译过程中需要 Python3,因此请确保从其官方网站下载最新的 Python3,并在安装过程中要求时将其添加为环境变量。
Linux环境
对于Linux用户,请使用 apt-get 安装命令安装您选择的串行终端软件。 在这里,我们建议使用 picocom 。
对于有兴趣在C语言中开发 MicroPython 模块的用户,请确保安装了至少 3.82 或更高版本的 GNU make 软件以及 Python3。
将固件上传到Ameba
步骤2: 进入 UART 下载模式
请先按住 UART_DOWNLOAD 按钮,然后按 RESET 按钮。 如果成功,您应该在 Ameba 上看到绿色的 LED 闪烁。
步骤3: 运行 “Double-Click-Me-to-Upload”
顾名思义,双击该文件以运行它,然后按照屏幕上显示的说明更新 Ameba 的串行COM端口,这样上传就可以成功进行。 上传成功后,您将在屏幕上看到一行日志 – “All images are sent successfully”。
尝试第一个范例
步骤1: 打开 REPL
REPL 代表 读取(Read) ,评估(Evaluation) ,打印(Print) 和 循环(Loop),它是 MicroPython 的终端,供用户控制微控制器
打开Tera Term后,如上图所示选择“Serial”,然后使用下拉列表选择 Ameba 的串行端口,然后单击“OK”。 如果您的串行终端未配置为 115200 波特率,建议将 115200 设定为默认设置。
现在已经连接了串行端口,在 Ameba 上单击 RESET 按钮,如下所示会看到 MicroPython 的欢迎页面。
过程为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()
您应该能够看到返回周围无线网络的结果
(完结)









