哈爾濱理工大學 黑龍江哈爾濱 150080
嵌入式系統(tǒng)是計算機、自動化和電子通信等眾多學科發(fā)展交匯的產(chǎn)物,屬于當前最熱門、最有發(fā)展前途的IT應用領域,嵌入式技術開發(fā)人才成為炙手可熱的緊缺人才,嵌入式人才市場需求大,但其門檻高、人才培養(yǎng)難度大已是不爭的事實。為了滿足社會對嵌入式人才的需求,嵌入式系統(tǒng)系列課程已經(jīng)成為計算機、自動化、電氣工程、測控技術、通信工程等多個相關專業(yè)的專業(yè)主干課程[1]。許多高校也先后設立了嵌入式專業(yè)方向,其教學大綱差別不大,學生一般在大一、大二進行通識課和相關專業(yè)基礎課的學習,到大三才開始嵌入式方向?qū)I(yè)課的學習[2],采用傳統(tǒng)的8位51單片機或32位的ARM單片機進行實驗教學,由于嵌入式系統(tǒng)設計的復雜性,教學效果不理想,畢業(yè)時往往只有極少數(shù)學生才能掌握其相關技術。
學校2010年設立了嵌入式專業(yè)方向,該方向選課人數(shù)逐年下降,學生學習嵌入式技術的興趣越來越小。如何激發(fā)學生的興趣、解決嵌入式技術入門難的問題一直困擾著我們。
2015年進行了教學大綱修訂,開始嘗試將開源創(chuàng)客平臺Arduino引入嵌入式教學,在大一開設嵌入式培訓課程,在大一上學期學生學習C語言和C++語言后,開設嵌入式系統(tǒng)入門基礎課程,大一的下學期開設嵌入式系統(tǒng)設計與實踐課程。
基于Arduino的嵌入式及物聯(lián)網(wǎng)基礎實驗系統(tǒng)即是配合課程改革而研制的。實驗系統(tǒng)2015年年初立項,2016年實現(xiàn)量產(chǎn),有力地支撐了課程的實驗和實踐教學。
嵌入式及物聯(lián)網(wǎng)實驗系統(tǒng)的設計理念,源于嵌入式系統(tǒng)硬件設計越來越趨向于模塊化,即在核心板或最小系統(tǒng)的基礎上,外擴包括各種傳感器、人機交互、輸入輸出設備和通信等多種模塊。另外,嵌入式系統(tǒng)作為物聯(lián)網(wǎng)的感知層,其與物聯(lián)網(wǎng)應用系統(tǒng)密不可分,同時也加劇了市場對嵌入式人才的需求。除此之外,實驗系統(tǒng)支撐的另外兩門課程—嵌入式技術基礎和物聯(lián)網(wǎng)工程導論課程,均為嵌入式方向?qū)I(yè)基礎課程,教學內(nèi)容以講授基礎理論為主,并不涉及具體技術,故其實驗重點應該放在與實際應用結合緊密的系統(tǒng)設計與實現(xiàn)上。選擇Arduino板作為核心控制器,就是由于開源創(chuàng)客平臺Arduino屏蔽了硬件的復雜性,具有平臺資源豐富、成本低、支持的模塊眾多、開發(fā)簡單、上手快等優(yōu)勢[3]。
實驗系統(tǒng)由嵌入式技術基礎實驗箱和配套的物聯(lián)網(wǎng)實驗盒兩部分組成。其實物圖如圖1所示,實驗系統(tǒng)組成的嵌入式實驗室如圖2所示。
圖1 嵌入式及物聯(lián)網(wǎng)基礎實驗系統(tǒng)
圖2 嵌入式基礎實驗室
2.2.1 嵌入式技術基礎實驗箱
嵌入式技術基礎實驗箱以Arduino 2560單片機為核心,DC5V供電。包括傳感器擴展板、控制主板、多種輸入輸出模塊、面包板、音箱、遙控器、杜邦線、USB數(shù)據(jù)線、電源轉換器等。主要硬件設計如下。
(1)傳感器擴展板:將Arduino大部分引腳和電源擴展出來,方便與多種模塊連接;另外還設計了SPI,I2C總線接口和數(shù)碼管串行接口,以及ZigBee模塊接口等專用插座,方便了物聯(lián)網(wǎng)應用系統(tǒng)的設計。擴展板還設計了獨立電源端子,增加電源驅(qū)動能力。
(2)控制主板:將電機驅(qū)動、指示燈、分立元件設計在一塊PCB板上,用杜邦線與傳感器擴展板連接。包括指示燈、光敏電阻、DHT11傳感器、電位器、蜂鳴器、三色燈、紅外接收頭和藍牙模塊等。
(3)數(shù)碼管和LCD液晶:采用并轉串技術,將所需I/O接口降低到3個。
實驗箱可開設的實驗包括:第一,有線和無線通信模塊實驗:異步串口通信、日歷時鐘模塊(I2C總線)、SD卡和RFID模塊(SPI總線)、紅外無線接收、藍牙模塊和ZigBee模塊等實驗。第二,人機交互接口模塊實驗:按鍵、蜂鳴器、遙控器、數(shù)碼管顯示和液晶顯示等實驗。第三,輸入/輸出接口實驗:溫濕度、光強度、超聲波測距、直流電機、步進電機和舵機等實驗。第四,物聯(lián)網(wǎng)應用及綜合實驗:智能家居、倒車雷達、智能小車、門禁系統(tǒng)和醫(yī)護管家等實驗。
在此基礎上,可將模塊任意組合,或添加某些模塊和電路,完成各種創(chuàng)意設計。軟件設計均提供封裝類庫,屏蔽了硬件的復雜性。
2.2.2 物聯(lián)網(wǎng)實驗盒
物聯(lián)網(wǎng)實驗盒由Arduino單片機和無線通信擴展板組成。擴展板集成了ZigBee模塊、GSM/GPRS模塊和WiFi模塊。
實驗盒可以獨立完成或與嵌入式技術基礎實驗箱組合完成多種物聯(lián)網(wǎng)應用實驗。目前已開發(fā)3種模塊的AT命令調(diào)試、參數(shù)設置,Xbee和WiFi模塊的通信實驗,GSM/GPRS模塊的通信,發(fā)短信實驗以及物聯(lián)網(wǎng)綜合應用實驗等8個實驗。
采用圖3所示的實驗方案,可實現(xiàn)多個物聯(lián)網(wǎng)應用系統(tǒng)。其中,物聯(lián)網(wǎng)盒上的Zigbee模塊設置為協(xié)調(diào)器,實驗箱上的Zigbee模塊設為路由器,可形成星型結構的無線傳感器網(wǎng)絡。協(xié)調(diào)器接收路由器上傳數(shù)據(jù),通過物聯(lián)網(wǎng)盒上的WiFi模塊或GPRS模塊將數(shù)據(jù)上傳云平臺。云平臺下傳的命令或數(shù)據(jù)由協(xié)調(diào)器發(fā)送給路由器。智能終端或手機APP通過WiFi或4G網(wǎng)絡與云平臺通訊,可實現(xiàn)多領域的物聯(lián)網(wǎng)應用,例如:智能家居、遠程監(jiān)控系統(tǒng)等。
圖3 物聯(lián)網(wǎng)應用結構圖
目前嵌入式實驗箱配套物聯(lián)網(wǎng)實驗盒,已開發(fā)了三十多個實驗,支撐了4門課程的實驗教學,多種類型的實驗設計滿足了實驗教學的要求,通過閱讀實驗指導書,學生可獨立完成實驗的硬件設計和軟件設計。嵌入式技術是實踐性很強的技術,實驗箱的研制使得課程教學方法的改革成為可能。例如,50學時的嵌入式技術基礎課程,由教改前的“44學時(理論)+6學時(實驗)”改革成“30學時(理論)+10學時(實驗)+10學時(實踐)”。4門課程實驗實踐學時見表1。
表1 4門課程實驗實踐學時分配表
實驗包括硬件設計和軟件設計兩部分,首先進行硬件設計:在實驗指導書的引導下,學生首先了解和掌握實驗原理,分析或設計實驗原理圖,然后用杜邦線進行硬件連接,體驗和實際應用與系統(tǒng)設計相近的高度模塊化的硬件設計技術,完成硬件設計。之后進行軟件設計:在Arduino IDE集成開發(fā)環(huán)境下,采用C,C++語言,按照編輯、編譯、下載、運行、調(diào)試和結果分析等步驟完成軟件設計。
實驗內(nèi)容的設計力求做到實用性、趣味性和多樣性相結合,例如,三色燈顏色漸變功能模擬景觀燈應用場景,蜂鳴器實驗可按簡譜播放歌曲,音箱可實現(xiàn)MP3播放器,按鍵、遙控、數(shù)碼管、液晶等實驗體現(xiàn)了常用的人機交互模塊的使用方法。串口,SD卡和RFID卡讀寫(SPI總線),日歷時鐘(I2C總線),紅外、藍牙以及物聯(lián)網(wǎng)盒中的ZigBee模塊,GPRS模塊,WiFi模塊的實驗,可以體驗多種有線和無線通信模塊在嵌入式系統(tǒng)和物聯(lián)網(wǎng)中的應用。而輸入輸出設備實驗包括溫濕度、光強度、超聲波測距、直流電機、步進電機和舵機等實驗。
實驗程序的設計不僅包含了各種函數(shù)庫和接口的使用方法說明,也包含了嵌入式系統(tǒng)設計技術中的高級(難點)技術,即外中斷和定時中斷。
實驗系統(tǒng)可促進學生嵌入式相關科學知識和技術的學習,樹立科學意識,熟練掌握嵌入式系統(tǒng)設計流程和方法,在實踐中不斷積累經(jīng)驗,掌握實驗操作技能。
(1)目前國內(nèi)市場上未見到同類產(chǎn)品的出現(xiàn),而網(wǎng)上銷售的Arduino入門套件成本雖低,但功能有限,模塊各自獨立,用于個人學習尚可,并不適合實驗教學。
(2)實驗箱的電路主板的設計將多種小型元器件和驅(qū)動電路集成在主板上;傳感器擴展板的設計使Arduino大部分引腳可直接用插孔式杜邦線連接;將多種模塊和主板固定在實驗箱的底板上,大大簡化了硬件設計過程。硬件設計時,學生在理解了電路原理后,只要用插孔式杜邦線連接器件和模塊即可,將由于初學者硬件連接和操作不當造成的硬件損壞降到最低,大大降低了硬件維護成本和工作量。
(3)并轉串模塊化設計,有效減少了引腳數(shù),節(jié)省了Arduino板大量輸入/輸出接口資源。
(4)面包板的設計目的是提高實驗系統(tǒng)的擴展性。
(5)實驗盒一盒多用的創(chuàng)新性設計,在有限的面積內(nèi),集成了3種通信模塊,采用短路套設計技術,僅通過一根USB線即可完成編程功能。同時替代了USBTTL轉換器和XBee擴展板的使用。
(6)軟件采用C,C++編程技術。Arduino是開源的創(chuàng)客平臺,在系統(tǒng)內(nèi)封裝了大量的類庫函數(shù)[4]。軟件開發(fā)流程簡單,使得編程上手容易,短時間內(nèi)能完成多種應用系統(tǒng)設計,可激發(fā)嵌入式技術初學者的興趣,感受設計樂趣,在玩中學,在做中學。
其特色體現(xiàn)在以下幾個方面。
(1)性能穩(wěn)定。近三年的實驗和實踐教學表明:嵌入式基礎實驗箱和物聯(lián)網(wǎng)實驗盒穩(wěn)定可靠,硬件故障率很低。
(2)易于操作和安全性好。由于實驗箱的高度集成化和模塊化,硬件設計只需用插孔杜邦線連線即可,簡單方便,一般情況下系統(tǒng)采用USB數(shù)據(jù)線5 V供電即可滿足供電要求,安全可靠,當實驗系統(tǒng)需要較大驅(qū)動電流時,也可外接電源。Arduino IDE開發(fā)環(huán)境從官方網(wǎng)站下載后,不用安裝,直接運行,非常方便,對上位機要求很低。
(3)通用性強。Arduino的軟硬件均是開源的,所有資源可免費從官網(wǎng)獲得。它是極客和創(chuàng)業(yè)者的首選。也適合其他專業(yè)的嵌入式技術的教學和學習使用。
(4)實用性。實驗系統(tǒng)有力地了支撐4門課程的實驗和實踐教學,已開發(fā)實驗三十多個,包括驗證性、研究性和綜合性三大類,另外在技能訓練、畢業(yè)設計實踐教學環(huán)節(jié)、電子設計大賽和物聯(lián)網(wǎng)大賽、創(chuàng)新創(chuàng)業(yè)項目中,實驗系統(tǒng)都發(fā)揮了重要的作用。
(5) 實驗系統(tǒng)成本很低且便于推廣。實驗系統(tǒng)很好地促進了學生實踐和創(chuàng)新能力的培養(yǎng)?;贏rduino的實驗系統(tǒng)解決了困擾教師多年的嵌入式技術門檻高,學生厭學、棄學的難題。
由于Arduino實驗系統(tǒng)的簡單易用性,大大降低了學習的門檻和難度,使學生克服了學習嵌入式技術的畏難情緒,短時間內(nèi)激發(fā)學習興趣,并能切身體會到實際應用系統(tǒng)設計與實現(xiàn)后的樂趣和成就感。為今后進一步深入學習51或ARM系列單片機打下了良好的基礎。
大一學生在完成C語言、C++語言、嵌入式入門基礎和嵌入式系統(tǒng)設計與實踐課程的學習之后,經(jīng)過在實驗箱上近60學時的實驗和實踐后,自信心和主動參與度有了很大的提高,利用Arduino板參加學院智能車比賽、黑龍江省物聯(lián)網(wǎng)和全國大學生電子設計大賽等,多名學生獲獎,學習Arduino之前這是不可能的,組隊參加比賽的過程,同時培養(yǎng)了學生的團結、合作精神。
近三年的實驗教學結果表明:嵌入式及物聯(lián)網(wǎng)基礎實驗系統(tǒng)促進了學生嵌入式相關科學知識和技術的學習,在嵌入式人才培養(yǎng)教學過程中發(fā)揮了重要作用,并在第五屆全國高等學校教師自制實驗教學儀器設備創(chuàng)新大賽中榮獲三等獎。