劉剛 田玉敏 萬(wàn)波 吳自力 王宗武
(西安電子科技大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院 陜西省西安市 710071)
隨著計(jì)算機(jī)和互聯(lián)網(wǎng)在世界范圍內(nèi)的普及,教育研究呈現(xiàn)出廣闊的新維度,信息技術(shù)和工程教育已經(jīng)成為一個(gè)令人興奮的新興研究領(lǐng)域,其涉及多個(gè)學(xué)科,旨在解決隨著技術(shù)進(jìn)步而產(chǎn)生的教育挑戰(zhàn)[1]。在高等教育中,實(shí)驗(yàn)環(huán)節(jié)越來(lái)越受到重視,而實(shí)驗(yàn)室設(shè)備也變得越來(lái)越復(fù)雜、越來(lái)越昂貴,對(duì)于每個(gè)大學(xué)來(lái)說(shuō),購(gòu)買和維護(hù)這些設(shè)備帶來(lái)巨大的經(jīng)濟(jì)投入。虛擬和遠(yuǎn)程實(shí)驗(yàn)室提供了一種新的解決方案,通過(guò)新技術(shù)的引入,建設(shè)具有傳統(tǒng)實(shí)驗(yàn)室同等功能的新型實(shí)驗(yàn)室,實(shí)現(xiàn)有限的資源共享,提高實(shí)驗(yàn)效率,越來(lái)越受到重視。
遠(yuǎn)程實(shí)驗(yàn)室是真正的實(shí)驗(yàn)室,只是其實(shí)驗(yàn)設(shè)備接入到互聯(lián)網(wǎng)中,實(shí)驗(yàn)者通過(guò)網(wǎng)絡(luò)操作實(shí)驗(yàn)設(shè)備并完成實(shí)驗(yàn)、收集實(shí)驗(yàn)數(shù)據(jù)。虛擬實(shí)驗(yàn)室通常來(lái)源于計(jì)算和仿真軟件,是一種基于Web、虛擬現(xiàn)實(shí)等技術(shù)構(gòu)建的純數(shù)字化系統(tǒng),系統(tǒng)中提供的是真實(shí)實(shí)驗(yàn)設(shè)備和器材的數(shù)字拷貝。相比于遠(yuǎn)程實(shí)驗(yàn)室,虛擬實(shí)驗(yàn)室是完全基于軟件的,具有更低成本,沒(méi)有場(chǎng)地要求,而且儀器設(shè)備的更新更加靈活方便,是目前新型實(shí)驗(yàn)室技術(shù)發(fā)展的一個(gè)重要分支[2][3]。
我們提出一個(gè)基于開源軟件設(shè)計(jì)的數(shù)字電路與邏輯設(shè)計(jì)虛擬實(shí)驗(yàn)系統(tǒng),旨在為相關(guān)專業(yè)的學(xué)生、老師提供一個(gè)便捷的教學(xué)和實(shí)驗(yàn)環(huán)境。該系統(tǒng)能達(dá)成以下四個(gè)方面的功能:
(1)授課教師在課堂上利用虛擬實(shí)驗(yàn)室演示教學(xué)內(nèi)容,豐富教學(xué)手段;
(2)學(xué)生利用虛擬實(shí)驗(yàn)室隨時(shí)開展實(shí)驗(yàn),幫助鞏固基本理論,驗(yàn)證設(shè)計(jì),亦可完成課程要求的實(shí)驗(yàn)內(nèi)容;
(3)實(shí)驗(yàn)指導(dǎo)老師利用虛擬實(shí)驗(yàn)室布置實(shí)驗(yàn)任務(wù),完成實(shí)驗(yàn)管理、成績(jī)?cè)u(píng)定和效果評(píng)估;
(4)愛好者們利用全天候后開放的虛擬實(shí)驗(yàn)室實(shí)踐自己的設(shè)計(jì),或進(jìn)行相關(guān)研究。
數(shù)字電路與邏輯設(shè)計(jì)實(shí)驗(yàn)的目的是幫助學(xué)生豐富和拓寬有關(guān)數(shù)字電路邏輯設(shè)計(jì)、數(shù)字集成電路及其工程應(yīng)用方面的知識(shí),培養(yǎng)學(xué)生進(jìn)行小型數(shù)字系統(tǒng)設(shè)計(jì)和分析的能力。基本要求包括:能夠正確使用示波器、萬(wàn)用表等常用儀器設(shè)備;掌握數(shù)字電路系統(tǒng)的設(shè)計(jì)、調(diào)試,故障分析與排除的一般方法和步驟。在此基礎(chǔ)上,進(jìn)一步培養(yǎng)學(xué)生關(guān)于復(fù)雜系統(tǒng)分析和設(shè)計(jì)的綜合能力。結(jié)合虛擬實(shí)驗(yàn)室的四個(gè)功能要求,我們?cè)O(shè)計(jì)的虛擬實(shí)驗(yàn)室系統(tǒng)構(gòu)成如圖1所示。

