劉鑄,劉恒宇,凡正波
(成都理工大學(xué)核技術(shù)與自動(dòng)化工程學(xué)院,四川成都,610059)
隨著無(wú)人駕駛的提出,智能小車(chē)得到了飛速的發(fā)展,自動(dòng)尋光小車(chē)就是其中的一種。傳統(tǒng)的光電小車(chē)都采用單CPU運(yùn)行方式,既進(jìn)行攝像頭畫(huà)面的采集又要進(jìn)行控制算法的實(shí)現(xiàn)。這就存在CPU處理速度不夠快的問(wèn)題,導(dǎo)致攝像頭幀率不高。小車(chē)高速運(yùn)行的過(guò)程中,無(wú)法保證小車(chē)能準(zhǔn)確的找到信號(hào)燈的位置。為了提高攝像頭的幀率,本文設(shè)計(jì)了一種雙CPU控制系統(tǒng),將光線(xiàn)采集和小車(chē)控制分離,既能使小車(chē)能精準(zhǔn)找到信號(hào)燈位置,又可以快速穩(wěn)定的到達(dá)既定位置。
自動(dòng)尋光小車(chē)工作原理:利用STM公司M4內(nèi)核的處理器STM32F407ZGT6進(jìn)行攝像頭畫(huà)面的采集,計(jì)算得到信號(hào)燈的位置坐標(biāo),通過(guò)串口將坐標(biāo)信息傳給M3內(nèi)核的STM32F103ZET6,F(xiàn)1根據(jù)傳來(lái)的坐標(biāo)值做出判斷。若沒(méi)有采到信號(hào)燈的位置,則旋轉(zhuǎn)車(chē)身繼續(xù)找信號(hào)燈位置,若在畫(huà)面中找到信號(hào)燈的位置,利用編碼器測(cè)量得到兩輪的轉(zhuǎn)速,根據(jù)特殊的姿態(tài)解算和PID運(yùn)算,使小車(chē)快速穩(wěn)定地運(yùn)動(dòng)到信號(hào)燈的位置。在車(chē)頭的位置安裝了紅外避障模塊,在小車(chē)的運(yùn)行過(guò)程中遇到障礙物,小車(chē)會(huì)倒退一小段,防止撞毀小車(chē)。同時(shí),為了觀測(cè)小車(chē)的運(yùn)行狀態(tài),在F1上安裝了顯示屏,用于顯示信號(hào)燈的位置坐標(biāo)和小車(chē)當(dāng)前的運(yùn)行速度。系統(tǒng)總體框圖如1所示。

圖1 系統(tǒng)總體框圖
車(chē)身采用三輪結(jié)構(gòu),后面兩個(gè)輪為主動(dòng)輪,與驅(qū)動(dòng)相連,利用差速實(shí)現(xiàn)小車(chē)的轉(zhuǎn)向運(yùn)行。最前面的輪采用牛眼輪,主要用于小車(chē)的支撐,另外由于其結(jié)構(gòu)的優(yōu)勢(shì),可以大的減小小車(chē)的轉(zhuǎn)彎半徑,使小車(chē)轉(zhuǎn)彎更加穩(wěn)定靈活。
本系統(tǒng)采用模塊化設(shè)計(jì)的方法,大大提升系統(tǒng)的設(shè)計(jì)效率。
光電小車(chē)尋光采用了攝像頭模塊。攝像頭采用帶FIFO的ov7670模塊,通過(guò)SCCB總線(xiàn)控制,可以輸出整幀、子采樣、取窗口等方式的8位數(shù)據(jù),其VGA輸出最多可以達(dá)到30幀/秒。為了保證攝像頭采集的幀率,選用M4內(nèi)核的處理器STM32F407ZGT6。這款處理器其主頻可以達(dá)到168M,擁有1M的閃存儲(chǔ)器,完全滿(mǎn)足對(duì)攝像頭的控制與數(shù)據(jù)的讀取的要求。
在控制端選用M3內(nèi)核處理器STM32F103ZET6。這款F1的處理器主頻最大可以達(dá)到72M,擁有512K的閃存儲(chǔ)器,外設(shè)資源豐富,處理速度和內(nèi)存容量都完全可以適應(yīng)小車(chē)一些常見(jiàn)的控制算法。
驅(qū)動(dòng)模塊選用A4950。A4950是一款雙路全橋DMOS電機(jī)驅(qū)動(dòng)芯片。輸出的峰值電流最大達(dá)到2安培,電壓最大可以承受40伏特。通過(guò)外部PWM的控制,可以自由地控制直流電機(jī)的正反轉(zhuǎn)和加減速。內(nèi)部還具有過(guò)流保護(hù)功能,可以防止驅(qū)動(dòng)運(yùn)行時(shí)被輕易燒毀。驅(qū)動(dòng)模塊原理圖如圖2所示。
電機(jī)選用自帶編碼器的直流減速電機(jī)。減速比為30:1,測(cè)速精度高,可以進(jìn)行更高精度的速度控制。扭矩為1kg·cm,工作電壓為12V,額電電流為360mA。足夠大的扭矩保證小車(chē)高速穩(wěn)定的運(yùn)行。

