Distance Sensor Block 距離感應
Robo的感應器內部設有距離感應器,它可以偵查到前方(x)cm有物件並作出反應。
我們可以透過Option block的幫助將其放入condition block之中。
如果設定distance to obstacle > 20,即只要sensor前方20cm以上有物體存在,它就會執行下一個動作;
如果設定distance to obstacle < 20,即只有進入sensor20cm以下距離內有物體存在,它才會執行下一個動作。
例子:
做一個居家智能打掃機械人吧。
相信大家都知道這些自動打掃機械人是如何運作的,它的前方設有感應器,當感應到前方有障礙物時便會自動改變方向,除此之外它會不停無限地行走。
這段說話大家看完一次之後,相信腦海中已經有一個編程出來了吧。
按圖砌好Robo智能打掃器。我們需要做到的效果是:
- Robo向前駛
- 偵查到前方有障礙物
- 發出警報同時避過障礙物
- Robo向前駛
要大家憑空想出一個編程是不容易的,因此我們每次都會列出一個一個步驟然後順次序完成。
第一步 Robo向前駛
你想一架車向前行的話,不外乎是Drive和Set Speed這兩個block的選擇。然而,我們這次的行駛並沒有距離之說,我們只是需要車子不停的向前而已。
因此,不難發現Set Speed Block是最佳之選。
第二步 偵查到前方有障礙物
大家很自然就會把Distance Sensor Blcok拉出來了,而且把它拉進Options之中。我們建議使用的距離是車前20cm內有物件的話即避開,因此設成distance to obstacle < 20。
重點是,我們使用哪個condition block呢?其實If和if then else都是可行之選,只是寫法不同,我們這裡使用If示範吧。
第三步 發出警報同時避過障礙物
這裡有兩個動作,「警報」我們可以使用開燈或其他,大家自行選擇吧。
至於避過障礙物,相信大家都知道是轉向動作吧!我們建議設成45度或90度會比較合理。
再提醒大家一次,不要忘記並行順序。