圖1:數(shù)字電路與邏輯設(shè)計(jì)虛擬實(shí)驗(yàn)室
虛擬實(shí)驗(yàn)室的主要基礎(chǔ)設(shè)施是云計(jì)算平臺(tái)。采用云計(jì)算技術(shù)的目的是利用其具備的大規(guī)模、高可靠、虛擬化、可擴(kuò)展的優(yōu)點(diǎn)。本設(shè)計(jì)中,我們依托校園網(wǎng)資源,基于開源的OpenStack[4]來(lái)搭建私有云,云平臺(tái)包含存儲(chǔ)、控制及計(jì)算節(jié)點(diǎn)各一個(gè)。
虛擬實(shí)驗(yàn)室的核心是實(shí)驗(yàn)?zāi)M軟件。首先,我們可以自己來(lái)開發(fā)“數(shù)字電路與邏輯設(shè)計(jì)”仿真軟件。其次,也可以直接選用軟件市場(chǎng)上的成熟軟件。本項(xiàng)目中,我們走了一條中間路線,即基于開源軟件進(jìn)行二次開發(fā)。通過(guò)調(diào)研比較,我們選擇了CircuitVerse[5]作為設(shè)計(jì)的基礎(chǔ)。其次,為了豐富平臺(tái)功能,本設(shè)計(jì)集成了開源的論壇軟件StartBBS 和開源的輕量人臉檢測(cè)模型[9],借以提供一個(gè)交流園地,以及在實(shí)驗(yàn)管理中實(shí)現(xiàn)對(duì)實(shí)驗(yàn)者的持續(xù)身份認(rèn)證功能。
虛擬實(shí)驗(yàn)室的用戶分為兩類,一類是教學(xué)用戶,一類是實(shí)驗(yàn)用戶。實(shí)驗(yàn)用戶具有兩種權(quán)限,一是利用虛擬實(shí)驗(yàn)室資源開展實(shí)驗(yàn),二是查看老師布置的實(shí)驗(yàn)任務(wù),在線完成并提交;教學(xué)用戶能夠創(chuàng)建和管理實(shí)驗(yàn)班級(jí)、發(fā)布實(shí)驗(yàn)作業(yè),以及對(duì)實(shí)驗(yàn)用戶提交的作業(yè)進(jìn)行評(píng)估。當(dāng)然也能利用虛擬實(shí)驗(yàn)室的實(shí)驗(yàn)資源。
CircuitVerse 是一個(gè)基于Web 的開源軟件,用于設(shè)計(jì)和仿真數(shù)字電路。該項(xiàng)目是來(lái)自印度IIIT-Bangalore 大學(xué)的一個(gè)學(xué)生項(xiàng)目,采用MIT[7]許可協(xié)議,這是一個(gè)比GNU[6]等更加寬松的軟件授權(quán)條款。
CircuitVerse 提供了豐富的數(shù)字器件、儀器儀表和常用的調(diào)試工具,通過(guò)對(duì)器件等的簡(jiǎn)單拖放即可進(jìn)行電路的設(shè)計(jì)和仿真。其功能覆蓋了從簡(jiǎn)單的邏輯門到復(fù)雜的時(shí)序電路的仿真、時(shí)序圖繪制、自動(dòng)電路產(chǎn)生以及標(biāo)準(zhǔn)集成電路分析等。而且,支持層次化設(shè)計(jì)方法,使得用戶可以存儲(chǔ)和訪問(wèn)先前設(shè)計(jì)的電路,實(shí)現(xiàn)設(shè)計(jì)復(fù)用。圖2是該仿真器的主界面,主要構(gòu)成部分如下:

