電腦積木式機器人是一種集機械設計、微電子控制、軟件技術及人工智能于一體的科學結晶,青少年學生往往對其充滿好奇與探究的欲望。學生通過裝配機器人、編寫調試程序、場地測試運行等環(huán)節(jié),在實踐中探究與思考,從而學習到程序、電子、機械等軟硬件知識,是一項十分有意義的科技實踐項目。本文主要闡述在機器人組裝、編程、控制等環(huán)節(jié)的一些技巧,供參加機器人比賽的師生參考。
一、在規(guī)則范圍內,合理組裝機器人硬件
機器人的運行需要專門的場地和一定規(guī)則。目前,中小學使用的機器人大多采用積木式的機器人模塊。模塊的數(shù)量、裝配位置決定機器人的形狀大小、重量、重心及運行速度、靈敏度等特性。一般情況下,機器人裝配體積較大,重心較低,能提高運行穩(wěn)定性,但速度與靈敏度會降低;反之縮小體積,減小重量,能提高速度、靈敏度,但穩(wěn)定性就會打折扣。具體情況需要根據(jù)比賽規(guī)則和場地確定。
圖1是一個簡單的競速比賽場地。規(guī)則是機器人在不越出跑道黑色邊線的情況下,根據(jù)經(jīng)過區(qū)域計分,區(qū)域分數(shù)相同則由時間快慢確定名次。
從競速角度考慮,在相同的電機、電池的條件下,一般應縮小機器人(車)的體積,減少重量,以提高車速,但前提是任務的成功率要高。圖1場地可通過檢測環(huán)形軌道的黑色邊線,及時地調整機器人的運行方向。若機器人的整體寬度較小,如車寬為二分之一軌道寬度,當車的一側檢測到黑線,會使車身與黑邊線的切線角度過大,如圖2。特別在半圓軌道,如果車速快,夾角又大,電機的反應時間、力量往往不夠,來不及做出轉彎動作,導致機器人容易出軌,影響成功率。這時,可以根據(jù)實際需要,加大機器人灰度傳感器位置的寬度,增大車輪間距,同時降低重心。如寬度達到軌道寬度的0.8,一側撞線時與黑線的夾角就比較小,機器人就容易調整方向,正確前行。
傳感器的安裝位置要合理,裝配牢固。比如圖3迷宮中運行的機器人,不能因為與擋板的一兩次觸碰就使紅外傳感器A改變方向,導致L1與L2的較大誤差。在實際裝配時,可以將重要的傳感器件裝配在車身內或者在傳感器與板的接觸方向加裝固件,以防止直接撞擊傳感器,如圖4。
二、編制合理、高效的程序
1.不要指望機器人能走出直線,合理應用左手或右手法則簡化程序設計
所謂左手法則,簡單地說,就是左邊有障礙,向右離開;左邊無障礙,向左靠近。右手法則反之。這種設計思路不僅可以減少程序的判斷,還能減少傳感器數(shù)量。機器人更容易調試與修改。圖3的在左手法則下,只需采用2個紅外傳感器,無需增加右側的判斷就能實現(xiàn)迷宮行駛。又如圖1的軌道競速,如果是順時針行駛,采用右手法則,不僅程序簡捷高效,還解決了彎道難點。如果馬達調試準確,可以讓機器人基本不撞線通過彎道,效果顯著。
2.程序中確定事件的優(yōu)先順序
條件判斷中,特殊情況應先處理。如機器人走迷宮,應用左手法則運行的基本策略有三種:①前方與左邊均無障礙,大幅向左轉;②左邊有障礙,小幅向右轉;③前方有障礙,較大幅度右轉。在程序中的處理順序剛好相反,即③②①的判斷順序。①是一般情況,而③則邏輯優(yōu)先②,因為在前方與左方同時有障礙情況,根據(jù)實際要求應向右大轉彎。
3.在程序中少用或不用固定時間延遲
固定延遲時間內,機器人的各種傳感器的參數(shù)不能被實時判斷,其運行狀態(tài)不能根據(jù)外界情況改變。比如在右轉彎的指令后延時0.5秒,意味著接下來的0.5秒時間將一直右轉彎,即便右側已經(jīng)撞墻或出軌,都無法更正姿態(tài)。因此,固定時間延遲雖然方便,但往往很難調試準確。
正確的做法是遇到時間判斷,應使用機器人自帶的系統(tǒng)時鐘,通過實時讀取和比較時鐘的辦法來達到延遲時間的目的。由于讀取的是瞬時時間,程序可以繼續(xù)執(zhí)行其他指令,有效控制機器人的狀態(tài)。系統(tǒng)時鐘讀取法可以滿足各種條件下的時間延遲需要,唯一的缺點就是在編程時比固定時間延遲麻煩。
4.在程序中采用模塊化和函數(shù)化編程,以便修改和增加指令
比如可以將馬達控制程序單獨編制函數(shù),主程序中根據(jù)需要隨時調用。馬達參數(shù)變化時,只需在函數(shù)中修改一次即可,既方便又不會遺漏。對于程序中的場地、環(huán)境參數(shù),即便該數(shù)據(jù)在程序中只用到一處,也應摒棄在程序內部直接修改數(shù)據(jù)的做法。正確的做法是把需要通過現(xiàn)場檢測獲取的數(shù)據(jù)用變量或常量代替,并將相應變量、常量置于程序的最前端進行賦值。數(shù)據(jù)變化時只需修改賦值,不僅提高了效率,還不會出錯。
三、充分利用機器人的內置顯示屏、喇叭輔助機器人的調試
眾所周知,機器人的顯示屏中顯示的是關鍵數(shù)據(jù),隨時觀察,有助于調試分析。但顯示屏往往太小,觀察比較費力。利用顯示屏的背景光或內置喇叭聲音輔助調試,會產(chǎn)生事半功倍的效果。
由于程序在執(zhí)行時速度非???,而機器人的機械器件相對反應較慢,有時候通過觀察機器人的運行并不能準確判斷故障原因。如機器人在走軌道時出軌,肉眼看不出灰度傳感器碰線時的馬達動作。這時,就可能有多種原因:(1)灰度傳感器壞掉;(2)馬達動力不夠;(3)場地黑線灰度檢測不正確;(4)程序控制出錯等原因。要判斷上述各種情形要花很多時間測試,效率低下。事實上,在程序中的灰度數(shù)據(jù)判斷語句后面加一句顯示屏的背光或喇叭發(fā)聲功能,上述問題就能迎刃而解。當灰度傳感器檢測到黑線數(shù)值,讓背光發(fā)亮;沒有檢測到黑線數(shù)值時,則關閉背景光。這樣便能明顯觀察到灰度傳感器的工作狀態(tài)及灰度數(shù)據(jù)的正誤,讓調試變得輕松許多。
以上是筆者在進行電腦機器人比賽教學時的一些心得體會,通過幾個簡單的場地例子加以說明,希望能給大家?guī)硪恍﹩l(fā)。
?。ㄗ髡邌挝唬赫憬瓕幉ㄊ斜眮鰠^(qū)大碶中學)