簡介
mBot 機械人的巡線感應器左、右兩對紅外線感應器的距離約有 1.2 厘米。mBot 機械人的巡線感應器簡化了使用方法,將紅外線反射結果分成兩種:黑色與白色,其中反射能量強的為白色,反射能量弱的為黑色,因此根據回傳值,共有四種情況:
Sensor 1(左邊) | Sensor 2(右邊) | 回傳值 | 說明 | 圖示 |
黑色 | 黑色 | 0 | 完全處於黑線上 |
|
黑色 | 白色 | 1 | 靠左是黑線 |
|
白色 | 黑色 | 2 | 靠右是黑線 |
|
白色 | 白色 | 3 | 完全處於白線上 |
|
直線前進
狀態 0(左黑右黑):表示仍在軌道內,應該繼續前進。
狀態 1(左黑右白):表示車身向右偏離軌道,應該左轉回軌道。
狀態 2(左白右黑):表示車身向左偏離軌道,應該右轉回軌道。
狀態 3(左白右白):表示車身完全偏離軌道,應該設法回到軌道。
小結
直角銳角
剛才學習的只針對直線軌道,並未針對軌道中出現的特殊情況,但 mBot 機械人每次只會運行一個程式,所以我們需要設計一個能夠應付所有情況的巡線機械人。接下來,我們先了解「直角銳角」的處理方法:
如果我們使用「直線前進」的程式,測試「直角銳角」的情況,會發現 mBot 機械人反覆前進後退的情形:
- 我們會在修正這個情況時,先讓 mBot 機械人左轉或右轉(視乎路線)
- 然後進入一個重複迴圈,離開迴圈的條件偵測到轉向正確(變數「轉向正確」= 1)
- 累積變數「轉動次數」
- 如果左轉碰到線,即表示轉向正確,設定變數「轉向正確」= 1 ,跳出迴圈,回到原本的巡線走法。
- 如果變數「轉動次數」累積達「轉動上限」 ,表示轉向錯誤,需要反向轉動,待找到黑線後,設定「轉向正確」= 1 ,跳出迴圈,回到原本的巡線走法。
「轉動上限」的數值從何而來?是要根據機器人馬達轉速,當時電量狀況,以及軌跡型態所嘗試錯誤得到的數值,需要自行測試。
巡線避障
當我們在巡線時遇到障礙物,我們可以用以下方法避開:
| 這個方法較為簡單,只需要利用超聲波感應器偵測到一定距離後,開始執行走半個正方形的路線,然後回到軌道上即可。但這個方法路程遠了,因而較為費時。 |
| 這個方法則較為複雜,需要利用超聲波感應器偵測到一定距離後,先向外轉向,再設定左右兩個馬達以不同速度前進,從而讓 mBot 機械人順暢地走弧形,然後回到軌道上即可。這個方法需花時間反復測試,方可成功,但走的路程短了,因而較為省時。 |
其實下面第二種避障不會太難
回覆刪除馬達1速度設為255
馬達2速度設為90
等待0.65秒 (可能因馬達速度或電磁強度額有誤差)
馬達1速度設為90
馬達2速度設為255
等待0.65秒 (可能因馬達速度或電磁強度額有誤差)
以上的兩遍就可以做出第二種避障路線
你說的沒錯
刪除在發佈文章兩年後終於知道方法了
但也需要測試,才可以肯定速度的設定正確
怎麼讓mbot走在白線上 一直走 中文版
回覆刪除快意點
刪除很多方法都可以加快速度,電池、馬達都有影響
刪除....
回覆刪除csgo word.exe
回覆刪除那如果要加聲音呢
回覆刪除