23419| 17
|
DIY海盗船机器人系列教程 第1话--- 基础功能 |
DIY海盗船系列 第1话——基础功能在基础功能这个板块,可以让你的机器人实现最最简单的移动,比如前进,后退,左转,右转等等。有让你的机器人很快就活起来的简单代码,轻松上手。还等什么,那就开始吧!按照我们的步骤,一步一步来制作你的机器人。对了,做机器人工具可不能少。在做机器人之前,你还需要准备以下这些工具。 必备工具
硬件材料
工具准备就绪后,我们就要开始开工了!海盗船的底盘组装非常容易,只需要按照以下步骤一步步安装就行了。 STEP1: 安装电机拿出零件包,有找到8个长螺丝吗?那就是用来固定电机的。按下图位置摆放电机,找到对应的8个固定孔,拧上螺丝就行了。 这里可能需要注意的一点是,零件包里面还有配有垫圈和锁紧垫片。垫圈可以用于增加摩擦力,是电机固定更牢固。锁紧片用来防止螺母由于震动可能导致的松脱。
STEP2:焊接电机线取出套件里自带的红黑导线,每个电机红、黑各一根,长度大约在15cm左右。用剥线钳在线两头剥去外皮,留下导线用于焊接在电机引脚上。将四个电机线全部焊好。
STEP3:安装Romeo BLE 控制器找到零件包中的3个1cm长的铜柱,那是用于固定控制板的。首先,需要找到控制器的三个固定空位。并将铜柱拧上去。完成之后,再将控制器用螺丝固定上去。 STEP4:安装电池盒取出独立包装的两个沉头(顶部是平的)螺丝,按下图装配图,将电池盒固定到底盘上。 STEP5:制作电源开关我们都知道需要用电池来给机器人供电。平时不用的时候,需要断电来节约电量,那电源开关在这里就起到作用了。先按装配图将机器人的开关位置安装好。安装的时候注意垫片和螺母的顺序。
a) 连接开关和充电接头。注意找准位置。
STEP6:组装底盘用8个M3×6mm的螺丝将前后板固定到侧板上。按下图装配图安装。 注意:拧螺丝的时候,不要一开始就将螺丝全拧紧,导致下一步安装上层板的时候。螺丝孔对应不上。
完成后的样子,记得装上电池! #### STEP7:连接电机 这一步我们需要将电机和我们的控制器连接起来,按下图连线图将电机线一一接到电机驱动的接线柱上,并用螺丝刀拧紧固定。 注意:同一侧的两个电机需要固定在同一个电机驱动接口上。 连接完成后,我们需要盖上顶板。盖顶板前,可以先装上传感器板。如果用不到的话,可以先不装。
找到上层板的四个安装孔位,拧上螺丝。
组装完成后,机器人已经有了它的身体了。但还没有思想,所以,我们需要通过给她下载代码来赋予它“生命”,让它具有思想。 先下载编程软件——教程 接下来下载帖子最后面的附件,将其中的库文件导入——如何加载库文件 然后就可以直接在从样例代码包中找到MotorTest.ino代码打开。 样例代码MotorTest:
下载完成后,电机是否有动静呢?如果没有动静的话,检查电池是否安装正确。如果电机转动了,那恭喜你,完成第一步了,下载成功! 再仔细观察下,小车是不是按照我们特定的前进1s,后退1s呢?如果连这个都一样,那你太幸运了,你的电机连接方式和小编一模一样,你不需要做任何的调整了,只需轻松的将下面部分内容大致浏览下就行。不过,相信大部分人,还是需要做电机调试的。调试之前,我们首先需要先简单了解下机器人的移动方式。 如何让机器人前进? 多了不容易理解,我们就先拿前进来说吧,如何实现机器人的前进呢?通过下面这张图来说明小车机器人是如何前进的。
代码回顾 代码的第一行如下所示:
这一行,你不需要过多理解。调用了一个名为”DFMobile”的library,常被称为“库”。我们在代码里使用了DFMobile的库中的函数,所以,需要在代码的一开始指出所用的库。 接着往下,
这个函数就是调用的DFMobile库中的。放在代码的一开始,用来初始化电机引脚的。我们在后面的代码中都会用到。 函数格式如下: DFMobile Robot (EnLeftPin,LeftSpeedPin,EnRightPin,RightSpeedPin); 这个函数是用来初始化电机引脚的,分别有四个参数:
所以,之后的代码都需要在开始对电机的引脚进行设置,不可或缺的部分。注意,这个函数需要放在Setup函数中初始化。 在setup()函数中,我们对小车的正方向做了设置,这里特意对正方向重点说明。通过前面的测试代码后,我们发现电机的转向并不与我们代码相符,那是由于电机的线序顺序导致的,电机没有正负,上电后就能运转,把正负极对换则是相反的顺序。 所以,电机无非就两个顺序,正转和反转。我们在代码中通过LOW/HIGH来调整电机的正反转。我们这里并不制定LOW就是正转或者反转,因个人接线情况而定。 ² 如何调整小车正方向? 调整电机的方向,我们需要用到下面这句语句是: Robot.Direction (LOW,HIGH); 函数格式如下: 这个函数是用来设置电机的正方向的,函数分别有两个参数LeftDirection和RightDirection,可写入值为(LOW/HIGH)。 我们在前面简单介绍了一下小车前进的实现方法。这里,就通过这个函数来是初始化小车的正方向。 举个例子,在这段样例代码中,LeftDirection设置为LOW。可能你的小车左轮并不是向前转动,而是向后转动。那么,你只需将LeftDirection 的LOW改为HIGH。重新烧录代码,此时,左轮应该是向前转动了。如果调试成功后,按同样方法调试右轮。 一旦调试好小车的正方向,那么恭喜你!你已经基本可实现小车的基本功能了,再了解下样例代码最后一个函数Robot.Speed()。 函数格式如下: Robot.Speed (LeftSpeed,RightSpeed); 该函数是用来设置电机转动速度的。分别有两个参数,LeftSpeed和RightSpeed。可写入的值为-255~255。255最大值并且通过负号来表示方向。 因为在初始化函数中,我们已经调试过小车的正方向了,所以这里可通过Speed()函数控制速度的同时,还可控制方向。 现在应该不难理解下面两句话了吧? Robot.Speed (255,255); Robot.Speed (-255,-255); 上面一句表示全速前进,下面一句表示全速后退。代码就解释到这里,下面简单看下机器人的移动方式,也就是如何实现前进,后退,左转,右转等等。 机器人的移动方式在下表中,罗列了几种常用的移动方式,同时也可以从表中看出其实现形式。举个例子,左轮方向速度为0,给右轮一个向前的速度,小车即可实现前左转。 可以思考下,如果想实现小车原地转圈该如何控制? 最后,还有一段测试代码可供测试,,可从代码包中找到MotorTest2.ino。这段代码不仅可测前进后退,还包含左转,右转。至此,你已经实现机器人的基础功能啦! |
1.96 KB, 下载次数: 3536
© 2013-2024 Comsenz Inc. Powered by Discuz! X3.4 Licensed