入门指南

Ameba MicroPython: Getting Started with AMB21/AMB22

工作环境

AmebaD AMB21/AMB22 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的尺寸类似,如上图所示,并且 AMB21/AMB22 上的引脚与Arduino Uno兼容。

AmebaD使用Micro USB来供电,这在许多智能设备中很常见。

AmebaD的引脚图和功能请参考下图和表格。

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 文件 部分以获取更多资讯。

RTL8722 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将AmebaD连接到电脑:

4

如果这是您第一次将AmebaD连接到您的电脑,那么AmebaD的USB驱动程序将自动安装。

如果遇到开发板连接到电脑的驱动程序问题,请参考下列USB 驱动程序 https://ftdichip.com/drivers/

你可以在你的电脑的装置 管理员 中检查 COM 端口号:

5

步骤2: 安装相关工具

Windows环境:

对于Windows用户,请安装串行终端软件。最常见的串行终端是 Tera TermPutty,在这里我们建议使用 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 按钮。如果成功,您应该在ameba上看到绿色的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)


备注

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