【中学生创客.虚拟机器人】2.4城市交通
第四节 城市交通
一、任务初探
在前面的课程中,我们让机器人小车变得智能了,它可以通过传感器来识别外部环境的 变化并调整自己的运行方式,那么随着课程的推进,外部环境会变得更为复杂,传感器也会 逐步添加。
二、知识汲取
在传感器的种类中,其中一大类是针对光线的传感器,我们所最常用的就是灰度传感器。
(一)什么是灰度传感器 灰度传感器是用来检测物体的灰度变化,是一个模拟传感器,其返回值为0~255之间,如图2-4-1所示。当物体色彩越趋向于白色,其值越大,反之越小。同一个物体在不同的光照条件下其灰度值会有所变化;同样,在相同的光照条件下,不同材质的物体也会有不同的灰度值差别。
一般情况下,我们使用灰度传感器来判别机器人所处 的不同位置,例如是否在公路上?因为超出了公路就会触及公路两侧不同于公路路面上的材质,从而引起了灰度值 的变化;或者在任务规则中设定了一些不同的区域色彩以 区分不同的任务区块。
(二)条件判断
条件判断不同于条件循环,条件循环在满足设置条件的情况下一直在循环体内执行,直 到不满足设置条件时退出条件循环模块;而条件判断是个分支结构的程序模块,不论是否成 立都将执行某个分支程序并结束该模块。但条件判断模块所判断的条件与条件循环模块基本一致,如灰度的变化、光线的变化、海拔的变化、距离的变化等等都可以作为其判断的条件之一。使得我们的机器人更加智能!
在机器人程序编写中,条件判断模块常常应用在对某 两种条件情况下执行不同的机械操作,同时我们会与条件 循环模块结合使用,使得条件判断成为条件循环中的循环体,这样可以让条件判断一直不断地运行,在本节课中我们就将运用到这样的程序方式来完成我们的任务。
三、实践验证
(一)明确我们的任务
在本章第一节与第二节课中,我们的机器人小车已经 顺利地出站并经过了第一个车站,接下去的任务则是希望机器人小车继续沿着道路向前行走并到达下一个车站。随着任务复杂程度的提高,同学们首先需要了解任务规则并仔细观察任务场地中所有可提供给机器人小车作为环境变化判断的外部信息,例如在本节课的任务中,机器人小车需要 沿公路行走,仔细观察即可发现在到达车站之前机器人右侧一直有一幢建筑物,利用障碍传 感器即可促使机器人小车位于距离建筑物适合的位置。而在接近车站的公路上有一段有别于 公路的一条横线,使得这条横线成为机器人判断是否即将到达车站的关键外部信息,我们可 以使用灰度传感器,用以检测是否即将接近车站。
(二)搭建机器人
由于在上一节课中,我们利用障碍传感器检测车站广告牌,而在这节课中,我们可以继 续使用该传感器,用以检测公路右侧的建筑物。而为了能让机器人顺利地检测到地面色彩的变化,我们可以为机器人小车安装上一个灰度传感器,并将检测口对准下方,如图2-4-4所
示。同时为了让控制器有效地对灰度传感器进行控制,我们将其端口号设置为32号。也可 以适当调整障碍传感器的角度,便于检测建筑物。
图2-4-4 安装了灰度传感器的机器人小车
(三)设计程序
1.任务动作分析并绘制流程图本次任务动作相对以前的课程来说就复杂一些了。首先由障碍传感器检测建筑物,如果检测到建筑物说明距离建筑物过近,需要向左侧偏转,反之说明远离了建筑物需要向右侧偏转;与此同时机器人小车需要知道是否即将到达车站,如果还未到达车站则继续检测与建筑物之间的距离并作出相应位置的调整。检测是否到达车站,我们需要利用灰度传感器。我们可以先进入场景编辑器,打开本课场景,利用
工具栏上的取色工具,在我们要取 值的地方点击鼠标,就会出现该地 方的灰度值。
在此我们利用条件循环嵌套条件判断的方式完成此次任务的核心程序内容。
2.程序编写
一旦明确了机器人小车的运动过程及检测方法,就可以按照流程图的思路进行程序的 编写了,由于本节课第一使用条件循环与条件 判断模块的嵌套时间,在编写过程中请同学们养成利用自然语言解释程序的习惯,这样更有利于理解与验证程序,同时也便于及时发现问 题。如图2-4-6所示,此为嵌套程序的示意图。
(四)程序图标初始值提示 在此提示的程序初始值仅为条件循环及条件判断部分,其余的内容请同学们自行调试完成。当完成这段条件循环后,可以用多种方式到达车站并完成任务。
表2-3-1条件循环模块各图标初始值
序号 |
设备 |
初始值 |
1 |
循环条件为灰度传感器 |
32端口,值为大于60 |
2 |
判断条件为障碍传感器 |
31端口,值为1 |
3 |
当值为1 |
直流电机向左偏转运行(具体值请自行调试) |
4 |
当值为0 |
直流电机向左偏转运行(具体值请自行调试) |
(四)进入仿真一切都设置好后即可进入仿真进行调试了,同学们可以调整各项数值以达到更高的得分。调试过程中如果出现问题请从以下几个方面进行分析。
1.如果机器人小车撞上建筑物或远离建筑物,请检查条件判断模块中直流电机运行方向是否错误?
2.机器人小车在行走过程中出现小幅左右摆动是正常现象,如果出现大幅摆动,请尝试机器人向左或向右偏转运行中直流电机组都用正方向旋转仅调整左右电机功率值,看看是 否解决了问题?
3.机器人小车的灰度传感器安装位置尽量在小车的中间,避免检测到公路的双黄线。
4.如果最后一段路程无法让机器人小车正确地进入车站并完成任务,请尝试复制本章第三节课中进入车站的程序段,查看是否能解决问题?
四、课后提升
1.尝试适当降低障碍传感器的检测距离是否能提高成绩?
2.思考用什么方式能使得机器人小车运行得更平滑、摆动减小?
<< 上一篇
下一篇 >>
网友留言(0 条)