刘力
【摘 要】利用Arduino嵌入式开发板实现基于蓝牙串口的通信远程遥控小车。
【关键词】Arduino;Android;Bluetooth;UIUD
1 概述
本文描述了,如何基于Arduino和Android之间蓝牙通信的远程遥控车,并且详细的描述了技术实现。
1.1 Ardunio
Arduino是一款便捷灵活、方便上手的开源电子原型平台,包含硬件(各种型号的Arduino板)和软件(Arduino IDE)。由一个欧洲开发团队最早于2005年冬季开发。其成员包括Massimo Banzi,David Cuartielles,Tom Igoe,Gianluca Martino,David Mellis和Nicholas Zambetti。Arduino能通过各种各样的传感器来感知环境,通过控制灯光、马达和其他的装置来反馈、影响环境。板子上的微控制器可以通过Arduino的编程语言来编写程序,编译成二进制文件,烧录进微控制器。对Arduino的编程是利用 Arduino编程语言 (基于Wiring)和Arduino开发环境(基于 Processing)来实现的。基于Arduino的项目,可以只包含Arduino,也可以包含Arduino和其他一些在PC上运行的软件,他们之间进行通信 (比如 Flash, Processing, MaxMSP)来实现。
1.2 BlueTooth
蓝牙一种无线技术标准,可实现固定设备、移动设备和楼宇个人域网之间的短距离数据交换(使用2.4—2.485GHz的ISM波段的UHF无线电波)。蓝牙技术最初由电信巨头爱立信公司于1994年创制。蓝牙使用跳频技术,将传输的数据分割成数据包,通过79个指定的蓝牙频道分别传输数据包。每个频道的频宽为1 MHz。蓝牙4.0使用2 MHz 间距,可容纳40个频道。蓝牙是基于数据包、有着主从架构的协议。一个主设备至多可和同一微微网中的七个从设备通讯。所有设备共享主设备的时钟。分组交换基于主设备定义的、以312.5μs为间隔运行的基础时钟。两个时钟周期构成一个625μs的槽,两个时间隙就构成了一个1250μs的缝隙对。在单槽封包的简单情况下,主设备在双数槽发送信息、单数槽接受信息。而从设备则正好相反。封包容量可长达1、3、或5个时间隙,但无论是哪种情况,主设备都会从双数槽开始传输,从设备从单数槽开始传输。
1.3 Android智能手机
Android是一种基于Linux的自由及开放源代码的操作系统,主要使用于移动设备,如智能手机和平板电脑,由Google公司和开放手机联盟领导及开发。尚未有统一中文名称,中国大陆地区较多人使用“安卓”或“安致”。Android操作系统最初由Andy Rubin开发,主要支持手机。2005年8月由Google收购注资。2007年11月,Google与84家硬件制造商、软件开发商及电信营运商组建开放手机联盟共同研发改良Android系统。随后Google以Apache开源许可证的授权方式,发布了Android的源代码。第一部Android智能手机发布于2008年10月。Android逐渐扩展到平板电脑及其他领域上,如电视、数码相机、游戏机等,全世界采用这款系统的设备数量已经达到10亿台。
2 Arduino实现
该系统采用Arduino作为嵌入式的开发主板,基于Android手机的App提供远程遥控功能,使用蓝牙作为通信数据交换的承载。当Ardunino收到数据后,翻译成对应的马达驱动信号,去驱动相关部件。由于Ardunio的特性,它的驱动模块像积木一样的是层层搭建,所以整体硬件层次从上到下依次叠加,分别是:蓝牙模块,传感器模块,马达驱动扩展板,Arduino母板
2.1 马达驱动板
我们使用 L298 扩展板作为马达驱动板,由于我们使用的9V的外置电源,我们驱动2个马达,需要提供稳定的电源与电压
2.2 传感器扩展版
由于马达驱动板遮盖住了所有的串口接口,我们不得不在马达驱动板的上层覆盖一个传感器扩展版版,来连接相应的外置串口设备,具体功能如下:
Arduino的端口扩展成3P接口,直插3P传感器模块。14个数字口(6个PWM口),6个模拟口。
丰富的通信和存储模块接口。中部直插Xbee封装的蓝牙、WIFI和Xbee通信模块。旁边设置了普通蓝牙模块、APC和SD卡的扩展接口。
外部电源扩展,为你的Arduino作品提供持久续航。扩展板角落接线柱为主控器和扩展板供电,中部接线柱为数字口上的舵机供电。
2.3 蓝牙模块
我们使用JY-MCU作为蓝牙模块,该模块提供了蓝牙串口服务和内置的蓝牙协议,只需使用串口,按照对应的规则连接蓝牙模块,并使用基于蓝牙串口通信协议。
3 相关功能代码
3.1 Arduino蓝牙,马达驱动代码
4 试验结果
按照该设计方案,能够达到通过android智能手机,基于蓝牙通信,可以完全控制电机实现小车的各种方向的行走。
5 结束语
本文给出了,一个基于Android手机蓝牙模块连接Arduino蓝牙的远程控制遥控车的应用,相信随着Arduino电子积木的兴起,相有越来越多的基于Arduino的应用涌现出来。
[责任编辑:王伟平]