蓝牙机器人
2017-03-22林委锋
林委锋
“老师,今天我们要学习什么呢?”“同学们好!大家看过《铁甲钢拳》这部电影吗?电影中的陪练机器人亚当在麦克斯的控制下,大战超级战士宙斯机器人。你想体验一下这种感觉吗?今天我们就来做一个蓝牙机器人,给机器人装上一个蓝牙从机模块,用手机来控制机器人。”
如图1所示,在本刊2016年第12期所介绍的“火星1号”机器人上,我们添加一个HC- 06蓝牙从机模块,然后分别给手机和小车编一个蓝牙控制程序和蓝牙接收处理程序,用手机控制机器人的前进、后退和拐弯等动作。
HC- 06蓝牙从机模块是一个蓝牙信号接收模块,它可以与各种带蓝牙功能的电脑、手机等智能终端配对,接收发送来的数据,其引脚接口分别是VCC、GND、TXD、RXD。HC- 06蓝牙从机模块的工作电压为3.3~6V,引脚VCC可接Arduino控制板提供的3.3V电源端,GND接Arduino控制板的GND。TXD表示信号发送端,连接到Arduino控制板的RXD,把数据传送到Arduino控制板;RXD表示信号接收端,连接到Arduino控制板的TXD,接收控制板发送来的数据。
蓝牙机器人需要两个程序,一个是手机控制端程序,另一个是Arduino控制板蓝牙数据接收程序。
如图2所示,手机控制端程序用APP Inventor来编写,这是一款在线编程软件,也是图形化编程。网址是:http://app.gzjkw.net。注册登录后,创建一个新项目,在组件面板中拖动功能模块到工作面板的手机框内,在组件属性中对模块的字体、宽度和高度等属性进行设置,得到图2中的手机控制端程序界面。手机程序分为两个部分,一个是手机蓝牙选择模块,另一个是按钮指令发送模块。以按钮1为例,程序如图3所示。按钮2~12的程序与按钮1相似,不再列出。程序编好后打包成apk文件,访问http://pan.baidu.com/s/1geIZL2V,下载到手机上。
接下来先在Ardublock上编写一个蓝牙数据接收测试程序,下载到Arduino控制板上,如图4所示。然后把HC- 06蓝牙从机模块接到Arduino控制板上。连接完后打开Arduino IDE的串口监视器,用手机向蓝牙从机模块发送按钮指令。如果在串口监视器上能显示手机发送过来的字符,则说明蓝牙从机模块可以正常工作。在操作过程中要注意一点:由于蓝牙从机模块和程序下载都使用控制板的串口进行通信,所以下载程序的时候不能把蓝牙从机模块接到控制板上,或者把通信端引脚TXD、RXD拔出来。
小车的控制程序主要分为两个部分:蓝牙数据读取处理主程序、命令模块子程序。主程序有两个变量v和k,变量v表示小车速度,初始化为130;变量k存储手机发送过来的命令字符,k为1、3分别对应加速和减速程序。主程序最后一条延时指令的作用是设定蓝牙串口扫描间隔时间,防止多次重復执行同一条手机指令。
1、3控制模块程序如图5所示,命令模块子程序这里不再列出,具体请参见:http://pan.baidu.com/s/1cJ0pP0。另外,在手机控制面板中还预设了奏乐、跳舞和巡线按钮,大家可以发挥想象,给机器人编写一些有趣、好玩的程序。程序编好经调试后,就可以和同学一起感受蓝牙机器人的魅力了!