圖2:CircuitVerse 模擬器主界面
(1)菜單欄和快捷工具欄:實(shí)現(xiàn)項(xiàng)目管理,如設(shè)計(jì)的存儲(chǔ)、讀取等。
(2)器件/儀器庫(kù):分類存放了實(shí)驗(yàn)所需的各種邏輯門、集成電路以及調(diào)試用的儀器儀表;
(3)實(shí)驗(yàn)環(huán)境參數(shù)設(shè)置:用于設(shè)置項(xiàng)目的名稱,全局時(shí)鐘屬性等;
(4)實(shí)驗(yàn)臺(tái):設(shè)計(jì)空間,放置設(shè)計(jì)電路。
(5)示波器界面:信號(hào)顯示,以及顯示參數(shù)如尺寸調(diào)整按鈕等。
CircuitVers 已經(jīng)具備了設(shè)計(jì)一個(gè)虛擬實(shí)驗(yàn)室的主要要素:各種數(shù)字化器件、數(shù)字化儀器儀表,以及實(shí)驗(yàn)臺(tái)等等,然而在實(shí)驗(yàn)組織和管理方面,仍然有一些不足。本項(xiàng)目首先在用戶管理功能以及身份認(rèn)證功能上進(jìn)行增強(qiáng)。
CircuitVerse 的用戶管理功能比較弱,而且所有用戶具有相同權(quán)限。在本設(shè)計(jì)中,我們修改了這方面的功能,將用戶分為兩類,并在權(quán)限上予以區(qū)分。
(1)實(shí)驗(yàn)用戶:注冊(cè)的合法實(shí)驗(yàn)用戶能夠使用虛擬平臺(tái)提供的資源進(jìn)行實(shí)驗(yàn),可以使用平臺(tái)提供的存儲(chǔ)資源保存和瀏覽自己的設(shè)計(jì);能夠加入合法的實(shí)驗(yàn)班級(jí)并完成和提交老師布置的實(shí)驗(yàn)任務(wù);能夠使用學(xué)習(xí)園地。這類用戶包括圖1中的學(xué)生用戶和愛好者。
(2)教學(xué)用戶:除了具備實(shí)驗(yàn)用戶的權(quán)限外,能夠創(chuàng)建實(shí)驗(yàn)班級(jí),對(duì)加入班級(jí)的同學(xué)進(jìn)行審核。能為每個(gè)班級(jí)布置實(shí)驗(yàn),并在線批閱班級(jí)成員提交的作業(yè)。這類用戶如圖1中的教師和實(shí)驗(yàn)指導(dǎo)老師。
為了安全,目前該虛擬實(shí)驗(yàn)室暫時(shí)沒(méi)有向非注冊(cè)用戶開放,也不支持普通的訪客使用實(shí)驗(yàn)室的資源,下一步會(huì)考慮這種需求。
該功能的設(shè)計(jì)是為了滿足考評(píng)環(huán)節(jié)需求。傳統(tǒng)實(shí)驗(yàn)?zāi)J较拢瑢W(xué)生在確定的時(shí)間在實(shí)驗(yàn)室開展實(shí)驗(yàn),并接受指導(dǎo)老師的驗(yàn)收,并在實(shí)驗(yàn)后提交實(shí)驗(yàn)報(bào)告。而實(shí)驗(yàn)指導(dǎo)老師根據(jù)驗(yàn)收情況和實(shí)驗(yàn)報(bào)告,給參與實(shí)驗(yàn)的同學(xué)評(píng)定成績(jī)。當(dāng)實(shí)驗(yàn)轉(zhuǎn)移到虛擬實(shí)驗(yàn)室后,實(shí)驗(yàn)者在分散的時(shí)間,在網(wǎng)絡(luò)空間開展并完成實(shí)驗(yàn)。那么,需要一種手段對(duì)完成實(shí)驗(yàn)的同學(xué)的身份進(jìn)行驗(yàn)證。為了完成這一個(gè)功能,在軟件中增加了基于人臉識(shí)別的持續(xù)身份認(rèn)證功能。Web 前端會(huì)每隔一個(gè)隨機(jī)時(shí)間啟動(dòng)終端攝像頭拍照,并送后臺(tái)進(jìn)行識(shí)別。整個(gè)實(shí)驗(yàn)期間的若干次識(shí)別結(jié)果記錄在該同學(xué)的實(shí)驗(yàn)日志中,作為學(xué)生誠(chéng)信評(píng)估的依據(jù)。
本功能采用開源的人臉識(shí)別庫(kù)進(jìn)行開發(fā),開源人臉識(shí)別項(xiàng)目非常多,典型的有Face Recognition[8],輕量級(jí)人臉檢測(cè)模型[9]等。考慮到設(shè)備要求以及我們的應(yīng)用場(chǎng)景比較簡(jiǎn)單,本設(shè)計(jì)選用輕量人臉檢測(cè)模型作為開發(fā)基礎(chǔ),測(cè)試表明,該開源庫(kù)能夠滿足我們的應(yīng)用需求。
為了方便同學(xué)們交流心得,共享資料,我們?cè)谔摂M實(shí)驗(yàn)平臺(tái)上集成了論壇功能。開源論壇系統(tǒng)非常多,如Discuz、Opensns 等,本項(xiàng)目基于輕量級(jí)開源社區(qū)系統(tǒng)StartBBS 進(jìn)行開發(fā)。StartBBS 是一個(gè)基于PHP+MySQL 開發(fā)的新型社區(qū)系統(tǒng),采用MVC 框架開發(fā)。具有易于二次開發(fā)、程序與模板文件分開,以及輕量等特點(diǎn)。前臺(tái)用戶界面采用的TwitterBootstrap 和Jquery,用戶體驗(yàn)得到了驗(yàn)證,同時(shí)其設(shè)計(jì)上采用了流式響應(yīng)式設(shè)計(jì),無(wú)論是使用電腦還是平板電腦抑或手機(jī),都能很好地適應(yīng)屏幕,無(wú)需要再開發(fā)相應(yīng)的模板。
在本設(shè)計(jì)中,將StartBBS 作為一個(gè)附加模塊集成到虛擬實(shí)驗(yàn)室系統(tǒng),通過(guò)仿真器主界面提供的超級(jí)鏈接可進(jìn)入論壇。同時(shí),論壇不提供單獨(dú)的用戶注冊(cè)和登陸功能,只有通過(guò)虛擬實(shí)驗(yàn)室注冊(cè)并登陸的用戶才能使用論壇功能。
在本節(jié),我們通過(guò)一個(gè)例子來(lái)介紹我們?cè)O(shè)計(jì)的“數(shù)字電路與邏輯設(shè)計(jì)虛擬實(shí)驗(yàn)室”的使用方法,讀者也能通過(guò)該例子進(jìn)一步了解其特點(diǎn)和功能。
首先,必須注冊(cè)為教學(xué)用戶,通過(guò)管理員審核后即可登陸。在登陸名后通過(guò)My Groups 即可創(chuàng)建、管理班級(jí)(圖3)。對(duì)于已經(jīng)創(chuàng)建的班級(jí),點(diǎn)擊View 按鈕即可進(jìn)入作業(yè)發(fā)布界面,如圖4所示。

