2011-12-01 67 views
3

我正在開發一個工程類的機器人。爲了課堂的目的,我需要使用NXT編程語言。要移動,機器人需要遵循一條堅實的黑線。Mindstorm NXT編程循環退出條件

如果機器人鬆脫線,我會向左掃描1秒,或直到它到達黑線。如果找不到線,則向右掃描2秒,以便達到初始位置,然後再實現1秒或旋轉。

我建立了循環,以便如果線未找到,機器人繼續移動。這將持續整整1秒的時間。如果找到該線,運動停止,但整秒鐘仍然需要完成。最終這意味着我的程序完美運行,但真的非常慢。

tl; dr在LEGO Mindstorm編程環境中有兩種退出條件的循環嗎?在1秒鐘後,或傳感器獲得所需的輸入?

+0

86有我正確地重新標記嗎? –

回答

0

Mindstorms沒有OR功能。

解決方案是創建一個退出變量,然後有兩個switch語句。在上面的例子中,我有一個帶有定時器的switch語句,另一個帶有傳感器輸出。將exit變量設置爲false,然後在while循環內運行,直到退出變量爲true。

如果計時器到期,請將變量設置爲true,否則忽略退出變量。對傳感器的輸出做同樣的事情。

這是一個混亂和相當長的解決方案,但它在相當有限的樂高頭腦風暴系統內完美地解決了這個問題。

0

你可以做的是讓超時時間縮短(例如100毫秒),如果找到該行或循環運行10次,則停止。

我不是mindstorms專家,但我期望它有一個或功能。

+1

邏輯塊位於IIRC的高級部分。 –