韓蕾 鐘柏昌 張祿
筆者嘗試將《障礙停車挑戰賽》一課的知識點以比賽的形式應用到具體的機器人教學實踐過程中,設計符合課堂教學情境的比賽形式,將為學生帶來不一樣的學習體驗。在教學時,筆者將程序的迭代過程寓于比賽的測試階段,并在比賽過程中給學生提供扮演不同角色的機會,以此來進行教學實踐以便提高學生的學習興趣與解決問題的能力。
方案設計
1.教材與學生情況分析
本節課內容選自冀教版機器人教材八年級下冊第十四課《障礙停車挑戰賽》,主要達成的任務目標是小車在規定的時間和距離內實現精準停車。在本節課之前,學生已學習了“超聲波傳感器的功能及使用方法”與“MiniQ小車運動控制”的相關內容,并且完成了小車循線挑戰的比賽,為本節課的教學奠定了理論及實踐基礎。本節課的教學對象為八年級的學生,經過之前的學習,學生已經習得了小車運動方向、速度等基本控制方法,具備了一定的機器人測試與調試的實踐經驗;同時,在實踐過程中已逐漸形成了不斷改進機器人功能的迭代思想。
2.教學目標
知識與技能目標:進一步熟悉超聲波傳感器的使用;掌握“上電運行時間”模塊在ArduBlock中的使用方法;能夠使用超聲波傳感器制作避障小車。
過程與方法目標:了解障礙停車挑戰賽的一般過程,了解各個角色在比賽中的職責和作用;在完成障礙停車挑戰賽的過程中體驗機器人的測試與調試,將迭代思想遷移到實際問題的解決過程中。

情感態度與價值觀目標:以比賽的形式,激發學習機器人的興趣并主動投入到學習過程中。
3.可選方案的設計與選擇
本次比賽要求學生制作的避障小車能夠在10秒內到達終點線,并實現小車與終點線之間距離的最小化(不能超越終點線),難點在于控制小車的運動時間和小車與障礙物之間的距離。對比賽任務進行分析后,筆者就“計時”和“測距”兩方面設計了如上頁表1所示的幾種方案。
對比表1中“計時”的三種方案,方案一無需考慮編程因素,但需耗費人力,且計時不夠自動與精確,方案二只需要使用“上電運行時間”模塊,而方案三則涉及多個變量的使用。比較而言方案二更簡潔,而方案三可以更加精確地獲取程序某一階段運行的時間而不是程序運行的總時間。由于本課實例要求程序的運行時間與小車運動時間相等,故筆者選擇方案二。在“測距”的兩種方案中,方案四與方案五均能實現測距功能,但紅外線傳感器的成本遠高于超聲波傳感器,考慮到經濟因素,筆者選擇了方案四。

硬件搭建
障礙停車挑戰賽需用到的硬件器材主要包括Romeo控制器、MiniQ小車、超聲波傳感器。
1.Romeo控制器
本次課采用的主控板是由DFRobot出品的Arduino Romeo V1.3,該控制器采用最基礎且應用最廣的UNO板卡。
2.HC-SR04超聲波傳感器
該傳感器運用聲納原理,通過監測發射一連串調制后的超聲波及其回波的時間差來得知傳感器與目標物體間的距離值。它的性能比較穩定,測試距離精確,盲區為2cm,最大探測距離為450cm。它有4根針腳,分別是VCC、GND、Echo和Trig,其中Trig是超聲波發射端,Echo是超聲波接收端。
3.硬件搭建

