首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Mindstorm NXT编程回路退出条件

Mindstorm NXT编程回路退出条件
EN

Stack Overflow用户
提问于 2011-12-01 21:43:06
回答 3查看 9.7K关注 0票数 3

我正在为一个工程学班开发一个机器人。为了这个类的目的,我需要使用NXT编程语言。要移动,机器人需要遵循一条坚实的黑线。

如果机器人松开了线,我让它向左扫描1秒,或者一直扫描到一条黑线。如果没有找到任何线,它会扫描到右边2秒,这样就可以到达初始位置,然后再多1秒,或者实现旋转。

我已经设置了回路,这样如果还没有找到线,机器人就会继续移动。这将持续整整1秒的时间。如果找到了这条线,运动就停止了,但是整个秒仍然需要完成。这最终意味着我的程序运行得很好,但是真的很慢。

在LEGO编程环境中,是否有一种方法可以使循环具有两个退出条件?或者在1秒之后,或者传感器获得所需的输入?。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-12-19 15:57:05

头脑风暴没有OR函数。

解决方案是创建一个退出变量,然后有两个switch语句。在上面的例子中,我有一个带有计时器的开关语句,另一个带有传感器输出。将exit变量设置为false,然后在while循环中运行,直到退出变量为true为止。

如果计时器过期,则将变量设置为true,否则忽略退出变量。对传感器的输出也做同样的操作。

这是一个混乱和相当长的解决方案,但它完全解决了这个问题,在有限的乐高头脑风暴系统。

票数 0
EN

Stack Overflow用户

发布于 2013-10-14 00:16:09

最后两个块是逻辑块,设置为"OR“。在这种情况下,有3个传感器正在被监视。如果有任何一个被绊倒,程序就会退出循环。

这是来自http://www.hightechkids.org/sites/default/files/CoachingLibrary/fll_programming_101_nxt_g.pdf第86页

票数 1
EN

Stack Overflow用户

发布于 2011-12-02 12:06:56

您可以做的是缩短超时时间(例如,100 ms ),并在找到行或循环运行10次时停止。

我不是头脑风暴专家,但我希望它有一个或功能。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8348698

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档