收藏 分享(赏)

乐高ROBOLAB教程chapter03.pdf

上传人:HR专家 文档编号:6250407 上传时间:2019-04-03 格式:PDF 页数:60 大小:2.20MB
下载 相关 举报
乐高ROBOLAB教程chapter03.pdf_第1页
第1页 / 共60页
乐高ROBOLAB教程chapter03.pdf_第2页
第2页 / 共60页
乐高ROBOLAB教程chapter03.pdf_第3页
第3页 / 共60页
乐高ROBOLAB教程chapter03.pdf_第4页
第4页 / 共60页
乐高ROBOLAB教程chapter03.pdf_第5页
第5页 / 共60页
点击查看更多>>
资源描述

1、 基于乐高组件和 ROBOLAB 软件的工程教学 第三章 白 带 第 三 章 本章可获得的“技能牌” 结构 跳转 循环 分支 容器数学定时器任务 初级发明家创建传感器开始/ 结束编程上传观察计算此书授权西觅亚翻译,版权所有 1基于乐高组件和 ROBOLAB 软件的工程教学 第三章 3.1 白带挑战 白带设计挑战的所有项目是假定你已获得了全部绿带的“技能牌”而制定的。 3.1.1 乐高蟑螂 挑战: 设计,制作并且为机器人编程,使它能够模仿蟑螂在黑暗中行动,以及它在见到光亮后逃跑的行为。 技能牌: 和 步骤: 实验设置:没有特殊的设置要求,只要能够空出房间来让机器人行走,并且有灯光能够开关。 机器

2、人设计: 机器人的基础设计是一辆有两轮或者更多轮子的小车 (如果做得更好,就用腿),一个光电传感器(由你自己决定光电传感器放置的方向)。 编程:在图 3.12 和 3.40 中有乐高蟑螂的程序举例。你的程序将会需要使用容器,所以你的蟑螂要学会区分开灯和关灯的区别。你的程序应该利用循环来代替在例子中使用的跳转(因为在程序中使用循环是个好的习惯)。 教师会打开教室里的灯,所以你的蟑螂在它逃跑前,它的光电传感器应该来存储一下灯亮时的值。当灯关闭时,你的蟑螂应该很聪明地知道灯已经关闭了,并且开始觅食。使用循环,这样你的蟑螂就不会永远走下去了(比如说,它最终会感到疲倦并且停下来)。 成绩中,机器人的准确

3、度和程序占 50%,创意和美观占50%。 精确度 创新和美观 A: 你的蟑螂仿真的像真的蟑螂一样,并且你的程序是你自己编写的(使用容器和循环)。 B: 你的程序使用了容器或者循环,但是并没有总是工作。 C: 你修改并使用了例子中的程序(使用容器或者循环,但没有两者都使用)。D: 你使用了例子程序中的一条来使你的蟑螂对亮和暗有反应(既没有使用容器也没有使用循环)。 F: 你没有在教室里完成任务。 A:最好 A:卓越 B:好 C:不错 D:无特点 F:惨不忍睹 容器结构 此书授权西觅亚翻译,版权所有 2基于乐高组件和 ROBOLAB 软件的工程教学 第三章 3.1.2 走迷宫机器人 挑战: 设计、

4、搭建并编程一个机器人,使之能通过一个迷宫;不允许用死估算法 (注:根据迷宫的具体线路设定死机器人的行走程序)作为导航方式,老师会给你 关于你必须使用的程序类型的进一步说明。 技能牌: 结构 步骤: 实验设置:很明显,此挑战需要一个迷宫。象征性的迷宫是由 2 X 1 木板钉在 4 X 4的胶合板上组成,与真迷宫相比更像是一个扭曲的走廊 (有分支和死胡同)。 机器人设计: 基本的设计会是一辆有两个或更多轮子的车。根据你的试探方法,你可以使用 2 个以上的传感器。要考虑转弯半径和速度,机器人走得越快,出错的可能性越高,所以一定要仔细考虑轮子的尺寸和传动比。唯一的限制就是:你的车子必须完全自主运行(即

5、:在启动后你不能做任何事情)。 编程:死估算法是最简单的,也是通过已知迷宫最不可靠的方法,而且在这个挑战中不允许使用。死估算法是通过特定时间的行驶来完成的,例如, 你知道了迷宫的布局, 你可以这样编程:向前走 2 秒钟,左转, 向前 1 秒钟, 右转, 等等。这个方法的问题是:失误的原因是复杂的;如果一只轮子早就打滑了,机器人仍然认为在走直线,而实际上它可能已偏向一边了。 对于这个挑战,你应当使用沿墙行走算法,通过让机器人一直沿着墙的左边或右边行走来通过迷宫。实现沿墙走得算法可能需要 2 个传感器(一个光电传感器和一个触动传感器,或二个触动传感器),一个位于机器人的正前方,另一个位于机器人一侧

