导盲机器人小明是位盲人学生。父母由于工作关系,不能天天接送小明上学,这该怎么办?小明的父母为小明定做了一台导盲机器人,让他带小明上学、放学及散步。但是机器人定做完成后,由于还没有程序的支持,所以还无法完成这个重任。下面就让我们一起为机器人写程序,让他能够领着小明上学上学、放学、散步。在本节中,我们主要完成从家到学校以及街心花园散步的导盲程序。图2—17我的问题1、如何可以领着小明上下学?2、利用前面学过的直行模块和转向模块是否可以完成程序的编写?3、编写的程序是否会出现问题?4、在编写程序的时候要注意什么?活动建议1、仔细分析清楚路的情况。2、利用走指定步长和转指定角度的方法来完成导盲任务。3、多次调整“直行”模块中速度与时间的数值,让机器人能够准确地在“路”上行走。4、注意“街心花园”四周路的特点,利用更简单的方法编写程序。操作指南一、上学程序1、分析问题绿地家学校先将线路一作为首选路线,这时从家去学校的路程比较短。下面来分析下线路一的情况。线路一是由如图2—18所示的A、B两段路组成的,机器人带领小明出发去学校的步骤为:(1)前进A段路的距离。(2)右转90度。(3)前进B段路的距离。A图2—182、解决问题(1)加载场地1)单击仿真环境窗口。2)单击“功能区”里“加载”按钮。3)在弹出来的“选择环境”窗口选择配套光盘的“场地文件夹”,从中找到“导盲final.ini”文件。4)单击右下方的“进入环境”按钮(如图2—19)。B图2—19图2—20图2—21这时我们就可以看见如图2—20所示的导盲场地了。(2)利用直行模块前进A段距离。1)进入主程序窗口。2)在主程序下方链接“前进”模块。3)在“前进”模块下方链接“结束”模块。4)调整“前进”模块的参数:速度和时间。5)进入仿真环境窗口,将机器人放置到适当的位置(如图2—21所示的位置)并单击运行按钮。6)重复4)、5)直到使机器人正好走完A段路。提示:1、调整参数。由于我们不知道应该让机器人前进多长距离可以到达A段路的终点,所以不能直接给“前进”模块的时间和速度准确的赋值,这时就需要不断地调整参数,运行实验,直到合适为止。例如,在没有改变参数时,运行后发现机器人所走的距离远不够A段路的距离(如图2—21所示),这时我们要返回调整“前进”模块的参数。2、机器人的起始位置。由于程序写完后机器人所走的距离是一定的,所以每次机器人的出发点应保持一致。(3)转向模块右转90度。走完A段路后,机器人的运行方向朝上方,这时应该让机器人掉转方向,使它前进的方向为学校的方向。1)在“前进”模块的下放链接“右转”模块。2)调整“右转”模块的时间和速度,确保运行时刚好向右旋转90度。(4)利用直行模块前进B段路的距离。1)在“右转”模块的下方链接“前进”模块。2)调整调整“前进”模块的速度和时间,确保运行时刚好走完B段路的终点。至此,小明从家到学校的导盲机器人程序已经完成。在“仿真环境|”窗口中再次运行验证,如果有问题可以调试出问题的相关模块的参数。最终将各模块的参数填入表2—1中。表2—1程序各模块参数速度:时间:速度:时间:速度:时间:二、散步程序上学的程序完成了,下面让我们给机器人再写一段能够领着小明在一个如图2—22所示的正方形街心花园散步的程序。图2—22图2—231、方法一从A到B,右转90度。从B到C,右转90度从C到D,右转90度从D到A,右转90度。这种方法与前一节中设计“画正方形程序”基本一致,只要通过调试合适的直行模块的素的和时间,很容易就可以完成这个任务。通过上面的任务分析,你发现了什么?有没有重复的部分?2、方法二由于正方形四边相等,所以从A到B、B到C、到D,右转、D到A的距离相等,每次右转的角度也相等。这时我们就可以只编写从A到B的程序,再将这个过程重复4次来画正方形。这时就要用一个新模块,“多次循环模块”(1)把“控制模块库”中的“多次循环”模块拖到流程图生成区并与“主程序”模块链接(如图2—24所示)。(2)把“直行”模块和“转向”模块添加到循环结构中(如图2—25所示)。(3)在“多次循环”模块上单击鼠标右键,将弹出的“多次循环模块”对话框中的循环次数改为4。图2—24图2—25程序完成了,快到仿真环境中试试吧。探索与尝试用今天学过的知识完成下面两个任务:1、给机器人设计程序,让它能够带着小明从线路二到达学校。2、给机器人设计程序,让它能够带着小明从家出发,到街心花园散步后再回家。