2009-02-12

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

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

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




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

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


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



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

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

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



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

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




沒有留言:

張貼留言

探奇歡迎大家留言討論!謝謝分享你的意見。