A-A+

基于Arduino 打造一台属于自己的足球机器人

2014年03月11日 note, Other 暂无评论 阅读 5,374 次

2014-03-07 机器人发烧友

BOXZ,昵称盒仔,其创意始于2012年6月初。当时的想法是设计一款入门级的机器人,可以和三五好友在有限的空间里进行踢足球等互动,而且要做到取材容易制作简单,同时还要注重外观拥有个性。

 

在设计的时候采用了模块化的接插结构,材料用硬纸板裁切就行,组装就像搭积木一样简单。为了保障竞技的公平性,BOXZ的机械壳体长宽高尺寸被限定在128MM。而个性化则体现在丰富的皮肤模板,可自定义编程,可扩展的传感器接口等方面。不仅如此,BOXZ是一个开源的项目,我们希望给大家提供一个平台,一系列的解决方案,所以大家完全可以制作一套独一无二的盒仔。

经过一年多的沉淀,我们的盒仔功能也越来越完善。期间还得到了Seeedstudio和DFRobot的大力支持,以及很多热心极客的加入。同时也非常高兴的看到有网友在制作自己心中的BOXZ。我们将之前的系列教程汇总成一篇2013完整版呈现给大家,同时也分享一些调试经验。希望可以帮助更多的爱好者拥有属于自己的机器人!

 

一.准备工作

 

[工具部分]

 

1. 壁纸刀

 

2. 钢板尺

 

3. 双面胶(5MM)

 

4. 螺丝刀批(小号一字和十字各一个)

 

5. 电烙铁和焊锡丝

 

6. 斜嘴钳

 

7. 万用表

 

8. 铅笔

 

9. 纸胶带(临时紧固,当购买的硬纸板厚度不足2MM时,可用此紧固)

 

10. 电转

 

[机械部分]

 

我们需要准备一张2MM厚度的美工用硬纸板,和以下机械零件

 

 

1. 手臂部分

 

2x 9G舵机 TowerProSG90  5V

 

4x 螺丝 M2x10

 

8x 螺母 M2

 

 

2. 辅轮部分

 

2x 轴承 623(3*10*4)

 

2x 螺丝 M3x10

 

2x 螺母 M3

 

 

3. 供电部分

 

1x 五节5号电池盒(4节5号电池盒也可以)

 

2x 螺丝 M2x30

 

2x 螺母 M2

 

 

4. 动力部分

 

2x TT 减速齿轮箱

 

2x 直流电机 130, 6V

 

2x 塑料车轮 65MM

 

4x 螺丝 M3x30

 

4x 螺母 M3

 

 

5. 主控部分

 

4x 六角铜柱 M3+6

 

4x 六角铜柱(空心) M3x6

 

4x 螺丝 M3x6

 

4x 面包线 5-10CM

 

[Arduino部分]

 

除了以下的标准配置外,大家还可以选择我们推荐的系列套件。

 

1. Arduino 2009 328P 主控 x 1 (也可以是168P,或者UNO)

 

2. Arduino 电机驱动板 x 1 (要求可堆叠)

 

3. Arduino 蓝牙控制板 x 1 (要求可堆叠)

 

4. Arduino传感器扩展板 x 1 (用于扩展传感器,可无)

[打印部分]

 

准备一些A4打印纸,下载地址在本文最后

 

1. BOXZ Base图纸一份(PDF格式,打印时注意使用原始尺寸,不要比例缩放)

 

2. BOXZ 皮肤一款(我们目前制作了数款皮肤供大家免费下载)

 

二.硬件部分制作

 

1. 在开始制作之前,我们先来了解一下盒仔的机械结构

上图就是盒仔板块一览,盒仔是由大小不等的板块构成,板块和板块之间采用插入式连接,因此不需要任何螺丝等紧固件。但是盒仔和其他部件,例如电机之间的连接就只能通过螺丝螺母了。这里面最大的板子外围尺寸为128x128MM,也是我们盒仔的外壳尺寸。这样的板子一共有五块,包围了整个盒仔,我们称之为大板。其中还有些尺寸各异的支撑板,用来支撑盒仔内部的Arduino模块和电机。

 

2. 首先将下载好的BOXZ Base图纸到A4纸上

3. 我们需要先把图纸进行裁剪到合适的大小,大概距离边线10MM左右即可

 

