Mindstorm NXT编程循环退出条件

3

我正在为一门工程课开发一个机器人。根据该课程的要求,我需要使用NXT编程语言。为了移动,机器人需要跟随一条黑色实线。

如果机器人失去了线路,我会让它向左扫描1秒钟,或者直到达到黑线为止。如果找不到任何线路,则向右扫描2秒钟,以返回最初的位置,然后再旋转1秒钟。

我已经设置好循环,如果没有找到线路,机器人将继续移动。循环将运行一个完整的1秒时间段。如果发现了线路,则移动停止,但仍需完成整个1秒钟的时间。最终,这意味着我的程序能够完美地工作,但速度真的非常慢。

简而言之,在LEGO Mindstorm编程环境中,是否有两个退出条件的循环?即在1秒钟过去之后或传感器得到所需输入后退出循环?


我已经正确地重新标记了吗? - Mateen Ulhaq
3个回答

1

0

Mindstorms没有OR函数。

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

如果计时器到期,则将变量设置为true,否则忽略退出变量。对于传感器的输出也是如此。

这是一个混乱而相当长的解决方案,但它可以完美地解决LEGO Mindstorms系统中的问题。


0

你可以缩短超时时间(例如100毫秒),并在找到该行或循环运行10次后停止。

我不是Mindstorms专家,但我认为它应该有一个OR函数。


1
“Logical”块位于高级部分,如果我没记错的话。 - Mateen Ulhaq

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接