2015-9-1 11:12:58 [显示全部楼层]
22261浏览
查看: 22261|回复: 17

DIY海盗船机器人系列教程 第1话--- 基础功能

[复制链接]

DIY海盗船系列 第1话——基础功能

在基础功能这个板块,可以让你的机器人实现最最简单的移动,比如前进,后退,左转,右转等等。有让你的机器人很快就活起来的简单代码,轻松上手。还等什么,那就开始吧!按照我们的步骤,一步一步来制作你的机器人。对了,做机器人工具可不能少。在做机器人之前,你还需要准备以下这些工具。

必备工具

  • 螺丝刀

    螺丝刀,是机器人制作非常必要的工具。不用多说,用来拧螺丝的。建议你可以买一套完整的螺丝刀套件。面对不同型号的螺丝,使用起来就得心应手了。

DIY海盗船机器人系列教程 第1话--- 基础功能图26

  • 电烙铁

    电烙铁是常用来焊接电子元器件的工具,也是我们做一些电子制作的必备工具。我们这里需要用来焊接电机线的。

    注意:因为电烙铁加热后,烙铁头温度相当高!如果你从未使用烙铁,建议先对烙铁使用有个简单认识之后再使用。使用时,请注意安全!

DIY海盗船机器人系列教程 第1话--- 基础功能图27

  • 尖嘴钳

    我们常用尖嘴钳剪掉一些多余的线或者引脚。我们这里可能用到不多。不过,尖嘴钳也是电子制作必备工具之一。
    DIY海盗船机器人系列教程 第1话--- 基础功能图32

  • 剥线钳

    所谓剥线钳,就是用来剥线的。如果没有的话,也没关系,可以用剪刀替代。只需要减掉外面一层皮,露出里面的导线,便于焊接。
    DIY海盗船机器人系列教程 第1话--- 基础功能图31

硬件材料

  • 海盗船移动平台 × 1

DIY海盗船机器人系列教程 第1话--- 基础功能图28

  • Romeo BLE 控制器 × 1
    DIY海盗船机器人系列教程 第1话--- 基础功能图29

  • Micro USB数据线 × 1
    DIY海盗船机器人系列教程 第1话--- 基础功能图30

    组装步骤

工具准备就绪后,我们就要开始开工了!海盗船的底盘组装非常容易,只需要按照以下步骤一步步安装就行了。

STEP1: 安装电机

拿出零件包,有找到8个长螺丝吗?那就是用来固定电机的。按下图位置摆放电机,找到对应的8个固定孔,拧上螺丝就行了。

这里可能需要注意的一点是,零件包里面还有配有垫圈和锁紧垫片。垫圈可以用于增加摩擦力,是电机固定更牢固。锁紧片用来防止螺母由于震动可能导致的松脱。

DIY海盗船机器人系列教程 第1话--- 基础功能图1
DIY海盗船机器人系列教程 第1话--- 基础功能图2

STEP2:焊接电机线

取出套件里自带的红黑导线,每个电机红、黑各一根,长度大约在15cm左右。用剥线钳在线两头剥去外皮,留下导线用于焊接在电机引脚上。将四个电机线全部焊好。

注意:焊接的时候,注意线序正确,可参照下图的红黑线的位置。

DIY海盗船机器人系列教程 第1话--- 基础功能图33DIY海盗船机器人系列教程 第1话--- 基础功能图34DIY海盗船机器人系列教程 第1话--- 基础功能图35

STEP3:安装Romeo BLE 控制器

找到零件包中的3个1cm长的铜柱,那是用于固定控制板的。首先,需要找到控制器的三个固定空位。并将铜柱拧上去。完成之后,再将控制器用螺丝固定上去。

DIY海盗船机器人系列教程 第1话--- 基础功能图3DIY海盗船机器人系列教程 第1话--- 基础功能图4

STEP4:安装电池盒

取出独立包装的两个沉头(顶部是平的)螺丝,按下图装配图,将电池盒固定到底盘上。

DIY海盗船机器人系列教程 第1话--- 基础功能图5DIY海盗船机器人系列教程 第1话--- 基础功能图6

STEP5:制作电源开关

我们都知道需要用电池来给机器人供电。平时不用的时候,需要断电来节约电量,那电源开关在这里就起到作用了。先按装配图将机器人的开关位置安装好。安装的时候注意垫片和螺母的顺序。

DIY海盗船机器人系列教程 第1话--- 基础功能图7
固定完成之后,就要开始焊线了,取出前面焊接电机连接线剩余的部分,可用于开关。同样,用剥线钳剥去线两头的外皮,留出导线部分用于焊接到开关的引脚上。焊接的时候注意看清楚开关的引脚位置。

