2016年2月26日 星期五

07_mBot機器人-循線感應器的應用:mBot小姐走台步



  所謂循線器,表示它可以沿著白底上連續的黑線(或黑底上連續的白線)行走,線可以有彎角,循線車亦可以緩步調整角度繼續循線前進。

  mBot 上提供兩組感測元件(反射式紅外線發射LED,及高靈敏度光電晶體管偵測元件),和超音波感測器發射與偵測超音波的原理類似,循線感測器是透過發射與偵測反射的紅外線來判定路面黑線(或白線)軌跡的狀況。


Me Line Follower
循跡感測元件

  通常要達到"循線",最低只需要一組感測元件,但在循線自走車偏離路線時,要更精確的判斷狀況,就需要提高感測器的數量,以便判斷自走車是偏向左邊或偏向右邊,需要將自走車往右調整還是往左調整。

  mBot上提供的兩組感測元件,在遇到不同的狀況時,會傳回不同的數值,讓我們來看一下它可能回傳的數值與路面軌跡線的關係。

回傳值為0,表示兩個感測器都在黑線上,不必調整自走車行走方向。

回傳值為1,表示右邊感測器偏離黑線,此時右上方會亮燈,程式應該調整自走車向左轉些許角度,以便回到軌道上。

回傳值為2,表示左邊感測器偏離黑線,此時左上方會亮燈,程式應該調整自走車向右轉些許角度,以便回到軌道上。

  
回傳值為3,表示兩邊感測器都偏離黑線了,此時上方兩個燈都會亮。



  感測器回傳值為0的情況較麻煩,因為表示自走車完全偏離軌道,通常可能是上一次調整的方向不對,所以,程式必須要知道上一次調整的方向到底是如何,才有辦法決定要怎樣再讓自走車回到軌道。這時,設定一個變數去紀錄每一次的移動方向就是最好的解決方法了!

  可是,如果上一次是右轉、速度75,現在,若只是調整為左轉、速度75,恐怕會造成
一直左右搖擺,無法前進了,所以,我們調整的轉速應該與上一次不一樣,那麼,如果上一次右轉速度75,那麼這一次來試試看左轉、速度100吧!(如何調整mBot的下一步,可以慢慢修改程式,找出最適當的走法!)
好了,再來我們就把想法以流程圖畫出來,可以更釐清一下程式要寫的邏輯喔!

循跡感應器使用流程圖




  最後,就到mBlock上真槍實彈寫出你的程式喔!(記得檢查一下循線感測器是不是接在板子RJ25#2號插孔上),還有,別忘了要把程式上載到板子上,放手讓mBot走路喔!



來看看mBot循線走路的樣子