彭佳漢,李剛毅,秦天文,馮佳玉,韓書垚,張亦馳,賴曉晨
(大連理工大學軟件學院,大連 116000)
隨著我國信息技術(shù)的不斷發(fā)展,軟件已經(jīng)開始滲透到了教育領(lǐng)域當中,成為了提升學校教學能力的強大支持。教育部文件《教師教育振興行動計劃(2018-2022 年)》中指出,教育要實施“互聯(lián)網(wǎng)+教師教育”創(chuàng)新行動,充分利用云計算、大數(shù)據(jù)、虛擬現(xiàn)實、人工智能等新技術(shù),推進教師教育信息化教學服務平臺建設和應用。眾所周知,化學是非常重要的一門學科,而在我們的國內(nèi)校園中,受到各種條件制約,使得學生們無法嘗試大多數(shù)的實驗,因此,如今迫切需要使用信息化手段來幫助解決這個問題。
仿真化學實驗教學是一種新型的教學媒體和現(xiàn)代化的教學手段,具有容量大、速度快以及圖文并茂、聲色俱全、生動形象等特點,因而可以擴展實驗類型,拓寬學生事業(yè),彌補課內(nèi)常規(guī)實驗的不足[1]。
目前,國內(nèi)市場推出了許多仿真化學實驗軟件,目前的軟件面臨著以下的現(xiàn)狀:
現(xiàn)在網(wǎng)上的許多應用都是以教材知識和基礎操作為中心,大多數(shù)都是以演示實驗為主,很少有讓用戶自己操作的機會;界面和儀器一般都較為生硬,使得用戶在使用時有很強的距離感,無法體驗到自己動手做實驗的感覺。
本文將介紹基于ARCore 的中學實驗平臺軟件,軟件提供了大量以動手做為主的實驗素材,基于Google的ARCore 技術(shù),用戶拿起手機進行操作,感覺實驗就仿佛發(fā)生在自己面前,帶來了良好的學習體驗,更激發(fā)了用戶對化學實驗的好奇心,加深了對化學知識的理解,為化學課程的教學信息化帶來巨大的助力。
本項目主要由3 個功能構(gòu)成,功能分別為“實驗展示”功能、“動手做試驗”功能和“老師指導”功能。項目系統(tǒng)結(jié)構(gòu)圖如圖1 所示。
“實驗展示”功能根據(jù)教育部《普通高中化學課程標準》所要求掌握的實驗,包括二氧化硫和濃硫酸的性質(zhì)實驗、氫氧化鋁的兩性實驗、氨及銨鹽的性質(zhì)實驗和葡萄糖與新制氫氧化銅懸濁液實驗等,設計出預計設置22 種相應的實驗模型。學生在完成書本內(nèi)容的學習后,通過掃描書本上的實驗圖片,在手機上觀看立體的實驗。學生不僅僅可以看到具體的實驗流程,更可以通過自身移動多角度地、全方面地觀察實驗現(xiàn)象,同時,在實驗的關(guān)鍵點還會用箭頭和文字進行標注提醒,實現(xiàn)二維的知識與三維的立體圖像結(jié)合,以便學生更好地掌握實驗流程、實驗現(xiàn)象以及實驗中的關(guān)鍵點。
通過“實驗展示”功能,一方面學生不用在實驗室接觸危險的化學藥品即可多角度、全方位地觀察實驗,另一方面二維與三維的結(jié)合使得學習更加有趣,使得學生對實驗現(xiàn)象的記憶更加深刻。
這里我們把每個實驗都做成一個預制體,因為AR技術(shù)需要與環(huán)境相適應,所以實驗中的流程都是實時進行的,保證了實驗制作的獨立性,增強了軟件的擴展性。
圖1 系統(tǒng)結(jié)構(gòu)圖
“動手做試驗”根據(jù)中學實驗要求,設計出中學化學實驗所常使用到的13 種儀器,包括試管、燒杯、燒瓶、錐形瓶、集氣瓶等和中學化學實驗所常使用到的38種化學試劑,包括乙酸乙酯、氫氧化銅、乙醇、碳酸鈉和碳酸氫鈉等。學生通過對書上實驗圖片進行掃描后,選擇“動手做試驗”。隨后,手機上加載出實驗所需的儀器和化學試劑的模型,學生通過拖拽等方式可完成儀器的拼接、化學試劑的添加和在相應關(guān)鍵處添加標注等功能,在儀器拼接以及試劑添加完成后,即可觀察實驗現(xiàn)象。
這里將單獨的化學實驗按照時間順序分成多個階段,每個階段都有其對應的操作,學生需按步驟進行實驗,即完成第一階段的操作才可進入下一階段,以此類推,整體上按時間循序漸進,幫助學生理解整個實驗流程。
“老師指導”功能基于“實驗展示”和“動手做試驗”功能。在學生進行“實驗展示”和“動手做試驗”時,教師可從另一個手機上實時觀看學生所進行的操作,并且對實驗中的重要點用箭頭和文字進行標注,學生可在自己的手機上看到老師的標注信息,從而更好地理解實驗原理和學習實驗過程。
總的來講,該模塊支持跨設備觀看實驗、跨設備標注等一些聯(lián)網(wǎng)操作。這使得學生們在能夠接觸新型化學實驗的同時,還可以得到教師的指導,能夠更好地對化學實驗進行學習記憶。
“老師指導”模塊相當于在前兩個模塊的基礎上增加聯(lián)網(wǎng)標識等功能,從功能上來講,三個模塊相互聯(lián)系又相互獨立,第一個模塊注重實驗的整體性和完整性,第二個模塊注重實驗的邏輯性和步驟性,第三個模塊注重聯(lián)網(wǎng)和標識,方便開發(fā)者擴展相應功能。
(1)技術(shù)實現(xiàn)。平臺采用了Google 的先進增強現(xiàn)實技術(shù)ARCore,主要使用其中的圖片增強功能部分,確保AR 成像與化學實驗展示的穩(wěn)定性。ARCore 的運動跟蹤技術(shù)使用手機攝像頭標識興趣點(稱為特征點),并跟蹤這些點隨著時間變化的移動。將這些點的移動與手機慣性傳感器的讀數(shù)組合,可以在手機移動時確定手機的位置和屏幕方向。通過將渲染3D 內(nèi)容的虛擬攝像頭的姿態(tài)與ARCore 提供的設備攝像頭的姿態(tài)對齊,開發(fā)者能夠從正確的透視角度渲染虛擬內(nèi)容。渲染的虛擬圖像可以疊加到從設備攝像頭獲取的圖像上,讓虛擬內(nèi)容看起來就像現(xiàn)實世界的一部分一樣;本項目還采用Unity 物理引擎,使化學實驗具有更逼真的物理和化學效果,同時優(yōu)化應用所需的計算資源。
(2)關(guān)鍵點。關(guān)鍵點在于如何在手機有限的存儲、計算資源上更完美地展示化學實驗。在化學儀器模型方面,我們平衡了化學儀器的模型、貼圖精度與性能,部分使軟件能夠在手機有限的計算資源上得到較好的顯示效果。
(3)難點。難點在于如何實現(xiàn)用戶之間的聯(lián)網(wǎng)功能,如何在松耦合方式下實現(xiàn)場景與預制體之間的通信與綁定。該部分需要考慮服務器的房間邏輯、掉線邏輯、中途加入邏輯、服務器資源回收利用、還需要保證較低的延遲等。我們采用游戲服務器,保證網(wǎng)絡連通的可靠性與低延遲,同時也便于處理房間邏輯;在松耦合問題中,我們設置了共享存儲空間、利用多態(tài)方法動態(tài)綁定通信函數(shù)與實驗物體。從而解決這兩個難點。
各模塊中包含的具體操作流程基本一致,下面以實驗展示模塊進行展示。圖2 是選擇實驗界面,圖3是正式操作界面。首先用戶選擇實驗,進入實驗后自動播放該實驗的操作步驟,期間會有標簽提示注意事項等。用戶可以利用AR 技術(shù)全方位進行觀看。
圖2
圖3
實現(xiàn)過程:在實驗展示部分,首先我們利用計時器和Unity 的動畫系統(tǒng),通過實例化、旋轉(zhuǎn)、平移、形變等效果實現(xiàn)單獨部件的實驗操作,再通過全局的控制器統(tǒng)一調(diào)度每個部件相應函數(shù)觸發(fā)的事件或邏輯關(guān)系,達到化學實驗現(xiàn)象的效果。
難點:動手做實驗部分的難點在于如何在二維的手機屏幕上操控3D 空間中的實驗儀器。我們構(gòu)建了一個3D 的“T”字型實驗操作平臺,用戶只能控制實驗儀器在此平臺上移動。為了達到拖拽的目的,我們對實驗儀器的圖層進行區(qū)分。每一幀系統(tǒng)都會檢測用戶的操作。當用戶在拖拽時,攝像機根據(jù)屏幕的觸點發(fā)射一條射線,設置為僅能碰到化學儀器;在碰到化學儀器后,再發(fā)射一條僅能碰到實驗平臺的射線,然后將該化學儀器挪動至該實驗平臺的觸點上。由于每一幀都會進行此操作,化學儀器也就能隨著手指的滑動變換自己再實驗平臺上的位置。核心偽代碼如下:
實現(xiàn)過程:這一模塊采用游戲服務器MatchVS,將登錄服務器等過程隱式實現(xiàn),給用戶更流暢的體驗;程序通過MatchVS 的接口完成相應的數(shù)據(jù)傳輸操作。在MatchVS 接口的基礎上,為了迎合項目需求,本項目額外增加的功能有:創(chuàng)建房間時,用戶可以選擇要展示的實驗;在其他用戶加入房間時,會給這位用戶發(fā)送當前實驗的ID 編號,以達到實驗同步的效果。且第一個進入房間的人默認為房主,擁有最高權(quán)限。
相應的函數(shù)與邏輯順序關(guān)系如圖4,主要有登錄登出、加入退出房間、房間中通信等函數(shù)。且在其他人加入離開房間時,服務器向房間內(nèi)其他用戶通報信息。
為了減少項目體量,壓縮安裝包大小,老師指導部分與項目展示、動手做實驗兩個模塊采用相同的預制體文件,達到模型、代碼復用的功能;聯(lián)網(wǎng)部分采用松耦合的設計,將編寫的腳本掛載在能夠被交互的實驗器材上即可,提供了良好的可拓展性,方便之后實驗的拓展。
圖4
同時,本項目支持斷點重連:若用戶在使用過程中網(wǎng)絡中斷或切換網(wǎng)絡環(huán)境,依然能夠順利返回之前的房間。
為了減少對網(wǎng)絡帶寬的需求,我們僅傳輸實驗操作或系統(tǒng)變化對應的字符串,將這些信息通過JSON 數(shù)據(jù)類型封裝,對應操作的邏輯在客戶端進行運算渲染。偽代碼如下:
難點:SDK 的信息的回調(diào)函數(shù)采用static 類型,無法通過函數(shù)調(diào)用、Unity 中的action 方法與掛載在物體上的腳本進行調(diào)用。為了解決這一問題,我們在全局控制器中設置了一個全局的監(jiān)聽器與標志位,在每一幀監(jiān)測是否接收到來自服務器的信號。如果接收到信號,那么控制器就通過松耦合的方式調(diào)用對應物體的方法。
下面是系統(tǒng)信息回調(diào)函數(shù)部分代碼,當接收到網(wǎng)絡傳遞來的數(shù)據(jù)時,函數(shù)更改全局變量與標志位。偽代碼如下:
下面是控制器監(jiān)聽部分偽代碼,每一幀都會檢測是否更改。若更改,跳轉(zhuǎn)到處理函數(shù)中。
基于ARCore 的中學實驗平臺提供了豐富的接口和實驗資源,實現(xiàn)了高仿真效果的化學實驗模擬,可以滿足中學化學實驗學習的需要,用戶可以在有限的教學資源下,安全的學習化學實驗知識,激發(fā)了用戶對化學學習的興趣,極大的推進了中學化學課程的教學信息化。