Wait Block (等待命令方塊)很容易使用,當我們需要讓樂高機器人在特定的狀況下做事,就可以使用等待命令方塊。
例如:等待 NXT 機器人撞到東西,那麼我們就可以利用等待命令,設定為觸碰感應器。
其實這個等待命令的意思就是:
程式一直在這裡等待,如果有人碰到觸碰感應器,機器人就進行下一個步驟。
所以這個Wait for Touch也可以改寫為下面的Loop迴圈命令。
更詳細的寫法就是在迴圈中判斷觸碰感應器的狀況。
先設定一個邏輯值的變數箱,把這個變數設為False(假值),
進入迴圈,我們使用一個Switch判斷觸碰感應器的狀況,
如果壓下觸碰感應器,程式就沿著上方的軌道進行,將變數箱的值改為True(真值)
如果觸碰感應器沒有壓下,程式就沿著下方的軌道行進,沒有做任何事(變數箱的值還是False),
離開Switch之後,程式讀取變數箱的值,藉由綠色的資料線送到迴圈的判斷接頭,
迴圈根據資料線送來的值,判斷是否跳出迴圈。
利用這種方式,以邏輯值控制迴圈的循環執行,我們可以擴充為判斷兩個觸碰感應器的迴圈。
這一種方法大量利用在探奇的Simon Game(需要判斷兩個觸碰感應器同時壓下)。
大家可以參考下面的擴充範例。
上面的例子可以很簡單地擴充為多個感應器的條件控制,
當然還有其他不同的寫法,歡迎讀友分享你的使用經驗,謝謝!
沒有留言:
張貼留言
探奇歡迎大家留言討論!謝謝分享你的意見。