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