孫沫麗,惲鴻峰,楊曉輝
(長春光華學院,吉林 長春 130000)
虛擬仿真技術是一種采用虛擬系統(tǒng)模仿真實系統(tǒng)的技術[1]。虛擬仿真是一種可創(chuàng)建和體驗虛擬世界的計算機系統(tǒng)[2]。此種虛擬世界由計算機生成,用戶可借助視覺、聽覺及觸覺等多種傳感通道與虛擬世界進行自然的交互[3]。其是以仿真的方式給用戶創(chuàng)造一個實時反映實體對象變化與相互作用的三維虛擬世界,提供用戶一個與該虛擬世界交互的三維界面,使用戶可直接參與并探索仿真對象在所處環(huán)境中的作用與變化。具有沉浸感的虛擬仿真實驗則是依托虛擬仿真技術發(fā)展起來的創(chuàng)新型實踐教學模式,是對實踐教學環(huán)節(jié)的進一步改革。實驗者在這種虛擬實驗環(huán)境下進行學習和訓練,如同在真實的環(huán)境中一樣按照設定的步驟進行實驗操作,這種實驗模式取得的效果遠遠優(yōu)于真實環(huán)境,提高了學生的學習效率和實踐動手能力[4]。
目前,電學類的二維虛擬仿真軟件相對成熟,比如Protel,Multisim,Viewlogic等[5]。但二維仿真軟件大多只注重電子元器件符號的連接,相當于將書本上的電路圖搬移到電腦上,仍然不夠真實。初學者在不懂專業(yè)術語或專業(yè)技術的情況下操作困難,大大降低了學習者對仿真實驗的學習興趣[6]。為了提升虛擬實驗的沉浸感和交互性,面向電學領域的三維虛擬仿真實驗系統(tǒng)的研究勢在必行[7]。
數(shù)字電路實驗是理工類高校必不可少的電子類基礎課程,在各大高校的實驗教學中占有重要地位[8]。數(shù)字電路涉及的主要內(nèi)容包括邏輯代數(shù)、邏輯門電路、組合邏輯電路、時序邏輯電路以及半導體存儲器等。實驗過程中所需要的電子元器件包括:邏輯與或非門電路、全加器、計數(shù)器、數(shù)據(jù)選擇器以及譯碼器等。因此,需要根據(jù)實驗內(nèi)容對以上的元器件進行建模和功能仿真。
數(shù)字電路虛擬仿真教學系統(tǒng)的總體設計方案如圖1所示。在程序框架總體設計階段,系統(tǒng)對電子元件進行接口定義,其主要目的是優(yōu)化元器件的程序結構,提高程序的開發(fā)效率。在程序模塊詳細設計階段,導線的外觀及連接方式的設計采用貝塞爾曲線算法,并根據(jù)連接點實時動態(tài)的繪制導線;電子元件連接以后,電路的仿真算法采用無向圖的遞歸算法進行模擬。
圖1 總體設計方案
本系統(tǒng)采用虛擬現(xiàn)實技術、3D模型設計與制作技術、Unity游戲引擎結合數(shù)字電路的基本原理,設計數(shù)字電路虛擬仿真教學系統(tǒng)。本系統(tǒng)采用虛擬現(xiàn)實設備如VR的配套設備或終端電腦作為操作媒介,通過3D模型制作技術對數(shù)字電路的實驗箱、電子元器件等進行模型的設計與制作。本系統(tǒng)使用Unity引擎技術實現(xiàn)實驗場景的搭建、模型的功能和交互,把數(shù)字電路的邏輯引入相應的模型,采用編程技術實現(xiàn)模型的內(nèi)部邏輯、UI交互,為實驗者提供友好、逼真的交互界面,達到高度仿真的目的。
設計流程為:首先,根據(jù)實驗需求搜集電子元器件的素材和實驗內(nèi)容劃分實驗的模塊。作者根據(jù)“數(shù)字電路”課程的內(nèi)容,把虛擬仿真系統(tǒng)初步劃分為4個仿真模塊,分別是組合邏輯電路設計、數(shù)據(jù)選擇器、簡單時序電路以及計數(shù)器。其次,明確電子元器件的外觀設計方案、內(nèi)部構造參數(shù)和外形圖片,了解不同電子元器件及芯片的工作原理,并清楚實驗流程。搜集素材,了解電子元器件的具體細節(jié)并利用三維建模軟件3DMAX制作模型。對模型進行貼圖渲染增強其真實感,并以FBX的格式導出。再次,將模型文件以資源包的形式導入Unity,其中導入資源的文件結構應以實驗箱作為文件的根結點,文件的內(nèi)部包含總開關、LED燈組、開關組、顯像管、芯片及芯片底座等模型。最后,對程序進行總體架構設計以及程序模塊的詳細設計。界面設計了一個主頁面,內(nèi)部包含4個實驗模塊的選項供實驗者進行選擇。當實驗者選取某個實驗選項則進入相應的實驗場景時,通過UI界面的交互對不同的元器件進行選擇并搭建實驗,測試實驗結果并驗證實驗的正確性。
在系統(tǒng)開發(fā)過程中,除了模型的設計與制作,對導入模型的功能設計與仿真也是非常重要的環(huán)節(jié)。除了程序的框架設計以及功能的詳細設計與開發(fā)以外,本系統(tǒng)的設計仍包含以下關鍵技術:芯片仿真模塊的設計、導線的連接方案設計與電流導通算法的實現(xiàn)等。
芯片的外觀基本沒有太大區(qū)別,只有引腳數(shù)和型號有所不同。因此,可以為芯片設計一個統(tǒng)一的父類,根據(jù)芯片的不同型號設計相應的子類。根據(jù)實驗內(nèi)容對實驗芯片的要求,系統(tǒng)至少需要包含以下幾種芯片:74LS00,74LS04,74LS28,74LS86,74LS153芯片等。由于芯片的內(nèi)部邏輯結構不同,所以對應的引腳數(shù)以及引腳的含義也不同。以74LS00為例,其芯片內(nèi)部共包含4個邏輯異或門;其引腳的含義定義為:1,2,4,5,12,13引腳為輸入端,3,6,8,11為輸出端,引腳7為地端,引腳14為電源VCC端。芯片類具有引腳連接狀態(tài)監(jiān)測的功能,能時刻檢查各引腳的連接狀態(tài)并進行相應的邏輯輸出。
導線的作用是連接相應的電子元器件,讓設計的電路圖在虛擬實驗環(huán)境中實現(xiàn)并導通電路。由于實驗者對導線的操作具有隨機性、連接的不確定性等因素,所以導線不能采用固定的模型表示。本系統(tǒng)通過程序設計的繪圖功能對導線進行實時的繪制,實驗者在操作導線的過程中,導線的走向會進行動態(tài)更新,達到模擬真實導線的效果。本系統(tǒng)采用貝塞爾曲線對導線的走向進行模擬。導線的連接端子采用預先設計好的端子模型,一根導線包含兩個連接端子,并由端子直接插入插槽,一個插槽可以堆疊連接多條導線的端子。當導線通過端子連接后,如果兩個端子間電壓不相等則啟動電流導通算法。為了高度仿真電流,讓導線呈現(xiàn)電路的導通效果,系統(tǒng)采用有向圖遞歸算法對電流導通過程進行仿真。導線的設計及連接電路的過程,如圖2所示。
圖2 導線的設計與連接
以組合邏輯電路設計內(nèi)容為例,作者根據(jù)例題的題意計算出輸入與輸出的公式,并進行電路的設計。系統(tǒng)根據(jù)設計電路的需求,確定芯片采用一片74LS00即可滿足設計要求。圖3左半部分展示了組合邏輯電路設計的例題以及電路的設計結構。芯片的內(nèi)部結構以及輸入與輸出的關系結構,如圖3所示。筆者采用虛擬仿真教學系統(tǒng)對該電路進行連接并測試,選取開關組的3個開關作為輸入端A,B,C,選取L0顯示燈作為輸出端。根據(jù)邏輯電路圖,采用導線對芯片、開關以及輸出端L0進行連接。當A,B,C端按照圖中的組合進行狀態(tài)切換時,輸出端L0的狀態(tài)與預先設計的結果一致。
圖3 實驗測試與仿真結果
基于虛擬仿真技術的“數(shù)字電路實驗”教學系統(tǒng)的設計改變了傳統(tǒng)的實踐教學教學模式,無論在數(shù)字電路實驗領域還是在其他電學的實驗領域都具有非常廣闊的應用前景。