肖 亮,李蘭英,劉書(shū)赫,汪明曌,單黎瀟
(哈爾濱理工大學(xué) 計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院,黑龍江 哈爾濱 150080)
嵌入式系統(tǒng)硬件虛擬仿真實(shí)驗(yàn)平臺(tái)不僅可以滿足新冠肺炎疫情期間線上實(shí)踐教學(xué)的需求,也可滿足在沒(méi)有硬件實(shí)驗(yàn)平臺(tái)的條件下,嵌入式技術(shù)的自主學(xué)習(xí)。因此,開(kāi)展嵌入式硬件虛擬仿真技術(shù)研究,設(shè)計(jì)與實(shí)現(xiàn)硬件實(shí)驗(yàn)虛擬仿真平臺(tái)的意義是不言而喻的。
本文基于英國(guó)Lab Center Electronics公司的EDA工具軟件Proteus,通過(guò)二次開(kāi)發(fā),首先完成嵌入式系統(tǒng)多種常用外設(shè)模塊的仿真模型設(shè)計(jì),并將其集成到Proteus的元件庫(kù)中。在此基礎(chǔ)上,設(shè)計(jì)和實(shí)現(xiàn)了一個(gè)滿足基于Arduino的嵌入式系統(tǒng)的實(shí)驗(yàn)(踐)虛擬仿真平臺(tái),并基于該平臺(tái)開(kāi)發(fā)了相應(yīng)的實(shí)驗(yàn)例程和系統(tǒng)案例,以滿足嵌入式系統(tǒng)硬件技術(shù)的線上教學(xué)、培訓(xùn)和無(wú)真實(shí)實(shí)驗(yàn)環(huán)境下的自主學(xué)習(xí)的需求,同時(shí)還可降低嵌入式人才培養(yǎng)的門(mén)檻。
基于Arduino的嵌入式實(shí)驗(yàn)平臺(tái)的設(shè)計(jì)理念,源于嵌入式系統(tǒng)硬件設(shè)計(jì)越來(lái)越趨向于模塊化,即在核心板或最小系統(tǒng)的基礎(chǔ)上,外擴(kuò)包括各種傳感器、人機(jī)交互、輸入輸出設(shè)備等多種模塊。選擇Arduino板作為核心控制器,就是由于開(kāi)源創(chuàng)客平臺(tái)Arduino屏蔽了硬件的復(fù)雜性,具有平臺(tái)資源豐富、成本低、支持的模塊眾多、開(kāi)發(fā)簡(jiǎn)單、上手快等優(yōu)勢(shì)[1]。
Proteus軟件雖然功能強(qiáng)大,但Proteus的電路計(jì)算并不是十分的精確,只能進(jìn)行粗略的計(jì)算[2],元件庫(kù)的更新?tīng)顩r存在落后的情況,很多器件都沒(méi)有同步更新,故在實(shí)驗(yàn)時(shí)經(jīng)常需要手動(dòng)搭載所需器件,并且對(duì)于初學(xué)者來(lái)說(shuō)難度更大,而在搭建不同嵌入式系統(tǒng)時(shí),需要多種外設(shè)模塊,故需要包括對(duì)常用外設(shè)模塊進(jìn)行抽象、封裝、擴(kuò)充元件庫(kù)等二次開(kāi)發(fā),才能滿足嵌入式技術(shù)的虛擬仿真學(xué)習(xí)需求。
本文以最常用的Arduino Mega 2560板最小系統(tǒng)為核心,結(jié)合Proteus提供的器件庫(kù)中封裝的多種元器件和自主設(shè)計(jì)的仿真電路模塊,設(shè)計(jì)與實(shí)現(xiàn)了一個(gè)虛擬仿真實(shí)驗(yàn)平臺(tái),具體包括直流電機(jī)、步進(jìn)電機(jī)和舵機(jī),按鍵、顯示器、溫濕度傳感器、超聲測(cè)距電路、三色燈、蜂鳴器、光敏電阻和電位器等電路。
基于該平臺(tái)可開(kāi)設(shè)多種類型的實(shí)驗(yàn),只需連接實(shí)驗(yàn)所需相應(yīng)的模塊或電路即可。目前已完成的實(shí)驗(yàn)包括以下幾類:
(1)人機(jī)界面實(shí)驗(yàn)。包括按鍵、鍵盤(pán)輸入、液晶顯示、八段數(shù)碼管顯示等實(shí)驗(yàn),可完成參數(shù)輸入、數(shù)字、字符顯示等功能。
(2)電機(jī)實(shí)驗(yàn)。包括直流電機(jī)控制與測(cè)速實(shí)驗(yàn)、步進(jìn)電機(jī)控制實(shí)驗(yàn)、舵機(jī)控制實(shí)驗(yàn)等。
(3)呼吸燈。可實(shí)現(xiàn)紅綠藍(lán)三色燈的漸變呼吸控制,可模擬景觀燈的控制場(chǎng)景。
(4)光強(qiáng)檢測(cè)。通過(guò)光敏電阻APDS-9002可對(duì)光強(qiáng)進(jìn)行測(cè)量,可模擬實(shí)現(xiàn)窗簾自動(dòng)控制等智能家居應(yīng)用場(chǎng)景。
(5)溫濕度檢測(cè)。通過(guò)元件庫(kù)中封裝好的溫濕度傳感器DHT11,可實(shí)現(xiàn)周圍環(huán)境溫濕度的檢測(cè)與顯示。
(6)倒車?yán)走_(dá)。利用自主設(shè)計(jì)的超聲測(cè)距仿真模塊,模擬超聲測(cè)距模塊SR04的功能,實(shí)現(xiàn)倒車?yán)走_(dá)的模擬應(yīng)用系統(tǒng)。
仿真實(shí)驗(yàn)平臺(tái)整體布局如圖1所示。本節(jié)給出了所設(shè)計(jì)的幾個(gè)關(guān)鍵模塊的設(shè)計(jì)原理圖。
圖1 虛擬仿真實(shí)驗(yàn)平臺(tái)整體布局
顯示電路包括液晶和數(shù)碼管兩部分,為了盡可能節(jié)省2560的引腳資源,液晶顯示電路以器件LM061L為核心,結(jié)合74164串轉(zhuǎn)并器件及與門(mén)、非門(mén)等門(mén)電路,設(shè)計(jì)與實(shí)現(xiàn)了一個(gè)串行接口的液晶顯示器。所需占用的Arduino數(shù)字接口由10個(gè)降到3個(gè),其電路原理圖如圖2所示。
圖2 液晶顯示電路原理圖
按鍵電路有兩種類型,電路如圖3所示。右邊是簡(jiǎn)單的4個(gè)按鍵原理圖,占用了Arduino的4個(gè)數(shù)字接口;左邊是一個(gè)4*4的矩陣鍵盤(pán);共占用Arduino的8個(gè)數(shù)字接口。
圖3 按鍵電路原理圖
SR04是目前常用的超聲測(cè)距模塊,廣泛應(yīng)用于需要測(cè)距的多種領(lǐng)域[3]。由于元件庫(kù)中沒(méi)有封裝好的SR04模塊,圖4的電路采用555定時(shí)器、LM358運(yùn)放、MPS6531三極管和RV2電位器等模擬實(shí)現(xiàn)了SR04的工作原理,其中IO2模擬SR04的TRIG引腳,IO3模擬ECHO引腳。
圖4 超聲測(cè)距電路原理圖
圖5給出了步進(jìn)電機(jī)、直流電機(jī)、蜂鳴器及驅(qū)動(dòng)電路。
圖5 電機(jī)與驅(qū)動(dòng)電路原理圖
其他電路包括DHT11、光敏電阻、三色燈、電位器、舵機(jī)等,可直接調(diào)用元件庫(kù)中的器件。
新冠肺炎疫情期間的教學(xué)實(shí)踐表明:基于Proteus和Arduino的虛擬實(shí)驗(yàn)仿真平臺(tái),圓滿地支撐了嵌入式課程硬件相關(guān)實(shí)驗(yàn),取得了很好的效果。同時(shí)也解決了學(xué)生沒(méi)有硬件實(shí)驗(yàn)環(huán)境下,自主學(xué)習(xí)硬件接口技術(shù)的難題,降低了嵌入式技術(shù)的學(xué)習(xí)門(mén)檻。另外也由于Proteus平臺(tái)的引入,系統(tǒng)運(yùn)行結(jié)果可直接演示,使得實(shí)驗(yàn)結(jié)果更加直觀、形象,激發(fā)了學(xué)生的學(xué)習(xí)興趣。