首页 > 评测 > 评测列表 > 拓展版

Arduino太low?有了这块扩展板也许就不同了——DFRobot Accessory Shield评测

  • 作者:SATURN
  • 来源:21ic
  • [导读]
  • 以前笔者也觉得Arduino太Low,作为创客怎么也得RaspberryPi起步。不过近期越玩越被圈粉。丰富的开源库和拓展硬件可以让你快速实现各种需求。还觉得Arduino太Low?你也许只差一个选择。
  • iMX233-OlinuXino-MICRO
  • MY-iMX6UL开发套件
  • CY3280-CapSense-MBR3
  • PocketBeagle
  • CC3220SF LaunchPad (CC3220SF-LAUNCHXL)
  • Esquilo Air
  • A10-OlinuXino-LIME
  • CY8CKIT-040 PSoC 4000先锋开发套件

有人说Arduino是上帝送给电子入门者的恩赐!有了Arduino,在程序控制下,电路变得更鲜活,更智能。

也有人说,Arduino太low。为啥,板载资源太少,可玩度不够!

是的,需求角度不同,观点自然也不一样,这正是所谓的众口难调!

所以除了Arduino,各种扩展板也应运而生。

Accessory Shield是DFRobot专门为BLUNO(移动设备周边开发平台)所设计的扩展板。Bluno作为首款集成了蓝牙4.0的Arduino UNO主控板,把Android/IOS和Arduino的开源硬件平台用蓝牙4.0紧密的联系在一起。但是光靠BLUNO是不能够与物理世界互动的。尽管用BLUNO与手机建立了通信,但是需要用传感器来采集环境信息,用声光电设备加以反馈。从而利用Arduino丰富的开源硬件资源,Accessory Shield正是为了弥补Arduino的这一不足,通过提供丰富的传感及控制资源,让Arduino更丰满,更具交互性。

虽然Accessory Shield是专为Bluno设计的,但是在一些提供了Arduino UNO兼容接口的开发板上都可以直接使用,比如说现在的STM32 NUCLEO开发板,都提供了UNO兼容接口,当然也就能用在这些开发板上,只不过,代码必须得移植或适配。

image1.jpg

扩展板包含一个OLED显示屏,分辨率为128x64,对于简单的信息显示足够了,比如显示个温度、温度信息,ADC采样信息,还是很方便的。扩展板上包括一个有源蜂鸣器,这是最简单的发声元件,非常容易控制。扩展板还包括一个DHT11温湿度传感器,采集环境中的温湿度,是环境监测的首选。板载一个1.5A继电器模块,能够承载普通的大电流器件,另外还有一个螺旋电位器,用来实现ADC功能,其它的器件还有一个RGB LED及一个mini摇杆按键,包括四个方位和一个向下的按键,用来代替普通按键,同时功能更强大。

image2.jpg

板载的OLED显示屏使用I2C接口与MCU通信,这是OLED背面的接口连接。

image3.jpg

扩展板与Arduino的合照,看上去很和谐!

不过这个扩展板的原配可不是Arduino,而是Bluno。Bluno是=UNO+BLE!

image4.png

Bluno是ATmega328和TI CC2540的合体版,支持BLE通信。说白了,就是为Arduino披上了BLE的外衣,但仍然使用Arduino的IDE及库来进行开发。

只可惜手头没有Bluno板,不能享受BLE带来的便利!

不过没关系,使用普通的Arduino板,也可以配合Accessory Shield来玩点不一样的。

先来看OLED显示屏。扩展板上的显示屏使用的是SSD1306,分辨率为128X64,该显示屏的主要特性如下

image5.png

显示屏与MCU的连接如下

image6.png

可以看到显示屏通过I2C接口与MCU连接,MCU通过I2C接口与SSD1306进行通信,控制屏幕显示输出。

配套的驱动库及示例代码可以帮助用户很快的在屏幕上显示一段Hello, world信息。

先要安装对应的库支持。Accessory Shield提供了3个库支持,如下图所示

image7.png

BlunoAccessory是扩展板上各外设的驱动库,另外两个是支持库,在BlunoAccessory库中会使用到另外两个库的功能。

先来看第一个Hello, world程序,完整的代码如下

image8.png

使用Arduino库来编程,不需要关心太多的硬件细节,用户更多的是关注程序所要实现的功能。

这里用到了u8glib,一个Arduino环境下常用的GUI库。U8glib包含丰富的功能,也支持大量的硬件设备,有兴趣的读者不妨到官方主页去了解一下。

将代码编译并上传到Arduino开发板,得到的运行结果如下

image9.jpg

有了这个屏,以后再也不需要借助串口来显示运行过程中的一些输出结果了。

扩展板上包括一个DHT11温湿度计,可以用来检测当前的温度和湿度信息。如果想在家里做个小型气象工作站,DHT11就可以派上用场了。

DHT11使用用专用的数字模块采集技术和温湿度传感技术,确保产品具有极高的可靠性与卓越的长期稳定性。传感器包括一个电阻式感湿元件和一个NTC测温元件。因此该产品具有品质卓越、超快响应、抗干扰能力强、性价比极高等优点。

每个DHT11传感器都在极为精确的湿度校验室中进行校准。校准系数以程序的形式储存在OTP内存中,传感器内部在检测信号的处理过程中要调用这些校准系数。

传感器通过3P数字线直插Arduino。单线制串行接口,使系统集成变得简易快捷。超小的体积、极低的功耗,信号传输距离可达20米以上,使其成为各类应用甚至最为苛刻的应用场合的最佳选则。产品为3脚PH2.0封装,连接方便。

接下来通过Arduino实时显示该传感器的读数变化。在原有代码的基础上,添加获取温、湿度信息,然后在OLED上显示,关键代码如下

  • 本文系21ic原创,未经许可禁止转载!

网友评论