圖2 驅(qū)動(dòng)模塊原理圖

圖3 電源模塊原理圖
電池選用3S航模電池,容量達(dá)到2200mA,可以穩(wěn)定輸出12V電壓。用AMS1117外搭了穩(wěn)壓電路,12V的電源經(jīng)過(guò)降壓,輸出穩(wěn)定的5V電壓,用于給單片機(jī)供電。電源模塊的原理圖如圖3所示。
顯示模塊選用OLED。OLED具有體積小,顯示清晰等特點(diǎn),將他與F1相連,通過(guò)F1控制,顯示出小車(chē)運(yùn)行的速度和信號(hào)燈的坐標(biāo)。
紅外避障模塊采用三個(gè)E18-D80NK紅外接近開(kāi)關(guān)模塊。其具有精度高,控制簡(jiǎn)單,調(diào)試方便等特點(diǎn),最大檢測(cè)范圍可以達(dá)到80cm,可以根據(jù)具體情況進(jìn)行調(diào)節(jié)。三個(gè)配合使用,可以有效避免視野的盲區(qū),準(zhǔn)確檢測(cè)到前方的障礙物。
F4部分:F4將采回來(lái)的點(diǎn)顏色值進(jìn)行二值化,對(duì)目標(biāo)點(diǎn)的橫坐標(biāo)進(jìn)行平均值濾波,濾波后的點(diǎn)坐標(biāo)作為最終采回信號(hào)燈的位置坐標(biāo)。最后通過(guò)串口將坐標(biāo)值傳給F1。
F1部分:F1讀取到坐標(biāo)值后,進(jìn)行判斷,若信號(hào)不在畫(huà)面里,小車(chē)自轉(zhuǎn)繼續(xù)找光。若光線(xiàn)在畫(huà)面中,首先進(jìn)行姿態(tài)的結(jié)算,根據(jù)小車(chē)的兩輪轉(zhuǎn)速判斷小車(chē)運(yùn)動(dòng)狀態(tài)。再進(jìn)行PID算法控制,最終讓小車(chē)快速穩(wěn)定的運(yùn)動(dòng)到信號(hào)燈位置。紅外避障采用中斷的方式進(jìn)行處理,在運(yùn)行過(guò)程中,一旦檢測(cè)到障礙物,就控制電機(jī)倒退一小段距離,繞開(kāi)障礙物后,小車(chē)重新找光。
本文設(shè)計(jì)的雙CPU自動(dòng)尋光小車(chē),較傳統(tǒng)的單CPU的小車(chē),保證圖像幀率的同時(shí),還可以進(jìn)行一定的圖像處理,確保小車(chē)對(duì)光線(xiàn)精確地采集。將另一個(gè)CPU從圖像采集和處理中解放出來(lái),保證小車(chē)控制快速性和穩(wěn)定性的同時(shí),為小車(chē)實(shí)現(xiàn)更復(fù)雜算法的控制提供了條件。可以看出這種雙CPU系統(tǒng)的智能小車(chē)在開(kāi)發(fā)應(yīng)用中具有遠(yuǎn)大的前景。