arduino蓝牙遥控小车怎么使小车可以用蓝牙切换功能

抱歉!因版权原因无法下载

动手制莋一个简易的 arduino蓝牙遥控小车 智能蓝牙遥控小车 DIY手机APP遥控的小车

本文发表于《中国信息技术教育》杂志作者:温州中学谢作如,南京师范大学刘正云

用arduino蓝牙遥控小车做一辆小车原本是一个入门的项目,很多人都做过但是,这辆尛车如果能用Android手机或者平板来控制无疑就有趣多了。在MIT的App Inventor帮助下编写Android系统上的App程序,也能够以搭积木的形式完成同样,arduino蓝牙遥控小車方面的代码也能够采用一款图形化的编程插件——ArduBlock来编写。用Android控制arduino蓝牙遥控小车小车就成为一个技术门槛很低,却非常具有挑战性嘚综合性任务了

本项目指设计一辆能够通过Android手机控制的小车,小车控制板采用开源硬件arduino蓝牙遥控小车通过手机屏幕或者手机的重力传感器,能控制小车的前进、后退、左转、右转、原地转等各种功能本项目的难度设计为小学生都能完成,所以小车的程序我们选择用ArduBlock编寫手机的程序由App Inventor编写。

因为arduino蓝牙遥控小车机器人的形式很多如智能灯、机械臂,人形机器人等等所以这个项目具有一定的可扩展性,还可以实现更多的功能

Android手机和arduino蓝牙遥控小车小车的通讯方式很多,但是蓝牙方式无疑是最简单、最方便的选择因为蓝牙已经成为Android手機的标配。App Inventor中有蓝牙的编程模块能实现通过蓝牙来读取和发送数据。大部分的arduino蓝牙遥控小车控制板都预设了蓝牙模块的接口,而蓝牙模块的价格也相对低廉淘宝上随处可买。

手机控制小车的程序设计分为手机程序和小车程序即上位机与下位机两个部分。手机(上位機)部分通过手机自带的蓝牙发送控制命令如前进、后退、左右转等。小车(下位机)部分则根据蓝牙模块(串口)收到的命令做出楿应的动作。具体的通讯过程如图1所示

图1 手机和小车通讯示意图

在这个项目中,设计手机和小车的通讯数据格式是关键即手机发送的數据分别代表什么命令。考虑到我们使用的ArduBlock教育版只能获取串口数据中的数字所以我们设计了下面的通讯协议,分别定义了数据和命令對应关系如表1。

三、arduino蓝牙遥控小车小车搭建和程序设计

我们选择了DFrobot公司的RoMeo V1和MiniQ小车底盘这是我们设计的开源课程《arduino蓝牙遥控小车创意机器人》中使用的机器人套件,如图2《arduino蓝牙遥控小车创意机器人》课程是国内第一个完全开源的STEM课程,所有的教学资源如微视频、电子敎材、教学设计等都能在网上下载,关于小车的搭建步骤详见我们的课程资源这里不再叙述。

一般而言蓝牙模块有四条线需要和arduino蓝牙遙控小车连接,分别为5V、GND、TX和RX5V和GND要和arduino蓝牙遥控小车上的5V和GND一一对应,但是RX接在arduino蓝牙遥控小车的TX上TX要接在arduino蓝牙遥控小车的RX上。因为我们選择的蓝牙模块也DFrobot公司的小车使用的控制板为RoMeo V1,上面已经集成了蓝牙模块接口,插上就可以直接使用不用另外接线,如图3

图3 插上蓝牙模块的arduino蓝牙遥控小车小车

小车的程序比较简单,先将串口读取到的数值负值给变量a再使用“如果”模块进行判断即可。这里的数值“1”、“2”、“3”、“4”、“9”分别根据通讯协议(数据和命令对应表)来设置小车的动作具体代码见图4。

1.如果电机M1和M2为150时小车没有前进反而转弯了,只要调整电机的接线即可

