超音波自動避障
這篇教學會延伸「超音波隔空推車」文章範例,當 micro:bit 自走車 ( MoonCar 登月小車 ) 自己移動時,透過超音波感測器偵測距離,只要偵測到障礙物會自動轉彎,讓 MoonCar 變成「自動避障」自走車。
- 操作 MoonCar 需要載入對應的擴充積木,請先參考:載入 MoonCar 的程式積木
- 更多資訊:ICShop MoonCar 官方網站
超音波偵測到障礙物,自動轉彎
使用「重複無限次」、「邏輯判斷」以及「超音波距離感測器」的積木,判斷超音波感測器接收的數值小於 5 公分時,將 MoonCar 左轉 0.5 秒,大於或等於 10 公分時,讓 MoonCar 停止移動,完成後可以用障礙物放在 MoonCar 前方,觀察 MoonCar 是否原地旋轉。
超音波避障自走車
將程式稍做修改,加入變數 run,搭配按鈕 A 與按鈕 B 作為啟動與停止的判斷,並讓 MoonCar 在前方沒有障礙物時可以往前移動,就可以實現超音波避障自走車的效果。
參考:變數積木。
修正超音波誤差
實作過程中,因為超音波是透過音波反射偵測距離,可能會遇到「有時出現超音波偵測數值跳動」的狀況,這時可以使用下方的程式進行修正:
- 啟動時新增一個陣列。
- 透過迴圈偵測超音波數值時,先將數值記錄在陣列中。
- 如果陣列中兩個數值的差異過大,就不採納該次數值。
範例解答
延伸練習
如果已經熟悉了 MoonCar 超音波避障自走車的原理,還可以嘗試更多好玩的作法:
- 嘗試找出更好的修正超音波誤差方法。
- 試著用障礙物擺出一個迷宮,看看 MoonCar 是否能順利走到終點。
意見回饋
如果有任何建議或問題,可傳送「意見表單」給我,謝謝~