基于數字電路虛擬實驗設計與實現問題探究
佚名
【摘要】基于VRML構建的虛擬實驗,具有開發周期相對短、使用效率高、可擴展性強、成本低廉等特點,是解決實驗教學資源緊張,提高教學質量,擺脫實驗教學困境行之有效的途徑。一方面,采用虛擬實驗輔助教學可以大幅度實驗損耗,減少了實驗保障費用;另一方面,虛擬實驗既適用于學生實驗前的預習和課后練習,也可用于學生自學,能夠滿足不同學生的多樣化學習需求,提高學習的自主性和創造性。
0引言
數字電路實驗是電子技術課程的重要組成部分,是理工科學生培養過程中重要的教學環節。然而在實際教學活動中,實驗室條件有限、課程安排不盡合理等都會成為制約實驗課程效果的原因,學生缺少動手操作的機會,教學質量很難實現突破式發展。更為主要的是統一定制的實驗內容和教學安排,不能滿足學生的個性化的學習要求,出現基礎好的學生“吃不飽”,而基礎差的學生“跟不上”的現象,嚴重地影響了實驗教學的效果。
1虛擬實驗
隨著計算機技術和網絡技術的發展,虛擬實驗進入人們的視野并得到快速的發展,其實現技術和研究方法也不斷深化和發展,因此,關于什么是虛擬實驗,人們往往根據不同的構建方法、不同的應用領域、不同的運行方式,從不同的層面和不同角度進行定義和概括。從實驗教學的角度來看,虛擬實驗是指借助于圖形圖像、仿真和虛擬現實等一切可用的技術在計算機上構建一個與傳統實驗室一樣可進行實驗操作、可觀察實驗現象的“真實”的實驗環境。虛擬實驗的優越性是能夠充分發揮計算機多媒體技術的作用,模擬出逼真的實驗儀器、實驗臺、實驗工具,使得實驗的操作步驟和方法與真實實驗過程相同或近似。3D技術、多傳感交互技術以及高分辨顯示技術的發展,將虛擬實驗越來越多地和虛擬現實技術聯系起來。在利用虛擬現實技術構建的逼真的一體化虛擬環境中,用戶可以通過交互設備以自然的方式與虛擬環境進行交互,相互影響,得到身臨其境的感受和體驗,因此實驗者不僅能夠得到“真實”的實驗結果,同時還能夠進行“真實”的實驗操作過程,獲得“動手”做實驗的感受,從而提高實踐能力,達到實驗目的。
1虛擬實驗在實驗教學中的作用
1.1降低實驗室建設、維護費用
在教學實踐中,由于實驗設備、實驗場地、教學經費等方面的原因,一些設備配置數量有限,只能“一人實驗,多人觀看,實驗結果共享”,甚至只能采用“教師操作,學生觀摩”的形式,實驗效果大打折扣。對虛擬實驗而言,一是對實驗場所沒有限制,節省了實驗室建設費用;二是虛擬實驗主要以計算機、網絡和應用軟件系統構成,硬件成本低廉;三是不會產生實驗損耗,大大減少了維護費用。1.2滿足個性化學習需求
虛擬實驗不僅可以在實驗室PC上進行,還可以在網絡終端上進行,因此不受時間空間的限制。一方面,使學生可以不受傳統真實實驗室關閉和開放時間的限制,自主安排實驗時間,隨時隨地依據個人需要進行實驗,且無限地擴充實驗次數;另一方面,學生在PC上進行實驗,既可以作為傳統實驗課程的補充,也可以通過相關的資料進行完全的自學,增強學習的自主性和創造性,從而滿足個性化的學習需求。1.3提高實驗教學內容的先進性
對于實驗教學來說,教學內容的先進性是幫助學生學習前沿科學知識的重要手段。然而,性能落后的實驗儀器和陳舊的實驗項目普遍存在,嚴重制約了實驗教學的效果。虛擬實驗的優越特性之一就是能夠通過軟件實時地更新實驗內容,使最先進、最前沿的實驗項目和精確儀器進入課堂,使學生了解最新最及時的資訊,提高教學的實時性。1.4提高學生思考和解決問題的能力
一方面,虛擬實驗所提供的實驗條件使得學生可以不受真實實驗中因儀器或人為因素的干擾,引導學生將注意力集中放在實驗的思想上,更加關注實驗所解決的問題;另一方面,通過虛擬實驗讓學生“獨自”進行實驗的形式,也能讓學生進行獨立的思考和操作,有效克服了真實實驗中盲目操作和實驗“走過場”的問題,最重要的是能夠切實提高學生思考和解決問題的能力。將虛擬實驗作為實驗教學的一個新方式,一方面能夠減輕承擔院校的實驗室建設的壓力,另一方面給廣大的學生提供了學習、交流的平臺,將極大地促進實驗教學的效果。
2數字電路虛擬實驗方案設計
2.1虛擬實驗的設計目標
本文以數字電路實驗教學的需求為起點,目的是緩解傳統數字電路實驗教學中存在的不足。一方面作為院校教學中真實實驗的補充和輔助,另一方面可作為練習實驗技能的開放式平臺。根據數字電路實驗的特點,設定虛擬實驗的主要功能有:能夠對理論課中一些難以理解的內容以虛擬實驗的方式進行演示、能夠呈現“逼真”的虛擬實驗環境,使實驗者“置身”三維立體場景中進行漫游,熟悉和感受實驗環境,了解實驗儀器和操作過程、能夠提供“真實”的實驗元件,并能夠通過鼠標的選擇或者拖拽操作和實驗對象進行交互。2.2基于VRML的虛擬實驗開發流程
虛擬實驗構建方法的選擇,一方面要保證實驗能夠達到輔助教學、提高實驗教學效率的目的,另一方面要充分考慮到技術的可行性和有利于虛擬實驗的推廣和應用。VRML(VirtualRealityModelingLanguage,虛擬現實建模語言)是ISO(國際標準化組織)和IEC(國際電子技術委員會)推薦的Internet上描述三維交互場景和對象的文件格式標準[3]。作為Internet上3D文件的交換、描述標準,使得在網絡上實現虛擬現實成為可能。基于VRML實現虛擬實驗具有便于實時交互、網絡傳輸、成本低的特點,非常適用于網絡虛擬實驗的開發。根據VRML的技術特點,本文提出VRML+3DSMax+Java/JavaScript的虛擬實驗構建方案,其具體的步驟是:首先依據事先獲取的資料,在3DSMax中建立三維對象的造型、材質、貼圖、動畫和視點等,再利用3DSMax的Export功能導出為VRML文件格式,然后進行模型優化和代碼的簡化,最后保存為*.wrl文件(即VRML文件,wrl是VRML文件的擴展名),最后在VRML編輯器VrmlPad2.0中進行交互的腳本實現。圖1所示為該方案的流程圖。
3數字電路虛擬實驗的實現
數字電路虛擬實驗的實現包括實驗對象建模幾何建模和行為建模兩個內容。3.1實驗對象幾何建模
場景和實驗儀器的三維模型構建是虛擬實驗實現的基礎,好的模型能給使用者一種很真實的感覺,達到以“虛”代“實”的目的。(1)對象層次分析一般來說實驗場景和儀器具有一定的復雜度,直接進行建模難度較大,因此在建模之前應對建模對象進行分層,將一個大的場景或儀器分解幾個對象,特別要分離出參與交互的部分。數字電路實驗箱的層次結構如圖2所示。(2)3DSMax建模3DSMax中建模方法有基本形體建模、旋轉建模、Loft放樣建模等。因實驗箱比較規則,主要采用基本形體建模結合復制、堆積建模、旋轉建模、Loft放樣建模方法進行模型構建。(3)模型導出和優化模型導出時,單擊3DSMax菜單File下的Export(導出),在彈出的SelectFileToExport(選擇導出的文件)對話框中選擇文件的保存類型為“VRML97(*.wrl)”,輸入文件名,然后單擊保存按鈕。與VRML復雜的程序指令相比,3DSMax提供了快捷直觀的建模方法,但VRML畢竟不是3DSMax的主要方向,兩者的結合存在一些必然的問題,導致導出文件較大。為了提高虛擬實驗的傳輸和渲染速度,可以再使用VrmlPad軟件對代碼進行優化。進行代碼優化的方法主要有:使用VrmlPad壓縮功能、使用LOD技術優化細節層次、利用DEF,USE和PROTO對節點進行重用等等。3.2實驗對象行為建模
基于VRML的交互包括基本交互和擴展交互兩部分,圖3所示為VRML的交互機制。(1)基本交互基本交互是通過無程序的方式產生的用戶操作與對象響應的簡單交互,它是基于VRML自帶的傳感器(Sensor)節點建立的。負責感知用戶操作的傳感器類節點可以輸出或輸入事件,經過路由圖來改變其他節點的屬性。簡單交互在設計虛擬實驗中經常遇到,如旋轉旋鈕,平移實驗儀器,按鈕按下的動態效果等。例如對于下面的代碼,就可通過單擊鼠標來打開或關閉實驗箱。
DEFtime1TimeSensor{cycleInterval1}DEFrota1OrientationInterpolator{key[0.3.71]keyValue[-1000,100-.5,100-1.8,100-2.3]}DEFtime2TimeSensor{cycleInterval1}DEFrota2OrientationInterpolator{key[0.3.71]keyValue[100-2.3,100-1.8,100-.5,-1000]}ROUTEtou.touchTimeTOtime1.startTimeROUTEtime1.fraction_changedTOrota1.set_fractionROUTErota1.value_changedTOboxing.set_rotation#打開實驗箱的路徑ROUTEtou2.touchTimeTOtime2.startTimeROUTEtime2.fraction_changedTOrota2.set_fractionROUTErota2.value_changedTOboxing.set_rotation#閉合實驗箱的路徑(2)擴展交互擴展交互是創建在虛擬空間實現動作的小程序的復雜交互,它是通過VRML提供的腳本編輯接口(SAI)與外部編程接口(EAI)實現的。下面是一個JavaScript和VRML接口創建的燈的開關,點擊開關,燈亮,再次點擊時燈滅。DEFOnoffScript{eventInSFBooLset_booleaneventOutSFBooLvalue_changedfieldSFBooLvalueFALSEurl"javascript:functionset_boolean(bool,eventTime){if(set_boolean==false)(return;)if(value==true){value=false;}else{value=true}value_changed=value;}"}
[1]瞿望.網上虛擬實驗的研究與教學開放教育研究,2004(4)
[2]申蔚,曾文琪.虛擬現實技術[M].清華大學出版社,2009.8(第一版)
[3]何峰,謝宗蕻,昂海松.VRML-Internet上的虛擬現實標準.計算機仿真,1999,7(3)