DIY海盗船机器人系列教程 第1话--- 基础功能图8
我们一步步来:

a) 连接开关和充电接头。注意找准位置。

DIY海盗船机器人系列教程 第1话--- 基础功能图9
b) 按上图连线图,将电池盒的两根线焊接到充电接头上。

DIY海盗船机器人系列教程 第1话--- 基础功能图10
来张大图,看的清楚点!

DIY海盗船机器人系列教程 第1话--- 基础功能图11
c) 最后,从充电接头和开关上引出正负极电源,用于接到后面的Romeo BLE主控器上。

DIY海盗船机器人系列教程 第1话--- 基础功能图12DIY海盗船机器人系列教程 第1话--- 基础功能图13
同样来张放大图,清楚是怎么连接的吗?最后,检查一下焊接的线是否和一开始的连线图是吻合的。

STEP6:组装底盘

用8个M3×6mm的螺丝将前后板固定到侧板上。按下图装配图安装。

注意:拧螺丝的时候,不要一开始就将螺丝全拧紧,导致下一步安装上层板的时候。螺丝孔对应不上。

DIY海盗船机器人系列教程 第1话--- 基础功能图14
安装完后,将底板固定上去,见装配图。
DIY海盗船机器人系列教程 第1话--- 基础功能图15DIY海盗船机器人系列教程 第1话--- 基础功能图16

完成后的样子,记得装上电池!

#### STEP7:连接电机

这一步我们需要将电机和我们的控制器连接起来,按下图连线图将电机线一一接到电机驱动的接线柱上,并用螺丝刀拧紧固定。

注意:同一侧的两个电机需要固定在同一个电机驱动接口上。

DIY海盗船机器人系列教程 第1话--- 基础功能图17

连接完成后,我们需要盖上顶板。盖顶板前,可以先装上传感器板。如果用不到的话,可以先不装。

DIY海盗船机器人系列教程 第1话--- 基础功能图18DIY海盗船机器人系列教程 第1话--- 基础功能图19
安装完成后,如下图所示。

DIY海盗船机器人系列教程 第1话--- 基础功能图20
#### STEP8:安装上层板

找到上层板的四个安装孔位,拧上螺丝。

DIY海盗船机器人系列教程 第1话--- 基础功能图23
装上轮子,大功告成!

DIY海盗船机器人系列教程 第1话--- 基础功能图22
DIY海盗船机器人系列教程 第1话--- 基础功能图21
输入代码

组装完成后,机器人已经有了它的身体了。但还没有思想,所以,我们需要通过给她下载代码来赋予它“生命”,让它具有思想。

先下载编程软件——教程

接下来下载帖子最后面的附件,将其中的库文件导入——如何加载库文件

然后就可以直接在从样例代码包中找到MotorTest.ino代码打开。

样例代码MotorTest:

#include <DFMobile.h>

DFMobile Robot (4,5,7,6);   // initiate the Motor pin

void setup () {
 Robot.Direction (LOW,HIGH);  // initiate the positive direction 
}

void loop () {
 Robot.Speed (255,255);    //Forward
 delay (1000);

 Robot.Speed (-255,-255);   //Back
 delay (2000);
}

下载完成后,电机是否有动静呢?如果没有动静的话,检查电池是否安装正确。如果电机转动了,那恭喜你,完成第一步了,下载成功!

再仔细观察下,小车是不是按照我们特定的前进1s,后退1s呢?如果连这个都一样,那你太幸运了,你的电机连接方式和小编一模一样,你不需要做任何的调整了,只需轻松的将下面部分内容大致浏览下就行。不过,相信大部分人,还是需要做电机调试的。调试之前,我们首先需要先简单了解下机器人的移动方式。

如何让机器人前进?

多了不容易理解,我们就先拿前进来说吧,如何实现机器人的前进呢?通过下面这张图来说明小车机器人是如何前进的。

DIY海盗船机器人系列教程 第1话--- 基础功能图24
箭头所指是轮子的方向,从图中可看到,只有当左右轮子都往前转的时候,小车是能够做到前进的。

代码回顾

代码的第一行如下所示:

#include <DFMobile.h> // call library

这一行,你不需要过多理解。调用了一个名为”DFMobile”的library,常被称为“库”。我们在代码里使用了DFMobile的库中的函数,所以,需要在代码的一开始指出所用的库。

接着往下,

DFMobile Robot (4,5,7,6);   // initiate the Motor pin

这个函数就是调用的DFMobile库中的。放在代码的一开始,用来初始化电机引脚的。我们在后面的代码中都会用到。