圖3:班級(jí)管理

圖4:實(shí)驗(yàn)任務(wù)發(fā)布
在圖4中,輸入實(shí)驗(yàn)要求,完成時(shí)間等信息后提交,即可完成實(shí)驗(yàn)任務(wù)發(fā)布。同時(shí)系統(tǒng)會(huì)向班級(jí)里的每個(gè)成員發(fā)送電子郵件通知。發(fā)布任務(wù)時(shí)輸入的信息除了實(shí)驗(yàn)名稱、實(shí)驗(yàn)的具體要求描述外,還包含下列信息(圖4中沒(méi)有展示):
(1)完成截止時(shí)間;
(2)能夠使用的器件;
(3)評(píng)分方法:提供了A-E 五級(jí)評(píng)分和100 分制兩種方法,評(píng)分方法一旦確定不能修改。
實(shí)驗(yàn)用戶登陸系統(tǒng)后可加入班級(jí),教師用戶在創(chuàng)建班級(jí)時(shí),也能通過(guò)郵件的方式邀請(qǐng)相關(guān)學(xué)生加入班級(jí)。實(shí)驗(yàn)任務(wù)發(fā)布后,班級(jí)成員會(huì)收到郵件,通過(guò)郵件提供的鏈接可以瀏覽發(fā)布的實(shí)驗(yàn)任務(wù)。在截至日期前登陸系統(tǒng),可瀏覽老師發(fā)布的實(shí)驗(yàn)任務(wù)(如圖5)。截至日期前的任何時(shí)候可通過(guò)點(diǎn)擊“Start Working”按鈕開始實(shí)驗(yàn)。一旦開始實(shí)驗(yàn),則可啟動(dòng)如圖2所示的虛擬實(shí)驗(yàn)室工作臺(tái),完成實(shí)驗(yàn)并保存。

