2014-03-05

EV3 軟體(X3)的邏輯運算

今天有讀友留言提到如何使用EV3程式,完成 If A and (or) B then ... 的寫法。

一般的 Wait Block 只提供單一感應器的判別,如果需要同時判斷兩種以上的感應器,就需要一些特殊方法。



在探奇『NXT樂高機器人:創意樂趣,隨心所欲』書中,第12章的寵物娃娃,曾經使用 Switch Block 包覆 Switch Block 的方法,同時判斷聲音感應器與觸碰感應器的狀況,這種複合式的寫法適用於:需要處理全部感應器的所有狀態,也就是兩種感應器的四種狀況。

有時候我們只需要專注在某一種特殊狀況,那麼就不需要考慮其他狀況。

例如讀友提到的例子:『BC馬達轉動,當超音波感應大於30公分,或是壓下觸碰感應器,馬達就停止』。只要任何一種狀況符合條件,馬達就必須停止轉動。

這裡只要使用邏輯運算(Logic Operations),配合資料線即能完成。

邏輯運算方塊在資料命令面板(紅色的Data Operations)裡面,


從命令面板拖出邏輯命令方塊,可以選擇四種邏輯選項:And, Or, XOR, Not。這個命令方塊只有ab兩個輸入埠。等號的輸出埠就是運算結果。


下面的程式就是將『超音波感應器的比較結果』,『觸碰感應器的狀態』,以 Or (或閘)運算,再將運算結果送入迴圈條件(邏輯判斷)。所以當任何一個條件符合時,程式就跳出迴圈,執行Move Off命令。


歡迎討論,祝大家成功!

2 則留言:

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