4. 然后把图纸进行简单的排版,用双面胶把裁减好的图纸粘贴到硬纸板上。

5. 首先用裁纸刀将各个板块裁成一块,一块的。然后对需要开孔的用电转进行开孔。开完孔后就可以对边角进行修正,开槽。等一个板块的所有边线都裁切完成之后,就可以揭去图纸了。一块纯手工打造的盒仔板块就算完成啦!

6. 陆陆续续对其他所有的板块进行裁切,并完成所有的板块,整个过程大概会占用你4-5小时,如下图。

 

三. 盒仔的组装

 

1. 列表中对每一个板块的编号和名称都有定义,如果你对于第一次组装盒仔感到困扰的话,我们有一个建议就是根据上面的我们定义过的P0xx的编号,用铅笔对每一块进行标注,我们下面的组装过程会按照编号跟大家讲解。下图为盒仔的结构示意图,从图中大家可以大致了解各个板块之间的连接关系。即使第一眼你觉得很复杂也没关系,只要按照我们的教程一步一步操作即可。

2.下面我们开始介绍盒仔的组装。首先用到的是P003,我们一共有2块电机支撑板,用于连接和固定TT减速箱电机(以下简称电机)。在开始安装电机之前,大家可以先根据图示把P003实验性的插入P001,从而定义好一个方向,我们的电机都是在支撑板内侧安装的。然后就可以用紧固件分别把电机固定在P003的内侧了。如图每块P003与TT减速箱通过两个M3x30MM的螺丝固定。

3. 将安装好电机的2块P003插入P001,然后把P002插入P001,此时整个盒仔的支撑结构已经完成。注意安装的先后顺序,这很重要!

4. 把电池盒用M2X30的螺丝固定在P001上,这样我们的电机便牢牢的固定在了支撑板上。

5. 将车轮安装在盒仔P003的两侧。

6. 将两块P004分别插入P001的两侧,然后装入两块P005,它们负责连接P002,P003和P004。此时你的小车应该已经非常牢固了!如果你所购买的硬纸板厚度不足2MM或者比较软的时候,我们建议你用纸胶带,对P002,P004和P005进行一个整体的加固,这会让你在安装外围板块的时候更轻松。

7. 现在盒仔的底板已经全部完成。这里我们要用到编号为P008的主控平台板,从中可以看出一共有三个孔位对应着Arduino主控上的三个固定孔。通过6个六角铜柱(M3+6和M3x6各三个)和螺丝将Arduino主控固定在P008上,这里大家需要注意一下方向,两个孔的冲向盒仔的正前方。

8. 这里我们要跳到第四章进行Arduino软件的操作,然后再回到这里继续剩下的组装任务。

 

9.将装好Arduino的P008插入我们的盒仔底盘,插入P002。P007已经取消了,不再需要。

10. 然后将电机驱动板叠加到Arduino主控之上,下面就是连接各个电路部分了,不要慌,我们只有6根线哦!第一步,首先将电池盒的红线连接到电机驱动板的电源上。第二步,将电机连接到电机驱动板上,连接方法如图:

11. 然后将蓝牙控制板也叠加在电机板之上,我们的电路部分就基本搭建完成了!这里需要注意一点,我们教程中使用蓝牙板有切换软硬串口的跳线功能,而板子的默认位置需要大家确认一下,只要按照图中2个红色方块所示调整好跳帽即可。

12. 最后将两块P040,P020和P030四块外围板依次安装,(这只是一张实际安装效果图,图中蓝牙跳帽的位置是错的,请大家注意)

13. 最让人激动的时刻马上就要到了!盖上P050顶板,插入电池,一个盒仔诞生了!

 

14. 原型搞定以后,我们进行了激光加工,最终实物效果如图:

三. 皮肤部分制作

 

皮肤部分教程的主角是Minecraft里面的Creeper。直译爬行者,又名苦力怕,和JJ怪。先上完工图和视频。

 

1. 首先打印我们的皮肤。Creeper一共需要3张A4纸

2. 沿线裁减皮肤,如图。

3. 由于纸张较薄,所以裁减后有些微翘。建议大家使用厚一点的A4纸张打印,即可避免此问题。

4. 用双面胶粘贴在白色连接区域中,然后将每块皮肤粘贴在一起,这里建议大家使用5MM宽的双面胶。

5. 由于纸张较薄的关系,这里用纸胶带进行了加固处理。