圖5:實(shí)驗(yàn)任務(wù)提示界面
圖6給出了用戶在虛擬實(shí)驗(yàn)室工作臺(tái)完成實(shí)驗(yàn)并保存后,Start Working 頁(yè)面的內(nèi)容,可以預(yù)覽自己的設(shè)計(jì),還可通過(guò)按鈕“Launch simulator”啟動(dòng)工作臺(tái)進(jìn)行修改。實(shí)驗(yàn)工作一旦保存,則班級(jí)指導(dǎo)老師登陸系統(tǒng)后即可看到。

圖6:任務(wù)預(yù)覽界面
指導(dǎo)老師登陸系統(tǒng)后,通過(guò)圖3所示的班級(jí)管理界面的View按鈕,可以瀏覽每個(gè)學(xué)生的實(shí)驗(yàn)情況,如圖7所示。左邊是已經(jīng)開展實(shí)驗(yàn)的學(xué)生名字列表。通過(guò)該界面,也能夠?qū)γ總€(gè)學(xué)生的實(shí)驗(yàn)結(jié)果進(jìn)行評(píng)價(jià),并可通過(guò)系統(tǒng)提供的報(bào)表生成功能導(dǎo)出全體同學(xué)的成績(jī)。

圖7:實(shí)驗(yàn)成果評(píng)閱
本章通過(guò)從實(shí)驗(yàn)發(fā)布到開展,到最后評(píng)閱的整個(gè)流程敘述了我們?cè)O(shè)計(jì)的虛擬實(shí)驗(yàn)室的核心功能。由于篇幅的限制,許多輔助功能,如持續(xù)身份認(rèn)證、交流論壇等沒(méi)有展示。但虛擬實(shí)驗(yàn)室的框架已經(jīng)完成,而且實(shí)驗(yàn)管理的流程也得到了驗(yàn)證。下一步,將會(huì)完成更多的軟件的本地化工作,包括主要界面的漢化、儀器儀表庫(kù)的補(bǔ)充等,我們團(tuán)隊(duì)將盡快推出改進(jìn)版本,供其他高校實(shí)踐。
虛擬實(shí)驗(yàn)室具有成本低、管理方便、資源利用率高、開放性、高可擴(kuò)展等優(yōu)點(diǎn),是未來(lái)實(shí)驗(yàn)技術(shù)的重要發(fā)展趨勢(shì)。數(shù)字電路與邏輯設(shè)計(jì)實(shí)驗(yàn)是課程的重要部分,能夠幫助學(xué)生深入理解布爾代數(shù)、數(shù)字邏輯的本質(zhì);能夠幫助學(xué)生鞏固數(shù)字電路分析和設(shè)計(jì)的基本步驟和方法。有趣的實(shí)驗(yàn)不但能激發(fā)學(xué)生的學(xué)習(xí)興趣,學(xué)生通過(guò)實(shí)驗(yàn)獲得知識(shí),培養(yǎng)批判性思維,提高自我管理技能。針對(duì)傳統(tǒng)實(shí)驗(yàn)室存在的局限性,我們基于開源軟件開發(fā)了一個(gè)數(shù)字電路與邏輯設(shè)計(jì)虛擬實(shí)驗(yàn)室,虛擬實(shí)驗(yàn)室提供了實(shí)驗(yàn)所需要的基本要素。該虛擬實(shí)驗(yàn)室在我們學(xué)校開展了試驗(yàn),老師和同學(xué)們反映良好,也在設(shè)計(jì)支持、界面友好等方面提出了寶貴的意見,這將是下一步團(tuán)隊(duì)致力解決的問(wèn)題。