LineFollow
循線
壹、瞭解mBot巡線感應器 Me Line Follower
Me Line Follower
mBot標準配備的巡線感應器有兩顆LED燈,可以感應地面所傳回來的反射光強度。
地面亮度高則感應燈亮起(1)、地面亮度低則感應燈熄滅(0)。
均測到黑色、兩顆燈都不亮、等於0。
測到左黑右白、左燈不亮右燈亮、等於1。
測到左白右黑、左燈亮右燈不亮、等於2。
均測到白色、兩顆燈都亮起、等於3。
動手做:
Q1 :打開mBot機器人開關,將巡線感應器分別放在白色與黑色區域,觀察燈是否會亮?
(答案在後面)
思考一下:為了要讓機器人沿著黑線前進,而且不要脫離黑線這條軌道,你該怎麼控制機器人?
何時該前進?
何時該左轉?
何時該右轉?
討論、寫出程式:
均測到黑色、兩顆燈都不亮、等於0時,應該控制機器人直走。
測到左黑右白、左燈不亮右燈亮、等於1時,應該控制機器人左轉。
測到左白右黑、左燈亮右燈不亮、等於2時,應該控制機器人右轉。
均測到白色、兩顆燈都亮起、等於3時,表示機器人已經偏離黑線軌道。
策略:控制機器人後退回到軌道,以避免失控。
綜合以上分析,歸納出名稱為「基礎巡跡」的mBot程式,程式裡使用了一個「光感」變數,如右圖。
主程式「速度」=50%。
mBlock 5.3.0 基礎循跡程式範例
本例沒有執行光感等於3的後退,且速度為百分比。
動手做:
1. 打開mBot機器人開關,將mBot以USB線連接到電腦,把程式上傳(載入)至mBot。
2. 將mBot擺至8字圖上、巡線感應器對準黑線、按下、鬆開板載按鈕,觀察巡跡是否正確執行。
3. 若能正確執行巡跡任務,則可將速度從50%調至最快的100%,再次執行巡跡任務。
mBot內附的8字練習圖
檢視:
Q2 :將速度調到最快的100%之後,巡跡會發生什麼變化?
(答案在後面)
改良巡跡策略,上面的「基礎巡跡」程式不夠好,而且速度不能太快,勢必要加以改良。
為了減少不斷的在執行左、右轉,可以思考一下、等到快要脫軌了再來轉彎,光感等於3就是快要脫軌了,這個時候再來轉彎就行了。問題來了,等到該轉彎了,如何判斷該左轉、還是該右轉呢?這時候就需要另一個變數「上次光感」來幫忙。
當「光感」等於0,1,2時直走、「光感」等於1時「上次光感」也等於1、「光感」等於2時「上次光感」也等於2、等到「光感」等於0的時候,就可以依照所記錄的「上次光感」來決定左轉、右轉。需要轉彎時:「上次光感」等於1左轉、「上次光感」等於2右轉。
這個程式名稱為「進階巡跡」,如右圖。
mBlock5「進階巡跡」。
停課不停學
黑線進階循跡
以Win10_win+G錄製。
※到這個階段都做對了,恭喜您,可以開始玩創意軌道競賽了。
咦?不對,創意軌道競賽是黑底白線,這該如何改寫巡跡程式呢?
在動手把黑線巡跡改為白線巡跡之前,再來學習一件事情,控制馬達的轉速其實是允許兩輪單獨分別控制的,單獨分別控制左右輪,可以更靈活地決定轉彎的半徑幅度。
黑線巡跡改為白線巡跡。
黑線巡跡
0 直走
1 左轉
2 右轉
3
白線巡跡
0
1 右轉
2 左轉
3 直走
此時刻意不處理脫軌(等於0)的情形,以方便做後續處理(克服特殊線路會用到)。
再來,改寫白線進階巡跡:
V5白線進階巡跡
遇到0才轉彎,否則都直走。這支程式已經可以拿來跑創意軌道競賽了。
進階實驗:
Q3 :將感應器放在黑色區,以強光照射該黑色區,則感應器是亮起或是熄滅?
(答案在後面)
創意軌道競賽場地圖
比賽場地圖版權屬於圓創力科技有限公司所有,特此聲明。
mBlock 5 完整白線巡跡主、副程式。
停課不停學
白線進階循跡
以Win10_win+G錄製。
斷軌
使用基礎巡線方式,0直走、1左轉、2右轉,3則表示遇到斷軌。
解決方法:直走直到再度遇到黑線。
使用進階巡線方式,會造成迴轉。
直角左、右轉
使用基礎巡線方式,0直走、1左轉、2右轉,3則表示遇到斷軌或直角轉彎。
解決方法:左瞧瞧、右瞧瞧,找到黑線後再度巡線。
使用進階巡線方式,只能憑運氣,轉錯方向會造成迴轉。
十字路
使用基礎、進階巡線方式,都是0、應該會直走順利通過。
答案
Q1 :感應器放在白色區會亮起、放在黑色區則不會亮。
Q2 :發現機器人很容易失去控制。
Q3 :感應器會亮起,巡線感應器是以感應地面的反射光強度來判斷地面的顏色,當強光照到地面上時、黑白色的反射光強度都會讓巡線感應器以為測到了白色,因此燈會因誤判而亮起,場地應該避免強烈日光照射,或是自製一個光罩。