极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 55225|回复: 26

[教程][T004]BOXZ的组装与调试(Arduino和Android篇)

[复制链接]
发表于 2012-12-18 10:03:58 | 显示全部楼层 |阅读模式
本帖最后由 幻生幻灭 于 2014-10-21 15:37 编辑




欢迎访问:
BOXZ官方网站
中文网站:http://www.diyfun.org/
英文网站:http://www.boxz.cc/

BOXZ交流群
Arudino|歹饭空间
QQ群号:11187193

BOXZ资料下载
https://github.com/leolite/BOXZ/


更新说明
本代码已经是旧代码了,请大家到Github下载最新版本代码和BOXZ库
蓝牙2.0玩家可以选择:https://github.com/leolite/BOXZ/tree/BOXZ/BOXZ/Code/BT2.0
蓝牙4.0玩家可以选择:https://github.com/leolite/BOXZ/tree/BOXZ/BOXZ/Code/BT4.0




简介
在这一次,盒仔化身成愤怒的小鸟里面的绿皮猪,玩家通过Android智能手机控制绿皮猪的运动,来躲避来自愤怒小鸟的疯狂攻击。如果绿皮猪不幸被小鸟击中,身体会发出闪烁的红光,表示受到了伤害。如果大家发现可怜的猪猪身体不再发光了,就说明猪猪挂掉了。也或者猪猪不再跑动了,那就是电池没电啦。


本教程重点讲解BOXZ的组装和调试过程,并对部分内容进行适当增减,关于BOXZ Arduino和Android的详细代码说明和本文更多细节内容请参考无线电杂志2012年12月刊。


一.BOXZ的控制原理
BOXZ的硬件架构如图,BOXZ Pro是由Arduino主控板,电机驱动板,传感器控制板和蓝牙通讯板构成,通过蓝牙协议传输控制字,而上位机控制端可以是Android手机,笔记本电脑等任何支持蓝牙通讯的设备。本文我们重点讲解如何通过Android智能手机用蓝牙控制BOXZ。当然,大家也可以根据自己的需要把蓝牙控制板换成Wifi,Xbee或者2.4G等其他通讯板,而BOXZ的其他硬件并不需要任何变更,甚至程序也不用更改。这也是模块化设计的好处,增加适量的成本,实现最大的灵活性。


下面给大家简单介绍下BOXZ的控制字符,由于我们定义BOXZ的目标是互动娱乐与PK,因此其定义参考了电脑游戏街机拳皇和魔兽世界的键盘定义。如图所示,其中空格表示急停,相当于刹车。在我们的Android客户端中并没有方向键,而是通过重力感应发送对应的方向字符到Arduino。


二.Arduino硬件部分
BOXZ采用了开源的Arduino平台,同时也具备了高度的灵活性。正如我们在《盒仔家里造》中使用的是由ladyada.net设计的Arduino兼容全功能电机驱动板和SeeedStudio[link]的蓝牙模块组成。而本文将向大家介绍由另一套Arduino硬件构成的BOXZ,其Arduino硬件全部来自DFRobot。BOXZ Pro的整体硬件接线如图,电机驱动板,传感器和蓝牙板以叠加的方式连接。TT减速电机接线4根,电池盒引出线接到传感器扩展板的电源输入端子即可。另外这里需要两个9G舵机作为手臂,左右手分别插入到传感器扩展板的数字端口9口和10口。两个食人鱼LED使用了PWM控制,分别接于数字端口3口和11口,用于显示被击中的状态。压电陶瓷压力传感器接于模拟端口的0口,用于检测外部碰撞。


这个也是我们参加上海嘉年华时所使用的硬件结构。组装之后的效果如图


传感器部分这里就不做过多说明了,这里主要给大家介绍下所使用的Arduino模块如图:


1. DFRduino UNO兼容Arduino UNO(或者Arduino 2009以上版本)
2. Arduino L298P Shield 2A大电流 双路直流电机电机驱动(或者Arduino官方电机驱动板)
3. Arduino Xbee传感器扩展板V5 含RS485无线数传蓝牙接口
4. Arduino DF-BluetoothV3蓝牙串口模块可改主从机

全部模块使用默认的跳线设置,只要叠加在一起就可以了,这也是体现了模块化设计的思想。在组装模块的过程中有以下几点值得大家注意:
1. 确认电机驱动板的跳线控制方式选择为PWM模式,且电源管理的2个短路帽插到右边时(VIN),即电机电源就是使用Arduino板上VIN端输入的电源,如图:

  
2. 电机驱动板的输出口只要将TT减速电机的接线按照线号一一对应接上即可,如图


