找回密码
 立即注册

QQ登录

(转)自主机器人:我的机器人DIY制作情节——下

来源: 制作教程 奥松—AstRay 2014-3-20 11:46 显示全部楼层 |阅读模式
6   连接并测试驱动电机
6.1   电机预处理
● 咱的地摊货电机上的连接头部件是很脆弱滴,所以连接部分一定要用心
● 从外壳里拆出电机和Arduino线路板
● 切2红2黑各12英寸(304.8mm,12寸炮是305mm的,比如筑波级的2*2主炮)电线,每条线的两端1英寸(25.4mm)剥去绝缘皮。先别焊接,用一个红黑线对在电机的末端(有电源接点的那一端)缠几圈,以防止拉断,然后让线对从电机顶端通过,用双面泡沫胶带将其固定在电机上。注意不要覆盖电机上的任何孔洞,同时要为电机的固定留足空间
● 将电容的两个引脚分别穿过电机接线头上的小孔,焊接(这里应该是把引脚穿过去的部分和同一根引脚的根部焊在一起,这样的话引脚和电机接线头就充分连通了。注意,千万别把俩引脚焊在一起!)这需要使用尖嘴钳的巧妙掰弯手法。然后把给电机供电的电线头与电容引脚,注意,不是电机接线头,焊在一起,焊牢稳一些。再然后剪掉多余的电容引脚。把电容和缠在电机末端的电线一起用黑胶布(也就是绝缘胶带)紧密的缠在电机上,并且用更多的泡沫胶带把这个鼓鼓囊囊的位置包起来(还是为了固定)
● 把漏在外面的电机供电线拧成双绞线,这样可以减低电路中的噪声(一个供电的低压直流线路里有点噪声怕什么?原作者的想法好奇怪)。给电机标出左和右
在电机上并联了一个电容,这样做有两个好处。
其一,在稳定的直流电路里,电容是开路,不会影响电机工作,但是给电机通电的那一瞬间,电容因为要充电,可以分担一部分电流,所以电容作为一个保护器件可以保护电机。
其二也是更重要的,这种直流电机的接线头是一个铜合金片,从电机的塑料外壳里伸出来(通常被和塑料铸在一起),鬼知道奸商们用了什么材料,反正这个东西非常脆,尖嘴钳上去经常能掰断,然后这个电机就没啥抢救的价值鸟,另外这个铜片不怎么粘焊锡,焊接不易。但是电容的引脚一般都是类似铝、锡一样的柔韧金属,想怎么扳都能成形,焊起来也容易得多,所以作者把电气连接的活儿都转到这个引脚上来做。
【连电机的小经验】铜接线片作连接之前最好用细砂纸小心的蹭几下,去掉氧化物。电容线脚穿过去之后轻轻拉紧,在穿孔附近用尖嘴钳用力捏一下,使线脚与铜片充分接触。另外电线最好挑独轴的,也就是绝缘皮里面只有一根金属的,那种绝缘皮里有一束极细铜丝的线焊起来会有想死的冲动
6.2   电机测试
● 将短实心跳线分别焊接到电机供电线和电池接头线上,这些跳线可以让你把它们(电机和电池)插到面包板上,焊接之后用热缩胶带作焊点的绝缘(用绝缘胶布缠是一样的,除了丑一点和大一点)。将电机供电线穿过塑料隔板(4.1提到的那个)上的大窟窿(因为面包板和电机分别在隔板上下两侧)
● 按图示把电机驱动器插进面包板中间的一行孔里,使之和电机以及一个电池连通(注意,在面包板上,每一行的孔之间是连通的)。使用短跳线并保证这些线紧贴面包板,傻大黑粗的大电线是不配塞进机器人里的
● 从 Arduino官网 下载Arduino的软件并且安装之,通过USB接口把你的Arduino和电脑连起来,如果你用的是Diecimila版本的话,把它的电源跳线接换到USB档上。
● 为了测试电机,运行名为01_Test_Motor_Rotation的程序,此时左边的电机应该先往前转再往后转,然后是右边的,先往前再往后。如果不是这样,检查一下你的接线。接下来运行02_Test_Motor_Speed,此时电机应该以低速启动,然后加速,最后反方向转,如果不是这样的话检查线脚D11和D3
7   连接并测试舵机和传感器
7.1   连接舵机
● 将电机和Arduino再装回机器人里面,找两个3针的单排直角插针(通常是将一个20针的单排插针折断得到)插在面包板上,把舵机线接在上面,具体接线规则为:黑线-GND(地线,电池负极),红线-+5V(电池正极),黄线-Arduino跳线D10
● 再来一个3针右转接头,这个是接超声波探头的,接线规则为黑线-GND(地线,电池负极),红线-+5V(电池正极),黄线-Arduino跳线D9
7.2   测试舵机和超声波探头
● 运行舵机对中程序03_Test_Servo_Center,松开舵机摇臂的螺丝并微调,舵机臂与超声传感器尽量指向正前,因为舵机轴齿轮的问题,这一步可能无法完全对中,没关系,我们稍后再调整
● 运行程序04_Test_Servo_Sweep,这个程序可以让超声波探头慢慢的摇头
● 再来测试超声波探头,运行05_Test_Sensor_Distance,点击Arduino软件的数据流监视器图标,你应该能看到不断跳出来的测距读数,而且如果你在传感器之前挥舞你的手,测距读数应该有变化。如果你得到的读数始终是0或者255厘米或者别的什么错误的读数,检查你的接线是否有误,并且千万确定你的传感器没接反 :P
7.3   安装开关
● 终于可以接电源开关鸟!把Arduino最后一次拆出来,为了装开关,需要把还没用到的电池引线的红线焊在开关的一端并且把另一跟红线焊在开关的另一端。同样别忘了把电池的黑色引线和另一个根黑线焊在一起
● 把线从机器人侧面的方形孔穿好,开关需要打在“1”的档位上,把开关塞进方孔里固定好,这个调整可能会用到钳子
● 把从开关出来的红色线脚接到原型板的RAW线脚上(这个线脚还连着Arduino的Vin线脚),把从电池出来的黑色线接到原型板的GND线脚上,如果你用的是Diecimila版本的话,把它的电源跳线调回到EXT档上
8   系统测试
● 现在所有的电子设备工作都正常鸟,小心的把所有东西塞回机器人里,啥也别落下。装好电池,把机器人放好,别摔了。用来传程序的USB接口应该能从侧面的孔里露出来
● 重新载入并运行01_Test_Motor_Rotation,注意,所谓前是指机器人的USB接口和传感器指向的方向,如果你的机器人反着跑,检查在线脚AOut1, AOut2, BOut1, BOut2, AIn1, AIn2, BIn1, 和 BIn2处的接线,可能也会需要反转驱动电机的连接
● 重新运行其他的测试程序,确认接线正常,测试完成后把舵机和传感器的线塞进外壳里,扣上顶盖,拧上4个螺丝固定,收工!
9   给你的WALL·E注入灵魂
● 有时候你的硬件做好了你就没啥事可干了,不过你的程序是写不完滴。这也是你展示创造力的好时机
● 在代码中你需要使用digitalWrite和analogWrite这俩函数来控制驱动电机,通过传递值给电机驱动器的各3个线脚。其中一个可以接收介于0到255之间的值,用于控制传给电机的电流大小,这个是用来控制速度的。另外2个线脚则使用布尔型变量,用于决定每个电机两端的电位高低,这个可以决定电机的方向(当然电机两端只能一端是高电位)
● 你可以编写类似void Forward()这样的函数实现简单的动作,比如后退(两个电机同时反转),Spin_Left(原地左转,右轮正转左轮反转),Arc_Left(画弧左转,右轮正转左轮不动)之类的。Arduino的编程环境使你的代码实验和加载都很方便
● 另外一个好玩的事情是规避障碍,只要运行这样一个循环:往前走,读取测距信息,如果障碍物太近则采取躲避动作比如后退并转弯,返回循环体头部

回复

使用道具 举报

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