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