陳新娟 卜捷捷
摘? 要: Arduino包含硬件和軟件兩部分,硬件部分靈活實(shí)用,軟件部分基于C語言開發(fā),易于上手且與Proteus仿真軟件相兼容,在教學(xué)過程中因?yàn)槌杀镜汀r(shí)效性高,而得到一致認(rèn)可。利用Arduino Uno開發(fā)板,編譯生成hex文件,再于Proteus軟件平臺(tái)添加開發(fā)板Arduino Uno,加載生成的hex文件并編譯完成交通燈功能仿真。Arduino與Proteus的聯(lián)調(diào)功能仿真,在單片機(jī)、傳感器教學(xué)以及機(jī)電控制等教學(xué)中具有參考性和推廣價(jià)值。
關(guān)鍵詞: Arduino; Proteus; 交通燈; 仿真教學(xué)
中圖分類號(hào):TP31? ? ? ? ? 文獻(xiàn)標(biāo)識(shí)碼:A? ? ?文章編號(hào):1006-8228(2020)04-90-02
Development of simulation teaching experiment using Arduino
Chen Xinjuan, Bu Jiejie
(Suzhou College of information Technology, Suzhou, Jiangsu 215200, China)
Abstract: Arduino includes two parts: hardware and software. The hardware part is flexible and practical. The software part is developed with C language. It is easy to use and compatible with Proteus simulation software. In the teaching process, Arduino has been unanimously recognized for its low cost and high timeliness. Using Arduino Uno development board, compile and generate a hex file, and adding Arduino Uno development board in Proteus software platform, load the generated hex file and compile it to complete the traffic light function simulation. The simulation of the joint debugging function of Arduino and Proteus has reference and popularization value in the teaching of single chip microcomputer, sensor and electromechanical control.
Key words: Arduino; Proteus; traffic light; simulation teaching
1 實(shí)驗(yàn)平臺(tái)性能分析
Arduino是一款簡(jiǎn)單易學(xué)且功能豐富的開源平臺(tái),包含硬件部分(各種型號(hào)的Arduino開發(fā)板)和軟件部分(Arduino IDE),以及廣大愛好者和專業(yè)人員共同搭建和維護(hù)的互聯(lián)網(wǎng)社區(qū)和資源。
Arduino硬件部分可以獨(dú)立工作,也可以與外部硬件設(shè)備協(xié)同工作。比如利用Arduino配合各種傳感器來感知環(huán)境,使用Arduino控制電機(jī)來驅(qū)動(dòng)機(jī)械臂、機(jī)器人和無人機(jī),更可以用Arduino來控制多彩的LED。這不僅可以為我們生活帶來便利,還可讓我們用光和彩進(jìn)行創(chuàng)作[1,5]。
Arduino IDE軟件是Arduino開發(fā)板的程序開發(fā)環(huán)境。只要在IDE中編寫好程序代碼,并且將程序上傳到Arduino后,Arduino就會(huì)根據(jù)客戶的要求執(zhí)行交給他的任務(wù)。Arduino開發(fā)語言是基于C/C++的[2]。
2 實(shí)驗(yàn)平臺(tái)開發(fā)
對(duì)于電子專業(yè)的學(xué)生和電子愛好者,若想在寢室或者家中用Arduino做一些基礎(chǔ)控制實(shí)驗(yàn),那么用Proteus電路仿真軟件是再好不過的選擇[3]。下面我們用實(shí)例來具體介紹在Proteus環(huán)境下Arduino仿真教學(xué)實(shí)驗(yàn)的開發(fā)。
2.1 實(shí)驗(yàn)準(zhǔn)備
所需實(shí)驗(yàn)設(shè)備:電腦一臺(tái),系統(tǒng)為win7 32位/64位(其他系統(tǒng)比如Win8,Win10未經(jīng)測(cè)試)軟件,ArduinoIDE(版本可在太極創(chuàng)客網(wǎng)站下載中文版),Proteus 7.5或以上。理論上講,只要能順利安裝這兩個(gè)軟件的windows系統(tǒng)就都可以實(shí)驗(yàn)。
2.2 操作步驟演示
2.2.1 基于ArduinoIDE的軟件編程
下面我們以一例簡(jiǎn)易交通燈設(shè)計(jì)進(jìn)行仿真實(shí)現(xiàn)演示。首先打開Arduino編譯調(diào)試軟件ArduinoIDE,在工具里選開發(fā)板“Arduino Uno”。因?yàn)樵贏rduino開發(fā)板家族中,Uno開發(fā)板是最適合初學(xué)者的Arduino開發(fā)板。由于它簡(jiǎn)單易學(xué)、穩(wěn)定可靠,Uno開發(fā)板也是應(yīng)用最為廣泛且參考資料最多的開發(fā)板。
簡(jiǎn)而言之,在選好板子后我們把此次演練的交通燈設(shè)計(jì)的程序?qū)懺诰幾g窗口,程序已經(jīng)預(yù)先寫好了。程序開頭部分是定義一些引腳,主程序基本思路是讓紅燈亮兩秒后熄滅,而后閃亮黃燈,每次閃亮200毫秒,閃三次,然后是點(diǎn)亮綠燈兩秒,這樣周而復(fù)始地運(yùn)行,當(dāng)然,可以根據(jù)實(shí)際需要更改設(shè)計(jì)。
調(diào)試成功無誤后,一般的做法是接上硬件,上傳程序至Uno開發(fā)板,觀察結(jié)果。如果是這樣,那就沒有我們下面的仿真調(diào)試了,這里主要借助于電子EDA仿真軟件Proteus來講講Arduino實(shí)驗(yàn)的另一種做法。點(diǎn)擊IDE軟件菜單里“文件”,“首選項(xiàng)”,“設(shè)置”,在設(shè)置對(duì)話框里把顯示詳細(xì)輸出“編譯”打鉤。重新再編譯后,在編譯詳細(xì)結(jié)果窗口我們可以找到英文字符類似xxxxx.hex,如圖1所示,根據(jù)英文字符的提示打開此hex文件的完整目錄,記下目錄地址[4]:
2.2.2 基于Proteus的聯(lián)調(diào)仿真
接下來就是Proteus部分的操作了,Proteus是英國(guó)著名的EDA工具(仿真軟件),從原理圖布圖、代碼調(diào)試到單片機(jī)與外圍電路協(xié)同仿真,一鍵切換到PCB設(shè)計(jì),真正實(shí)現(xiàn)了從概念到產(chǎn)品的完整設(shè)計(jì)。這里我們主要利用它的原理圖布圖和仿真,由于Proteus元件庫(kù)里沒有Arduino元件,要仿真Arduino就必須安裝Arduino元件,就像若要仿真電機(jī)馬達(dá)數(shù)碼管就必須有個(gè)電機(jī)馬達(dá)數(shù)碼管元件一樣。我們?cè)诰W(wǎng)上找到Proteus中的Arduino元件壓縮包,將解壓后的文件夾中的兩個(gè)文件復(fù)制到Protues安裝目錄下的LIBRARY文件夾中。例如:D:\Program Files (x86)\LabcenterElectronics\Proteus 8 Professional\LIBRARY
(具體位置依據(jù)安裝選擇確定)。重啟Proteus程序后,放置元件“Arduino”,選擇Uno,就可以直接放上去了,然后放上這個(gè)實(shí)驗(yàn)所需要的紅、黃、綠三個(gè)LED燈,連上相應(yīng)的引腳,此次實(shí)驗(yàn)的DSN圖就這樣畫好了,如圖2所示,先不要急著放置,我們?cè)囍p擊這個(gè)Uno芯片,發(fā)現(xiàn)彈出對(duì)話框。Program File這一項(xiàng)是空的,還記得剛才我們記下的文件目錄嗎?對(duì)了,此處要放的正是在ArduinoIDE中生成的hex文件。
現(xiàn)在,我們可以放心的點(diǎn)擊仿真運(yùn)行按鈕,如果一切無誤,就可以看到仿真結(jié)果了。
3 結(jié)束語
仿真實(shí)驗(yàn)平臺(tái)在成本、安全性、效率方面有得天獨(dú)厚的優(yōu)勢(shì),能很好的解決各類院校特別是高職院校實(shí)驗(yàn)室建設(shè)經(jīng)費(fèi)不足的問題,也不會(huì)因操作失誤而造成人身事故。在實(shí)際實(shí)驗(yàn)之前利用仿真實(shí)驗(yàn)來預(yù)習(xí),有助于學(xué)生從實(shí)驗(yàn)整體到局部建立起直觀的感性認(rèn)識(shí),能有效地克服實(shí)驗(yàn)中常出現(xiàn)的盲目操作及過場(chǎng)的現(xiàn)象,縮短實(shí)驗(yàn)的時(shí)間。對(duì)于一些難度大、操作步驟多的實(shí)驗(yàn),在實(shí)驗(yàn)后再做仿真實(shí)驗(yàn),可以使學(xué)生了解每一實(shí)驗(yàn)步驟在實(shí)驗(yàn)中所起的作用,進(jìn)一步理解實(shí)驗(yàn)原理,消化實(shí)驗(yàn)內(nèi)容。本文就Arduino仿真實(shí)驗(yàn)的開發(fā)舉了個(gè)例,希望能有拋磚引玉的效果。
參考文獻(xiàn)(References):
[1] 饒珺.Arduino創(chuàng)客項(xiàng)目在工程訓(xùn)練中的應(yīng)用[J].課程教育研究,2018.44.
[2] 黃永前.STEM的教學(xué)模式在中職<傳感器技術(shù)應(yīng)用>課程教學(xué)應(yīng)用研究[J].電子測(cè)試,2019.18.
[3] 惠振亮.Arduino在機(jī)械類專業(yè)教學(xué)中的應(yīng)用探索[J].甘肅科技,2019.2.
[4] 王希娟,李娟娟.基于Arduino單片機(jī)的交通燈倒計(jì)時(shí)顯示器設(shè)計(jì)[J].計(jì)算機(jī)光盤軟件與應(yīng)用,2014.22.
[5] 陳為通.基于Arduino開發(fā)系統(tǒng)的智能家居系統(tǒng)設(shè)計(jì)[J].中國(guó)新通信,2016.6.