Two Button Remote 线操纵——对于 2 个马达的机器人, 可以用 2 个触碰传感器来进行遥控,这个行为可以帮你做到这一切。这个程序当两个触碰传感器同时按下时机器人前进;仅按下 1 号端口的触碰传感器,机器人左转;仅按下 2 号端口的触碰传感器,机器人右转;两个都不按的时候,机器人停止。
程序中使用了关于触碰传感器分支的图标 ,它将一段程序根据触碰传感器的状态,分别执行两条不同的分支,然后通过图标合并为一条程序分支。这就是Robolab 中的判断语句,等同于程序语句:
IF [判断条件 A] THEN
。 。 。
[执行任务 1]
。 。 。
ELSE
。 。 。
执行任务 2;
。 。 。
END IF
在线操纵的行为中,对于 2 个马达的机器人,前进和转弯的动作由两个马达独立的状态决定:
每一个任务分支只控制一个马达的转和停就可以控制机器人的前进和转弯了。当然我们也注意到,对于机器人的转弯形式,往往一个马达正转而另一个马达反转的效率要远远高于一个马达正转而另一个马达停止。这种形式的转弯,两个马达不再独立行事。
而一定要协同起来工作,使用任务分支时将会遇到头疼的冲突问题,对于每一个时间片断,机器人只能有一种状态,所以使用分支判断图标来解决问题:Robolab 为我们提供了丰富的关于传感器的分支判断语句:
根据触碰传感器按下的次数大于或是小于设定参数执行两个不同的分支,通常在使用这个分支之前需要使用 或者 图标对计数器进行清零。
NXT Touch and Release Fork 根据触碰传感器按下和弹起的次数大于或是小于设定参数执行两个不同的分支,通常在使用这个分支之前需要使用 或者 图标对计数器进行清零。
除了以上介绍的等待、loops 循环、任务分支以及分支判断以外,Robolab 还提供了更加灵活的一种程序结构——跳转:跳转图标等同于无条件跳转语句:
Robolab 提供了 5 组颜色不同的跳转图标,对于通常的程序这已足够使用了,然而对于那些疯狂使用跳转命令使程序结构错综复杂的人, 可以通过使用白色跳转指定跳转号参数, 添加多至 20 组的跳转命令。
此外,程序允许使用多个同色跳转,然而同色着陆只能有一个,例如:
这个程序创建了一个简单的控制器,用一个触碰传感器控制马达 A 的正反转。
本站内容未经许可,禁止任何网站及个人进行转载。