6、。如果我们把前端的传感器称为“前”,侧面的传感器称为“左”(假定我们想沿左边的墙走),此算法的流程图如下: 此书授权西觅亚翻译,版权所有 3是 是 是 否 否 前进 前 是否 没 碰? 左 是否 没 碰?左转 右转 前进 此方法使用了嵌套的 If 能,If 功能在 Robolab 中属于分支功能,重复功能在基于乐高组件和 ROBOLAB 软件的工程教学 第三章 此书授权西觅亚翻译,版权所有 4Robolab 中用 loop(循环) 或 jump(跳转)功能实现。如果你应用此方法,你可以获得结构技能牌。 评分: 在成绩中,机器人性能占75%,创意和美观占 25%。 性能 创意和美观 A+: 机器

7、人最快走出迷宫 A: 机器人走出迷宫 B: 机器人走了一半以上的路 C: 机器人向着正确的方向 D: 机器人迷路了 F: 未搭建可以演示的东西 A+: 最好 A: 卓越 B: 好 C: 不错 D: 无特点 F: 惨不忍睹! 基于乐高组件和 ROBOLAB 软件的工程教学 第三章 3.1.3 遥控器 挑战 :最多使用2 个传感器, 设计并搭建一只线控器,远程控制一辆带有NXT的车。你需要使用你的控制器指挥你的车尽量快的通过设有障碍物的道路或迷宫。 技能牌 : 和 结构 任务如果你使用一个以上的传感器,除 结构技能牌外,你会极有可能获得 任务技能牌。你的老师会基于对你程序的检查确定你将获得的技能牌

8、。 步骤: 实验设置:连线由长的导线构成,还需要一个有障碍物的道路或迷宫,供学生在上面演示车辆的控制。 机器人设计:几乎所有的车都能满足这个挑战,你应当考虑的是如何设计一个控制器,能够控制速度和方向。唯一的限制是 NXT 必须装在车上(即:不能拿在手上) ,你在控制器上最多使用 2 个传感器(使用马达内置的角度传感器是允许的,但是也算作一个传感器) ,在得到老师的允许后,可以使用一些非LEGO 部件,如纸、胶带等。 编程:你的程序应当有 传感器分支,还很有可能使用循环 或跳转,以实现不断地监测你的传感器。如果你使用了一个以上的传感器,而且希望同时监测它们,你还应当使用任务 。 评分: 成绩中,

9、机器人的性能占80%,创新和美观占 20%。 性能 创意和美观 A+: 你控制的机器人通过最快 A: 你控制机器人到达终点 B: 你控制机器人走了一半以上 C: 机器人在某些点上及时受到你的控制 D: 机器人无目的乱走 F: 未搭建可以演示的东西 A+: 最好 A: 卓越 B: 好 C: 不错 D: 无特点 F: 惨不忍睹! 此书授权西觅亚翻译,版权所有 5基于乐高组件和 ROBOLAB 软件的工程教学 第三章 3.1.4 LEGO积木回收 挑战 :设计、搭建并编程一个机器,使之能按颜色分类LEGO积木块。 结构 技能牌 : 步骤 : 实验设置:这个挑战所需的物品仅仅是一些LEGO 2X4 积

10、木块:4 个黑色、4 个白色、2 个蓝色。蓝色的积木块是个“挑战” 它最难分类。 机器人设计:操作者(老师)将积木块随机地放到你的机器前,你的机器应当移动光电传感器前的积木块,将它们按颜色分类到三个盒中,主要的创新点是给出这样一个设计:能够不需要操作者用特殊的方法摆放积木块。 你应当使用光电传感器及一个以上的马达,可能要考虑使用一个超声波传感器和触动传感器。 编程:完成这个挑战,分支和循环都将使用,为了能分出三种颜色,你可能需要使用嵌套分支。 提示: LEGO光电传感器对环境光十分敏感, 你可以考虑章节2.3.6 提过的方式遮挡室内的光线,甚至用罩子罩起来。另外,采用多次读数方式可提高正确性。

11、 光电传感器对传感器到积木块间的距离也十分敏感,例如,一个离传感器很近的黑色积木块看上去和比它远一些的白色积木块是一样的。所以,你可能会要使用一个超声波传感器。 评分 : 成绩中,机器人的性能占75%,创意和美观占 25%。 性能 创意和美观 A+:最快、最正确分捡出积木 A: 正确分拣出 9 块积木 B: 正确分拣出 6 块积木 C: 正确分拣出 4 块积木 D: 可以移动积木 F: 未搭建可以演示的东西 A+: 最好 A: 卓越 B: 好 C: 不错 D: 无特点 F: 惨不忍睹! 此书授权西觅亚翻译,版权所有 6基于乐高组件和 ROBOLAB 软件的工程教学 第三章 3.1.5 相扑运动

