崔璽 侯明 楊玉竹
【摘 要】本車模采用飛思卡爾半導體公司的微控制器MK60N512ZVLQ10 作為核心控制單元,自行設計可以實現模塊化處理的程序方案,包含的驅動模塊有車速傳感器模塊、舵機驅動模塊、電機的驅動模塊、電源管理模塊、線性CCD模塊、超聲波傳感器模塊。對不同類型的識別傳感器模塊進行自主行駛算法和編程等方面內容,最終達到所有模塊程序集中在一個單片機中,并對不同模塊分區處理,滿足各個模塊任意拆裝都可自動切換程序并直接運行的目的。
【關鍵詞】智能車;MK60N512ZVLQ10單片機;線性CCD傳感器;CCD算法
0 引言
在過去的智能車時代,激光傳感器作為光電路徑識別的主要傳感器,發揮著十分重要的作用。但是它有原理復雜,成本高,質量大,精度差等缺點,這讓調試智能車變得十分繁瑣。而線性CCD以其簡單的原理和易操作的優點受人歡迎,在光電路徑識別領域起著越來越重要的作用,逐步取代了激光傳感器的主導地位。本車模即采用線性CCD傳感器,通過線性CCD獲取路徑信息,并且將信息傳給單片機,單片機根據反饋信息控制車模轉向和速度,從而使車模安全,迅速的跑完賽道。
1 系統總體設計
本車模采用32 位微控制器 MK60N512ZVLQ10 作為主控制器用于智能車的設計。賽車共包括四大模塊:MK60N512ZVLQ10主控模塊、線性CCD模塊、電源模塊、電機驅動模塊。本車模是多功能模塊化智能車。第一,線性CCD采集像素信號,返回到單片機,單片機根據CCD返回的信息控制舵機轉向并且控制賽車速度,防止賽車沖出賽道,使賽車在賽道上能夠自主行駛,并以最快的速度跑完賽道。第二,超聲波模塊提前檢測前方是否有障礙物,并且及時避開障礙物。
2 硬件結構設計
車體相比于往屆參加智能車競賽選手設計的思路不同,大多數選手選擇將所有模塊集中設計制作在一個PCB主板上,而我們的思路相反,在我們的車模中,有獨立的電源主板和驅動主板,并通過排線與單片機主板相連,這樣的目的是為了方便于檢查故障和調試智能車。
2.1 線性CCD模塊
線性CCD只能采集一行可視像素,它包含128個線性排列的光電二極管。每個光電二極管都有各自的積分電路,即像素。每個像素采集的圖像灰度值與它所感知的光強和曝光時間成正比。線性CCD通過SI控制信號輸入,CLK作為時鐘輸入,控制像素依次輸出和復位,AO則將像素電壓輸出,完成了像素的采集和輸出。
2.2 超聲波模塊
超聲波模塊主要目的是檢測障礙物。超聲波模塊經發射器發射出長約6mm,頻率為40KHZ的超聲波信號。此信號被物體反射回來由接收頭接收,接收頭實質上是一種壓電效應的換能器。它接收到信號后產生mV級的微弱電壓信號。根據這一原理,超聲波模塊可以檢測前方是否有障礙并且及時將信號返回,發給單片機執行相應指令。
2.3 電源與電機驅動板模塊
將電源與電機驅動模塊獨立出來,制作成電源主板和電機驅動板,分別與電池和電機相連,電源主板上添加了L6932降壓芯片,輸出3.3V,精度±1%,驅動板上增加MIC5219電源芯片,為總線驅動芯片74LVC245提供電源,實現驅動芯片和單片機電平匹配。
3 線性CCD算法設計
線性CCD只需要采集一行像素,相對比較簡單。在調試線性CCD時,需要處理好兩個問題。第一,就是曝光時間的長短。由于像素的輸出值和曝光時間成正比,所以調節曝光時間對整個賽車至關重要。在調試智能車時,應該盡量減少曝光時間。減少曝光時間可以提高車模的反應能力,縮短采集信號的時間,盡量減少賽車沖出賽道的幾率,同時還可以捕捉高速運動的賽車的清晰圖像,有利于對圖像的處理。在本車模中我們的曝光時間設定為16ms。第二,就是黑白閾值的選擇。在選擇閾值時,往往需要現場調試,因為閾值的選擇跟環境亮度有密切的關系,所以我們需要根據環境亮度動態調節閾值參數。在調試時,根據調試助手反饋的圖形進行完善,在調試軟件的同時,還需兼顧去調整CCD焦距以及CCD距離地面的高度,當曝光時間和閾值參數確定,并且調整好鏡頭達到可視效果時,會生成平滑的圖像,如圖1所示。
圖1
CCD作為賽道路徑識別的主要傳感器,在路徑規劃上起著十分重要的作用。CCD在賽道上的狀態有:直道處,S彎處和十字交叉處。CCD包含128個像素點,我們的設計方案是當有三個像素點采集到黑色信號時,就認為賽車到達邊沿。在直道的時候,CCD左右兩側均能檢測到賽道邊沿。在小彎時,兩側也會檢測到賽道邊沿,但相對于直道時不太穩定。在大彎時,可能會出現只有一側檢測到賽道邊沿的情況。在十字交叉處,一般是檢測不到賽道邊沿。我們根據CCD在賽道上可能出現的情況寫了基于CCD的路徑識別算法。通過CCD采集像素值,利用設定好的閾值,當檢測到黑線時返回給單片機。基于以上的分析,編寫出一套CCD圖像處理的算法分析。
首先檢測左側邊界,當所檢測到的3個像素點比閾值小,得到左側邊界值m1,算法如下:其中CaiJi_jin_1[i]為采集到的閾值參數,YuZhi_jin_1[i]為程序員自己設定的黑白閾值參數。其中三個數值之差相與即為三個像素點的檢測。
if((CaiJi_jin_1[i]-YuZhi_jin_1[i]<0)&&(CaiJi_jin_1[i-1]-YuZhi_jin_1[i-1]<0)&&(CaiJi_jin_1[i-2]-YuZhi_jin_1[i-2]<0))
{
m1=i;
}
當檢測到左側邊界后,執行以下程序檢測右側邊界,并計算賽道中心所對應的參數值mm。程序如下:
if((CaiJi_jin_1[i]-YuZhi_jin_1[i]<0)&&(CaiJi_jin_1[i+1]-YuZhi_jin_1[i+1]<0)&&(CaiJi_jin_1[i+2]-YuZhi_jin_1[i+2]<0))
{
m2=i;
mm=(m1+m2)/2;
}
當智能車進入十字路段時,令CCD檢測到全白,即令m2>=120,這時檢測不到邊界,智能車便直線行駛。程序如下
以上為我們對CCD算法整體設計思想概述。調整好CCD后,將其與舵機通過程序相連接,當CCD檢測到邊界,控制舵機旋轉角度,從而實現轉彎,這樣就完成了光電線性CCD的設計制作。
4 結論
線性CCD通過128個像素點獲取賽道信息,準確及時的將信息反饋給單片機,改善了面陣CCD計算復雜的特點,并且比傳統的激光傳感器更為精確,相對激光傳感器改進較大,在目前智能車領域十分有著巨大的潛力和影響力。
【參考文獻】
[1]宓海寧,胡曉龍,查云佳.第九屆全國大學生“飛思卡爾”杯智能汽車競賽技術報告[R].浙江:浙江萬里學院,2014.
[2]夏斌.基于飛思卡爾單片機的光電智能小車設計[J].華北水利水電大學學報(自然科學版),2014,35(4):75-78.
[3]高月華.基于紅外光電傳感器的智能車自動尋跡系統設計[J].半導體光電,2009,30(1):134-137.
[4]翁卓.基于光電傳感器的智能車控制系統設計[J].計算機測量與控制,2010,18(8):1789-1792.
[5]曾星星.基于攝像頭的路徑識別的智能車控制系統設計[J].湖北汽車工業學院學報,2008,22(2):72-76.
[責任編輯:田吉捷]