函数格式如下:

DFMobile Robot

(EnLeftPin,LeftSpeedPin,EnRightPin,RightSpeedPin);  

这个函数是用来初始化电机引脚的,分别有四个参数:

  • EnLeftPin: 左电机使能控制引脚
  • LeftSpeedPin:左电机速度控制引脚
  • EnRightPin: 右电机使能控制引脚
  • RightSpeedPin:右电机速度控制引脚

所以,之后的代码都需要在开始对电机的引脚进行设置,不可或缺的部分。注意,这个函数需要放在Setup函数中初始化。

在setup()函数中,我们对小车的正方向做了设置,这里特意对正方向重点说明。通过前面的测试代码后,我们发现电机的转向并不与我们代码相符,那是由于电机的线序顺序导致的,电机没有正负,上电后就能运转,把正负极对换则是相反的顺序。

所以,电机无非就两个顺序,正转和反转。我们在代码中通过LOW/HIGH来调整电机的正反转。我们这里并不制定LOW就是正转或者反转,因个人接线情况而定。

² 如何调整小车正方向?

调整电机的方向,我们需要用到下面这句语句是:

Robot.Direction (LOW,HIGH);

函数格式如下:
Robot.Direction (LeftDirection, RightDirection);

这个函数是用来设置电机的正方向的,函数分别有两个参数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,给右轮一个向前的速度,小车即可实现前左转。

DIY海盗船机器人系列教程 第1话--- 基础功能图25

可以思考下,如果想实现小车原地转圈该如何控制?

最后,还有一段测试代码可供测试,,可从代码包中找到MotorTest2.ino。这段代码不仅可测前进后退,还包含左转,右转。至此,你已经实现机器人的基础功能啦!


Code0.zip

1.96 KB, 下载次数: 374

丄帝De咗臂  高级技匠

发表于 2015-9-1 19:11:01

不错哈
回复

使用道具 举报

孙毅  初级技匠

发表于 2015-9-1 23:01:39

强悍!
回复

使用道具 举报

dsweiliang  初级技神

发表于 2015-9-5 08:18:54

很详细的教程啊,赞
回复

使用道具 举报

visionsl  初级技匠

发表于 2015-9-15 18:33:51

真详细, 32个赞
回复

使用道具 举报

Garben  见习技师

发表于 2017-12-8 21:24:26

板子可不可以替换成 DFRduino Uno R3 ???
回复

使用道具 举报

Jane  高级技匠
 楼主|

发表于 2017-12-28 15:00:20

Garben 发表于 2017-12-8 21:24
板子可不可以替换成 DFRduino Uno R3 ???

可以换,不过需要加个电机驱动才行。
回复

使用道具 举报

TODAYSMILE  学徒

发表于 2018-4-30 21:30:48

学习了
回复

使用道具 举报

X  学徒

发表于 2018-5-21 21:18:53

我是新手,请问向您这样的控制器,可以只连一个其他的电机吗
回复

使用道具 举报

Jane  高级技匠
 楼主|

发表于 2018-6-12 15:21:25

X 发表于 2018-5-21 21:18
我是新手,请问向您这样的控制器,可以只连一个其他的电机吗

可以只连一个电机的
回复

使用道具 举报

gada888  版主

发表于 2018-9-30 11:55:24

记录下,好好拜读下
回复

使用道具 举报

niefubao  见习技师

发表于 2018-10-7 20:15:23

谢谢楼主分享
回复

使用道具 举报

Austin  见习技师

发表于 2019-2-28 22:19:24

谢谢楼主分享,很详细。
回复

使用道具 举报

破风而来  初级技师

发表于 2019-3-8 11:49:48

很好的设计很好的设计
回复

使用道具 举报

jzzgb  见习技师

发表于 2019-10-31 21:11:01

谢谢分享!
回复

使用道具 举报

DFHk-0ykaN8  见习技师

发表于 2020-3-5 10:26:32

已经学习了楼主,感谢发帖。
回复

使用道具 举报

20060606  高级技匠

发表于 2020-6-21 05:32:03

这个底盘极限承重多少kg
回复

使用道具 举报

4818  学徒

发表于 2024-3-15 22:25:01

这板子感觉好复杂,新手先找简单小板的教程
回复

使用道具 举报

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

本版积分规则

为本项目制作心愿单
购买心愿单
心愿单 编辑
[[wsData.name]]

硬件清单

  • [[d.name]]
btnicon
我也要做!
点击进入购买页面
上海智位机器人股份有限公司 沪ICP备09038501号-4

© 2013-2024 Comsenz Inc. Powered by Discuz! X3.4 Licensed

mail