張雷++趙學健
摘 要:針對物聯網工程專業的實踐教學實際情況,分析、探索開源硬件平臺在物聯網工程教學的不同層次的應用模式,利用開源硬件積木式、易擴展等特點繼續擴大開源硬件的課程應用范圍,使得最終建立具有學習一致性并可柔性擴展的實踐教學模式。
關鍵詞:開源硬件 Arduino Yun 實踐教學
中圖分類號:G642 文獻標識碼:A 文章編號:1674-098X(2017)01(a)-0158-02
1 物聯網工程專業實踐教學
我國物聯網產業的蓬勃發展一方面帶動了旺盛的物聯網人才需求,另一方面也對物聯網人才的素養提出了更高要求。因此各大高校在設置物聯網工程專業的人才培養目標時,也極力貼合物聯網產業的需求特點,強調以培養具備實踐能力和創新能力的專業復合型人才為目標[1]。
為了實現物聯網工程應用復合型人才培養的目標,物聯網工程專業在教學體系中很重視實踐教學,從專業課、課程設計到畢業設計等各個環節都強調以實踐鍛煉學生實踐與創新的綜合能力[2]。但是在以往的實際教學操作中,實踐教學效果存在以下一些問題。
(1)學生的主體性不足。物聯網工程專業要求學生掌握微機接口原理、傳感器原理及應用、操作系統原理、計算機網絡、無線傳感器網絡等大量專業課程內容。目前的專業課教學過程中,老師一般在完成既定理論知識教學任務后,輔以少量的演示性實驗或驗證性實驗。每門課程使用不同的實驗平臺,學生需要浪費大量時間熟悉該課程的實驗平臺。而這往往是前期已經掌握的簡單重復性工作,導致大多數學生只能是被動機械地完成學習任務,很難調動學生的學習主動性。
(2)連續性和完整性不足。目前最廣泛應用的課程模式仍然是各個課程通常各自為政,很少重視課程之間的聯系。每門課程各自為政,不同課程的實踐教學之間缺少整體的連貫設計,難以體現教學實踐難度的遞進性,一般學生如果無法在短暫學時內主動消化吸收所學的大量知識,很容易失去學習興趣。
(3)深度參與性不足。物聯網工程專業特點要求學生掌握從底層硬件設計、中間層固件設計到應用層軟件設計,才能完成一個相對完整的物聯網系統設計。如果每次都需要從零開始搭建一套物聯網系統,對學生而言工作量巨大,難以在有限的課程實踐環節里真正地去參與設計和完成一個系統工作,更不用說在完整性基礎上做進一步的創新實踐。
總之,物聯網技術作為新興的邊緣學科,涉及到通信、電子、計算機、自動控制等多個交叉學科。物聯網工程專業的課程設置覆蓋范圍廣,課程體系的教學任務重。如何在有限的教學時間內實現學生實踐創新能力的提升,是目前實際教學操作中存在的主要問題之一。
文章以Arduino Yun為例,試圖將開源硬件引入到物聯網工程專業的實踐教學,建立以學生為主體的一體化柔性教學實踐框架,作為理論教學的有效補充,同時探索本科課程實踐教學的改進方向。
2 開源硬件優勢
開源硬件是指免費、公布詳細的硬件設計信息的計算機和電子硬件。開源硬件提供了一種快速開發原型系統的方法,使得開發者可以將精力集中于創意與實現,節約學習成本,縮短開發周期。代表性的開源硬件項目比如最著名的開源單片機板Arduino[3]、開源ARM板BeagleBoard、開源手機Openmoko等。
開源硬件的出現體現了當今技術創新的新趨勢,以Arduino為例,將開源硬件引入到物聯網專業課程實踐教學具有以下優勢[4]。
(1)上手簡單。Arduino的編程語言基于過程語言開發,編程環境簡單友好,不需要太多的硬件或編程基礎就可以進行快速開發,容易激發學生的學習興趣。
(2)擴展容易。Arduino發展至今,已經積累了豐富的功能擴展模塊,如電機驅動模塊、Wifi通信模塊等。并且模塊對應的各種庫函數也是開源的,比較容易實現對其進行集成、派生、重載等二次開發。
(3)深入探索。以Arduino為例,其硬件原理圖、電路圖、IDE軟件及核心庫文件都是開源的,在開源協議范圍內可以任意修改原始設計及相應代碼。為學有余力的學生進行創新實踐留下充分的探索空間。
(4)活躍的互聯網社區群支持。Arduino開源硬件擁有龐大的社區用戶、大量的示例教程和創新項目。以Arduino Yun為例,Temboo云平臺為Arduino Yun提供了數百個API可以直接用于應用開發[5]。此外,利用Arduino開發過程中可以與網上眾多創客進行交互討論,獲得直接技術支持與創意反饋。
3 開源硬件在物聯網工程專業實踐教學的應用
由于開源硬件具備的種種優勢,考慮將開源硬件引入物聯網工程專業的實踐教學體系。物聯網工程專業的實踐教學分為知識驗證、基礎實驗、綜合實驗和創新設計這幾個實踐層次,如表1所示,始終將Arduino Yun融入貫穿于整個實踐教學過程,形成大學4年實踐教學環節不斷線的培養過程,建立具備連貫性和一致性的實踐教學模式。
3.1 課堂演示類
利用Arduino開源硬件形成課堂演示案例,可以使得課堂教學更具趣味性。Arduino開源硬件有大量的庫函數可以供教師根據需要調用,快速完成演示程序,節省教師備課工作量。如在C編程語言課程教學中,基于Arduino平臺完成以下案例示范。
(1)條件判斷:讀取鍵盤輸入,switch指令判斷執行相應的加減乘除計算,在監視終端顯示相應具體結果。
(2)字符串操作:在Serial Monitor的編輯框里輸入一個字符,如果字符與之前保存的字符不同則保存,最終使用Printf指令在監視終端打印輸入的字符串。
(3)冒泡排序:在Serial Monitor的編輯框里輸入一個數字,單擊send向數組里保存一個數字,數組更新時Arduino通過串口向計算機返回一次排好序的數組。
3.2 基礎實驗類
學生進入專業課的教學后,利用易上手的Arduino開源硬件,引導學生逐步熟悉各項模塊功能,盡快建立學生對于專業課程的興趣。如微機原理與接口技術的教學中,教學實驗要求學生基于Arduino平臺完成以下課程實驗。
(1)定時器/計數器:利用定時器在輸出引腳上輸出4ms的矩形波程序,要求占空比系數為1∶3,并控制一個LED的輸出狀態。
(2)定時中斷/事件中斷:用按鍵產生事件中斷,實現LED輸出狀態反轉一次。用單片機內部定時器中斷方式計時,實現每5 sLED輸出狀態反轉一次。
(3)UART串行通信:在Serial Monitor的編輯框里輸入一個數字,單擊send向數組里保存一個數字,數組更新時Arduino通過串口向計算機返回一次排好序的數組。
3.3 課程設計
課程設計是在短學期的一到兩周時間內,要求學生在指定課題下完成一個相對完整的系統設計。在此基礎上,采取加分的形式鼓勵學生在原題目基礎上進行創新擴展部分應用。在課程設計項目時,學生已經積累了Arduino開源硬件的使用經驗,可輕松地利用開源平臺進行設計,使得所完成的項目系統性更強,項目內容自身也更加生動有趣,學生在項目實踐中獲得的經驗值更高。
以傳感器原理及應用為例,其課程要求學生基于Arduino Yun設計霍爾傳感器的一個應用系統。電機驅動一塊磁鐵在一條軌道上來回運動,軌道一端安裝有接近開關(開關型霍爾傳感器)。當磁鐵經過接近開關時,可以從測量電路上測得脈沖信號。Arduino平臺采集霍爾傳感器輸入,計算磁鐵的運動速度與位移,并將結果發送至web端繪制速度與位移曲線圖。同時,一旦出現速度異常,報警信號將被發送至郵箱/手機。
3.4 畢業設計
在完成了以上教學實踐練習后,學生具備了初步系統設計和實現能力,可利用開源平臺開展具有更加綜合設計要求的畢業設計或科技競賽。通過利用開源平臺開展綜合設計,有利于學生實踐能力的進一步提高,有利于培養學生在短時間內進行爆發式創新的能力。
以畢業設計為例,要求學生根據應用需求的調研,基于Arduino開源平臺迅速搭建一個原型系統,省去了大量底層重復性代碼工作量,可以集中精力研究原型系統的創新設計、問題算法設計和系統性能分析。在限定的3個月時間內,可以實現更加完整的原型系統,使得學生的大部分時間可以分配在對全局問題的思考和系統級的創新中。
4 結語
通過上述環節的持續正向刺激學習,有效地激發學生主動、自主學習的積極性,在快速掌握課程知識的同時切實提高學生的創新能力。將開源硬件應用到物聯網專業課程實踐教學順應了技術創新的趨勢,通過逐漸引導學生進入完整的項目實踐,在更連續持久的項目時間中培養其創新應用能力。
參考文獻
[1] 安健,桂小林,楊麥順,等.物聯網工程專業實驗教學初探[J].實驗室研究與探索,2014,33(10):151-155.
[2] 馬忠梅,孫娟,李奇,等.物聯網工程專業課程體系與實踐探討[J].單片機與嵌入式系統應用,2011,11(10):1-4.
[3] 蔡睿妍.Arduino的原理及應用[J].電子設計工程,2012,20(16):155-157.
[4] 朱軼,曹清華,單田華,等.基于Android、樹莓派、Arduino、機器人的創客技能教育探索與實踐[J].實驗技術與管理,2016,33(6):172-176.
[5] Marco Schwartz.Internet of things with Arduino Yun[J].Exupery,2014,10(7):538.