學生分別將超聲波傳感器、MiniQ上的電機與Romeo控制器相連接,其中超聲波傳感器的Trig和Echo分別與Romeo連接數字針腳,如圖1所示。圖中Trig和Echo分別連接的數字針腳為9和8。
程序編寫
學生將硬件搭建好后,便可進行程序的編寫,本節課所采用的編程環境為圖形化編程軟件ArduBlock。
本課的程序設計包含兩部分:一是小車運動時間的控制,二是小車與障礙物之間距離的控制。利用 模塊獲取程序運行時間即小車運動的時間,比賽規則中要求小車在10秒內完成比賽,因此當小車的運動時間小于10秒時小車運動,否則小車停止。筆者利用超聲波傳感器測量小車與障礙物之間的距離,終點線距離障礙物只有10cm,因此當小車與障礙物的距離大于10cm時小車運動,否則小車停止。本課中時間與距離控制均用到了選擇結構,因此為了使時間控制與距離控制同步進行,筆者讓學生在編程的過程中運用了選擇結構的嵌套,如上頁圖2所示。
拓展應用
實現小車避障功能有很多種方法,本課采用小車遇到障礙物時停止運動避免碰撞的方法,也能用其他方法進行拓展應用。例如,當小車距離障礙物一定范圍向左轉彎或向右轉彎時,需要運用雙輪差速原理來控制小車運動的方向,并且在小車轉彎的過程中繼續進行小車與障礙物之間距離的探測,若距離仍在可能發生碰撞的范圍內時小車需繼續調整行駛的方向。比較本課案例的程序設計思路,拓展應用中的程序設計涉及的編程知識更豐富,而且小車的避障功能更加智能。
教學實踐
在本課的實際教學過程中,筆者是通過以下四個環節來完成的。
1.引入主題,了解賽制
在本課開始時,筆者先引入“避障小車”這一主題,介紹何為“避障小車”,讓學生對避障小車的運動方式及工作原理有所了解。
比賽時,把距離障礙物2m處的線作為起始線,距離障礙物10cm處的線作為終點線。小車從起始線開始行駛,到終點線停止,行駛時間不得超過10秒鐘。小車停止位置離終點線最近者為勝,小車越過終點線則成績作廢,比賽場地如圖3所示。
筆者將學生每兩人分為一組,共分為16個小組進行比賽,比賽分初賽和復賽兩輪進行。初賽時以抽簽的形式將每四個小組組成一大組,并分為A、B、C、D四組進行比賽,每大組中的優勝組將參加復賽。若小車超過終點線或者在規定時間內電機沒有停止則成績作廢,每組中成績的距離值最小者為優勝隊伍,若距離值相等,則使用時間最短者勝出(即最先到達終點位置的組),比賽用表如表2所示。
2.梳理思路,合作探究
學生完成項目需要解決以下三個問題:一是小車須在10秒內停止運動;二是小車停止運動時距離障礙物的距離大于等于10cm;三是小車的時間控制與距離控制同步執行。在本環節中,教師需要引導學生整理解決這三個問題的思路,并與組員配合完成避障小車程序的編寫。
首先,教師提出問題:在比賽中如何控制小車運動的時間?學生回答。教師歸納學生提供的方法,分析其可行性,并結合學生的回答給出以下三種計時方式:第一種,利用計時工具計時,淘汰運動時間超時的隊伍;第二種,利用ArduBlock中的“上電運行時間”控制程序的運行時間,即控制小車的運動時間;第三種,獲取小車開始運動的時間與小車運動的實時時間,利用時間差來控制小車的運動時間。教師要求學生對這三種方法進行分析,選擇可執行度最高的方法并說出理由。教師總結:第一種計時方式誤差最大且消耗人力,第二種方式計時較精確且自動化,第三種方式計時精度最高但編程較復雜。最后,教師引導學生確定選擇第二種計時方式,并介紹“上電運行時間”模塊的應用。
比賽時,小車距離終點線越近越好,即要控制好小車停止運動時與障礙物之間的距離。教師提出問題:如何實現小車與障礙物之間距離的控制?因為在之前的學習過程中學生已經對超聲波傳感器的應用有所了解,在此學生很容易回答出“利用超聲波傳感器來測距”的答案。教師帶領學生復習超聲波傳感器的應用方法及工作原理,并與紅外線傳感器對比,明確使用超聲波傳感器測距更具有優勢。
教師提出問題:小車運動過程中既要執行時間控制又要實現距離控制,如何使這二者同步執行呢?
在學習本節課之前,學生已經學習過選擇結構的使用,此時教師引導學生思考并引出利用選擇結構的嵌套來實現小車時間控制與距離控制的同步執行。小組成員合作完成避障小車程序的編寫,在學生編寫程序的過程中教師予以適當的指導。
3.測試作品,完成比賽
學生在完成編寫避障小車程序的基礎上,測試小車的運行情況,因為每臺小車的性能各不相同而且由于慣性的原因小車會在程序終止后繼續運動一段距離。所以,此時教師應提醒學生根據小車的運動情況對避障小車程序進行修改,在經過不斷的調試之后找到合適的參數,以使避障小車的運動效果達到最佳,也就是既快又穩地到達終點線。教師在調試過程中應聯系實際生活,教會學生在遇到問題時應嘗試選擇最佳方案,并在執行的過程中不斷完善,使學生體會迭代思想的價值,深化其對迭代思想的認知。
根據比賽流程進行比賽,每一大組中各選取一位評分員與記分員,評分員的職責為測量小車距終點線的距離,記分員的職責為記錄各組的成績。初賽時,若其中一組進行比賽則由其他三組的評分員與記分員進行分數統計。復賽時,由被淘汰組的評分員與記分員來進行分數的統計。
4.拓展應用,課堂總結
基于本節課所執行的項目,教師為學生提供了拓展思路,即避障小車實現避障功能可使用遇到障礙物停止運動的方式,也可用小車遇到障礙物更改運動方向的方式。教師引導學生借鑒該思路進行本項目的拓展提升,鼓勵學生提出更好的想法并付諸實踐。
教師總結本節課中學生的表現,并對他們在操作過程中出現的共性問題予以講解,對表現較好的學生給予表揚。
教學反思
在課堂教學中,教師引入比賽的形式能更好地激發學生對Arduino機器人的學習興趣,從學生對知識點的掌握情況來看,學生在比賽過程中能夠主動對障礙小車編程進行優化,并在該過程中深化對知識點的理解與認知。評分員和記分員在比賽過程中均能很好地完成相應的任務,并表現出了評委角色所應具有的責任意識。
當然,筆者教授本課時還有一些不足之處。首先,應盡量對教室內的可用空間進行合理規劃,使每組的作品在參賽前都能進行充分的測試與調試。其次,設置更多的“角色”以供學生進行選擇,如比賽主持人、紀律監督員等,從而使學生在比賽中能感受到較強的存在感與主體意識,并體會不同角色帶來的實踐感受。最后,可將本課的基礎知識與基本技能部分作為學生的課前學習任務。教師應嘗試使用翻轉課堂的形式,在課上針對學生學習中遇到的問題進行答疑解惑,從而提高教學效率,為程序測試、調試及比賽爭取更多的時間。
本文為國家社科基金教育學青年項目“多平臺、跨學科、聚類化、重創造的中小學機器人教育研究”(項目編號:CCA130133)研究成果。