孟利民,許恩澤,柯旭清,宋秀蘭,彭宏
(浙江工業(yè)大學 信息工程學院,浙江 杭州)
隨著信息技術(shù)的快速發(fā)展和傳統(tǒng)產(chǎn)業(yè)改造升級的不斷深入,企業(yè)對人才的技術(shù)技能和創(chuàng)新能力提出了更高要求。高校向社會輸出的工程人才,應(yīng)不僅僅具備較高的理論水平,同時也要掌握相當?shù)墓こ棠芰1]。嵌入式系統(tǒng)以應(yīng)用為中心,以計算機技術(shù)為基礎(chǔ),對軟件和硬件能力都有較高的要求[2]。要想培育出優(yōu)秀的嵌入式行業(yè)技術(shù)人才,與之相關(guān)的專業(yè)課程教學應(yīng)該不僅僅具有理論系統(tǒng)性,更要具有工程實踐性[3]。
實驗教學是嵌入式教學的重要環(huán)節(jié),是培養(yǎng)學生工程能力的關(guān)鍵[4]。然而傳統(tǒng)的嵌入式實驗教學規(guī)定了學生做實驗的時間段和地點,這使得其在時間與空間上都存在局限性,造成一定程度的資源浪費[5-6]。除此之外,傳統(tǒng)的教學方式無法滿足突發(fā)性情況下的教學需求。
基于傳統(tǒng)教學方式的不足,本文提出一種嵌入式遠程實境實驗教學系統(tǒng)。用戶可以通過電腦上的開發(fā)平臺來下達指令,這些指令通過互聯(lián)網(wǎng)發(fā)送給實驗室中的實體設(shè)備,設(shè)備將根據(jù)指令進行一系列的實驗操作,然后將結(jié)果通過互聯(lián)網(wǎng)重新反饋給用戶。實驗全過程中設(shè)備的運行情況也將通過攝像頭回饋給用戶,以滿足部分存在視覺需求的實驗。整個過程就像是用戶親身在實驗室里做實驗一樣。采用遠程實境實驗的方式,可以完全解放學生實驗地點的限制,而用戶采用預(yù)約的方式進行實驗,也可以很大程度的錯開彼此做實驗的時間,避免某個時間段大批量人群進行實驗而另一時間段無人操作的情況,更有效地利用了實驗設(shè)備資源。
近年來虛擬仿真技術(shù)發(fā)展迅速,在實驗教學領(lǐng)域大受歡迎,國內(nèi)高校的化工[7]、土木[8]、機械[9]等專業(yè)都開設(shè)了基于虛擬仿真的相關(guān)教學實驗課程。
虛擬仿真技術(shù)是用一個虛擬的系統(tǒng)模仿另一個真實系統(tǒng)的技術(shù),其建立在相似原理這一基礎(chǔ)上。利用軟件模擬塑造一個與研究對象幾何要素及物理要素都相似的模型,通過研究此模型就可以間接地研究原型[10]。虛擬仿真實驗可以模擬全套實驗所需的設(shè)備,讓學生通過一臺電腦就能實現(xiàn)教學實驗的全過程,了解實驗原理和實驗過程,具有交互性良好、節(jié)省資金、操作簡單等優(yōu)點。
然而虛擬實驗的結(jié)果偏于理想化,在硬件種類繁多、硬件狀態(tài)復(fù)雜多變的嵌入式實驗中,虛擬仿真并不能夠完全的模擬實際設(shè)備的運行狀態(tài),虛擬實驗與實際操作實驗設(shè)備得到的實驗結(jié)果差別較大,這使得虛擬實驗不具備實際實驗的真實性[11]。相對于虛擬仿真實驗,遠程實境實驗具有與實物實驗完全一致的效果,更真實,也更貼近工程實踐。
遠程實境實驗教學系統(tǒng)由模擬操作界面、云端服務(wù)器,加上實體實驗設(shè)備組成。用戶可以通過電腦上的操作界面來下達指令,指令上傳到云端服務(wù)器,由其作為中轉(zhuǎn),再把指令傳輸?shù)綄嶒炘O(shè)備上,實驗設(shè)備根據(jù)這些指令從而進行一系列的實驗動作,最終通過傳感器將實驗數(shù)據(jù)傳回給用戶。作為新型的實驗形式,遠程實驗不是傳統(tǒng)實驗的簡單網(wǎng)絡(luò)化,其在實驗過程中強調(diào)在線探究式學習策略以及對學習者實驗行為的記錄與反饋,在基于數(shù)據(jù)整合與分析的基礎(chǔ)上對其進行在線評價[12]。
本系統(tǒng)的硬件設(shè)施已經(jīng)在傳統(tǒng)實驗方式下進行了多年,其教學性與安全性都得到了一定的驗證,因此,嵌入式遠程實境實驗教學系統(tǒng)的實現(xiàn)關(guān)鍵即是嵌入式設(shè)備與服務(wù)器之間的通訊。
本系統(tǒng)采用B/S 架構(gòu),由Web 前端、Web 服務(wù)器、SIP 信令服務(wù)器、MySQL 數(shù)據(jù)庫和嵌入式設(shè)備五部分組成。本系統(tǒng)的軟件設(shè)計框圖如圖1 所示。
其中Web 前端提供了用戶登錄界面和交互界面,將用戶選擇的前端標簽和輸入的指令轉(zhuǎn)為HTTP請求發(fā)送給Web 服務(wù)器。Web 服務(wù)器基于linux 操作系統(tǒng)平臺,采用PHP 語言搭建,配合Nginx 服務(wù)模塊、MySQL 數(shù)據(jù)存儲模塊,其承擔的職責有:提供個人PC 機上傳與下載文件的接口,提供嵌入式設(shè)備下載文件的接口,管理數(shù)據(jù)庫信息,將Web 前端發(fā)送過來對嵌入式設(shè)備進行操作的命令消息從HTTP協(xié)議轉(zhuǎn)為SIP 協(xié)議并轉(zhuǎn)發(fā)給SIP 服務(wù)器。SIP 信令服務(wù)器負責接收嵌入式設(shè)備和Web 服務(wù)器發(fā)送來的SIP 消息,通過對SIP 消息的解析確定其消息類型然后進行相應(yīng)的轉(zhuǎn)發(fā)。本系統(tǒng)中主要用到兩種類型的SIP 消息,分別是“REGISTER”和“NOTIFY”類型。其中“REGISTER”消息類型用于嵌入式實驗設(shè)備的綁定注冊和心跳?;?,“NOTIFY”消息類型則是對嵌入式設(shè)備進行操作的命令消息的載體。嵌入式設(shè)備會在開機的時候向SIP 信令服務(wù)器發(fā)送一個“REGISTER”類型的SIP 消息,使本設(shè)備注冊上線,并且開機過程中每隔15 秒發(fā)送一次“REGISTER”消息以維持本設(shè)備與服務(wù)器的連接。同時,嵌入式設(shè)備接收、解析SIP 服務(wù)器轉(zhuǎn)發(fā)的“NOTIFY”類型的SIP 消息,獲得用戶發(fā)出的指令并執(zhí)行該條指令,最終將執(zhí)行結(jié)果通過http 請求反饋給Web 服務(wù)器。MySQL 數(shù)據(jù)庫中存儲前端用戶信息、嵌入式設(shè)備信息、用戶綁定信息、嵌入式設(shè)備在線狀態(tài)、設(shè)備操作結(jié)果等數(shù)據(jù),數(shù)據(jù)會根據(jù)Web 服務(wù)器和SIP 信令服務(wù)器接收到的消息實時變動。
本系統(tǒng)內(nèi)嵌入式設(shè)備與服務(wù)器進行視頻、音頻、數(shù)據(jù)等信息傳輸、交換、控制時遵循的通信協(xié)議結(jié)構(gòu)如圖2 所示。
圖2 通信協(xié)議結(jié)構(gòu)圖
在進行指令交互以及數(shù)據(jù)傳輸過程中會建立兩個傳輸通道:會話通道和流媒體通道。會話通道基于SIP 協(xié)議創(chuàng)建,用于在設(shè)備與服務(wù)器之間創(chuàng)建、修改和釋放會話,本系統(tǒng)依靠會話通道建立起用戶與設(shè)備的“一對一”綁定,并維持此效果直至實驗結(jié)束。數(shù)據(jù)傳輸通道依賴RTP 流媒體協(xié)議,將實驗設(shè)備產(chǎn)生的音視頻流傳輸給服務(wù)器。信息交互過程中,SIP 信令數(shù)據(jù)封裝成XML 格式,視頻數(shù)據(jù)壓縮為H.264 碼流,音頻數(shù)據(jù)采取G.711 方式編碼。
本系統(tǒng)具有以下幾點功能特點:
(1)瀏覽器訪問
本系統(tǒng)不需要下載額外的APP 客戶端,只需訪問相應(yīng)的服務(wù)器地址,注冊登錄系統(tǒng)后即可進行遠程實驗。
(2)預(yù)約管理
學生用戶可以在選課中心瀏覽可選的實驗,根據(jù)自己需求選擇相應(yīng)實驗內(nèi)容和指導(dǎo)老師,同時可以對實驗時間進行預(yù)約。
(3)資料下載
學生用戶可以在自己的實驗課程界面直接下載本實驗相關(guān)的學習資料,不需要通過其他渠道獲取。
(4)遠程實驗
學生用戶進行實驗后,首先需要綁定一臺嵌入式設(shè)備,實驗界面會實時顯示實驗設(shè)備在線情況與使用情況,不在線的設(shè)備與使用中的設(shè)備將無法使用。學生綁定空閑狀態(tài)的設(shè)備,閱讀遠程實驗規(guī)范手冊后即可開始實驗。實驗全過程中學生用戶直接通過實驗界面的交互窗口與設(shè)備進行消息交互,交互窗口同時也提供遠程傳輸文件給實驗室設(shè)備、完成實驗、重做實驗、退出實驗的功能。學生用戶完成實驗或者退出實驗后,設(shè)備將恢復(fù)為空閑狀態(tài)。
(5)教師系統(tǒng)
本系統(tǒng)除學生用戶外還設(shè)立了教師用戶,提供給實驗課程的指導(dǎo)老師登錄,方便教師進行管理、監(jiān)督與指導(dǎo)。教師管理界面如圖3 所示。
圖3 教師管理界面圖
教師用戶可以通過學生管理頁面查看自己班級學生的實驗情況與在線情況,根據(jù)實驗監(jiān)控和實驗進度查詢來監(jiān)管學生實驗,并且可以利用本系統(tǒng)中的自動成績判定功能來對學生實驗進行打分,極大地降低了老師的工作強度。在實驗管理頁面,教師可以對自己所負責的實驗進行管理,可以添加、刪除某些實驗,并上傳各個實驗的相關(guān)資料供學生下載。同時提供答疑列表頁面顯示學生做實驗過程中提出的問題,增加學生和老師之間的交流互動。
本系統(tǒng)實驗中產(chǎn)生的實驗數(shù)據(jù)均是由實驗設(shè)備產(chǎn)生的真實數(shù)據(jù),并不是經(jīng)過模擬仿真出來的虛擬數(shù)據(jù),與學生本人前往實驗室進行實驗無本質(zhì)區(qū)別。本系統(tǒng)的缺點是一套實驗設(shè)備同一時間只能供一名用戶進行實驗,同時候做實驗有著人數(shù)上限,無法做到如虛擬仿真實驗一般僅僅只要服務(wù)器性能充足便可以支持許多用戶同時實驗。但是遠程實境實驗系統(tǒng)支持隨時隨地的進行訪問,通過預(yù)約實驗的方式可以有效緩解這一問題。
本教學系統(tǒng)的實驗內(nèi)容設(shè)計包括遠程基本嵌入式命令實驗、嵌入式驅(qū)動實驗、傳感器實驗等一系列嵌入式實驗。基本嵌入式命令實驗主要是為了讓學生了解嵌入式系統(tǒng)中的一些基本命令,例如查看當期目錄下文件的ls 命令,進行目錄間跳轉(zhuǎn)的cd 命令,創(chuàng)建目錄的mkdir 命令,改變文件權(quán)限的chmod命令等等,通過該系列實驗學生們對linux 操作系統(tǒng)將會有個初步的了解。
嵌入式驅(qū)動實驗主要涉及字符設(shè)備驅(qū)動,包含GPIO 驅(qū)動實驗、I2C 驅(qū)動實驗和RTC 驅(qū)動實驗,三個實驗由易到難。其中GPIO 驅(qū)動是嵌入式系統(tǒng)最基本也是最關(guān)鍵的驅(qū)動,通過該實驗,學生們會了解到芯片是如何驅(qū)動各個GPIO 引腳的。I2C 是很常用的一個串行通信接口,用于連接各種外設(shè)、傳感器等器件,學習I2C 驅(qū)動,能夠很好的理解主從機之間的通信方式。RTC 也就是實時時鐘,用于記錄當前系統(tǒng)時間,是個很常用的外設(shè),并且RTC 驅(qū)動框架基于I2C 驅(qū)動框架,對進一步理解I2C 驅(qū)動有很大幫助。
傳感器實驗包含了一系列常用傳感器的驅(qū)動與基本使用,例如溫濕度傳感器、超聲波測距傳感器、攝像頭傳感器,該系列旨在學生們初步接觸驅(qū)動后,利用GPIO 等驅(qū)動對一些外設(shè)進行控制,一方面加深對驅(qū)動的理解,另一方面,通過自己編寫應(yīng)用程序讓一些基本傳感器開展相關(guān)工作,真正入門嵌入式。
本系統(tǒng)提供較好的交互界面,采取一問一答的方式,便于用戶區(qū)分自己指令與系統(tǒng)回復(fù),如圖4為命令ls 的交互界面。
圖4 ls 指令交互界面圖
用戶通過遠程文件傳輸?shù)姆绞綄Ⅱ?qū)動文件傳到嵌入式設(shè)備相應(yīng)目錄下,之后采取動態(tài)加載的方式加載驅(qū)動,圖5 為加載溫濕度傳感器驅(qū)動的案例,對比前后驅(qū)動加載列表可以發(fā)現(xiàn)溫濕度傳感器驅(qū)動dht11.ko 已加載成功。
圖5 溫濕度傳感器驅(qū)動加載圖
通過編寫C 語言測試文件然后進行交叉編譯,將編譯完成的程序遠程傳輸給嵌入式設(shè)備,即可在嵌入式設(shè)備上運行程序,圖6 是運行測距傳感器的結(jié)果,測距傳感器成功測出障礙物距離為65cm 遠。
圖6 測距傳感器運行反饋圖
經(jīng)測試,本系統(tǒng)在三類實驗中都可以很好地將用戶指令傳輸給嵌入式設(shè)備運行,同時及時回饋設(shè)備的響應(yīng)消息,圓滿實現(xiàn)遠程實境實驗?zāi)繕说耐瑫r也帶給了用戶們較好的體驗。
嵌入式遠程實境實驗教學系統(tǒng)是在新冠肺炎疫情形勢嚴峻的狀態(tài)下提出的,在此之前,實體設(shè)備實驗已經(jīng)進行了很多年,教學性和安全性都有很大的保障。采用遠程實境實驗的方式,讓學生們做實驗的地點沒有了硬性要求,即使在家中也能進行嵌入式系統(tǒng)相關(guān)的實驗,實驗名額依賴預(yù)約獲取的方式也能將學生們做實驗的時間段分割開來,成功解決了傳統(tǒng)實驗?zāi)J较驴臻g與時間上的局限性,同時也有效緩解當前實驗設(shè)備資源緊缺的情況,節(jié)省硬件成本。