3. 注意传感器扩展板的数字量(DIO、VCC、GND)和模拟量(S、GND、VCC)针脚定义是不一样的,而且连接传感器和舵机的时候需要小心。常见的舵机接线颜色定义有两种,接线时需要注意避免反插如图。


4. 蓝牙模块上面有两个DIP开关,1表示指示灯显示开关,可以根据需要自己设置,2为模式开关,默认关闭。BOXZ使用模块默认的波特率9600参数,因此不需要使用模式开关进行配置。蓝牙模块与Arduino通讯的关键的管脚有四个,分别是VCC、GND、RXD、TXD,其中RXD/TXD与Arduino是交叉连接。如果大家使用别的厂家的蓝牙模块的时候一定要注意其引脚与传感器扩展板是否兼容。整体安装效果如图。


5. 这里我们为了开关电源方便自制了一个电源开关模块,安装于BOXZ的底部。这样就不用每次游戏结束之后痛苦的卸电池了。特别感谢极客工坊的OCROBOT提供的原型洞洞板。


6. BOXZ的供电单元使用了5节5号AA电池盒给Arduino供电,也就是说总电压为7.5V。因为在调试过程中,我们发现当电源供电的总电压低于7V的时候,BOXZ的电机动作可能会导致Arduino主控的重启。

三.Arduino软件部分
代码在附件下载,有两点需要注意的地方
1. 本程序使用的是Arduino 0022版本,如果大家使用的是Arduino 1.0以上版本需要对部分语法进行修改。
2. 本程序电机驱动板不需要额外的库支持即可直接运行。(ladyada.net版本需要AFMotor扩展库支持)

四.BOXZ Android客户端
通过BOXZ Android客户端大家可以像玩游戏一样控制我们的BOXZ,通过重力感应来控制BOXZ的方向,按键来进行互动。当然大家不仅仅可以控制我们的BOXZ,还可以控制任何使用单字符通讯的蓝牙设备。
BOXZ的Android客户端功能如下:
1. Android多版本兼容(Android 2.2+)
2. 支持搜索新设备(手机蓝牙配对后自动更新蓝牙设备清单)
3. 支持按键自定义
4. 支持重力感应控制
5. 支持屏幕尺寸自适应

1. 下面给大家介绍BOXZ客户端的安装和使用方法。这里我们使用豌豆荚来安装软件,首先大家需要下载并安装我们的BOXZ客户端[下载链接]


2. 直接双击下载后的APK文件,就是图中那个小绿豆图标的。会弹出安装确认对话框。记得先把手机用数据线连接到电脑上哦!BOXZ客户端较小,几秒钟就装好了。然后大家可以在手机目录中看到我们的客户端了。


当然大家也可以通过Android手机拍照图中的二维码直接下载安装,需要使用二维码拍照软件,这里就不过多介绍了。


特别提醒一点:如果未进行配对就直接打开BOXZ客户端的话,大家是无法在BOXZ客户端的启动界面中蓝牙设备列表里面发现我们BOXZ的蓝牙设备的。这也是大家目前反映比较多的问题,切记一定要先配对再启动BOXZ的Android客户端。


3. 关于蓝牙的配对方法,由于手机厂家和型号的不同操作界面也有所不同,但大体上Android系统的结构都是一样的,所以大家可以参考以下操作。首先是打开手机设置无线和网络蓝牙设置打开蓝牙
   
4. 附近的蓝牙设备会出现在下面的列表里面,如手机截图05所示,我们的BOXZ设备名称是“Bluetooth_V3”。如果列表中没有我们的设备,可以尝试点击[扫描查找设备]按钮,让系统重新搜索


5. 点击“Bluetooth_V3”会弹出手机截图06所示的配对请求界面,在其对话框中输入我们的默认密码“1234”,并确认。这时候大家会发现我们的“Bluetooth_V3”已经由之前的“与此设备配对”的状态变成了“已配对”。这样我们蓝牙的配对操作就完成了。


