北京信息科技大學(xué),北京 100192
目前,交通事故作為最危害人類的災(zāi)禍之一,已被聯(lián)合國列為需要重點(diǎn)解決的問題之一。根據(jù)世界衛(wèi)生組織2015年發(fā)布的報(bào)告,2010年至2013年,每年約有125萬人死于道路交通事故,平均25s便有1人死于車禍。[1]。有效減少交通事故、降低傷亡人數(shù)及財(cái)產(chǎn)損失已經(jīng)刻不容緩,而自動(dòng)駕駛技術(shù)的成熟也為這一問題的解決提供了有力支持。近幾年來自動(dòng)駕駛技術(shù)受到了越來越多的關(guān)注,國內(nèi)外專家也將它視為技術(shù)熱點(diǎn)。
聚焦于實(shí)際道路中的自動(dòng)駕駛研究,本文設(shè)計(jì)了一種基于光電傳感器的自動(dòng)避障尋跡小車。根據(jù)光電傳感器的檢測,單片機(jī)判斷信號(hào),并且把信號(hào)輸入到驅(qū)動(dòng)芯片,通過PWM實(shí)現(xiàn)對(duì)電機(jī)的啟停、方向、加減速的控制。小車具有自動(dòng)尋跡、起始點(diǎn)檢測以及自動(dòng)聲光報(bào)警等功能[2-3]。
本方案的優(yōu)勢如下:首先是選擇功能強(qiáng)大的STC12C5A單片機(jī),該單片機(jī)處理速度快,是普通51單片機(jī)的10倍,適合于智能車的研究,并且外設(shè)功能齊全,特別是集成2路PWM[4],很好的解決研究內(nèi)容;其次,通過PWM控制直流電機(jī)的速度,控制方法控制性能好。
本設(shè)計(jì)采用STC12C5A單片機(jī)作為整機(jī)的控制單元。以STC12C5A單片機(jī)為核心的控制電路,采用模塊化的設(shè)計(jì)方案,運(yùn)用光電傳感器組成檢測電路,實(shí)現(xiàn)小車在行駛中自動(dòng)尋黑線的功能,并將測量數(shù)據(jù)傳送至單片機(jī)進(jìn)行處理,然后由單片機(jī)根據(jù)所檢測的各種數(shù)據(jù)實(shí)現(xiàn)對(duì)電動(dòng)小車的智能化控制[5]。
在本系統(tǒng)中,反射式紅外光電傳感器檢測黑線,然后將信號(hào)傳送到單片機(jī)系統(tǒng)進(jìn)行處理,使小車沿軌道自主行走[6],采用H型脈沖寬度調(diào)制(PWM)全橋式驅(qū)動(dòng)電路控制電機(jī)的轉(zhuǎn)向,實(shí)現(xiàn)電動(dòng)小車的正反向行駛、快慢速行駛及轉(zhuǎn)彎[7]。此系統(tǒng)比較靈活,采用軟件方法來解決復(fù)雜的硬件電路部分,使系統(tǒng)硬件簡潔化,各類功能易于實(shí)現(xiàn),具有高度的智能化、人性化,一定程度體現(xiàn)了智能,能滿足系統(tǒng)的要求[8]。
本次設(shè)計(jì)的系統(tǒng)有如下優(yōu)點(diǎn):
1、數(shù)據(jù)采集系統(tǒng)以單片機(jī)為控制核心,用戶可以與之進(jìn)行交互工作,完成數(shù)據(jù)的采集、存儲(chǔ)、計(jì)算、分析等功能;
2、系統(tǒng)具有低功耗、小型化、高性價(jià)比等特點(diǎn);
3、軟件系統(tǒng)采用C語言編寫,便于用戶的開發(fā)以及擴(kuò)展功能。
系統(tǒng)總體設(shè)計(jì)如圖1所示。該系統(tǒng)的硬件設(shè)計(jì)具體如下:
循跡傳感模塊電路根據(jù)反射接收原理配置了一對(duì)紅外線發(fā)射、接收傳感器。該電路包括一個(gè)紅外發(fā)光二極管、一個(gè)紅外光敏三極管及其上拉電阻。如圖2所示。紅外發(fā)光二極管發(fā)射一定強(qiáng)度的紅外線照射物體,紅外光敏三極管在接收到反射回來的紅外線后導(dǎo)通,發(fā)出一個(gè)電平跳變信號(hào)[9]。
當(dāng)小車在白色地面行駛時(shí),裝在車下的紅外發(fā)射管發(fā)射紅外線信號(hào),經(jīng)白色反射后,被接收管接收,一旦接收管接收到信號(hào),那么圖2中光敏三極管將導(dǎo)通,輸出低電平,當(dāng)小車行駛到黑色引導(dǎo)線時(shí),紅外線信號(hào)被黑色吸收后,光敏三極管截止,輸出高電平,從而實(shí)現(xiàn)了通過紅外線檢測信號(hào)的功能。將檢測到的信號(hào)送到單片機(jī)I/O口,當(dāng)I/O口檢測到的信號(hào)為高電平時(shí)[10],表明紅外光被地上的黑色引導(dǎo)線吸收了,表明小車處在黑色的引導(dǎo)線上;同理,當(dāng)I/O口檢測到的信號(hào)為低電平時(shí),表明小車行駛在白色地面上。即當(dāng)小車底部的某邊紅外線收發(fā)對(duì)管遇到黑帶時(shí)輸入電平為高電平,反之為低電平。
采用電機(jī)驅(qū)動(dòng)芯片L298N。L298N為單塊集成電路,高電壓,高電流,4通道驅(qū)動(dòng),可直接的對(duì)電機(jī)進(jìn)行控制,無須隔離電路。通過單片機(jī)的I/O輸入改變芯片控制端的電平,既可以非常方便地對(duì)電機(jī)進(jìn)行正反轉(zhuǎn)、停止的操作,亦能滿足直流減速電機(jī)的大電流要求[11]。圖3為L298N電機(jī)驅(qū)動(dòng)模塊電路,表1是其使能、輸入引腳和輸出引腳的邏輯關(guān)系。調(diào)試時(shí)依照表1,用程序輸入對(duì)應(yīng)的碼值,能夠?qū)崿F(xiàn)對(duì)應(yīng)的動(dòng)作。
表1 L298N的引腳和輸出引腳的邏輯關(guān)系
選用直流電機(jī)作為驅(qū)動(dòng)電機(jī)。直流電機(jī)的控制方法比較簡單,只需給電機(jī)的兩根控制線加上適當(dāng)?shù)碾妷杭纯墒闺姍C(jī)轉(zhuǎn)動(dòng)起來,電壓越高則電機(jī)轉(zhuǎn)速越高。對(duì)于直流電機(jī)的速度調(diào)節(jié),可以采用改變電壓的方法,也可采用PWM調(diào)速方法。PWM調(diào)速就是使加在直流電機(jī)兩端的電壓為方波形式,通過改變方波的占空比實(shí)現(xiàn)對(duì)電機(jī)轉(zhuǎn)速的調(diào)節(jié)。
單片機(jī)是整個(gè)智能循跡小車的核心,控制系統(tǒng)的所有模塊工作。本系統(tǒng)中,考慮到小車的控制系統(tǒng)需要用到兩路的PWM脈沖調(diào)制、較大的Flash存儲(chǔ)空間和較快的數(shù)據(jù)處理能力,所以采用的是STC12C5A單片機(jī)。STC12C5A單片機(jī)是宏晶科技生產(chǎn)的單時(shí)鐘/機(jī)器周期(1T)的單片機(jī),是高速/低功耗/超強(qiáng)抗干擾的新一代8051單片機(jī),指令代碼完全兼容傳統(tǒng)8051,但速度快8倍~12倍。內(nèi)部集成MAX810專用復(fù)位電路、2路PWM、8路高速10位A/D轉(zhuǎn)換(250K/s)、雙串口[12],特別適用強(qiáng)干擾場合。片上具有可編程 Flash 存儲(chǔ)器,F(xiàn)lash允許程序存儲(chǔ)器在系統(tǒng)可編程,亦適于常規(guī)編程器。外部中斷I/O口7路,傳統(tǒng)的下降沿中斷或電平觸發(fā)中斷,并新增支持上升沿中斷的PCA模塊,3個(gè)時(shí)鐘輸出口,可由T0的溢出在P3.4/T0輸出時(shí)鐘,可由T1的溢出在P3.5/T1輸出時(shí)鐘[13],獨(dú)立波特率發(fā)生器可以在P1.0口輸出時(shí)鐘,使得STC12C5A為眾多嵌入式控制應(yīng)用系統(tǒng)提供高靈活超有效的解決方案。圖4為STC12C5A主要連線圖。
在本系統(tǒng)中,需要用到的電源有單片機(jī)的5V,L298N芯片的電源5V和電機(jī)的電源7V~15V。所以需要電源的提供必須正確、穩(wěn)定、可靠。
采用雙電源。為了確保單片機(jī)控制部分和后輪電機(jī)驅(qū)動(dòng)的部分的電壓不會(huì)互相影響,要把單片機(jī)的供電和驅(qū)動(dòng)電路分開來,即用6節(jié)干電池7.2V來驅(qū)動(dòng)電機(jī)芯片,然后用7805穩(wěn)壓管來穩(wěn)成5V供給單片機(jī),后輪電機(jī)的電源用LM1117-3V供電,這樣有助于消除電機(jī)干擾,提高系統(tǒng)的穩(wěn)定性。
根據(jù)題目要求軟件部分主要實(shí)現(xiàn)躲避軌道邊緣黑線和調(diào)速。
(1)躲避邊緣黑線:實(shí)現(xiàn)小車沿軌道行駛不會(huì)偏離跑道;
(2)調(diào)速:調(diào)節(jié)小車在轉(zhuǎn)彎區(qū)和超車去車速快慢的調(diào)節(jié)。
通過判斷左邊和右邊傳感器送過來的信號(hào)進(jìn)行判斷是否進(jìn)行左右轉(zhuǎn)動(dòng)調(diào)節(jié),由前方傳感器判斷是否進(jìn)行轉(zhuǎn)彎,通過單片機(jī)送來的指令使小車行駛。圖5為軟件流程圖。
軟件的編寫是在KEIL4編譯環(huán)境下,使用C語言開發(fā),編程思想在于單片機(jī)對(duì)光電傳感器傳來數(shù)據(jù)的判斷以及對(duì)于電機(jī)控制時(shí)使用的PWM輸出。PWM信號(hào)是利用單片機(jī)編程實(shí)現(xiàn)的,使用定頻調(diào)寬法,即脈沖信號(hào)的頻率(周期)是固定的,通過調(diào)節(jié)脈沖的寬度即電壓為高電平狀態(tài)的時(shí)間來改變脈沖信號(hào)的占空比(在一個(gè)周期中,電壓值為高電平狀態(tài)的時(shí)間占一個(gè)周期的百分比),從而改變電機(jī)電樞兩端的平均電壓值,這樣就實(shí)現(xiàn)了直流電機(jī)的調(diào)速目的。
測試條件:檢查多次,仿真電路和硬件電路必須與系統(tǒng)原理圖完全相同,并且檢查無誤,硬件電路保證無虛焊。
測試儀器:自制跑道、秒表
自制跑道測試:測試數(shù)據(jù)如表2所示
測試結(jié)果:自制跑道上的成功率為60%,測試表明在電量偏小時(shí)成功率最高
表 2 測試數(shù)據(jù)
根據(jù)上述測試數(shù)據(jù),由此可以得出以下結(jié)論:自動(dòng)沿預(yù)設(shè)軌道行駛小車在行駛過程中,能夠自動(dòng)檢測預(yù)先設(shè)好的軌道,實(shí)現(xiàn)直道和弧形軌道的前進(jìn)。若有偏離,能夠自動(dòng)糾正,返回到預(yù)設(shè)軌道上來。本設(shè)計(jì)利用單片機(jī)輸出的PWM波經(jīng)L298N實(shí)現(xiàn)對(duì)電機(jī)轉(zhuǎn)速的控制,從而實(shí)現(xiàn)小車的智能化。該小車具有自動(dòng)尋跡,起始點(diǎn)檢測以及自動(dòng)聲光報(bào)警等功能,基于穩(wěn)定的硬件電路設(shè)計(jì)以及精確可靠的軟件算法,小車能夠?qū)崿F(xiàn)預(yù)期功能。