梅蓉
【摘 要】相較于其他系統(tǒng),Arduino表現(xiàn)出編程簡易、成本低、平臺跨越等一系列優(yōu)勢,將其應(yīng)用于智能小車設(shè)計具有十分重要的現(xiàn)實意義。文章通過闡述整體系統(tǒng)設(shè)計方案,對Arduino單片機(jī)智能小車硬件設(shè)計、軟件設(shè)計及示例功能的實現(xiàn)展開探討,旨在為促進(jìn)智能小車設(shè)計的健康穩(wěn)定發(fā)展提供必要借鑒。
【關(guān)鍵詞】Arduino;單片機(jī);智能小車
【中圖分類號】PT29 【文獻(xiàn)標(biāo)識碼】A 【文章編號】1674-0688(2019)02-0123-02
0 引言
依托各式各樣傳感器采集一系列信息,傳輸至主控單元Arduino單片機(jī)處理數(shù)據(jù)后實現(xiàn)相應(yīng)操作,進(jìn)而達(dá)到自身控制。電機(jī)驅(qū)動電路,借助H橋驅(qū)動模塊驅(qū)動2個直流電機(jī);借助手機(jī)藍(lán)牙用戶界面、HC-06藍(lán)牙模塊實現(xiàn)藍(lán)牙控制;借助HC-SR04超聲波模塊、舵機(jī)模塊實現(xiàn)測距及避障,最后通過控制單元處理數(shù)據(jù)完成編程,并有效整合一系列模塊信號,實現(xiàn)相應(yīng)操作,達(dá)到智能控制的目的,如同簡易機(jī)器人。
1 整體系統(tǒng)設(shè)計方案
相較于其他系統(tǒng),Arduino表現(xiàn)出編程簡易、成本低、平臺跨越等諸多優(yōu)勢?,F(xiàn)階段,較為常用的Arduino版本為Arduino UNO R3,其高效性、穩(wěn)定性可為智能小車設(shè)計提供有力支持。智能小車是指一款可對一系列實際狀況開展智能自主評估分析,進(jìn)一步作出理想操作的智能機(jī)器。智能小車整體結(jié)構(gòu)主要依托直流電動機(jī)驅(qū)動,將各式各樣傳感器采集的信息數(shù)據(jù)傳輸至主控單元Arduino單片機(jī),單片機(jī)開展對應(yīng)的數(shù)據(jù)處理分析,實現(xiàn)最理想的相應(yīng)操作,這一過程可稱為智能化自身控制。
2 硬件設(shè)計
智能小車硬件環(huán)節(jié)以模塊化方式開展設(shè)計,設(shè)計內(nèi)容主要包括電源模塊、電機(jī)驅(qū)動模塊、控制模塊、紅外收發(fā)模塊、LCD顯示模塊等。
電源模塊在全面系統(tǒng)設(shè)計中發(fā)揮至關(guān)重要的作用,該模塊設(shè)計穩(wěn)定與否決定了全面系統(tǒng)設(shè)計的成敗。本系統(tǒng)的電源主要源自12 V、720 mA可充電式鋰電池,經(jīng)由逆流保護(hù)、保險等手段變壓調(diào)整為其他電壓值,供其他模塊使用。電機(jī)驅(qū)動電源為12 V,Arduino單片機(jī)運(yùn)行電壓為5 V,電機(jī)驅(qū)動模塊、顯示模塊、紅外收發(fā)模塊等運(yùn)行電壓為5 V。另外,Arduino還可提供3.3 V、5 V雙電壓。
電機(jī)驅(qū)動模塊設(shè)計運(yùn)用電機(jī)驅(qū)動芯片L298N,其包含兩個H橋的高電壓大電流全橋式驅(qū)動器,連接外部續(xù)流二極管保護(hù)電路,進(jìn)而實現(xiàn)兩個電機(jī)的運(yùn)動姿態(tài)控制。因為智能小車電機(jī)未設(shè)置轉(zhuǎn)速編碼盤或者相關(guān)傳感器,依托調(diào)節(jié)PWM輸出腳脈沖信號占空比,以實現(xiàn)對小車速度的控制。調(diào)節(jié)完P(guān)WM控制端后,變更控制信號輸入腳電平,便可使智能小車實現(xiàn)不同姿態(tài)的轉(zhuǎn)變。
控制模塊在全面系統(tǒng)中發(fā)揮至關(guān)重要的控制作用。系統(tǒng)設(shè)計應(yīng)用Arduino單片機(jī)控制單元,通過主從通信方式實現(xiàn)對系統(tǒng)運(yùn)行的有效控制。主從雙方依托SPI總線開展數(shù)據(jù)交互。模塊設(shè)計時,Arduino基于單片機(jī)控制核心,本模塊依據(jù)Arduino UNO開展設(shè)計。Arduino作用于控制命令關(guān)鍵詞的傳輸及從機(jī)數(shù)據(jù)的接收,但不直接參與底層硬件模塊的控制工作;單片機(jī)主要作用于主機(jī)傳輸來命令關(guān)鍵詞的接收,并結(jié)合各種命令執(zhí)行對應(yīng)的子函數(shù),進(jìn)一步實現(xiàn)不同的功能。
紅外收發(fā)模塊設(shè)計主要劃分為紅外發(fā)射頭、接收頭的驅(qū)動電路設(shè)計,其中,兩個紅外發(fā)射頭通過PNP三極管實現(xiàn)驅(qū)動,接收頭通過對應(yīng)的指示燈實現(xiàn)數(shù)據(jù)接收指示。紅外發(fā)射頭設(shè)置于PCB頂部,接收頭設(shè)置于PCB底部,兩個接收頭接收面正對發(fā)射頭正前方,同時發(fā)射頭、接收頭呈相應(yīng)角度列于智能小車頭部兩端,切實降低紅外信號誤接受率。與此同時,通過對紅外發(fā)射頭驅(qū)動電路中可調(diào)電阻的控制,可實現(xiàn)對紅外發(fā)射頭電流的有效調(diào)節(jié)。值得一提的是,依托紅外收發(fā)模塊,可實現(xiàn)智能小車的紅外避障功能。
LCD顯示模塊由LCD160、背光及對比度調(diào)節(jié)電路組成,其主要負(fù)責(zé)呈現(xiàn)智能小車執(zhí)行相關(guān)功能的對應(yīng)數(shù)據(jù)信息。該模塊設(shè)計過程中,依托四線制方式開展數(shù)據(jù)信息發(fā)送,可實現(xiàn)對單片機(jī)I/O端的有效控制。
3 軟件設(shè)計
3.1 主機(jī)程序設(shè)計
在主機(jī)程序設(shè)計過程中,涉及SPI連接、SPI通信初始化、SPI數(shù)據(jù)發(fā)送等關(guān)鍵函數(shù),而主機(jī)與從機(jī)的SPI通信有效建立與否,則是實現(xiàn)其他功能函數(shù)的重要基礎(chǔ)。SPI總線初始化函數(shù)實現(xiàn)SPI功能初始化,涉及片選引腳選擇、輸入輸出模式設(shè)置、數(shù)據(jù)傳輸方式等內(nèi)容。調(diào)節(jié)滿意后,loop主函數(shù)部分便可實現(xiàn)對相關(guān)功能庫函數(shù)的調(diào)用。期間會涉及片選信號端電平拉低、命令關(guān)鍵詞及數(shù)據(jù)傳輸、片選信號端電平拉電等流程,結(jié)合對應(yīng)的時序?qū)崿F(xiàn)對某一字節(jié)或若干字節(jié)數(shù)據(jù)的傳輸。
3.2 從機(jī)程序設(shè)計
從機(jī)程序設(shè)計可劃分為初始化調(diào)用、子函數(shù)調(diào)用兩個部分。單片機(jī)配置位設(shè)置涉及諸多方面內(nèi)容,諸如選擇芯片振蕩器模式、禁用后臺調(diào)試器、調(diào)節(jié)數(shù)據(jù)區(qū)和引導(dǎo)區(qū)中相關(guān)數(shù)據(jù)保護(hù)與否等。單片機(jī)配置位調(diào)節(jié)結(jié)束后,從機(jī)的SPI初始化應(yīng)當(dāng)與主機(jī)SPI初始化通信時序保持統(tǒng)一。程序設(shè)計過程中,接收主機(jī)的數(shù)據(jù)通過中斷響應(yīng)方式實現(xiàn)接收。接收完成后,依托關(guān)鍵命令字的分析轉(zhuǎn)至對應(yīng)的子函數(shù),然后經(jīng)由數(shù)據(jù)分析實現(xiàn)底層硬件調(diào)節(jié),進(jìn)而實現(xiàn)各項功能。
4 示例功能實現(xiàn)
4.1 紅外避障
紅外避障是以Arduino兩組紅外收發(fā)器為基礎(chǔ)實現(xiàn)智能小車的自動避障功能。這一功能設(shè)計借助外部中斷、定時器中斷方式以檢測紅外接收頭的信號輸出腳電壓轉(zhuǎn)變情況,縮減紅外信號檢測滯后性,進(jìn)一步增強(qiáng)智能小車對障礙物的檢測靈敏度。另外,可依托對PWM信號占空比的控制,以有效調(diào)節(jié)智能小車運(yùn)動速度;可依托對智能小車避障動作延時參數(shù)、紅外發(fā)射頭可調(diào)電阻值的調(diào)節(jié),實現(xiàn)對智能小車避障效果的有效調(diào)節(jié)。
4.2 藍(lán)牙遙控
藍(lán)牙遙控是以Arduino連接藍(lán)牙模塊及手機(jī)應(yīng)用軟件藍(lán)牙遙控為基礎(chǔ),實現(xiàn)手持設(shè)備遙控智能小車的功能。Arduino模塊經(jīng)由串口接收藍(lán)牙模塊從設(shè)備端接收數(shù)據(jù),并對其展開分析,然后將分析結(jié)果控制邏輯及應(yīng)用軟件手勢控制邏輯開展評定處理,進(jìn)而達(dá)到手持設(shè)備遙控智能小車的目的。依托手勢的不同方向操作,可實現(xiàn)智能小車的不同功能。手持設(shè)備控制軟件依托第三方設(shè)計應(yīng)用軟件,可實現(xiàn)藍(lán)牙連接,并實現(xiàn)藍(lán)牙數(shù)據(jù)接收、傳輸?shù)裙δ堋?/p>
5 結(jié)語
基于Arduino單片機(jī)智能小車設(shè)計,主要是以Arduino單片機(jī)為核心,依托藍(lán)牙系統(tǒng)對Arduino單片機(jī)的反饋,從而實現(xiàn)對智能小車通信行動的智能控制,然后依托控制處理器對相關(guān)數(shù)據(jù)展開分析,進(jìn)一步調(diào)節(jié)電動機(jī)的主驅(qū)動,以實現(xiàn)智能小車的紅外避障、藍(lán)牙遙控等智能化功能。因此,相關(guān)人員必須加大研究力度,不斷開拓創(chuàng)新,學(xué)習(xí)借鑒國內(nèi)外成功經(jīng)驗,提高對Arduino的有效認(rèn)識,切實推進(jìn)智能小車設(shè)計的健康穩(wěn)定發(fā)展。
參 考 文 獻(xiàn)
[1]章杰瑞,周屹.基于Arduino和PIC單片機(jī)智能小車平臺的研究與設(shè)計[J].電腦知識與技術(shù),2017(29):187-190.
[2]趙津,朱三超.基于Arduino單片機(jī)的智能避障小車設(shè)計[J].自動化與儀表,2013,28(5):1-4.
[3]陳開軍.基于Arduino技術(shù)的智能小車設(shè)計[J].科技創(chuàng)新與應(yīng)用,2014(34):78-79.
[4]徐開軍,劉飛龍.基于Arduino平臺的多功能智能小車的設(shè)計[J].電子世界,2016(24):112-113.
[責(zé)任編輯:鐘聲賢]