快速入门手册

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无线上传,并被智能设备上的应用程序使用,实现物联网的应用。

get-start-1

AmebaD和Arduino Uno的尺寸类似,如上图所示,并且AmebaD上的引脚与Arduino Uno兼容。

AmebaD使用Micro USB来供电,这在许多智能设备中很常见。
AmebaD的引脚图和功能请参考下图和表格。

get-start-2


引脚名

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

get-start-3

注解

上图/表中显示的并非所有外围设备都可以在MicroPython上使用,
请参阅 “API 文档” 部分以获取更多信息。

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 + d

    MicroPython将执行软件重启,这在您的微控制器表现异常时非常有用。并且将再次执行 “boot.py” 中的脚本。请注意,这只会重置MicroPython interpreter 而不重置硬件,所有先前配置的硬件将保持原样,直到您手动重置开发板为止。

  • Ctrl + e

    此快捷键会将 REPL 设置粘贴模式,在粘贴模式下,可以一次将一大部分的代码粘贴到REPL中,而无需一行一行地执行代码。 适合当您找到MicroPython库并希望通过复制和贴上立即对其进行测试时。

  • Ctrl + b

    此快捷键会将 REPL 重置为普通模式, 您可以利用该指令解决某些模式下的卡死。

  • Ctrl + c

    此热键可帮助您快速取消任何输入并另起一行

设置开发环境

步骤1: 安装驱动程序

首先,通过Micro USB将AmebaD连接到计算机:

get-start-4

如果这是您第一次将AmebaD连接到您的计算机,那么AmebaD的USB驱动程序将自动安装。
如果遇到开发板连接到计算机的驱动程序问题,请参考下列 USB 驱动安装程序 https://ftdichip.com/drivers/
你可以在你的计算机的设备管理器中检查COM端口号:

get-start-5

步骤2: 安装相关工具

Windows环境

对于Windows用户,请安装串行终端软件。 最常见的串行终端是 Tera TermPutty,在这里我们建议使用 Tera Term ,可以从网络下载。

对于希望从头开始编译MicroPython的用户,请确保安装 Cygwin,这是在Windows系统上运行的类似Linux的环境。选择 Cygwin 安装程序时,我们建议使用 Cygwin 32位版本。在 Cygwin 安装期间,安装程序将提示用户是否安装其他软件,请确保从“ Devel ”类别中选择 make 的GNU版本(请参见下图),然后选择最新版本。

get-start-6

另外,在固件编译过程中需要 Python3,因此请确保从其官方网站下载最新的 Python3,并在安装过程中要求时将其添加为环境变量。

Linux环境

对于Linux用户,请使用 apt-get 安装命令安装您选择的串行终端软件。 在这里,我们建议使用 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 按钮。 如果成功,您应该在 Ameba 上看到绿色的 LED 闪烁。

get-start-7

步骤3: 运行 “Double-Click-Me-to-Upload”

顾名思义,双击该文件以运行它,然后按照屏幕上显示的说明更新 Ameba 的串行COM端口,这样上传就可以成功进行。 上传成功后,您将在屏幕上看到一行日志 – “All images are sent successfully”。

尝试第一个范例

步骤1: 打开 REPL

REPL 代表 读取(Read) ,评估(Evaluation) ,打印(Print) 和 循环(Loop),它是 MicroPython 的终端,供用户控制微控制器

get-start-8

打开Tera Term后,如上图所示选择“Serial”,然后使用下拉列表选择 Ameba 的串行端口,然后单击“OK”。 如果您的串行终端未配置为 115200 波特率,建议将 115200 设定为默认设置。

现在已经连接了串行端口,在 Ameba 上单击 RESET 按钮,如下所示会看到 MicroPython 的欢迎页面。

get-start-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()

您应该能够看到返回周围无线网络的结果

get-start-10

(完结)


注解

如果遇到任何问题请参考 常见问题故障排除 页面。