高艷



在機器人比賽中,比較常見的有循跡賽,為保證學生學習的連貫性,同時又能科學地學習機器人的原理,筆者選擇在圖形化編程軟件中研究巡線小車如何沿著指定路徑進行運動,用圖形化的語言解決小車巡線編程問題。考慮到對于機器人的學習,所教學生大部分基礎為零,筆者將這一內容設計為以智能傳感為主題的圖形化編程單元,單元具體內容設計如下表。
從實物到虛擬,在圖形化編程中模擬傳感器的作用
1.通過講授,初步認識傳感器
考慮到學生的基礎,首先讓學生認識生活中的傳感器,如感應垃圾桶、智能抽水馬桶等,通過對傳感器的學習,學生認識到傳感器是用來偵測獲取數據的。
2.通過繪制色塊,創設虛擬傳感器位置
傳感器安裝的位置關系到程序的完成情況,但在圖形化編程中不用考慮傳感器如何安裝到小車上,可以通過圖像繪制的方式直接將傳感器繪制到小車上。前期,學生會繪制出各種形狀和顏色的傳感器,這可能會導致最后的程序運行結果發生錯誤,但在圖形化編程中造型切換非常便捷,如果發現傳感器數量或者位置不對,可在造型中隨時切換已繪制好的巡線小車或進行重新繪制,因此教師應盡可能鼓勵學生發揮想象力,大膽設計。
3.通過可視化編程語言,實現傳感器的作用
在圖形化編程軟件中繪制的傳感器只是一個圖案,并不具備傳感器應有的功能,需要可視化程序語言來實現最后的結果。教師可提供賽車游戲程序供學生體驗。
借力流程圖,架構自然語言與程序語言的橋梁
在機器人循跡賽中,地圖往往比較復雜,如果直接給學生復雜的軌跡圖,容易使其產生畏懼心理,所以,可以把軌跡分為直線、曲線、直角轉彎、十字交叉口、斷線等幾種情況繪制在不同的舞臺背景中,降低機器人學習的門檻,并讓學生體會利用流程圖,完成自然語言到程序語言的轉換,步驟如下:①讓學生用自然語言將需要完成的任務描述出來。②繪制流程圖,架構自然語言與程序語言的橋梁,要求學生將直線巡線任務用流程圖繪制出來。③分析小車巡線的流程圖,找出流程圖中各部分在圖形化編程軟件中的語言模塊,并組合起來。④嘗試運行程序,并進行調整。
循序漸進,探索不同數量傳感器及不同巡線方法
1.遷移生活經驗,把復雜情況簡單化
對于初學者來說,多傳感器巡線難以理解,因此可從單個傳感器開始學習小車巡線編程。學生大都在生活中觀察過其他人開車,開車時如果方向偏了,就把方向盤向相反方向轉動。單傳感器巡線法也類似,但行進路線卻是弧線,因為小車需要不斷地判斷是否偏離路線,這種判斷方法也被稱作弧線法。
例如,在上頁圖1中,將巡線小車放在黑線的左側,一般情況下小車會判斷行進方向是正確的,通過判斷傳感器色塊與軌跡色塊是否相遇的偵測命令,模擬傳感器的感應和判斷,因此當色塊右側邊緣觸碰到黑線時,會被認作方向出現了偏差,需要修正方向。學生的疑惑往往在應該向哪個方向轉,而利用生活情境,學生能快速準確地判斷轉向。在左弧線法中,小車向右行駛,當色塊觸碰到白色區域時又向左行駛。反之,也可將小車放在右側巡線。但這種方法即使走直線,小車也不夠平滑。遇到角度較大的彎道,小車做出修正方向的判斷,就會導致轉彎角度過大而跑偏。
2.嵌套分支結構,把復雜問題簡單化
要想讓小車能識別各種路線,就需要增加傳感器。增加傳感器意味著算法更加復雜,這種左右傳感器夾住一根線巡線的方法也可稱為夾線法,它更加接近于生活中的駕車經驗,左偏右轉,右偏左轉,比弧線法更加平滑,但操作中學生通過試錯,會發現如果左右兩側色塊繪制得太過接近或者使用同色,可能會導致最后的失敗(如圖2)。
從流程圖(如圖3)中可以看出兩個傳感器的判斷可以看作是一個修正方向,尋找黑線的分支結構,把一個簡單的分支結構嵌入到另一個分支結構中,一步步分解開來按一定的順序逐一調試,有助于理清思路。
3.通過表格記錄,把復雜規律簡單化
多傳感器巡線小車程序中會嵌套多層分支結構,如三傳感器巡線小車的三個傳感器遇到黑線的情況可以分解成三種“如果……那么……否則……”的情況,每個否則中都嵌套了一個“如果……那么……否則……”語句,這樣的情況很難用自然語言描述清楚,而如果借助表格結合圖示,則能一目了然,利于理解。
在小車上分別繪制左、中、右三種色塊,始終保持中間色塊在黑線。可以把三傳感器看作是騎線法的升級版,如果中間傳感器檢測到黑線,意味著小車沒有跑偏,就不需要再進行左、右傳感器的偵測,即使遇到斷線,也可以平滑地走過。需要注意的是,隨著傳感器的增多,偵測時間會增長,小車行走速度也會變慢。
從單個傳感器到多個傳感器,利用圖形化編程解決小車巡線編程問題直觀、快捷,既節約了組裝真實機器人的時間和費用,也方便對算法進行檢查,同時,讓學生體驗到了機器人活動的樂趣。