*1.认识登录图标与登录平台界面*2.认识操作平台界面*3.比赛规则*4.进入房间*5.机器人的搭建*6.让机器人动起来1.认识登录图标与登录平台界面萝卜圈①输入账号②输入密码③单击进入系统2.认识操作平台界面房间一般我们会进入海南练习专区比赛是会显示出比赛的房间,必须进入房间,比赛的成绩才有效3.比赛规则(1).查看任务说明(2).查看地图(3).了解得分规则比赛时长:120分钟完成机器人的搭建,编程,运行高中组:120秒内完成机器人从起点到终点。5次提交成绩,按分数高低排名4.进入房间单击海南高中大厅,再单击带有“?”的房间4.仿真界面介绍5.机器人的搭建(1).操作界面介绍(1)简单机器人搭建控制器(核心)安装块电机轮子(1)简单机器人搭建电机和轮子选择:为增加汽车重量,所以需要选择大型电机,用第3个大型直流电机;轮子用倒数第2个直径为4的。(2)端口设置左前端口1反转电机左后端口2反转电机右前端口3右后端口4思考:为什么左边的电机要反转?(3)保存并退出每一次机器人的修改都需要进行保存关闭窗口后回到模拟仿真界面6.让机器人动起来(1)进入编程界面(2)直行程序所以电机以20码的速度直行(3)保存程序,回到仿真界面测试直接关闭窗口,点击“是”,完成保存系统会自动回到仿真界面单击“开始”按钮,开始测试思考:这种效果要如何改进?*1.规划路线,明确问题*2.走中间*3.去障碍*4.飞车*5.礼让行人*6.转弯*7.飞跃栏杆*8.其他1.规划路线,明确问题需解决问题:(1)、走中间(2)、礼让行人(3)、飞车(4)、转弯(5)、飞跃栏杆路线规划:最快到达终点——①,并不是最优路线。要想得分高,必须多拿分,那么就要在120秒内尽量多跑路线。①2.走中间如何让机器人行驶在道路的中间?(1)距离传感器我们可以通过给机器人安装距离传感器,检测两边栏杆的距离来实现走中间。(1)安装距离传感器角度在30-35之间端口设置安装结束后,保存,回到仿真界面角度大,适合弯曲的路线角度小,适合直行,检测更远(2)编写走中间程序原理:哪边的距离宽,向哪边偏例如:左距右距左边宽,往左边偏点右轮速度左轮速度右距左距右边宽,往右边偏点左轮速度右轮速度左距=右距走中间左左左右右右(2)编写走中间程序走中间子程序:用if判断语句If(左距右距)执行左15,右20否则再判断if(右距左距)执行左20,右15否则两边都是20主程序:while永远循环调用走中间程序(运行程序后,发现什么问题?)(3)走中间算法演变前面的程序虽然可是实现走中间,但是车行驶过程抖动。原因是容差值小只要有细微的差别,车轮的速度都在变化,所以造成抖动。通过改变左距和右距的差值来实现,程序演变如下:速度:25,30运行后,我们发现机器人到拐弯处无法实现自动拐弯。如果我们想实现自动拐弯,那么需要列出左右距之差的所有情况,最大返回值3000,以100为差值,需要30种情况,程序太过繁琐。怎么办?(3)走中间算法演变差数:让左右轮根据一定数值自动调整,实现转弯。基础公式:速度(固定值)+差数速度(固定值)-差数差数=(左距-右距)/100100是比例值,数值越小,差数越大,拐弯的角度越大;否则越小双侧变速公式:左前速度=速度-(左距-右距)/100左后速度=速度-(左距-右距)/100右前速度=速度+(左距-右距)/100右前速度=速度+(左距-右距)/100左右电机的速度是多少?计时器,计时10秒,1秒=1000双侧变速公式,是根据距离传感器返回的数值,计算得出实时的速度,左右两边电机的速度不断的变化,很容易导致机器人运行不稳定。下面我们进一步优化程序,让机器人行驶更为稳定。子程序的速度为:40,比例值为50在主程序中,我们用计时函数来运行10秒,运行查看效果可以实现转弯。(4)算法优化——单侧变速单侧变速:根据距离传感器范围的数值,一边速度不变,调整另一边实现走中间的方式。单侧变速需先对左距和右距进行比较,也就是判断左距右距差数得出的数值必须是正整数。(取整数,求绝对值)差数=(左距-右距)/比例值比例值的自动计算公式:比例值=前距÷700×10+10比例值起到一个分母的作用。根据检测到的前距传感器的大小,以700为一份,把3000划分为5份值,作为灵敏度。前距÷700的值是4,3,2,1,0。相应的灵敏度分别是50,40,30,20,10。最后加上10是为了防止灵敏度为0出错,除数是不能为0的。为什么前距要先除以700再乘以10,而不是直接除以70?(小知识:整数型运算,定义为:7÷6=1,6÷7=0)差数的自动计算公式:差速=ftoint[abs((左距+偏差)-右距)÷灵敏度]其中((左距+偏差)-右距)÷灵敏度的值是可正可负的差速,加绝对值ABS后就变成正小数,正小数加ftoint后就变成整数的电机差速。(小知识:偏差值默认为0,左正右负,例如偏差值为200时,则左距为实际检测到的左距再加200,机器人会自动行程在路中间略偏左点的中线位置)在极端情况下这个差速大于速度值时,例如差速70,速度只有50码,这将导致电机反转,这时要限制这种情况下的差速不能超过指定的速度。方法为:通过差速与速度的比较运行,让差速最大值不能超过速度。如果差速值大于速度值,那么差速值等于速度值(4)算法优化——单侧变速程序编写:定义全局变量:速度(给定),差数,比例值单侧变速程序:在主程序中,速度赋值40保存,进入仿真测试,查看效果3.去障碍轴向随动机构4.飞车地面的颜色与一般的路段不同,前距传感器的数值变小。我们通过灰度传感器和前距传感器来判断机器人行驶到飞车路段。飞车路段的灰度值为:48正常路段的灰度值为:63道路黄线的灰度值为:188前距在进入飞车路段时变化最明显。我们采用前距和灰度传感器来实现飞车。(1)分析飞车路段我们需要在机器人上面安装灰度传感,安装在哪个位置,安装几个,为什么?(2)灰度传感器安装位置,端口设置,和灰度传感器的朝向(3)飞车程序执行飞车的条件:灰度为48,并且前距返回值:500先检测是否到达飞车路段,再走中间,因此飞车程序在走中间前面。程序:(4)飞车程序优化——提高稳定性使用海拔高度计来实现飞车海拔高度计的安装程序编写思考:为什么安装两个灰度传感器?海拔度计是否可以安装一个?为什么设置前海拔80时,速度为30?测试行驶中,撞上行人,怎么办?5.礼让行人礼让行人是重中之重,因为一撞上行人,所有的都结束,所以是所有情况的先决条件。要礼让行人需要到红外传感器。红外的数值越大,越靠近人女行人红外男行人红外(1)单红外测试后我们发现,效率比较低,机器人完全可以避开行人从另一边行驶。(2)双红外根据左右红外值自动选择路径不停车通过红外传感器的安装:双红外与距离传感器的夹角:双红外夹角范围:20~25度距离传感器夹角范围:30~35度双红外程序:思考:行驶的速度越大时,红外的数值越大还是越小,为什么?当行驶的速度达到70码及以上时,开启飙车模式,可以无视行人。高速行驶机器人的稳定性会差,容易翻车。6.转弯常见路口通过指南针来实现转弯(1).线路规划270090(2).左远和右远距离传感器及指南针安装(3).转弯子程序编写向左转:目标方向-指南针的绝对值大于10时,电机20码左反右正向右转:目标方向-指南针的绝对值大于10时,电机20码左正右反。前后0.5秒的电机停止是为了调整状态用。向左转和向右转程序的区别就是电机的转动方向,还有以左轮或右轮转后的位置不一样。右转弯子程序如果要左转弯,只需要复制右子程序,调整左轮反转,右轮正转。(4).完成规划路线的行驶通过复制主程序中的,先判断是否有行人,在判断是否到路口,最后调用左转弯子程序,实现下一个路口的转弯。注意,这次需要左转,用左远去检测是否到路口,目标角度为0度。观察和思考:在实现左转弯中,机器人是否绕了一个大圈,才转到目标角度,如果让机器人绕最短的路线进行转弯?(5).提升转弯效率(6).智能转弯思考:程序自动化程度是否越高越好?7.飞跃栏杆什么是飞跃栏杆,什么时候使用飞跃栏杆,如何做?飞跃栏杆是指当我们规划的路线中,路口处右栏杆阻碍,需要机器人跨越过去,继续前行。飞跃栏杆并不一定使用到,在比赛中路线的规划要做到:①少跑重复路线②少飞跃栏杆思考:要实现飞跃,我们需要哪些装置?机器人到栏杆前:先起跳,再向前推,实现飞跃。(1).飞跃栏杆的组件伺服电机和弹射通过伺服控制好弹射装置的方向,要求4个弹射方向朝上,一个朝前。先向上弹若干次延时300毫秒,再向前弹若干次延时1000毫秒。(2).机器人组装伺服电机与弹射块组装成模板(3).跨栏程序编写主程序调用,切换视角测试,并调整相应的数值优化后数值:循环30→20,前弹射值:5000→4200,循环:15→208.其他(1).比赛策略①15分钟规划路线②跨栏程序需要是在编写③最快跑对短距到达终点,测车况和路况④逆时针路线可能更有优势⑤尽量少拐弯,少飞跃栏杆⑥进入某区域(小岛)得分与时间对比,那个更有优势,选那个。⑦欲速不达,该慢的地方要慢⑧把线路规划为几个模块,全部跑通后,在一同连接起来。(2).无视行人,高速行驶当车速达到70码及以上时,因速度过快,可能路口的行人还未出现机器人已经开过,所以可以做到无视行人。但是,高速行驶时,因为车的重量轻,会导致行驶不稳定,容易翻车。解决方式:通过弹射给车施加向下的力,同时可以删除判断是否用行人的算法。(3).道路上的障碍车比较偏中间,如何巧避开通过给左距加一个偏差值来实现,偏差值是正数,机器人偏左行驶,避开右边的障碍;偏差值为负数,机器人偏右行驶,避开左边的障碍。在行驶中,如不需要偏左或偏右行驶,偏差值为:0(4).最优行驶方式①选择能够使机器人行驶最远的判定条件比如:检测行人和检测飞车,那个条件能让机器人行驶最远,用那个。②无障碍的道路,可以高速行驶。③路口多,拐弯大的,要减速行驶,必要是用计时作为判定条件。④连续的飞车路段,可以用灰度≠48来判断是否到达飞车,在接计时1.5秒走中间程序,复制程序实现连续的飞车。(6).疑难问题解决①3号飞车从右向左行驶时,三叉路口转弯问题怎么解决。①飞车总是固定的,所以先跑灰度不等于48,偏差-200,防止撞到黄车。②长期测试知道发现飞车后跑1500毫秒50码的位置也是基本固定的,在未到第一条人行道白线处,偏差300,防止撞到红车。。③检测到人行道白线后,汽车的停止位置也是固定的,用前面3个灰度都不等于255,40码跑到白线处。④由于要从人行道白线处以固定时间走到三叉路口处停止,而行人走动是随机的,所以通过前需要先检测一下正前方有没有行人,而不能让“走中间”自动检测,因为自动检测行走的时间是随机的。所以红外前大于130时,停止所有电机。⑤检测过前面没有行人时,以40码,800毫秒时间通过。⑥向右转,角度100度,调整好机器人前进方向,防止走进上方的叉路口。方法2:飞车1500毫秒后,如果继续向前行驶,由于右边有一条道路,必然会出现右距等于3000的情况,然后再出现前距小于1000的情况。所以用以下2个条件先跑当右距小于3000时50码,当前距大于1000时50码,然后向右转,角度100度,调整好机器人前进方向,防止走进上方的叉路口。②十字路口和三叉路口的检测条件是什么?①观察十字路口,可以发现,当机器人通过十字路口时,左远和右远距离传感器,有可能都会检测到超过2000的值,也有可能只有其中1个传感器能检测到超过2000的值,是否能同时检测到和障碍物及速度有关。②用左右距离传感器作为检测依据:当条件为“左远距离2000”或“右远距离2000”时循环走中间,那么意味着,结束循环走中间的条件为:左远和右远的距离只要有一边的距离能检测到超过2000的值就会停止了;当条件为“左远距离2000”且“右远距离2000”时循环走中间,那么意味着,结束循环走中间的条件为:左远和右远的距离必须同时都检测到超过2000的值时才会停止。③用灰度传感器作为检测依据:由于路的两边都有白线,所以检测十字路口白线时,