6. 皮肤制作完成,来看一下整体效果吧。

四. Arduino软件调试

 

首先我们需要下载BOXZ的库并安装在Arduino路径下

 

https://github.com/leolite/BOXZ/tree/BOXZ/BOXZ/L000%20Library/Arduino/lib/BOXZ

 

1. 在打开Arduino软件之间,我们要做一件重要的事情,就是把BOXZ库文件解压缩,复制到Arduino的扩展库文件夹下,如图所示。

2.在下载新程序之前,一定要确认蓝牙控制板没有插在Arduino主控板上。因为下载会和蓝牙占用相同的端口,将导致下载失败!先将Arduino的USB方口和电脑的USB端口用编程线缆连接。然后用Arduino打开我们提供的BOXZ程序。从菜单File-Examples-BOXZ中选择BOXZ_Pro

3. 选择我们的主板,这里我们选择的是Arduino 2009版,当然如果您的主控板是UNO或其他什么的请在列表中选择正确的主控板。

 

4. 下面要选择我们的通讯端口,这里我们选择的是COM4,如果大家不清楚自己的端口号或者系统环境的话,请参考本文最后提供的FAQ链接。

 

5. 最后点击下载按钮,稍等片刻,程序就下载完成啦!

 

五. Android部分调试

 

通过BOXZ Android客户端大家可以像玩游戏一样控制我们的BOXZ,通过重力感应来控制BOXZ的方向,按键来进行互动。当然大家不仅仅可以控制我们的BOXZ,还可以控制任何使用单字符通讯的蓝牙设备。

 

BOXZ的Android客户端功能如下:

 

1. Android多版本兼容(Android 2.2+)

2. 支持搜索新设备(手机蓝牙配对后自动更新蓝牙设备清单)

3. 支持按键自定义

4. 支持重力感应控制

5. 支持屏幕尺寸自适应

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

 

下载链接: https://boxz-android-client.googlecode.com/files/boxz-android-client-1.0.2.apk

 

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

 

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

 

3. 关于蓝牙的配对方法,由于手机厂家和型号的不同操作界面也有所不同,但大体上Android系统的结构都是一样的,所以大家可以参考以下操作。首先是打开手机设置->无线和网络->蓝牙设置->打开蓝牙。

 

4. 附近的蓝牙设备会出现在下面的列表里面,如手机截图05所示,我们的BOXZ设备名称是“Bluetooth_V3”。如果列表中没有我们的设备,可以尝试点击[扫描查找设备]按钮,让系统重新搜索

 

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

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

7. BOXZ的操作是通过重力感应控制方向,按键操作手臂来实现互动的。如操作界面图一共有7个按键,左侧两个按钮为左臂的上下运动,右侧两个按钮是右臂的上下运动,中间是手臂抬起与放下,最下面的大按钮是技能键,大家可以自定义一个技能。界面中并没有方向键,这是因为BOXZ的方向移动是通过手机重力感应来实现的。但原理上跟按键操作是一样的,每次动作Android就会发送指定的字符到Arduino,然后Arduino再执行相应的动作。顺便扩展一下思路,大家也可以用我们的Android客户端来做智能家居的开关灯管理的。

 

8. 如果大家需要自定义按钮的话,可以通过手机的菜单键调出控制面板,如截图12。点击“Settings”里面会有全部的按键设置,共计22个按键以清单的方式显示,大家可以根据需要进行自定义修改。

 

六. 扩展应用

 

BOXZ的玩法还有很多。例如有款叫SECuRET LiveStream的Android软件,能把我们的智能手机变身成Wifi摄像头,然后把手机放在我们的BOXZ上,可以用电脑通过摄像头的画面来控制我们的BOXZ,第一人称视角的用户体验可是上帝视角所无法匹敌的哦!而且控制难度大增!因为你永远不知道你要面对什么?而背后又有什么?

用点阵LED组成的眼睛让BOXZ更加可爱!

结束语

最后感谢所有支持和关注我们的网友,读者。同时也希望能看到有更多的玩家加入到我们的BOXZ的队伍当中。在未来的2014年我们还会继续努力,与大家一起分享快乐!欢迎大家来到 我们的论坛 交流。

 

标签:

给我留言

Copyright © ExBot易科机器人实验室 保留所有权利.   Theme   Robin modified by poyoten

用户登录

分享到: