一般的 Wait Block 只提供單一感應器的判別,如果需要同時判斷兩種以上的感應器,就需要一些特殊方法。
在探奇『NXT樂高機器人:創意樂趣,隨心所欲』書中,第12章的寵物娃娃,曾經使用 Switch Block 包覆 Switch Block 的方法,同時判斷聲音感應器與觸碰感應器的狀況,這種複合式的寫法適用於:需要處理全部感應器的所有狀態,也就是兩種感應器的四種狀況。
有時候我們只需要專注在某一種特殊狀況,那麼就不需要考慮其他狀況。
例如讀友提到的例子:『BC馬達轉動,當超音波感應大於30公分,或是壓下觸碰感應器,馬達就停止』。只要任何一種狀況符合條件,馬達就必須停止轉動。
這裡只要使用邏輯運算(Logic Operations),配合資料線即能完成。
邏輯運算方塊在資料命令面板(紅色的Data Operations)裡面,
從命令面板拖出邏輯命令方塊,可以選擇四種邏輯選項:And, Or, XOR, Not。這個命令方塊只有ab兩個輸入埠。等號的輸出埠就是運算結果。
下面的程式就是將『超音波感應器的比較結果』,『觸碰感應器的狀態』,以 Or (或閘)運算,再將運算結果送入迴圈條件(邏輯判斷)。所以當任何一個條件符合時,程式就跳出迴圈,執行Move Off命令。
歡迎討論,祝大家成功!
非常感謝邱老師詳盡的回答!!!!
回覆刪除歡迎討論 ^^
刪除