6. 正确配对之后返回到手机目录,找到我们的BOXZ客户端图标,如手机截图08,打开BOXZ的Android客户端软件。在启动菜单中就会出现我们的BOXZ设备了,如截图09,选中后进入操作界面截图11



  
7. BOXZ的操作是通过重力感应控制方向,按键操作手臂来实现互动的。如操作界面图一共有7个按键,左侧两个按钮为左臂的上下运动,右侧两个按钮是右臂的上下运动,中间是手臂抬起与放下,最下面的大按钮是技能键,大家可以自定义一个技能。界面中并没有方向键,这是因为BOXZ的方向移动是通过手机重力感应来实现的。但原理上跟按键操作是一样的,每次动作Android就会发送指定的字符到Arduino,然后Arduino再执行相应的动作。顺便扩展一下思路,大家也可以用我们的Android客户端来做智能家居的开关灯管理的。
8. 如果大家需要自定义按钮的话,可以通过手机的菜单键调出控制面板,如截图12。点击“Settings”里面会有全部的按键设置,共计22个按键以清单的方式显示在截图13中。除去尚未使用的Step按键10个,玩家一共可以设置12个按键。而这12个按键中有5个是用于重力感应的方向控制(对应字符w,a,s,d用于方向,空格用于停止),剩下的7个就是我们在操作界面看到的按钮了。只要点击即可进入按键设定,如截图14,大家可以根据自己的需要进行调整。



   
-----END----
特别感谢参与本文的各位,同时也感谢大家一直以来对BOXZ的关注和支持!
BOXZ设计:Leo
愤怒小鸟CG设计:Guoguofish
Android客户端开发:大连好人
Arduino电机驱动:三水
Arduino硬件支持:DFRobot[link]

扩展链接
PC玩家(Windows操作系统)可以选择Open Jumper的Arduino串口调试助手 [link]

附件下载
Arduino程序(DFRobot版本)


Android程序

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复

使用道具 举报

发表于 2012-12-18 10:47:04 | 显示全部楼层
现在的无线电杂志都没啥看头了
好多文章网上都有
回复 支持 反对

使用道具 举报

发表于 2013-1-22 16:51:04 | 显示全部楼层
看看    学习·1·····················:)
回复 支持 反对

使用道具 举报

发表于 2013-2-4 14:48:28 | 显示全部楼层
mark一下吧,对以后做小车有帮助
回复 支持 反对

使用道具 举报

发表于 2013-3-29 18:11:37 | 显示全部楼层
好东西呀!
回复 支持 反对

使用道具 举报

发表于 2013-4-12 22:49:51 | 显示全部楼层
唉原理蓝牙上的rx、tx要和板上的rx、tx要交叉来接
仔细看了下接线图,终于搞定了android蓝牙连arduino
初学者,我晕

评分

参与人数 1 +1 收起 理由
幻生幻灭 + 1 细节!

查看全部评分

回复 支持 反对

使用道具 举报

发表于 2013-6-7 07:31:44 来自手机 | 显示全部楼层
用锂电供电吧
回复 支持 反对

使用道具 举报

发表于 2013-6-20 17:19:17 | 显示全部楼层
其实我很想做个  但是心有余而力不足  还要慢慢学习啊
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-6-20 20:49:30 | 显示全部楼层
时间被禁锢~zZ 发表于 2013-6-20 17:19
其实我很想做个  但是心有余而力不足  还要慢慢学习啊

争取下个月推出套件哦~ 只需1小时轻松搞定~
回复 支持 反对

使用道具 举报

发表于 2013-6-21 16:40:58 | 显示全部楼层
应为是初学者 ,学习这些要学会编程才行吗
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-6-21 19:13:14 | 显示全部楼层
时间被禁锢~zZ 发表于 2013-6-21 16:40
应为是初学者 ,学习这些要学会编程才行吗

样例程序只要下载即可实现功能。将来推出的套件打算预集成程序,方便大家。如何?
回复 支持 反对

使用道具 举报

发表于 2013-6-21 20:39:23 | 显示全部楼层
不是好懂 ,但是好像很好
回复 支持 反对

使用道具 举报

发表于 2013-7-14 11:07:45 | 显示全部楼层
挺好的,不知道套件的推出时间和价格是什么样的?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-7-14 17:14:27 | 显示全部楼层
YunFei 发表于 2013-7-14 11:07
挺好的,不知道套件的推出时间和价格是什么样的?

谢谢关注! 预计7月末启动销售。价格还没定,呵呵。
回复 支持 反对

使用道具 举报

发表于 2014-3-8 03:08:01 | 显示全部楼层
{:soso_e136:} 不在支持BYTE关键字!碰见过两次这种事情了{:soso_e111:}
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 需要先绑定手机号

Archiver|联系我们|极客工坊

GMT+8, 2024-4-17 05:15 , Processed in 0.044764 second(s), 29 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表