楊 梅 張施展
(貴陽學院電子與通信工程學院,貴州 貴陽 550005)
隨著汽車工業的進一步發展,智能小車的相關研究也備受關注。近年來以智能小車為主題的競賽也為推動無人汽車的發展起著重要作用。本文以第十四屆“恩智浦杯”全國大學生智能車競賽為背景,設計并實現了基于單片機控制的信標智能小車設計,解決傳統智能小車在尋跡追蹤方面對復雜賽道及環境處理能力不夠的問題,優化紅外信標燈進行識別處理能力,實現小車更高效的尋跡追蹤功能。
信標智能小車主要是由H 車的車模、小鉆風硬件二值化OV7725 紅外攝像頭、四個RS-380的電機和顯示屏等部件組成,根據小車四輪的轉速,再通過編碼器正交解碼后得到的速度反饋信息,通過PWM波以及PID 實現電機速度的控制,便可實現小車的全向運動。這在尋跡的過程中能達到縮短尋跡路徑的優勢。如圖1 所示為系統框架設計。

圖1 智能小車系統框架圖
智能小車的攝像頭是采用的是硬件二值化OV7725 紅外攝像頭。該攝像頭的最大有效像素點是320*240,硬件方面的主要特點是圖像數據已經經過二值化,控制端可直接使用單片機采集攝像頭模組輸出0、1的黑白圖像,在處理圖像時會更加方便。
硬件設計中需要為信標智能小車提供7.2V 電源電壓,該7.2V 電源由鋰電池提供。此外,硬件系統還需3.3V 和5V的供電電壓。3.3V 主要用于給單片機K66 芯片,OLED 顯示屏供電,使用TPS7333 線性穩壓芯片產生。5V 電壓主要用于攝像頭模塊,編碼器模塊供電,并且為TPS7333 提供電壓,使用的是TPS7350 芯片產生,電路圖如圖2 所示。

圖2 5V 電源電路圖
在驅動電路設計前端,設計使用了74HC08 芯片,如圖3 所示,其主要功能將TPS7350 轉換來的5V 和單片機輸出的PWM信號做與運算,以此保證PWM信號的平穩性。

圖3 74HC08 平穩PWM 信號圖
信標智能小車采用硬件二值化OV7725 紅外攝像頭,該攝像頭對紅外光線十分的敏感,必須要在封閉而且無陽光的前提下進行過調試跑車。對于攝像頭的放置方法也有講究,夾角太大可能無法看到近處的燈,夾角太小可能無法看到遠處的燈,因此本系統是將攝像頭與碳素竿的夾角設定為60 度,如圖4 所示。

圖4 攝像頭安裝示意圖
對于攝像頭的補光環境,本系統采用LQ-R&IRLEDV4的信標燈給信標智能小車進行補光。該信標燈的發射頻率是10Hz,閃爍頻率是40kHz,在該頻率下,可以保證小車在賽道上能看到紅外光。
硬件二值化的紅外攝像頭的圖像采集是通過DMA 和場中斷進行采集圖像。DMA 是直接存儲器訪問,該功能在圖像采集中把一個數據地址傳輸到其他的地址,通過這個原理,最后采集到的數據分辨率是80*60(畫面長*寬)的平面。經過二值化的攝像頭采集的圖像里有一個黑塊,該黑塊代表紅外發射器發射出來的光經過了二值化的圖像。黑塊的數據在數組中顯示數字0,白色區域顯示數字1。攝像頭采集到紅外光之后,把看到的圖像數據輸入到MCU的flash 中。
實驗進行圖像優化時,首先利用嵌套for 循環找到每行或者每列的黑點個數,再使用冒泡法比較出每行每列黑點個數最大值。黑點個數最多的行列形成的交點即可近似看成信標燈的位置。具體流程圖如圖5 所示。

圖5 軟件設計程序流程圖
首先先設定一個燈亮的參數。如果攝像頭識別到了紅外光,并且利用算法把識別到的紅外光優化成一個點,此時算法中設置燈亮參數為1,反之,設置為0。
采集的圖像經過算法處理后,在方向環進行誤差的處理時,error=Dy_Center-center_line[rowline],即誤差error 等于中心線Dy_Center 值減去黑點的列數center_line [rowline],由計算出的error 值判定當前方向誤差。根據方向誤差值,經過PID 算法設定MCU 輸出PWM 信號的占空比,從而可以控制小車電機轉速,實現小車差速轉彎的結果,具體流程圖如圖6 所示。

圖6 小車尋跡設計流程圖
在調試的過程中若遇攝像頭采集到干擾光線,相應的誤差會變得很大,在此需要對誤差進行限幅處理,處理過程如下代碼所示。

限幅在一定程度上可以保護電路,防止元器件燒壞。
本文通過飛思卡爾智能車競賽規則中小車對于圖像識別和定向移動而展開的話題,基于K66 單片機控制攝像頭對紅外信標燈進行優化識別處理,通過二值化和算法對目標物進行識別和追蹤。經過大量的賽道實驗與檢測,證實了本文方案的可靠性。