12、员 挑战 : 任务目标就是在30秒时间内,把你的竞争对手从比赛的场地上推下去。 技能牌 : 和 和 由于有很多方法来实现这个挑战,教师将会在你的程序上决定给予你相应程度的技能牌。 此书授权西觅亚翻译,版权所有 7步骤 : 实验设置:比赛场地是由2X2 英尺(60X60 厘米)的带有一个“倾斜环”在内的区域构成的(见下图)。比赛场地在教室的地板上被提高了几英寸。每次比赛将会持续 30 秒。单循环或者淘汰制的比赛流程。在比赛对手的对面一边开始比赛。先出界的机器人判负。胜利者赢得 2 分,负者没有分数。如果是平局(在比赛限时过了之后,机器人都在场上)并且它们还在对抗,每队将会获得 1 分。如果是平局

13、但是没有在对抗,每队将会被扣除 1 分(比如赢得负 1 分)。宁可输了比赛也比平局单没有对抗要好一些。 “出界”的认定是你机器人身上的任何一个部分在比赛中触到了教室的地板。这样,你在你的机器人被推出去后,你就输掉了比赛,或者如果是自己掉落到地板上,也或者是自己走上地板。 两队之间的勾结理论上被认为是不诚实的表现。那就是,你不能故意牺牲自己或者有意废除机器人来帮助其他对手。 机器人设计:几乎所有的车都能满足这个挑战。在没有高度限制的情况下,每个机器人最大的初始脚印允许为8X8英寸(20X20厘米) 。交流适配器是允许使用的,能尽可能长的节省电能,并且机器人不会受到其他运行的机器人的干扰。每队只允

14、许使用一个NXT的电池组。 编程:所有的机器人必须是自动的(比如你不能在比赛开始后再去影响你的机器人)。尝试使用任务和容器来定位你的对手,同时尝试使用寻找中线和避开边缘。 提示:不要尝试立刻来编写整个程序。把问题打碎成小的碎片,确定每个部分都是可靠的。最后,结合你的小碎片编成一个完整的程序。 评分 : 成绩中,机器人的性能占70%,创意和美观占 30%。 性能 创意和美观 A+:你是冠军 A: 赢2 到3 场胜利 B: 赢1 场胜利 C: 你没有获得过胜利,但是参与了比赛,并且公平竞争。 D: 在教室内完成了,但是没有做好比赛的准备。F: 没有在教室内完成 A+: 最好 A: 卓越 B: 好

15、C: 不错 D: 无特点 F: 惨不忍睹! 容器结构 任务基于乐高组件和 ROBOLAB 软件的工程教学 第三章 3.1.6 精确测量 挑战 : 制作一个小器件,其测量范围可以精确的从1厘米到2米。 此书授权西觅亚翻译,版权所有 8技能牌 : 和 结构 容器由于有很多方法来实现这个挑战,教师将会在你的程序上决定给予你相应程度的技能牌。 步骤 : 实验设置:你的教师会提供10个不同长度的物体(比如木块,绳子的片段等等) 。最短的物体的尺寸应该约等于1厘米,最长的物体的尺寸应该约为2米。 机器人设计:你必须设计一个硬件可以测量各种各样的物体。你可以使用瑞士军刀来接近和高级的设备包括多种测量仪器来巧

16、妙的结合。 编程:你将会确定使用容器来做些简单的数学。确定在比赛前校验你的设备。 评分 : 成绩中,机器人的性能占75%,创意和美观占 25%。 性能 创意和美观 A:测量出所有的物体,并且误差小于 5。 B:测量出10个物体,误差小于10。 C:所有的物体误差都小于 10。 D:所有的物体误差小于 25。 F: 你没有在课内完成 A+: 最好 A: 卓越 B: 好 C: 较好 D: 无特点 F: 惨不忍睹! 基于乐高组件和 ROBOLAB 软件的工程教学 第三章 3.1.7 跨越障碍 挑战 : 设计并制作一个自主运行的机器人,可以尽可能快的在亮光的下跨越障碍物。 此书授权西觅亚翻译,版权所有

