【中学生创客.虚拟机器人】2.1新手上路
第一节 新手上路
一、任务初探
先看看我们今天需要完成什么任务吧。如图 所示。
假设我们的机器人小车在一个停车平台上,需要让其完成以下任务
1.起始位置为灰色小方块位置,且起始方向为箭头所示方向;
2.从起始位置驶出,并到达蓝色色标位置;
3.从蓝色色标位置驶向红色色标位置。
那么对于一辆机器人主机控制的小车,它至少需要那些关键部件呢?或许这个问题过于简单,需要控制器、直流电机、轮子即可。那么在没有其他传感器的情况下如何控制小车的前进后退距离?如何使其转弯?
二、知识汲取
在第一次接触机器人时,我们首先需要了解我们需要什么样的部件,虽然都是控制器、 直流电机、轮子,但相互之间也有差异,同时作为机器人行动的指令系统——程序,我们也需要由浅入深地进行学习,先用知识武装自己,再付诸实践吧。
(一)主控制器
控制器是机器人的核心,在实物机器人中,控制器连接着所有机器人的其他部件,同时保存着机器人运行的程序,好比是我们人类的大脑,失去控制器的控制,机器人将无法运行。在此虚拟环境中提供了两个不同的控制器,但其核心的功能并没有差异,只是外观的差别。
如图 2-1-2 所示,这两款控制器的唯一区别在于左侧的控制器对马达的安装没有特别的要求,而右侧的控制器则预留了马达安装位置,使得使用该控制器所制作的机器人都具有相同的前后马达间距,我们学习所使用的就是右侧这款控制器。
图 2-1-2 控制器
(二)直流电机
直流电机又称为马达,它的种类繁多,其大小、重量、控制精度也各有差异,我们需要根据我们的实际需求去选择适合的直流电机,就好比汽车配备发动机一样,如果飞机发动机配备在普通汽车上那就是杀鸡用牛刀了。
在虚拟环境中拥有各种不同的直流电机,例如图 2-1-3 所示的两款直流电机,左侧这款为 10 倍高精度直流电机,它可以将运行的精度提高到普通电机的 10 倍,而右侧的电机为普通直流电机,也就是我们所需要使用的直流电机。
2-1-3 两种不同的直流电机
(三)轮子
光是有控制器与直流电机还是不够,轮子是最终运动的载体,在虚拟环境中根据轮子的摩擦力、大小、宽度等不同设计了多款轮子可供选择。值得注意的是,在相同的程序与其他硬件环境下,由于轮子的差异会使得小车的控制程度出现很大的差异。我们将要使用的轮子如
图 2-1-4 所示。
(四)程序
程序作为操作者的指令,必须明确地下达给我们的机器人小车,在没有其他传感器的情况下,我们可以通过时间的延迟来控制小车的运行,至于如何让其转弯,只要让我们的小车左右两侧的电机运行速度有差异或方向相反就可以完成转弯动作了。
三、实践验证
了解了任务又有了知识的武装,我们现在可以开始实践了,让我们从搭建小车开始吧!
(一)搭建我们的机器人小车
进入搭建机器人平台,我们可以搭建出属于我们自己的机器人小车,但在初次搭建过程中会遇上一些操作困难,请耐心仔细地去完成搭建任务。
1.在【模型】标签下选择【控制器】选项,选择所需要的控制器,并在搭建窗口中单击鼠标即可完成,请尽可能将控制器放置在搭建窗口的中间。
2.在【驱动】选项中选择所需要的直流电机,同样在搭建窗口中单击鼠标即可完成添加,如何将直流电机与控制器相连接呢?我们可以用鼠标单击直流电机上的橘黄色安装点, 并在控制器的相应位置再次单击鼠标即可完成连接,用此方法安装 4 个直流电机。值得提醒
的是,并非所有安装点都适合使用,请根据自己的日常经验来选择适当的安装点,如图 2-1-5所示。
图 2-1-5 搭建控制器与直流电机
3.同样在【驱动】选项中选择所需要的轮子,安装的方式与直流电机一样,最终使得4 个轮子分别在 4 个直流电机上。
【小技巧】
类似这样的小车结构,我们在后面的机器人搭建过程中会经常用到,是否每次都需要这样重复的搭建呢?当然没有这样必要了,我们可以通过自定义的方式将常用的结构类型进行组合保存,以便将来再次使用相同的结构时可以直接使用组合模块。
最终的效果如图 2-1-6 所示。
图 2-1-6 我们的第一辆机器人小车
4.是否这样就完成了呢?如果仔细的话,会发现左侧与右侧的直流电机的方向是相反的,如果在程序中让 4 个直流电机均向正方向运行,则机器人小车会在原地打转,或者需要在程序中设置不同的轮子方向才能向正前方运行,为了便于程序的编写,同时也符合我们的思维习惯,所以我们需要将我们的直流电机
正反方向进行设置,在此分别单击鼠标选中左前与左后电机,在右侧的属性面板中设置为【反转电机】模式。
为了让控制器能更明确地控制所有设备,我们必须要让所有与控制器连接的通电设备,如电机、传感器等,分配给它们唯一的端口号,这样就可以在程序编写中能明确程序指令所下达的设备。在此以左前、左后、右前、右后的顺序在属性面板中分别定义为1、2、3、4 端口。如图 2-1-7 所示。
图 2-1-7 电机端口号与【反转电机】模式
5.经过努力,机器人搭建完成了,请将机器人“机器人_出色的驾驶员_2_1”为文件名保存起来。
(二)设计程序
1.任务动作分析并绘制流程图
在程序编写前,同学们应该先对完成任务的必要动作进行分析,并根据分析所得绘制流程图,这样的习惯将有助于理清程序编写思路,并能及时发现问题,根据现有任务,可初步
判定机器人小车应该有的动作为:前进→后退→转弯→前进→停止,中间机器人运行均以时间进行延迟的方式控制,此时绘制的流程图如图 2-1-8 所示
2.程序编写
进入程序编辑窗口,单击【新建】按钮新建程序,在编辑窗口中会出现一个【开始】图标,将鼠标指向其下方半圆处并拖移鼠标,在出现的选项中依次选择【驱动】→【多直流电机驱动】,并单击添加该图标,如图 2-1-8 所示。
【多直流电机驱动】图标添加成功后,单击选中该图标在属性窗口中通过复选的方式选中所有电机,其中的【值】即为电机的输出功率,值越大,速度越快,当然并非速度越快越好,因为速度越快使得机器人小车的可控性就降低了,会出现无法立即停止或转弯打滑等情况。为了提高程序的可读性,我们可以在模块备注栏中输入相应的文字说明,以便后期阅读程序并理解当初编写的意图。如图 2-1-8 所示。
图 2-1-8 程序流程图及多直流电机驱动图标添加和设置
根据已绘制的流程图,进行延时图标的添加,值得一提的是,延迟的时间设定单位为毫秒,1000 毫秒等于 1 秒,该用多少时间,同学们可以通过调试程序的方式进行调整。
学会举一反三,根据流程图添加完成所有的程序图标,并设置相应的初始值,而所有的初始值并非都是正确的或是最佳的,需要经过不断的调试才能使得机器人小车达到最佳的运行效果。
最后将程序以“机器人_出色的驾驶员_2_1”为文件名保存起来。
(三)程序图标参考值提示
各图标的参考值如表 2-1-1 所示。
序号 |
功能模块 |
参考值 |
1 |
多直流电机驱动 |
6(1~4 端口均为正转) |
2 |
延时 |
6000 毫秒 |
3 |
多直流电机驱动 |
6(1~4 端口均为反转) |
4 |
延时 |
7000 毫秒 |
5 |
多直流电机驱动 |
6(1~2 端口为反转,3~4 端口为正转) |
6 |
延时 |
520 毫秒 |
7 |
多直流电机驱动 |
6(1~4 端口均为正转) |
8 |
延时 |
7000 毫秒 |
(四)进入仿真
单击【开始仿真】并选择【新建仿真】,并以此选择任务、机器人、程序,为了便于下一次进入仿真不在进行重复选择,可以将该仿真进行保存,最后单击【保存进入】按钮进入到仿真界面,如图 2-1-9 所示。
图 2-1-9 进入仿真
在仿真环境中可以随时修改程序及机器人设计,以求最佳的效果,当设计的程序越来越完美,那么机器人完成任务所需的时间将越来越短,所获得的分数也会越来越高,如图 2-1-10 所示,加油吧!
图 2-1-9 完成任务的对话框
四、课后提升
1.尝试使用不同的轮子,查看机器人小车的运行效果。
2.尝试到达蓝色色标后设置左右直流电机同方向使用差值方式进行弧度转弯到达终点的程序设计方法是否能提高成绩。
<< 上一篇
下一篇 >>
网友留言(0 条)