足球机器人培训手册乐高版内容摘要:

,可以将马达的速度减慢,可是一旦机器人遇到堵塞的时候,就没有足够的动力来摆脱堵塞。 因此,应该将机器人的动力设为最大,而把每次扫描所要转动的角度设计小一些。 方法 1) 在下面程序中,机器人从它的左边开始扫描,完毕后向前移动。 2) 在程序中添加入发音图标,方便程序员知道机器人的程序执行到哪一步了。 13 3) 机器人扫描一次的时间是 秒,与 RCX 的采样记录速度一致。 4) 机器人在每一个地点朝各个方向扫描足球 8 次, 也就是说转动 8 次角度,因此程序需要使用循环语句,循环次数为 8 次,使得机器人在完成每一次扫描后,自动进入下一轮扫描。 五、搜寻足球 概述 介绍完扫描程序模块后,就该介绍寻找足球的程序模块了,以下程序是在 2020 年机器人杯青少年组大赛中获胜机器人寻找足球模式的基本原理。 我们需要把特殊的光电传感器(组委会提供)安装在机器人的前面,以使它可以接收到特殊足球(具有透明外壳,内设红外发射管)发出的红外光。 因为特殊光电传感器对红外光的灵敏度最大,所以假定当特殊光电传感检测到的光值超过其周围环境光值达到一定比例时, 机器人就“看”到足球了,通常情况下把这个超出的比例设定为 40%。 方法 1) 机器人在扫描过程中,每转动一个角度,就通过特殊光电传感器检测一次机器人前方的光值。 2) 如果特殊光电传感器检测到的光值超过 40 时,机器人会给出一个和前面不同的音调,表示找到了足球,并立即全速向前移动击球。 14 3) 如果机器人找不到足球,再完成一轮扫描后,它会自动向前移动一步,并开始新一轮的扫描。 注意  在这个程序中,接在 1 号输入口上的特殊光电传感器器在检测时,周围环境的光值(除足球外)不得超过 40,以免干扰机器人辨认足球。  按下 RCX 上的绿色 VIEW 按钮,多按几次,直到显示屏上有一个小箭头出现在 1 号输入口附近。  这时我们就可以在液晶显示屏上看到接在 1 号输入口上的特殊光电传感器器所检测到的光值了。  将机器人在场地中慢慢旋转一周,记录这一过程中特殊光电传感器器所读入的最大光值。  这个记录下来的最大光值,就在你的程序中作为特殊光电传感器分支语句的判断光值。 如果你希望机器人在搜寻足球的时候可以更快、更好的找到足球,最好的办法是选择一个自然光无法进入的房间,而且房间内不能有白炽光线,从而使特殊光电传感器器能对足球发出的红外光保持最高度的灵敏度。 15 六、简单的足球机器人 概述 下面是一个可以实现简单机器人足球赛的程序,但是在这一程序中,机器人还不能够辨别出球该踢向哪个半场。 下面还将提及到 ROBOLAB 中的容器图标的作用和用法。 方法 1) 使用容器取代循环(跳跃箭头)是为了使程序更为精简。 2) 容器就是一个数据储存库。 3) 机器人每经过一次扫描,就会在容器中存入一些数值,比如说之前读取的光值,扫描的次数等等。 4) 程序中用到了容器的条件分支语句,当容器中记录的值达到 8(经过 8 次扫描)之前,程序将一直执行条件分支的下支。 5) 经过 8 次扫描后,程序将进入条件分支语句的上支,机 器人向前移动,并开始新一轮的扫描。 6) 在新一轮扫描开始之前,容器将被清零,即把容器重新设置为零。 7) 前面提过,把触动传感器装在机器人的前面,而利用触感条件分支语句用来判断机器人是否碰到墙壁或其他的机器人,然后让机器人避开障碍。 8) 当机器人发现足球之后,程序就会通过蓝色跳跃和着陆箭头进行转移。 机器人将继续它的循环程序,只要足球在前方,就会一直全速追击下去。 但切记,在机器人击球之后,必须间隔一秒钟,才可以再一次击球,否则会被判为犯规。 16 注意 这一程序由于没有设计如何教机器人辨别各自的半场,因而不能避免机器人将球 踢进自己的球门,导致乌龙。 如果你想在比赛中使用这个程序,最好在上面的程序模块中加上一个自己修订的程序,解决这一问题,可以这样设计,让机器人向前移动 2 秒钟,然后旋转 180 度。 如果你的机器人击错了球(朝自己的半场方向击球),比赛可以重新开始,你可以把你的机器人瞄向正确的球门,机器人就可以从正确的方向击球了。 七、灰白渐变场地纸的检测 概述 现在你的机器人已经能够找到球,并可以踢球了,剩下要解决的问题是如何教会它把球踢向对方的球门。 组委会在策划比赛时,特别给比赛场地设计了由黑到白灰度纵向渐变的场地纸。 由于光电 传感器在场地纸的纵向各个地方上读到的光值也是渐变的,所以,我们只需要在机器人的底部装上光电传感器,通过光电传感器把场地纸的光值读入并存入容 17 器中,再根据前后记录的光值变化,从而判断出敌我球门的方向。 在这里同样要用到容器图标 方法 1) 首先,假设己方的机器人应该朝场地纸渐亮(由黑往白)的方向进攻。 2) 在向前移动去踢球之前,从机器人底部的光电传感器器上记录下当前所测到的光值。 3) 将此光值存入蓝色容器中。 4) 然后机器人向前移动 秒钟。 5) 然后记录下这时候检测到的场地纸光值,并将这个值储存在黄色容器中。 6) 如果新的光值较旧的 大 ,则表明机器人正在由黑向白前进,击球的方向正确,让它继续保持。 7) 如果新的光值较旧的小,则表明机器人正在由白向黑前进,所以是在往自己的球门方向击球,要避免击球自摆乌龙的话,程序此时应该指挥机器人绕到球后面,然后再击球。 注意  我们可以测试一下这个程序,放一个球在机器人前面大概 15CM 的地方,然后让球滚动。 如果球进入机器人前面特殊光电传感器( 2 个)的检测范围内,机器人将 18 朝球的方向追去。 如果球落在机器人检测范围外,那么机器人暂时还无法找到足球,于是机器人向前移动一步,发出特定的音阶,然后开始旋转(扫描)。  如果你没有标准的灰白渐变场地纸 ,可以用几张白色和黑色的纸暂时代替。 八、子程序的使用 概述 如果你经常使用 ROBOLAB 的话,你就会发现,很多时候相同的一段程序在一个项目中需要重复写好几次,反复的重写不但浪费时间还使得程序变得庞大。 也许你想到了用剪切。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。