17、 9技能牌 : 和 结构 任务如果使用了多于一个的传感器,你将会失去任务技能牌,但不包括结构技能牌。你的教师会通过测试你的程序来决定给予你的技能牌。 步骤 : 实验设置:在有强光的地方设有一个障碍物,并且设有许多障碍物(书本,积木,木块等等。没有障碍物之间的距离会超过8英寸(20厘米) ,但是障碍物的大小可能超过8英寸(20厘米) 。为了排除你的“航位推测法”来绕物体的可能性,教师会沿着起跑线随机放置你的机器人。 机器人设计:几乎任何的车结构都适合这项挑战;然而,你应该严谨的考虑设计一个机器人有能力来转身倒退。你的机器人应该向前走到有光的地方,同时避开障碍物。仅有的约束条件是你的 NXT必须在

18、你的小车上(比如不能拿在你的手上) ,并且你车子的最大的尺寸为 8 X 8 X 8英寸(20 X 20 X 20厘米) 。 编程:你的程序应该包括传感器分支。在你的程序里会使用循环和跳入命令来持续地监控传感器。如果你使用了多于一个的传感器,并且希望检测器能够同时的监测他们,你也可以使用任务。 评分 : 成绩中,机器人的性能占80%,创意和美观占 20%。 性能 创意和美观 A+: 你快速的通过所有障碍。 A: 你在一分钟内通过了障碍。 B: 你完成了比赛。 C: 你完成了一半的比赛。 D: 机器人走到了亮光处并且避开了障碍物, 但是没有真正的向前进展。 F: 你迷失了方向。 A+: 最好 A:

19、 卓越 B: 好 C: 较好 D: 无特点 F: 惨不忍睹! 基于乐高组件和 ROBOLAB 软件的工程教学 第三章 3.1.8 愚蠢的机器人杂耍 挑战: 完全用你的LEGO套件构建一个全自主的机器人,它必须待在由四条地上的线(用 胶带贴在地上)围成的方框内,做尽可能有趣的事。 结构 技能牌 : 你可以获得附加的技能牌,但这取决于你的程序,由你的老师确定。 步骤: 实验设置:所需的只是 4 根与地面有颜色差别的线,用黑的电工胶带贴在白色的地砖上就很好。老师将指定挑战的场地,这样你就会知道地面是什么颜色。 机器人设计:为了有利于完成任务,机器人必须能引导自己通过它的环境,为了能通过环境,机器人应

20、当能够避障、检测光或热的变化,以及找出通过围廊组成的迷宫的路径。几年前,美国原子核协会举办过一个竞赛,旨在测试机器人的导航能力、物体检测能力,他们在黑色的地板上画上白色的格子,辅助机器人导航,这些对比度很强的线的优点是:使机器人在他们的舞台上移动更容易。 有许多方法可以使机器人逗留在方框内,最显而易见的方法是在你的机器人上安装LEGO 光电传感器,装在哪儿、如何装 完全由你决定,此处机器人的重量、尺寸没有限制,尽管原创性和创新将不可避免的在评判时为你赢得喝彩(但不是必需的) ,唯一的限制是:你的机器人不可以停 止移动超过 2 秒钟,换句话说,你的机器人如果从不移动也将完成任务(即:它将永远不会

21、离开方框),但是,这样你只能得“D”分。 你有责任为你的 NXT 编写程序使之完成这个任务,对于有趣的事这里有几个建议: z 走走停停 朝一条线向前开,到达后立即停止,向后转,再开到另一条线,重复。 (成绩:B) z 沿线走 在任意方向上启动机器人,找到线后,沿线绕周长走,简单。 (成绩: B+) z 避障 在你想要的任意方向启动,用启动、停止算法避让方框内放置的一些着有鲜艳色彩的物体。 (成绩:A) z 你自己的想象 一些更复杂的能给我们留下印象的事? (成绩: A +) 编程:上面全告诉你了。 评分 : 你的成绩将 100% 取决于创新和审美,全部看你给老师留下什么印象!如果你的机器人不能

22、完成任何任务,但待在方框内,你在这个挑战中得“D” 。 此书授权西觅亚翻译,版权所有 10基于乐高组件和 ROBOLAB 软件的工程教学 第三章 3.1.9 追光 挑战 :在地板上某处放置一个手电筒,给你的机器人指示方向,机器人寻找并尽量接近之,并在最后停下。简单。 结构 技能牌 : 步骤 : 实验设置:带你自己的手电筒来,这很重要,因为你在家是用自己的手电筒测试的,我们也会提供一个,但由于两个光源的差别,你的机器人完成得同样好的机会将减少。 机器人设计:每年在英国三一学院都举行一个国际机器人灭火比赛,要求是找到并熄灭在房子某处的火。火实际上是蜡烛,房子实际上是一个小的简化了的迷宫,因此,任务

23、可能看上去比较容易。诀窍是:一旦机器人确定这个房间内有火,它必须在靠近火源 12 英寸内再开始灭火,通常,你应当尽量靠近蜡烛而不碰到它,例如:你的机器人使用的LEGO马达和风扇,机器人越接近蜡烛,扑灭的机会越大。 我们会在房间内关掉所有光源,因此,最亮的点应当是手电筒,但不能保证房间内完全没有自然光。这个竞赛不按组进行了,因为你们已在家练习过了,每个人有一个没有障碍的通道通向光源,如果你能在有障碍的情况下完成,你将得到额外的半级(最高 A+) 。 编程:简单的程序总是有效的,你的机器人应当考虑的运动是解决一个简单的问题(比如说:瞄准房间里的最亮点),然后重复这些运动,直到你得到了一个最大值。

24、评分 : 成绩中,机器人的性能占75%,创意和美观占 25%。 性能 创意和美观 A+: 在小于 6 英寸的地方停止 A: 停止点在一英尺以内 B: 停止点在三英尺以内 C: 机器人朝向手电的方向 D: 你的机器人不能感光 F: 未搭建可以演示的东西 A+: 最好 A: 卓越 B: 好 C: 较好 D: 无特点 F: 惨不忍睹! 此书授权西觅亚翻译,版权所有 11基于乐高组件和 ROBOLAB 软件的工程教学 第三章 3.1.10 机器人动物园 挑战: 这不是一个通常意义上的竞赛,准确地说,我们想让你们通过用LEGO积木构建出动物来建立你们对动物的认识。如果 你去过全是用LEGO积木搭建的动物

25、园,它们看上去像什么?它们是如何移动的?创新吧!你的想象力是本挑战的唯一限制。 结构 技能牌 : 步骤 : 实验设置:需要的只是一块足够大的空间,使得你们所有的动物能够自由漫步。 机器人设计:需要思考的事情是: 大部分动物不是用轮子运动的,如果你的动物在真实世界中有腿,那它在LEGO的生活中或许也应当有。 如果你的动物用腿运动,那它的步伐是怎样的? 这个动物有膝盖吗?有肘吗?有肩膀吗? 像自然界一样,达尔文的进化论同样适用,我们将把你们的创造全部放到一个群居的竞争环境中,那儿适者生存是唯一的规则。 编程:如果你不是为了其它原因使得程序一遍一遍的循环,在这个挑战中你将主要使用结构。根据你程序的复

26、杂程度可能获得其它的技能牌(由老师决定)。 评分 : 成绩中,机器人的性能占20%,创意和美观占 80%。 性能 创意和美观 A+: 你的动物在食物链的顶端 A: 表演的很合理且带来乐趣 B: 表演的很合理 C: 能够移动并能出声 D: 能移动 F: 未搭建可以演示的东西 A+: 表现最好 A: 看起来像个真的 B: 看上去像个动物 C: 有东西在动 D: 看上去它曾经活过 F: 太惨了,拿走! 此书授权西觅亚翻译,版权所有 12基于乐高组件和 ROBOLAB 软件的工程教学 第三章 3.1.11 到那儿去再回来 挑战: 搭建一辆LEGO小车,让它先向前开,碰到物体后返回到起始线。目的是返回时

27、尽可能接近起始线,设置的障碍是:你不允许使用触动传感器,也禁止使用光电传感器检测其起始线。 此书授权西觅亚翻译,版权所有 13技能牌 : 和 和 容器 任务结构 因为有许多方法可以完成这个挑战,你的老师会根据你的程序确定你能获得相应程度的技能牌,最可能获得的技能牌是:结构、容器、任务。 步骤 : 实验设置:本挑战只需要一块平地和某个撞击的物体(老师的脚就很好)。 机器人设计 :轴编码器可用于许多装置,通过监测一个被动轮的转动,你可以使用编码器检测到你已经撞到某个物体了。如果你正在提供驱动轮子的电源,而被动轮却不在转动,这就是一个你发现撞倒物体的好机会,因为实际已不在运动了! 搭建一个 LEGO

28、 小车,并且贴一个下面的灰度变化圆片到一个被动轮上。你的小车应当编程为一直向前走直到驱动轮开始打滑,然后停止,反转马达使车返回,尽可能停到起始线附近,即你需要使用被动轮上的编码器监测在停止前小车向前走了多远。(你不可以使用马达内置的角度传感器,因为滑动会导致误差) 。 编程 :程序至少使用 2 个容器和一个定时器,如果停止马达 后的过冲时间太长,你应当监测从黑白变化开始到马达停止间的时间。你还要对开出去后的总变化数进行计数,并且根据这个总数确定你返回到起始线的行程。 评分: 成绩中,机器人的性能占75%,创意和美观占 25%。 性能 创新和美观 A: 准确度在 6 英寸内 B: 准确度在 12

29、 英寸内 C: 准确度在 2 英尺内 D: 车能够运行、停止, 并且能够返回。 F: 未搭出可以演示的东西 A+: 最好 A: 卓越 B: 好 C: 一般 D: 无特点 F: 惨不忍睹! 基于乐高组件和 ROBOLAB 软件的工程教学 第三章 3.1.12 重力摆 挑战 :使用研究者级别测量地球的重力加速度。 初级研究者 技能牌 : 步骤 : 实验设置: 你需要摆动摆锤掠过某种亮/暗变化的平面 (如果使用的是光电传感器),或者就在地上(如果使用超声波传感器)。如果使用光电传感器,一张在深色桌上的白纸可提供极好的变化(结果应为方波)。 机器人设计:用些细绳(或导线) 、NXT、光电传感器或者超声

30、波传感器来构建一个乐高摆锤,图片是个例子,绳的长度应使摆动周期大约 1 秒。 编程:使用研究者编程级别1、2 或3,写一段程序每 0.05 秒采集一次光电传感器数据,至少 10 秒钟。 数据分析:上传数据到计算机,观察数据并确定地球的重力加速度,摆锤的摆动周期由下式给出: 此处,T 是摆动周期(秒) ,L 是摆长(米) ,g 是地球的重力加速度(米/秒平方)。 因此,你如果能测量到摆锤的 L 和 T, 就可以计算出地球的重力加速度,在这个练习中,我们构建一个已知长度(L)的摆锤,用光电传感器测量摆动的周期从而得到 T 。 提示:记住,这个公式仅对小角度(小于 10 度)有效,长度 L 是指从转

31、动点到摆锤(本例为 NXT)的重心的距离。 评分: 成绩中,机器人的性能占90%,创意和美观占 10%。 性能 创意和美观 A: 你得到接近 9.81 m/s2 的值 B: 图形看起非常正规 C: 你做出了图形也进行了计算 D: 你测得数据 F: 未搭出可以演示的东西 A: 卓越 B: 好 C: 一般 D: 无特点 F: 惨不忍睹! 提交你做出的图表和你的算式说明你是如何算出 g 的。 此书授权西觅亚翻译,版权所有 14基于乐高组件和 ROBOLAB 软件的工程教学 第三章 3.1.13 计数行进路程 挑战 :就像挑战2.1.1,目的就是设计,制作并且校准一辆车,可以行使一段特定的距离。这次,

32、你将用到研究者2的等级。 初级研究者 技能牌 : 步骤 : 实验的组织:教师需要一些线(电工或者遮蔽用胶带),一个胶带卷尺,以及一个没有障碍物可供机器人运行的场地。教师会在地上放置(3个或者更多)平行线(确保胶带和地板的颜色有反差) 。教师会需要在教室里有装有ROBOLAB程序的电脑给小车编程。 机器人设计:设计并且制作一个使用NXT的机动化的小车,可以在笔直的线上行走,并且有至少一个的光电传感器,可以监测地板。 编程: 1.在机器人向前行进时,编程你的机器人使其能够收集光电传感器的数据(编程等级2).运行程序来收集教师在地板上贴的线的光值数据。研究数据并且确定机器人经过这些线的时间。你应该小

33、心仔细地进行间隔采样。如果你没有足够的样本,就很有可能错过一条线。 2.速度标尺: 依靠来确定经过两条线之间的距离( x),并且计算出相应的时间 (t),计算你的机器人的平均速度( v= x/ t)。如果教师设置了多条线,那么你就应该有多个平均速度。 3.竞赛 在教室内的竞赛将会来看看谁是最接近终点线但没有超过它的。 在比赛开始前是不会告知行走的距离的。 你的成绩是看你接近线的程度决定的。 评分: 成绩中,机器人的精确性占100 精确性 A+: 你离线最近。 A: 你离线小于6英寸(15厘米) 。 B:你在大于6英寸的地方停下了(15厘米) 。 C: 你超越了线。 D: 你的车在开始时运行了。

34、 F: 你没有在课内完成。 此书授权西觅亚翻译,版权所有 15基于乐高组件和 ROBOLAB 软件的工程教学 第三章 3.1.14 盗墓贼 挑战: 使用多个带有光电传感器的NXT确定盗贼在房间里的行走路线。这是一个多团队项目,至少需要 6 个队同时进行。 技能牌 : 初级研究者 步骤 : 实验设置:需要一个相对暗的房间、一个手电筒、一台装有 Robolab 的计算机,计算机可以在另一个房间,但为了节省时间应当靠近“墓地”。 机器人设计 : 这是一个多团队项目,挑战的目的是:以群组的方式通过采集、分析光电传感器的数据确定盗贼在房间内的行走路线。老师扮演盗贼拿着手电筒在房间里走,并且纪录他/她所经

35、过的每一个NXT。 每个队应当编程他们的 NXT 去纪录 4 分钟的光电传感器数据,作为一个群组,你们应当确定采集数据的频率,每个队应当将他们的 NXT 安置在房间的某个地方,制作一张房间地图并且标注好所有 NXT 的位置(每个 NXT 有个序列号) 。 每个人需要在同一时间启动他们的程序,然后离开房间好让盗贼工作;当窃贼干完后,每人再返回房间将他们的 NXT 采集的光电传感器读数上传到计算机。 研究光数据图,确定窃贼每次经过你的 NXT 的时间,并在房间地图上依次标注出;同样,找出窃贼经过别的 NXT 的时间并用相同的方式记录下那些时间;最后,重构出你们认为的窃贼在房间中行走的路径。 编程:

36、你必须使你的 NXT 采集光电传感器数据 4 分钟,采样的周期由全体人员确定。 提示:要考虑的事情:你们将如何同步你们的数据?采样频率多少?在真实世界中,这些通常是与数据采集成本相关的因素。还有就是你们将如何放置你们的NXT。 评分: 确定出正确的路径 (A) 成功的采集数据 (B) 做了并且带来乐趣 (C) 相互间辩论和争吵 (D) 没向大家展示你的设计 (F) 此书授权西觅亚翻译,版权所有 16基于乐高组件和 ROBOLAB 软件的工程教学 第三章 3.2结构技能牌 结构技能牌包含:跳转、循环和分支,这些是 ROBOLAB 中的基本控制结构。到目前为止,你的程序已经被有顺序的连接起来,意味

37、着他们更像一本书;他们在绿灯地方开始,一步一步的执行到红灯。将跳转和循环加入你的程序会允许你来发展程序使它在循环其它程序时跳过一些步骤。在程序里使用分支结构使你的程序能够在传感器的输入基础上作出判断,这就是人工智能。将这些功能组合,你可创建程序使你的机器人以全自主的方式作用于它的环境。 此书授权西觅亚翻译,版权所有 17图 3.1 单 击 主 函数面板 上的 循环图标即可进入 结构 子菜单 3.2.1 跳转 我可以考 虑 让机器人 来 做一些重 复 的指令。 跳转 图标等同于 C 和 FORTRON 语言下的 GO TO 命令。当程序到达 一 个向上箭 头 后 , 程 序会 “跳转 ” 到 相

38、应的 “着 陆”向下箭头 。 有 5 对颜色 不同的跳 转/着陆图标 和 一组通用 白 色跳转/着陆图标可供选择 。 跳转 图标最常用的是 创建一个简 单的循环, 如图 3.3 所示。 但是, 相对 于 循环 图标 , 使 用 跳转 图标通常不是一 个 好的编程 习 惯 , 因 为 跳转 图标创建 的是一个 无 限循环 意味着 程序永远 不 能结束( 程 序执行不 到 停止图标 ) 。 图3 .2 跳转子菜 单 图3 .3 用蓝色跳 转/着陆图标 编 写的无限 循 环程序 顺便提一 下 , 如果 这本 书是黑白 打 印的话, 我 建议你使 用 些彩色铅 笔 来区分跳 转 和着陆箭头 。 这是你

39、阅 读 程序来得 更 加容易 (不 要忘记在 www.me.unr.edu/lego 上有 彩图版本的程 序 可以下载 ) 。 另外, 除了 图 3.3 程序中所用到 的 向回跳转 外 , 跳转图标 也可以在 程 序中用来 向 前基于乐高组件和 ROBOLAB 软件的工程教学 第三章 跳转,如图 3.4 所示。这个程序中用到了通用白色跳转图标,如果你所编写程序中 5 个基本颜色跳转图标不够用的话,通过它你可以创建 20 组不同跳转/着陆对。在跳转和着陆图标上都须标明跳转号(本例中 8 为跳转号) 备注:我连接跳转号为 8 的线在跳转和着陆上,仅仅使用标数字的线。这是一个好习惯,尤其当你的程序十

40、分庞大的时候。比如,如果你想要更换 8 号跳转到 9 号跳转这,你只需要在一个地方修改就可以了。 图3.4 该段程序中的10分钟等待功能永不执行 虽然跳转大部分时候用来创建循环(用循环函数更适合) ,但和 分支组合使用时才能体现跳转 函数的真正功能。例如下面这个例子,红色跳转/着陆被用来确保马达 A 转动前端口 1 的触动传感器未被按下;如果端口 1 的触动传感器处于松开状态,则执行上面的分支;如果被按下,则 B 马达开始旋转,直到松开,B 马达停止,然后程序从下面分支跳转到上面那个分支。这里跳转 被用来完成了一个循环 不能完成的任务。 分支 将在3.2.3 节里面详细介绍。 图3.5 分支之

41、间的跳转很好用。程序中的红色跳转用来 确保端口 1 的触动传感器未被按下。 虽然鼓励跳转和分支函数一起使用, 但决不允许从一个任务跳转到另一个任务 !任务将在 3.4 节中介警告 另一个有用的技巧是:使用多个同色的跳转,此时你只能用一个着陆 ;在下图中,我们创建了一个简单的控制器,使用触动传感器控制马达 A 的转动方向。 此书授权西觅亚翻译,版权所有 18基于乐高组件和 ROBOLAB 软件的工程教学 第三章 图3.6 同颜色多个跳转是可以使用的,此时你只能用一个着陆 3.2.2 循环 此书授权西觅亚翻译,版权所有 19循环 是有条 件的一遍遍 重复执行你 程序中某段 特定部分。 循环 子菜单

42、 下包括很 多类型的 循环 ; 在子菜单 右 侧那个是 普 通循环 函数 。左侧是 RCX 的传感器 循环。NXT 传感器循环 在 当中。 条件 有传感器、 容器、 计时 器、 邮件 ( 只有 RCX) 、时钟和摄像 头 所采集到 的 值。 所有循环 都 具有相同 的 基本形式; 由 开始循环 命令定义 ,由 结束循环 命令终止 ; 所有你想 要 重复的函 数 都包括在 开始 和结束循环 命令之中: 重复的功能 我们在图 2.7.3 看到过 普通循环 的简单应用 。 普通循环 除了可以定 义 循环的次 数 外 , 和 跳转 函数是一 样 的 。 循环的 次数标注在 开始 循环 命令上 。 当你

43、放 置 一个循环 开 始图标后 , 默认的次数为 2 次 ,你可以 按 照需要改 变 循环次数 。 图 3.7 循环 子菜 单 如果没有标明循环次数,系统默认循环两次。 注意 下面是一 个 简单的循 环 实例,在 程 序关闭前 演 奏 D 调五次 。 图3 .8一个五次的简 单 循环 下图中 开始 、结束循环 之间的功 能 和 图 3.3 一样,与 跳转 不同的是 , 循环 的次数是随机的 ( 默认的随 机 数 在 1 到 8 之间) 。 基于乐高组件和 ROBOLAB 软件的工程教学 第三章 图3.9 该程序循环的次数随机 与跳转不同, 循环容易嵌套使用。图3.10 是跳转嵌套应用的尝试。因

44、为内部(蓝色)跳转/着陆的无限执行,外部(红色)跳转永不执行,程序将“卡死”在内部的跳转/着陆中。这就是为什么不应当用 跳转完成循环 工作的原因! 图 3.10 一个不成功的嵌套跳转尝试 在图3.11 中,我们创建了一个使用了嵌套循环的程序。内部循环重复两次,每次使红色容器里面的值加 5;外部的循环五次,每次将红色容器里面的值减 1 。可是,其中的奥妙是:外部循环每执行一次 ,内部循环执行两次,因此,内部循环总共执行 10次。 如果我们跟踪红色容器里面的值,结果将如下: 5,10,9,14,19,18,23,28,27 ,32,37,36,41,46,最终为45。 图3.11 嵌套循环实例 备

45、注:在第五章中会讨论,容器保留他们运行时的值。运行这个程序几秒钟,开始时是 50 而结束时是 90!使容器的值回到 0,简单的可以把 NXT 打开或关闭。 在图3.12 中,我们为乐高蟑螂编写了一个程序。只要光线一暗(光电传感器的值低于50) ,这只虫子便到处溜达;当灯打开后,虫子便全速逃走。因为使用了跳转 函数,该程序将永远运行(或者说至少要等到电池没电才能停止) 此书授权西觅亚翻译,版权所有 20基于乐高组件和 ROBOLAB 软件的工程教学 第三章 图3.12 乐高蟑螂程序 下面是一个 NXT 使用一对 循环的LEGO 闹钟例子。 这个程序来自于RCX, 但是在NXT上也同样可以使用。内

46、置的时钟显示在 LCD 上,无论程序是运行的还是每次你重置或者关闭了 NXT。程序循环,没有任何动作,直到时钟到达 3 分钟。然后在结束前播放 5 次声音。任选其一的,我可以使用等待时钟功能来代替空的循环。一个更为复杂的煮蛋计时器使用容器在3.3 节中(图3.44) 。 图3.13 煮蛋计时器 自从NXT的马达有了内置角度传感器后,我可以用不同的方式完成精确位置需求;下图展示。第一个方法(左)循环,当角度传感器小于360度。由于我没有控制位置,当他关闭的时候,这个方法会导致马达会趋向过头。第二个方法(右)更好,因为它使用智能控制马达的停止,在一个特定的位置(在大约1度内)。当然后面不用使用任何

47、循环,这个是我们需要学习的。 图 3.14 . 两个使马达转一整圈的程序 迄今我已经使用了常量来控制循环计数(循环的次数),但是没有理由为什么我不能使用容器值(或邮件值,时钟值等等)。在下面的例子中,我建立了一个简单的程序来计10秒内传感器被触碰的次数,并且触碰一次就发一次音。 此书授权西觅亚翻译,版权所有 21基于乐高组件和 ROBOLAB 软件的工程教学 第三章 图 3.15 . 这个程序会记下在10秒内传感器被触碰的次数 在接下来的例子中,我会进一步来使用红色的容器,来控制循环。我们的程序是在半夜用冰箱来提醒爸爸吃点心时勿忘关冰箱门。程序使用当冰箱灯关闭时在冰箱里的初始的传感器读数(我自

48、己一般用10秒来关门)。当任何时候灯光的等级超过了原来的等级读数时(由于冰箱等一直亮着),NXT 会一直提醒,并发出声音。关闭门后NXT停止鸣叫。我也把光电传感器的红色的发光二极管关闭,这样不会影响我的读数。当然,有个小细节要说明,那就是如果运行过夜的话,电池将会用尽,另外加上低温会导致化学反应变慢,可能导致功能不尽如人意。 图 3.16 . 这是个冰箱提醒,读取内部初始光值10秒(比如允许关门的时间)以及在任何时候冰箱灯还亮时发出提醒。 3.2.3 分支 ROBOLAB分支 等同于许多编程语言和电子表格软件中的传统的 If-Then-Else 语句。在程序中,遇到一个分支时,程序将选择两条“路径”之一执行。例如,在下图中,如果触动传感器被按下,马达 B 转动,如果没有按,则马达 A 转动。 所有 分支 命令都需要在程序的后面使用合并分支 命令(含有绿色和白色的图标);它相当于许多基于文本的编程语言中的 end If 命令。 图3.17 分支子菜单 图 3.18 使用触动传感器分支的示例程序 此书授权西觅亚翻译,版权所有 22基于乐高组件和 ROBOLAB 软件的工程教学 第三章 当程序遇到一个分支命令时,将只执行两条分支路径中的一条,但是,你可以在两条路径间跳转,如前面图 3.5 中所示。 分支子菜单下所有的分支命令通过大于或者小于等于条件来确定执行哪条路径。除了触动和随

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 实用文档 > 简明教程

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报