Distance Sensor Block 距離感應

Robo的感應器內部設有距離感應器,它可以偵查到前方(x)cm有物件並作出反應。

我們可以透過Option block的幫助將其放入condition block之中。

如果設定distance to obstacle > 20,即只要sensor前方20cm以上有物體存在,它就會執行下一個動作;

如果設定distance to obstacle < 20,即只有進入sensor20cm以下距離內有物體存在,它才會執行下一個動作。

例子:

做一個居家智能打掃機械人吧。

相信大家都知道這些自動打掃機械人是如何運作的,它的前方設有感應器,當感應到前方有障礙物時便會自動改變方向,除此之外它會不停無限地行走。

這段說話大家看完一次之後,相信腦海中已經有一個編程出來了吧。

按圖砌好Robo智能打掃器。我們需要做到的效果是:

  1. Robo向前駛
  2. 偵查到前方有障礙物
  3. 發出警報同時避過障礙物
  4. 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度會比較合理。

再提醒大家一次,不要忘記並行順序。

第四步 Robo繼續向前駛

這個第4步大家可能在一開始已經發現了吧。如果你的做法是再拉一個Set Speed出來,就表示你對編程還不算太熟悉。