廣東省廣州市番禺區實驗中學 楊瀚盛
2017 年教育部頒布的《普通高中信息技術課程標準(2017 年版)》提出,基于開源硬件的項目設計與開發有益于激發學生創新的興趣,培養學生動手實踐的能力,同時也是在信息技術課程中實現STEM(科學、技術、工程、人文藝術與數學)教育的理想方法。
在國家大力推廣基于開源項目STEM 課程的大背景下,2019 年年初我校面向全體高一學生及部分初一、初二及高二社團學生開展以開源框架OpenMV 為基礎的人工智能計算機視覺特色STEM 課程。OpenMV 是一套 開源的、基于Python 的嵌入式計算機 視覺框架。OpenMV 在一塊小巧的硬件模塊上,提供豐富的硬件接口及Python 編程接口,使用者可以在不需要計算機圖像專業知識的情況下用Python 語言調用OpenMV 提供的計算機視覺庫實現諸如追蹤小球、物品的分揀,甚至解魔方機器人等功能。
正如課程標準所描述的,基于項目式學習的OpenMV 人工智能STEM課程能夠很好地培養學生的創新意識,加強學生的實踐能力。
項目式學習并非傳統講授課的簡單轉換,而應該是經過精心設計的教學方式,教師應該以項目為主線,并在主線上穿插若干精心設計的核心問題,學生通過查閱資料、學習新知、小組討論、協同實踐等手段逐一解決問題,從而最終完成項目任務。所以說,擬解決的問題是項目式學習的核心,也是衡量一個STEM 活動是否具有開展價值的重要標準。
為此,教師預設的問題需滿足如下兩個條件:
一是問題不應只是已有知識的簡單重復,它應有助于學生能力的發展。
二是問題的難度要把握得當,讓學生跳起來摘桃子。
本項目學習的主題是利用Open MV 制作一臺追蹤小球運動的智能小車,相關的問題則是需要學生選擇一款小車平臺并連接OpenMV,調用OpenMV 視覺函數、接口函數驅動小車運動。無論從軟件還是硬件的角度看,項目均需要學生綜合能力的運用,學生結合原有Python 語言、OpenMV等軟、硬件知識,在教師引導下通過小組協作學習完成,很好地滿足了以上的條件。
項目式學習主要包括項目情境導入、分析問題設計方案、項目實施、交流小結等環節。教師在項目情境導入環節創設問題情境,提高學生興趣,幫助學生理解項目的目的和意義;在分析問題設計方案環節教師著重引導學生運用所學知識對問題進行分析,準確把握問題的核心,確定解決問題的策略、方法,培養學生問題求解的能力;在項目實施環節,教師對關鍵核心問題提供充足的學習資源與幫助,從而指導學生順利實施項目過程,培養學生協作能力、創新精神與實踐能力;教師在交流小結環節組織學生以小組為單位進行項目匯報與經驗交流,引導學生進行評價、反思、改進、升華,培養學生表達能力、學會取長補短。
創設一個合適的情境導入項目活動,不僅能提高學生的學習興趣,充分調動學生的學習積極性,還能幫助學生更好地理解項目活動的目的和意義,讓學生更快地找準項目的核心問題,為后面項目開展作鋪墊。
本課在實際教學中我們以觀看電影《跟蹤》片段作為引入,警方在跟蹤犯罪嫌疑人過程中被發現并且不幸犧牲。此時,教師引導學生思考、探討,如果要設計一款自動跟蹤裝置應具備什么功能?學生很快能夠凝聚出共識,諸如應該有自由移行能力;安裝GPS 定位裝置;能根據相貌、衣著、身形等特征識別嫌疑人等。然后,教師揭開課程項目面紗:設計、制作“OpenMV 追球小車”,把情境導入環節推向高潮,學生帶著強烈的好奇心進入下一環節的學習中。
準確把握問題的核心,從而設計出合理的解決方案是項目得以順利開展的關鍵,但是,由于STEM 課程的多學科特性,STEM 項目往往涉及的知識面較廣,在課程實施過程中對學生掌握知識的廣度、深度提出了較高的要求。如此,在提出問題后如果任由學生天馬行空自由發揮,容易使學生思維過度發散,不利于教師把控項目進度。因此,學生在明確項目目標任務后,教師應該合理引導和幫助學生分析問題,尋求合適的解決方案。
具體到“OpenMV 追球小車”項目,教師可以引導學生探討如何合理使用OpenMV 的軟、硬件功能,構想實現這輛追球小車的多種可能性,并在此基礎上分析確定硬件、軟件方案。
一般先從較直觀的硬件方面入手,雖然學生已經對OpenMV 開發板有較深入的了解,但是要制作一臺能夠移動的小車,需要在OpenMV 基礎上添加更多的硬件設備。教師可以提供一些如巡線機器人、機器人足球比賽等相關視頻素材,學生在觀看相關視頻過程中對小車平臺形成一個初步印象,學生一般都能把現實世界中對汽車的認知遷移到這里。進而鼓勵學生通過互聯網查閱相關資料,更深入了解小車平臺的構造、工作原理等必備知識。因此,教師必須參與到學生的小組互動中,誘導學生提出生成性問題,調動學生的主動性,給出合理建議,引導學生形成一個高效、合理、低成本的解決方案。最后,教師可以給出OpenMV 官方標配的電機驅動板+小車平臺這一現成方案,學生在對比自選方案與官方方案的優、缺點后,進一步優化、改進自己的項目硬件解決方案。
軟件相比硬件更加抽象,如果前期沒有相關知識鋪墊,學生很難形成方案。我們首先從問題分析入手,教師引導學生回顧情境導入中設想的自動裝置是根據什么識別出嫌疑人的?相貌、衣著、身形,識別的關鍵就是被識別物體的特征。學生第一反應大多是把小球的形狀——圓形作為特征,這個特征非常明顯,如果我們使用一個純色小球,那么顏色也是小球的特征。這樣,學生就能夠把現有知識快速遷移到這個項目中,利用find_circle查找圓形函數或者find_blobs 查找色塊函數。
設計項目解決方案是建立在學生對項目問題透徹分析的基礎上的,只有設計出合理的方案項目才能順利實施。此外,學生在分析問題、設計方案過程中通過教師引導、查閱資料獲得新知并且結合其現有的知識進行知識重構,培養學生自主創新能力。
學生以小組為單位按照設計方案開展項目活動,實質就是學生在已有知識的基礎上不斷探索解決問題的過程。但是,受學生的預見性與能力等因素所限,在解決問題的過程中會衍生出更多新問題,教師應做好充分準備,預估在項目實施過程中學生的突出問題和主要困難并為此提供充足的學習資源,引導學生按步驟逐一破解難題,幫助學生順利完成項目。教師應遵循放手不撒手、指引不代替的原則,既要給學生以適當的幫助,又不能過度參與,把主動權還給學生。在這過程中,培養學生的實踐能力與合作學習能力。
以“OpenMV 追球小車”為例,為解決小車組裝可能出現的問題,教師可為學生準備組裝圖紙并列出主要步驟;OpenMV 與小車驅動板的連接也是一個難點,為此,我們準備了一個5 分鐘的微課,對主要接口的作用、如何連線、注意事項等進行必要的講解;軟件方面,輪子轉向、轉速需要使用Timer 類的PWM 功能,這方面知識學生初次接觸。因此,可以給予0.5 課時的講授;至于小球定位的圓形查找函數和色塊查找函數,學生在以前課程中已能熟練使用,定位小球的大小和坐標后,驅動小車運動了,當然這里還涉及一些簡單的數學公式,教師可以提前準備,并加以點撥即可。
在項目實施過程中學生也會有一些生成性問題是教師沒有預料到的,比如有的小組就提出為什么小車運行不夠平順,總是左右搖擺?為此,我們還專門介紹了PID 算法,但是像這類較復雜問題,以學生現有知識還沒法掌握,教師點到即止便可,也可把代碼封裝成類,直接提供給學生使 用。
項目完成后,教師應為學生提供平臺,讓學生充分展示項目成果,展示的方法可以采用成果介紹、經驗分享等多種形式。本項目我們還別開生面地組織了一場追小球競賽,兩輛小車同時追球,哪臺小車先跟丟小球就出局,最終決出了冠亞季軍。
最后,通過自我反思、小組互評和教師點評等方式進行小結,歸納遇到的問題,提出改進的意見。在小結過程中,學生紛紛提出諸如自己的小車攝像頭太矮被前車遮擋而跟丟小球;小車底盤太輕在碰撞過程中容易吃虧等問題。
以項目的形式把STEM 課程中零碎的知識點串聯起來,在開展項目學習的過程中,教師引導學生“在做中學”,充分體現學生的主體地位。在高中STEM 課程中運用項目式學習,能夠充分培養學生創新能力、問題求解能力、實踐能力、協作學習能力,項目式學習必將讓我校高中STEM 課程結出累累碩果。