2.如果用arduino蓝牙遥控小车下载程序出现错误,请先把蓝牙模块取下等下载成功后再插入。

给小车下載程序后应先做通讯协议方面的测试。这里的测试分为两步:

第一步:使用串口监视器测试

先用arduino蓝牙遥控小车的串口监视器,通过USB串ロ给小车发送1、2、3、4、9的数字看小车是否能做出相应的动作。别忘了要把小车的轮子悬空哦!

第二步:使用手机蓝牙串口工具测试

如果你的电脑有蓝牙适配器,可以试着连接arduino蓝牙遥控小车的蓝牙模块然后通过串口监视器发送数据,如果成功就说明蓝牙模块工作正常。当然也可以直接跳过这一步直接用手机的蓝牙连接,用“蓝牙串口助手”发送数据来测试

一般来说,如果第一步测试通过而第二步沒有成功请检查蓝牙模块的波特率。ArduBlock使用的串口波特率是9600蓝牙模块的波特率也要设置为9600才能正常通讯(DFRobot的蓝牙模块默认波特率就是9600)。蓝牙模块的波特率可以通过AT命令来设置请查阅技术文档或者询问蓝牙产品的技术人员。总之蓝牙的波特率要和代码中一致才可以正瑺通讯。

注意:如果使用DFRobot的V7扩展板一定要记着把板子上的小开关扳到“RUN”一档!

App Inventor分为在线版和离线版两种,二者在使用上没有什么区别如果网络够快,就用在线版吧不过如果是大班教学,应该要自己搭建一个离线版的服务器

控制arduino蓝牙遥控小车小车的App软件在编写上并鈈难。我们在界面设计上并没有花多大功夫主要还是侧重于其功能实现,如图5

App中添加的控件如下:

Button(上、下、左、右箭头以及stop按键):按键,按下后通过蓝牙发送相应的数字;

BluetoothClient:蓝牙连接客户端控件,主要用于配对蓝牙连接以及通信;

Notifier:警示窗口,当软件运行出现意外时会提示相关信息,以避免程序崩溃

点击Select Device时,应该出现选择蓝牙设备的界面如图6。

需要说明的是图6中列出的是手机已经配对过的蓝牙设备。如果还没有配对请先使用手机系统自带的蓝牙管理器来配对设备。

为了使App操作更加简洁我们可以让选择设备后,手机就开始連接蓝牙连接蓝牙的代码要写在ListPicker1控件的AfterPicking事件中,如图8

App主要通过上下左右四个箭头控制小车前进、后退、左右转,通过stop键让小车停止玳码分别如图9。

这样一来按下不同的按钮,手机就会通过蓝牙发送不同的数据虽然上述的代码并不是很完善,但是已经基本具备了上位机的功能赶紧编译程序,安装到手机上试试吧

这个手机控制小车的项目还是比较简单的,最大的不足是无法动态调速当然,我们鈳以设计一个摇杆来发送更加复杂的数据给arduino蓝牙遥控小车小车:如1200表示前进2002100表示后退100等等。只要设计好通讯协议编写代码并不困难。圖10是我设计的一个用摇杆控制小车速度和方向的App界面

因为Android手机上有重力加速度传感器(AccelerometerSensor)和方向传感器(OrientationSensor)。如果利用这两个传感器来控制小车的方向和速度项目的可玩性就更强了。当然我们要设计的通讯协议也要复杂起来了。

在这个项目的基础上我们还可以实现佷多其他的功能,比如解决单独使用语音模块控制小车声音干扰的问题制作出无线控制的语音识别模块,或者是直接调用Google的语音库制莋出手机语音控制的机器人小车......不要小看图形化编程软件,App Inventor和ArduBlock已经足够强大了赶紧动手吧!

加载中,请稍候......

我要回帖

更多关于 arduino蓝牙遥控小车 的文章

 

随机推荐