水枪对射是小朋友很喜欢的游戏之一,但在整个过程中我们必须不时对水枪充气,发射时更不能一直压着扳机来进行连续射击。今天用Intel Galileo来做一个透过手机便可操控对战的水枪机器人,而且水枪要能够持续发射。
因为有水,所以内部电路的保护变得非常重要,因此则采用压克力当作外壳来包覆整组电路,以防对战时水滴渗入造成短路。
材料
·Intel Galileo开发板
·Arduino马达扩充板
·万用电路板
·排针
·母对母杜邦接线
·杜邦母座
·热缩套管
·电工胶带
·压克力板,厚度约3mm,用来制作放置电路的底板与防水外壳。
·履带式底盘(Robot Rover 5)
·MicroSD记忆卡
·端子台转DC电源插头外径5.5mm/内径2.1mm
·LM2596直流降压模块(x2)
·2.4GHz黏着式天线(附U.FL接头)
·Intel Centrino Advanced-N6205无线网络卡
·MINI PCI-E网络卡转接座
·锂聚电池11.1V/2250mA(输出端为T型接头)
·公母T型接头
·2P洛克开关(扁型)
·光敏电阻 (x3)
·3mmLED黄光/聚光(x6)
·5V蜂鸣器
·5V继电器
·电阻5.6kΩ(x4)
·电阻100Ω(x6)
·1N4001二极管
·2N2222晶体管(NPN型)
喷水与水滴传感器需要零件
·50ml塑料瓶
·Arduino抽水马达
·水滴感测模块
工具
·烙铁与焊锡
·十字螺丝起子
·热熔胶与热熔枪
·M3隔离柱,24mm长(x8)
·M3螺丝,6mm长(x8)
·M3螺丝, 10mm长(x4)
步骤
1.准备与设定Intel Galileo
Galileo是Intel第一款设计给DIY玩家与自造者的开发板,其具备的功能刚好适合这次的喷水对战机器人专题。因为在Galileo开发板的底部设有PCI-E Mini插槽,所以可以将无线网络卡接在这个插槽上,进而制作出一台无线遥控机器人。这次专题中使用到Galileo社群所提供的ConnectAnyThing韧体,
韧体下载页面:https://github.com/IntelOpenDesign/ConnectAnyThing
这套工具让你能简单地使用手机来撰写程序并进行控制,所以出门时只需带着喷水战车和手机就可以了。
1a.一开始请先下载编写IntelGalileo程序代码时会用到的软件,此为Intel Galileo所适用的Arduino IDE(https://communities.intel.com/docs/DOC-22226)。下载文件并解压缩,便可看到名为arduino-1.5.3-Intel.1.0.3的数据匣,用鼠标在arduino.exe上点两下即可启动ArduinoIDE。
1b.成功开启Arduino IDE后,先把Galileo上的MicroSD记忆卡拿下来,再接上5V的电源供应器,先用USB传输线将Galileo连上计算机。
1c.此时需要先测试一下Galileo能否正常运作,你可以加载Blink范例程序(图1)来进行测试,如果正常的话,你可以看到Galileo上有一颗LED在闪烁。
2.设定Wi-Fi通讯
2a.由于本专案希望能透过无线遥控的方式来控制机器人,因此选用Intel Centrino Advanced-N6205无线网络卡,先将附有U.FL接头的2.4GHz黏着式天线装到网络卡上。接着为了使网络卡更好安装在Galileo上,必须要加装MINI PCI-E网络卡转接座,因为转接座有正反两面之分,所以在组装网络卡与转接座时,请注意方向是否正确,最后再将装有转接座的网络卡固定在Galileo上便完成了。
2b.为了要能顺利使用ConnectAnything来遥控机器人,以及透过手机实时修改程序,你需要设定Wi-Fi通讯。请准备一个容量大于2GB的MicroSD记忆卡,先到先前附注的GitHub网站下载ConnectAnything韧体,必须注意的是请根据你所使用的Intel Galileo型号来选择韧体版本,假设你使用的是Intel Galileo Gen 1,那只能下载Rev 0.2.2之前的版本。
2c.将下载完成的ConnectAnyThing.zip档案解压缩,并把所有档案复制到记忆卡卡中。便可以把记忆卡卡装回Galileo上,如果有按照上面的步骤安装Wi-Fi网络卡,接上电源大约开机1分钟之后,再拿出手机搜寻可用的无线网络联机即可看到名为ConnectAnyThing的热点。
3.电源方案
当你将Intel Galileo以及相关软件都设置完成之后,便可开始制作喷水对战机器人的主要控制部分。我先用Fritzing画出了这台战车的电路图,在图中可以看到我用两个LM2596直流降压模块,把电池所提供的11.1V电压分别调成5V和3V。5V的部分主要给Intel Galileo使用,3V则提供给抽水马达使用。
3a.在此有两点需要注意,第一点要让马达扩充板可以顺利使用11.1V的电压,第二点则是要防止11.1V的电压流进Galileo中,所以我把马达扩充板的背面的Vin Connect焊点用美工刀切开,便可以把供应11.1V电压的输入端接到马达扩充板上的端子台Vin脚位(图3a)。因为刚刚已经把背面的Vin切开了,所以这个Vin现在只提供给马达使用的。
图3a
3b.我先用排针将11.1V转5V的降压模块固定在万用电路板上,再把连接电池用的公T型接头焊到降压模块的输入端(图3b)。
图3b
4.组装马达扩充板
4a.依据图4a所示,将马达扩充板背面用来控制马达A和马达B的PWM脚位与5V脚位相连,你可以选择使用杜邦接线跨接,但为了避免线路过于复杂,所以我选择在背面加工。
图4a
4b.马达的电力来源为3孔接头,我在接头中放入两端等长的排针,而在马达扩充板上两组用来供给马达正负电源的端子台中同样也放入排针,这样便可用杜邦接线将它们接起来(图4b)。
图4b
5.制作光耦合电路
在焊接时请依照电路图中的方式来进行,与前面所提到的马达一样,这部分所用的电压同样为5V,所以请用排针将降压模块焊到万用电路板上。为了要让光耦合电路得以顺利运行,光敏电阻和LED两者必须靠得非常近。焊接完成之后,必须把每组LED与光敏电阻用电工胶带包覆起来,以防外部光线影响光敏电阻的效果。
图5
6.喷水马达
6a.为了提高配线时的便利性,这里选择使用5V的继电器来控制喷水马达的运转,这样便可以直接将电源输入端与光感测电路共享(图6a)。
图6a
6b.跟前面提到的马达一样因为喷水马达所需的工作电压比较小,大约在3V~5V之间,所以在马达的电源供应端加上一颗3.3V的稳压器,藉此把11.1V的电压控制在3V左右。但喷水马达在运转时需要高达0.5A~1A的工作电流,为了不让其影响到Galileo,所以必须另外隔离出来。但因为电路板正面的空间不够了,所以焊在背面。
图6b
6c.接着来制作储水用水箱,这里选择的是一般的尖头塑料瓶,直接把购买喷水马达时附赠的水管接到塑料瓶的管口上,再用胶带把相连的地方黏起来以防漏水。
图6c
7.水滴侦测
7a.为了要使喷水战车受到攻击时出现反应,因此还要加上可用来侦测水滴的功能。在挑选水滴感测模块(图7a)时,此套水滴感测模块可以使用数字与模拟的讯号,而在连接Galileo时选择使用模拟讯号输出(AO)。
图7a
7b.但如果只是用原本的感测板,其感测范围看起来偏小。如图7b所示,你可以看到感测板上有许多条线,但实际上只是两条线互相交错而已,所以可以在两条在线焊接几条电线,而这些电线可以用来侦测水滴。因为打算将这块感测板放在战车上,所以不需要用电工胶带包覆。
图7b
8.设定针脚与数字电路图(Android4.4.2版本)
8a.当你开启手机的Wi-Fi联机时,可能会跳出请你登入的画面,如果看到这个画面请选择(Not Now),并之后开启手机内建的浏览器,连到:www.cat.com(图8a)。
8b.若要新增数字或模拟的脚位,请用右下角的绿色加号来选取数字脚位,再用左下角的黄色加号来选取模拟脚位(图8b),表格A为此台机器人的脚位功能。
图8a
图8b
表A
8c.接着则需要将线路连接起来,先点选左边模拟脚位上的黄色圆圈,再点选右边数字脚位上的绿色圆圈即可完成联机,请依照图8c所示将线路连接完毕。
图8c
8d.接着可以针对模拟与数字脚位进行编辑,首先点选A2的字,跳出设定选单将「Invert」选项勾起来,之后点选「OK」便可离开选单。因为ConeectAnyThing可以实时监控各个脚位,所以此时你可以看到A2的背景变成全灰,但如果开发板上并没有接任何线路的话,背景并不会产生任何改变。
如果要编辑数字脚位,只要按下绿色框,便可开启数字脚位的选单,为了方便记忆脚位功能,可以在PIN Label中输入名字(图8d)。
图8d
8e.按下在选择脚位画面下方的ControllerMode便可进入控制模式(图8e),在控制模式中,你可以将图中「forward」的箭头拉到最右边,再进入A2的控制模式中,将左方的横杆位置移到正中间,当你这样做之后,马达控制板上连接马达正负极的LED应该会亮起,转动马达使机器人顺利往前进。
图8e
9.ConnectAnyThing的控制程序
ConnectAnyThing的控制方式与Arduino并不同,无法用一个键同时控制两个脚位的电位,所以我利用A0~A5输出讯号给数字脚位,设计出使用LED和光敏电阻的光耦合电路,透过LED发出亮光,待光敏电阻接收后,再利用ConnectAnyThing把接收到的讯号回传数字脚位上。
机器人向前走:
//马达A正转
digitalWrite(12, LOW);//让马达A正转
digitalWrite(9, LOW);//松开马达A剎车
//马达B正转
digitalWrite(13, LOW);//让马达B正转
digitalWrite(8, LOW);//松开马达B剎车
机器人向右转:
//马达A正转
digitalWrite(12, LOW);//让马达A正转
digitalWrite(9, LOW);//松开马达A剎车
//马达B反转
digitalWrite(13, HIGH);//让马达B反转
digitalWrite(8, LOW);//松开马达B剎车
机器人向后走:
//马达A反转
digitalWrite(12, HIGH);//让马达A反转
digitalWrite(9, LOW);//松开马达A剎车
//马达B反转
digitalWrite(13, HIGH);//让马达B反转
digitalWrite(8, LOW);//松开马达B剎车
在上述所有程序代码中,由于我们在数字电路图中将A2定义成反向,所以D12与D13的正反转电位要相反,并且要将控制马达剎车的D8与D9设定在松开的LOW电位上。
10.组装
这里使用尺寸为170mm×90mm的压克力板当作放置电路的底板,并在板子中央钻洞来让马达控制板的线路穿过以连接底盘的马达(图10a)。而在履带式底盘上有几个螺丝孔,你可以拿压克力板对一下螺丝孔的位置,再用10mm长的螺丝将四个角落固定住。你也可以在压克力板上标出安装隔离柱的位置,以便你固定Galileo与其他电路(图10b)。
安置好所有电路之后,又用四片压克力将底板盖起来,并将正面设计为斜面用来装设水滴传感器与连接喷水马达的水管,除了正面的外壳需要钻洞以外,其他部分只需要注意防水是否完备即可。如果将管口用束线带稍微绑紧,就可以让射出的水柱力道增强。建议不要将储水用的塑料瓶放在外壳内,以避免震动使其翻覆造成电路短路。
图10a
图10b
开始对战!
作者:郭有迪
本文地址: https://www.xsyiq.com/2521.html
网站内容如侵犯了您的权益,请联系我们删除。