24h購物| | PChome| 登入
2009-02-12 09:29:00| 人氣473| 回應1 | 上一篇 | 下一篇
推薦 0 收藏 0 轉貼0 訂閱站台

Loop迴圈控制--多個感應器的條件

Wait Block (等待命令方塊)很容易使用,當我們需要讓樂高機器人在特定的狀況下做事,就可以使用等待命令方塊。

例如:等待 NXT 機器人撞到東西,那麼我們就可以利用等待命令,設定為觸碰感應器。




其實這個等待命令的意思就是:
程式一直在這裡等待,如果有人碰到觸碰感應器,機器人就進行下一個步驟。

所以這個Wait for Touch也可以改寫為下面的Loop迴圈命令。


更詳細的寫法就是在迴圈中判斷觸碰感應器的狀況。
先設定一個邏輯值的變數箱,把這個變數設為False(假值),
進入迴圈,我們使用一個Switch判斷觸碰感應器的狀況,
如果壓下觸碰感應器,程式就沿著上方的軌道進行,將變數箱的值改為True(真值)
如果觸碰感應器沒有壓下,程式就沿著下方的軌道行進,沒有做任何事(變數箱的值還是False),
離開Switch之後,程式讀取變數箱的值,藉由綠色的資料線送到迴圈的判斷接頭,
迴圈根據資料線送來的值,判斷是否跳出迴圈。



利用這種方式,以邏輯值控制迴圈的循環執行,我們可以擴充為判斷兩個觸碰感應器的迴圈。

這一種方法大量利用在探奇的Simon Game(需要判斷兩個觸碰感應器同時壓下)

大家可以參考下面的擴充範例。



上面的例子可以很簡單地擴充為多個感應器的條件控制,

當然還有其他不同的寫法,歡迎讀友分享你的使用經驗,謝謝!



台長: 探奇教室
人氣(473) | 回應(1)| 推薦 (0)| 收藏 (0)| 轉寄
全站分類: 不分類 | 個人分類: 樂高機器人 LEGO NXT-G 教學 |
此分類下一篇:Loop迴圈控制範例-- 等待兩顆觸碰感應器
此分類上一篇:可以在EeePC使用NXT-G了!!

探奇自然科學教室
雖然我也有上樂高NXT編寫程式的課程
但由於上課時間相對的短暫,所以想請問一下: 假如我把兩個循環放在一起,那他會先跑完第一個循環再跑第二個循環嗎?
有辦法使程式從第一個循環跳出後,再執行第二個循環嗎? <-------(想問的)
跳出要用變數
但是目前我不知道有什麼好辦法可以 在第一個循環還沒執行完畢之前,別執行第二個 (: 等第一個執行完再執行第二個) <-------(詳細的問)
2009-05-14 21:34:00
版主回應
你好:

兩個循環放在一起,當然是先做第一個循環,再做第二個循環!就看你的循環如何擺放。

您都已經知道使用變數跳出循環,那就是這樣執行啊!

能否請你詳述你需要的機器人功能及動作,最好是附上你已經完成的程式,這樣比較容易說明及討論。

touch_classroom@yahoo.com.tw
2009-05-15 22:05:00
是 (若未登入"個人新聞台帳號"則看不到回覆唷!)
* 請輸入識別碼:
請輸入圖片中算式的結果(可能為0) 
(有*為必填)
TOP
詳全文