程小奔在世界各地受到高度的歡迎,陪伴無數兒童與青少年進入資訊科技與體驗人工智慧的領域,但是卻沒有專屬的競賽項目,如何設計能夠發揮程小奔特色的競賽內容,讓人煞費苦心,就在腸枯思竭時,機器人登陸火星並傳回來超高畫質的畫面引起全球的震撼,也激發了出題老師的靈感。
認識程小奔
Makeblock的程小奔因為可愛的外表、圓潤的曲線,讓他很受低年齡層學生歡迎,無須額外接線隨插即用的特點,也使他容易被程式初學者所接受,但你若因此認為他只能學習到初階的程式技巧,那你可就大錯特錯了。
程小奔可拆分成小程與小奔,小程主要負責運行程式與聲光表現,小奔主要負責環境感測與移動,兩個部件都各自有許多的感測器與電子元件,學習完每一個元件的使用方式只是開始,多個感測器互相配合應用才是真正有趣的地方。
比賽規則簡介
本次要介紹的「AERC-2021亞洲機器人運動競技大賽-程小奔火星拓荒挑戰賽」比賽內容就是著重在小奔,透過內建的顏色感測器、灰階感測器與紅外線感測器三者的搭配應用,讓程小奔能夠穿梭在貼上色卡的二維網格地圖上,完成各種任務,地圖每一格長寬為15cm,格線寬度為2cm,詳細規格尺寸請見iPOE活動網與AERC公布的簡章。
傳統的循線競速比賽,雖然地圖種類繁多,但路線結構依舊是一條直線,車體多只是組合多個循線感測器,若將其投入阡陌縱橫的網格地圖勢必無所適從,而程小奔的獨特之處,就是在於他有顏色感測器,在網格的交會點放上不同顏色的色卡,就能改變程小奔的行徑路線,進而衍伸出變化多端的競賽任務。
不過請您放心今年初登場的比賽並不會太刁難選手,你在本文中看到的比賽地圖就是實際比賽時的配置,卡片的位置都不會做調整,今年設計的題目主要是針對第一次參加比賽的小選手,所以題目簡化很多,其實程小奔十八般武藝樣樣精通,還可以唱歌跳舞和聯網,這些功能我們會在之後的賽季逐步增加,同時,程小奔的擴展性能也相當好,無論是原廠還是樂高的套件,都可應用在這次比賽中,選手也可以試試看增加其他擴充零件是否可以讓程小奔更快速精準的解決任務。
背景故事
西元2100年, NASA發射毅力號登陸探索火星已經是80年前的事了,經過這些年的努力人類終於在火星表面創建殖民基地,並建立了網格定位系統,讓機器人在此系統下全自動的工作,不斷地採集運輸資源為人類提供服務。
為有效率地運輸資源,勘察員在詳細考察地形之後,在網格系統上投下了相對應的顏色信標用以規劃機器人移動路徑,而作為機器人工程師的我們,就是要寫好程式讓機器人以最快的速度將物資運往居住區,更厲害的工程師還要能在途中進入採礦區,採集需要的礦物一起帶往目的地。
但忙中難免有錯,網格系統中有部分的顏色信標因為勘查員恍神投錯位置了,因此機器人也要能自動忽略錯誤信標,為了不斷優化機器人控制系統,火星總部將模擬以上情況舉辦競賽,選拔速度最快的機器人來執行任務,你/妳的無人車會是速度最快的嗎?
搭配故事情境,是要讓虛擬的關卡任務能誘發在現實情境中去解決問題的動機,看似簡單的題目,其實就是解決複雜的太空任務的基礎,「治大國如烹小鮮」,無論是多複雜龐大的任務,解決問題的運算思維其實都是一樣的邏輯。
國小國中組掌握顏色辨識
初階的任務相對簡單,程小奔從A0的底線出發後,遇到綠色色卡就左轉,而遇到紫色就右轉,除了第一個紫色是誤投的信標,直到走到紅色色卡終點。
顏色信標代表的意義如下:
顏色 | 動作 |
綠 | 左轉 |
紫(函錯誤信標) | 右轉 |
紅 (終點) | 無 |
(合併2張小圖) 顏色信標誌放位置如下範例圖,色卡短邊指向應該轉彎遵循的方向。
( 大圖)國小組競賽題目圖示
高中職組增加採礦任務
進階任務基本與初階任務相同,A0的底線出發順著色卡規劃的路線走到終點,但在路途中增加三張黃卡作為礦坑入口的信標,三個礦坑內分別有紫紅綠三種礦物,第二坑道的紅色才是需要的目標礦物,程小奔進入礦坑後只能直進直出,碰到色卡就算採礦完成,可以走出礦坑繼續走向終點。
信標代表意義一覽表
顏色 | 動作 | 礦區 |
綠 | 左轉 | 廢礦 |
紫(含錯誤信標) | 右轉 | 廢礦 |
黃 | 無 | 入口 |
紅 (終點) | 無 | 目標礦 |
採礦區定義
由3張黃色信標與其他顏色信標所組成之封閉區域,如下圖所示,一個黃色色卡代表一個礦坑入口,進入礦坑後只能直線進出,不能橫向跨越不同坑道。
(小圖)採礦區定義
( 大圖)國中組競賽題目圖示
競賽秘笈分享
首先是賽場布置,會用到一張網格地圖,以及3組標準色卡,每一套程小奔會附贈一組8張標準色卡,因剔除了地圖用的黑白色,以及容易被機器混淆的藍、青色,比賽中只會用到綠、紫、紅、黃等卡片,如卡片不夠可考慮以顏色相近的色紙代替。
硬體方面的配置,程小奔在執行程式時建議使用"上傳"模式,由於即時模式其實是在電腦端執行程式,接著再即時把指令下達給程小奔,而上傳模式是在小程本身執行程式,省去了從電腦下指令的時間,在相同一段時間內,上傳模式能夠比即時模式做更多次的判斷,因此一樣的程式在不同模式下可能有不同的效果,尤其在循線時需要機體能較快做出反應,因此建議使用上傳模式。
另外在練習的過程中,一定會需要反覆修改測試程式,如果是以USB接線的方式上傳程式,就需要不斷插拔傳輸線,除了麻煩外也可能造成耗損,因此建議以藍牙適配器進行連線。
接著,我們要來深度認識小奔上的各個感測器,下列是關於小奔改測器的各個程式塊,在循線時感測器方向朝下,因此不討論感測障礙物的方塊,感測顏色與灰階值功能,是由左側的光線感測器負責,剩餘的"顏色紅外感測器"等三個功能,皆是由紅外線接收器完成。
在循線時需要左右兩邊感測器共同協作,才能提供穩定的循線功能,因此需要同時使用"顏色紅外感測器 反射光強度"與"顏色感測器的灰階數值"兩個程式塊,為了要詳細觀察到左右兩個感測器的數值,暫且先改為及時模式,並以兩個變數儲存兩變數。
接著將車體放置於地圖的白底與黑線處,並分別觀察其數值,在此我們發現第一個困難點,左右兩感測器的數值是相反的容易造成混淆,左側的灰階感測器顏色越深數值越高,而右側的反射光強度顏色越深數值越低,所幸數值都是0~80。
另外可觀察到程式在執行時會反覆閃爍青光與白光,青光是在執行"顏色紅外感測器 反射光強度",由中間的RGB燈所發出,白光是在執行"顏色感測器的灰階數值",由最左側的白光LED所發出。
注:其實不是真的發青光,而是燈泡快速閃過紅綠藍三種顏色,眼睛只看到綠藍混和的殘影變成青色。
接著我們以40為兩感測器在判斷黑白線分界值,並以左右兩側分別踩在黑線或白線分出四種狀況,並以單一變數對四種狀況進行編碼,編碼數值與對應的狀況列表如下。
編碼 | 左(灰階) | 右(光反射) |
0 | 白 | 白 |
1 | 白 | 黑 |
2 | 黑 | 白 |
3 | 黑 | 黑 |
在將設定編碼的程式中,直觀的做法是要做4次if的判斷,每一次判斷左右都要做比大小的運算,以此做法每跑一輪設定編碼的程式,就要做8次運算,以下提供相同效果但只需做三次預算的作法。
如果只以編碼變數紀錄當下感測器黑白線的狀態,進入上傳模式後變數狀態無法及時在電腦端顯示,就很難檢測機器判斷黑白線的結果是否準確,在此我使用程小奔的LED陣列畫兩個眼睛,用空心/填滿的眼睛對應白底/黑線,即時反應感測器現在判斷的狀況。
接著實際在地圖上測驗眼睛的圖示,是否與放置的黑白線相同,在即時模式下要等青燈與白燈各閃完一次,才會刷新眼睛圖示,所以反應會稍微曼一些,確認圖示無誤之後就可以切換成"上傳"模式,並記得切換成"當按下A按鈕"作為程式起始的觸發,重新以上傳模式執行會發現狀況不一樣了,青白燈閃爍的速度快到像是持續亮著,這間接反應了兩種模式運算頻率的差別,眼睛圖示的反應速度也明顯地快上許多。
接著就要讓程小奔動起來了,根據四種狀況做出不同的動作,就能組合出循線的功能,由於地圖上的黑線寬度夠寬,能讓兩個感測器同時感測到黑線,即編碼為3時為直線前進,向左超出線時編碼為2則向右轉,向右超出線時編碼為1則向左轉,而編碼0的狀況較少出現,如此便可達成循線效果,轉動的動力不要設太大,以免超線後來不及校正失去航向。
另外在練習過程中,常會需要取回車體重新調整,為避免拿在手上時輪胎還在轉動,可做出按下B按鈕停止運轉的功能,以及為時時注意電池電量,可按下C鍵後顯示電量,避免忘記充電。
接著,就是當遇到色卡時該如何處理,在此示範遇到綠色色卡左轉的方法,由於色卡的優先級高於循線,因此將顏色判斷的程式置於迴圈的最前段,在判斷到綠色的反應流程中,除了主要的"左轉90度直到結束",前後還加入了"前進動力50%持續0.2秒",會多加這兩個前進動作其目的有二,讓車體轉彎90度不是問題,但必須讓車體在"轉向後能重新對到黑線",才能夠接續循線,並且"離開色卡避免重複判讀",以免對一張卡片做兩次動作,不同動作所需的修正量不盡相同,參賽者須自行調整以達到最高效率。
本篇重點在於分享程小奔穩定循線的核心技術,以及遇到色卡做反應可能出現的問題,至於接下來會的問題例如右轉、調頭的細節,如何忽略錯誤信標,以及如何進入礦坑取得目標礦物,就需要參賽者自行研究啦。
編按: 本篇依據2022最新修訂的競賽規則將原來的國小組與國中組修改成國小國中組與高中職組
文/圖 趙士豪
趙士豪Colombo老師,畢業於中央大學太空科學研究所,夢想是上太空到小行星上淘金,開啟第二次大航海時代-宇宙大航海,英文名Colombo就是自詡哥倫布。
在創客教育有多年經驗,曾任職 騏驥坊創客教育課程開發組長、林口康橋中學資訊科技專任教師、現服務於勁園國際。
興趣廣泛包含 雷射切割製圖、3D建模與動畫製作、遊戲程式設計,同時也是開源計畫的擁護者,經常在iPOE科技誌社群中分享各種有趣的開源軟體教學,想多認識我可在FB搜尋本名加好友,可以第一手看到我的各種有趣作品。
Copyright © 2018 勁園科教集團 All Rights Reserved