智能循跡小車硬件設(shè)計及路徑識別算法
在方案中,使用LM1881視頻分離芯片來輔助采樣視頻。LM1881提取攝像頭信號的行同步脈沖、消隱脈沖和場同步脈沖,并將它們轉(zhuǎn)換成數(shù)字電平直接輸給單片機(jī)的I/O口,可以使用S12單片機(jī)I/O口的中斷功能來接收這些信號。圖6為LM1881的電路圖。本文引用地址:http://www.ex-cimer.com/article/172988.htm
引腳1為行同步信號輸出端,它輸出的信號波形只是輸入的攝像頭信號在黑屏電位之下的波形的簡單復(fù)制。引腳2為視頻信號輸入端,攝像頭信號即由此輸入LM1881。引腳3為場同步信號輸出端,當(dāng)攝像頭信號的場同步脈沖到來時,該端將變?yōu)榈碗娖剑话憔S持230μs,然后重新變回高電平。引腳7為場同步信號輸出端,當(dāng)攝像頭信號處于奇場時,該端為高電平,當(dāng)處于偶場時為低電平。奇偶場的交替處與場同步信號的下降沿同步,也就是和場同步脈沖后的上升沿同步。
3 視頻信號的采樣和濾波
3.1 視頻信號的采樣
攝像頭每場信號包括312行,即每場會掃描產(chǎn)生312行的視頻信號。也就是說,攝像頭在縱向上有312像素的分辨能力,這對于本智能車定位系統(tǒng)設(shè)計所要求的圖像傳感精度來說遠(yuǎn)遠(yuǎn)夠用。為方便設(shè)計,忽略奇場和偶場在掃描位置上的細(xì)微差別,認(rèn)為奇、偶場的掃描位置相同。當(dāng)然,在測試中發(fā)現(xiàn),312行信號并不能夠全部使用,其兩側(cè)信號并不是有效的視頻信號,而312個點顯然數(shù)量巨大且占用太多的計算時間。所以,每隔4行掃描一次,而排除首尾無效的信號點。一共使用了60行作為需要處理的視頻信號,顯然對于路徑檢測來說,已經(jīng)足夠了。而在采樣過程中發(fā)現(xiàn),如果不對ATD模塊進(jìn)行超頻,則很難采集在有效視野中的多行信號。所以,在把單片機(jī)總線頻率超頻到40 MHz的同時,還需要把ATD模塊進(jìn)行超頻,這樣可以加快其采樣速度,能夠在同等的時間內(nèi)獲得更多的行視頻信號。視頻信號采集后,可以使用單行信號對舵機(jī)進(jìn)行P控制,也可以使用多行信號進(jìn)行大彎道和S彎的判斷。
3.2 視頻信號的濾波
拿一行視頻信號為例,采集到的60個數(shù)據(jù)逐個轉(zhuǎn)換為0和1存儲到一個一維數(shù)組中,這個數(shù)組是一個0和1組成的序列,“1”代表白色,“0”代表黑色。通常,由于各種原因,視頻信號里會帶有雜波,如果不濾除的話,會對路徑的判斷帶來麻煩。所以,編寫了濾波函數(shù)對視頻信號進(jìn)行濾波,事實證明,這樣的濾波函數(shù)在時間上完全滿足要求,并且濾波很可靠。濾波函數(shù)的主要原理是,濾波函數(shù)1主要負(fù)責(zé)把數(shù)組中異常的單個雜波信號濾除,如果有一個序列如下:
1 1 1 1 1 1 1 0 1 1 1 1 1 1 1
則程序會檢測到0所在的位置,并且把它的值取反,而對于只有一個雜波1的序列,此方法同樣有效。在函數(shù)中一共作了60次循環(huán),如果檢測到第i個元素與第i-1個和i+1個都不相同的話,則把第i個元素進(jìn)行取反操作。這樣,使用此函數(shù)對行視頻信號進(jìn)行掃描,可以有效地濾除單個雜波信號。
濾波函數(shù)2主要負(fù)責(zé)把數(shù)組中異常的兩個雜波信號濾除,如果有一個序列如下:
1 1 1 1 1 1 0 0 1 1 1 1 1 1 1
則程序會檢測到0 0所在的位置,并且把它們的值取反,而對于只有兩個雜波11的序列,此方法同樣有效。在函數(shù)中一共作了58次循環(huán),如果檢測到第i個元素與第i-1個和i+2個都不相同而與第i+1個相同的話,則把第i個和i+1個元素進(jìn)行取反操作。這樣,使用此函數(shù)對行視
頻信號進(jìn)行掃描,可以有效地濾除兩個雜波信號。
4 結(jié)論
在實驗中得到了測試結(jié)果,當(dāng)檢測到路徑信息時,數(shù)組中0的個數(shù)一般不會低于3個。所以,濾除一個和兩個雜波數(shù)據(jù)并不會影響到正常的路徑識別,而同時出現(xiàn)3個雜波數(shù)據(jù)而且又處于相臨的位置,這樣的可能非常微小,可以忽略不計。事實證明,這個方法既可以濾除賽道上的雜波信號,也可以濾除路徑上的雜波信號,效果非常顯著。
評論