【RealtekRTL8722DM物联网开发套件】I. 通过Arduino示例热身
【RealtekRTL8722DM物联网开发套件】II. 进阶:运行针对RTL8722DM MINI的示例
【RealtekRTL8722DM物联网开发套件】III. 问题与困惑,反转与感受

得知获得Ameba RTL8722DM MINI 板子的评测资格,很高兴。收到板子后根据小小包装盒内侧给出的网址进入REALTEK公司的“www.amebaiot.com”网站(REALTEK公司Ameba系列物联网产品的网站),通过网站给出的介绍,知道了我拿到手的AMB23(Ameba RTL8722DM MINI)板子是基于Arduino开发平台的,要想在这板子上干活儿当然应该先安装Arduino的开发环境。

早就知道大名鼎鼎Arduino是开源的硬件和软件电子开发平台,甚至还买过两块兼容的Arduino Uno板子,但并没有真正用过。这次为了完成评测任务,必须学习、使用Arduino了。

1 安装、熟悉Arduino IDE

下载安装Arduino IDE的过程很顺利,但为了在Ameba RTL8722DM MINI板子上运行程序,必须安装针对这板子的SDK。网站推荐的安装方法是通过互联网从Github上安装。但是由于某些众所周知的原因,连接Github很不稳定,因此这部分的安装过程很不顺利,期间经历了下载安装包离线安装,不知为什么虽然显示安装成功,但不能用(编译示例项目出错),又回到通过Github网站安装,仍不成功,甚至还卸载再重新安装Arduino至少两次,最后总算在夜深人静的时候通过Github网站安装成功了!

初次接触Arduino IDE感觉不太习惯,和以前曾经用过的开发环境IAR、Keil不大相同,最令我惊奇的是Arduino IDE中居然没有Debug功能!但开始接触的示例项目编译、下载、运行应该是没有问题的,不需要Debug,即使对示例项目小做修改,因为代码比较简单,而且Arduino IDE提供了方便、简单好用的串行接口监视器,可以在代码中插入输出语句查看所需的数据或中间结果,倒也不太麻烦。

试着编译、下载、运行了几个示例项目,如“Blink”、“Button”“Calibration”等(顺便提一句,在5秒钟时间内按住“UART_Download_Button”键再按“Reset”键再马上松开“Reset”的下载模式着实让我痛苦了一阵,现在总算操作自如了),下载发现有的运行正常,有的不正常。仔细研究了一阵发现:在示例项目中凡是端口用用预定义的名字给出的(如“LED_BUILTIN”),程序运行都没问题,而端口用数字端口号给出的,可能就会出问题。琢磨了一下明白了:Ameba RTL8722DM MINI 是兼容Arduino Uno(?)的增强版本,但端口编号并不兼容。因此,我们可以认为Arduino IDE提供的内置示例项目可分为两类:一类是代码中的端口是用预定义的名字给出的,这类项目直接编译、下载、运行没有问题,比如“Blink”;另一类是代码中的端口是用端口编号给出的,这类代码一般需要修改才能正常运行,比如“Button”,原来的代码中有以下两行:

const int buttonPin = 2;     // the number of the pushbutton pin
const int ledPin =  13;      // the number of the LED pin

而且需要搭建按键电路,因为Arduino Uno板子上没有提供用户按键。想到其实Ameba RTL8722DM MINI板子上提供了用户按键,为什么要另外搭建按键电路呢?我对代码做了修改:

const int buttonPin = PUSH_BTN;     // the number of the pushbutton pin
const int ledPin =  LED_B;      // the number of the LED pin

编译、下载、运行,按下、松开板子上的用户按键,程序运行正常。

示例项目“Calibration”的情况类似,也需要修改代码。运行“Calibration”示例项目时搭建的电路:
Calibration.jpg


2 运行针对 Ameba RTL8722DM MINI 板的示例项目

Ameba RTL8722DM MINI 开发板功能强大,如果仅仅运行内置的简单示例项目显然是大材小用。在对板子还不够熟悉的情况下,先运行几个相对简单的针对Ameba RTL8722DM MINI板子的示例项目试试手。

Ameba RTL8722DM MINI 板载丰富的外设资源,比如Audio Codec(音频编码解码器)、BLE(蓝牙)、WIFI,等等。虽然目前我对它们的技术细节不甚了了,但先“知其然不知其所以然”,有点儿感性认识也不错。

运行成功的示例项目: “AmebaAudioCodec” 下的 “BasicInputOutput”和 “OutputSineWave”,不成功的“RecordPlaybackWav”等,估计是文件读写的问题。“AmebaBLE”下的“BLEBatteryService”运行成功,这是个模拟检测电池状况的程序,可以在手机端对电池状况进行监测。

下图是运行“BLEBatteryService”示例项目时,手机端运行“nFR Connect”app的截屏,注意:我修改了示例项目中的设备名。
BLE.jpg

3 小结

Ameba RTL8722DM MINI 开发板板载外设丰富,网络功能强,充分利用这些功能可以开发适用于多种应用场景的物联网应用项目。当然,这要求对板子有更加深入的了解,需要阅读大量的文献,而这些文献往往需要到处搜寻,随着对开发环境的熟悉,这种搜寻会变得容易一些。

评测尚未完成,同志仍须努力。



【RealtekRTL8722DM物联网开发套件】I. 通过Arduino示例热身
【RealtekRTL8722DM物联网开发套件】II. 进阶:运行针对RTL8722DM MINI的示例
【RealtekRTL8722DM物联网开发套件】III. 问题与困惑,反转与感受