劉超,白興振,劉永奎
(山東科技大學(xué)電氣與自動(dòng)化工程學(xué)院,青島266590)
K60與動(dòng)態(tài)集成模擬攝像頭的智能車控制策略設(shè)計(jì)※*
劉超,白興振,劉永奎
(山東科技大學(xué)電氣與自動(dòng)化工程學(xué)院,青島266590)
本文設(shè)計(jì)了一種能在模擬跑道上順利完成智能循跡的小車。該設(shè)計(jì)以嵌入式單片機(jī)MK60DN512ZLVQ10作為核心控制器,CMOS動(dòng)態(tài)集成模擬攝像頭OV5116作為圖像傳感器獲取跑道圖像信息。運(yùn)用硬件二值化處理圖像并提取賽道特征信息,通過控制舵機(jī)的轉(zhuǎn)向和電機(jī)的轉(zhuǎn)速,使車模能夠按照規(guī)定的跑道和規(guī)則完成比賽。實(shí)驗(yàn)結(jié)果表明:該智能小車循跡精準(zhǔn),運(yùn)行快速平穩(wěn),為相關(guān)循跡比賽和設(shè)計(jì)提供了參考。
嵌入式系統(tǒng);MK60DN512ZLVQ10;智能循跡;傳感器
智能車輛集中運(yùn)用了自動(dòng)控制、多傳感器信息融合、導(dǎo)航技術(shù)、無線通信技術(shù)以及人工智能等高新技術(shù)[1]。在傳統(tǒng)智能車比賽中經(jīng)常應(yīng)用光電傳感器作為圖像數(shù)據(jù)的路徑識(shí)別模塊,但光電傳感器的前瞻較小且延伸調(diào)節(jié)不方便,其能獲取到的有效數(shù)據(jù)局限于有限的幾點(diǎn),因此在多變的賽道環(huán)境中的適應(yīng)性較差。而CMOS OV5116動(dòng)態(tài)集成模擬攝像頭的前瞻較遠(yuǎn)且可調(diào)節(jié)性較強(qiáng),能及早捕捉和提取循跡軌道信息以便做出加速、減速等處理。圖像數(shù)據(jù)中路徑識(shí)別模塊處理的方法決定著智能循跡車的穩(wěn)定性能和行駛速度。以嵌入式單片機(jī)MK60DN512ZLVQ10(以下簡(jiǎn)稱K60)為核心控制器,利用其強(qiáng)大的數(shù)據(jù)處理能力和豐富的外設(shè)接口設(shè)計(jì),來實(shí)現(xiàn)攝像頭圖像數(shù)據(jù)處理、舵機(jī)轉(zhuǎn)向控制和電機(jī)轉(zhuǎn)速控制等。
智能車系統(tǒng)主要包括以下幾部分:OV5116攝像頭進(jìn)行跑道圖形采集;編碼器測(cè)量小車當(dāng)前的運(yùn)行速度;Freescale系列的K60微處理器進(jìn)行信息處理;舵機(jī)控制車模的轉(zhuǎn)向;電機(jī)控制車模的運(yùn)行速度。系統(tǒng)總體結(jié)構(gòu)如圖1所示。在系統(tǒng)硬件設(shè)計(jì)中,對(duì)圖像進(jìn)行硬件二值化處理,不僅提高了圖像采集的可靠性,而且減小了CPU的運(yùn)算負(fù)荷。

圖1 系統(tǒng)總體設(shè)計(jì)結(jié)構(gòu)圖
1.1 小車主板設(shè)計(jì)
為了合理利用車模空間,并盡可能把小車的重心放低,在對(duì)電路進(jìn)行詳細(xì)分析后,對(duì)其進(jìn)行了簡(jiǎn)化,使本系統(tǒng)硬件電路部分輕量化指標(biāo)都達(dá)到了設(shè)計(jì)要求,主板整體效果略——編者注。
1.2 電源管理模塊設(shè)計(jì)
整個(gè)系統(tǒng)的電源由7.2 V、2 Ah的可充電鎳鎘電池提供。由于電路中不同模塊所需要的工作電壓、電流各不相同,因此電源模塊包含多個(gè)降壓穩(wěn)壓電路,將電池電壓轉(zhuǎn)換成各個(gè)模塊所需要的電壓。
電池經(jīng)過穩(wěn)壓芯片SPX3940為光電編碼器、攝像頭、舵機(jī)提供電源,并運(yùn)用大量電感、電容,從而可以提供較為平穩(wěn)的5 V電壓,避免電壓波動(dòng)對(duì)器件造成損害,電池電壓穩(wěn)壓到5 V電路如圖2所示。

圖2 電池電壓穩(wěn)壓到5 V電路
再經(jīng)穩(wěn)壓芯片LM1117為微處理器模塊提供3.3 V電壓,5 V電壓穩(wěn)壓到3.3 V電路如圖3所示。

圖3 5 V電壓穩(wěn)壓到3.3 V電路
1.3 圖像采集模塊設(shè)計(jì)
1.3.1 OV5116攝像頭成像原理
圖像采集模塊主要是通過CMOS OV5116動(dòng)態(tài)集成模擬攝像頭采集賽道信息,并對(duì)信息進(jìn)行處理以判斷車模在賽道上的位置。CMOS動(dòng)態(tài)集成模擬攝像頭OV5116采用5 V電源供電,集成了模擬轉(zhuǎn)化為數(shù)字式的電平信號(hào)LM393和LM1881視頻分離芯片,具有輸出信號(hào)穩(wěn)定且容易測(cè)試、功耗低、發(fā)熱小等優(yōu)點(diǎn)。除鏡頭外,攝像頭還有一塊感光處理芯片、時(shí)鐘發(fā)生電路及一些外圍電路。感光處理芯片由方陣排列的感光元組成,當(dāng)外部圖像經(jīng)鏡頭折射、聚焦到感光芯片上時(shí),灰度信息轉(zhuǎn)化為電壓信息存儲(chǔ)在這些感光元中,在時(shí)鐘脈沖的作用下這些電壓信息順序輸出到信號(hào)線上。為了實(shí)現(xiàn)序列圖像的同步順序傳輸,在掃描過程中加入了場(chǎng)同步和行同步信號(hào)。現(xiàn)在國(guó)內(nèi)通用的視頻信號(hào)是PAL制信號(hào),攝像頭傳送的信號(hào)也是PAL制。現(xiàn)在通用的視頻信號(hào)是625線,即一幅圖像豎著分為625行,這625行又按奇偶分為奇偶場(chǎng),即每場(chǎng)圖像只有312行。攝像頭每秒掃描25幅圖像,每幅又分奇、偶兩場(chǎng),先奇場(chǎng)后偶場(chǎng),故每秒掃描50場(chǎng)圖像。奇場(chǎng)時(shí)只掃描圖像中的奇數(shù)行,偶場(chǎng)時(shí)則只掃描偶數(shù)行,當(dāng)一場(chǎng)結(jié)束后,掃描點(diǎn)會(huì)從這場(chǎng)右下角掃到下場(chǎng)圖像的左上角[2]。圖4 為PAL制信號(hào)時(shí)序圖。

圖4 PAL制信號(hào)時(shí)序圖
1.3.2 圖像硬件二值化處理
將圖像導(dǎo)入MATLAB進(jìn)行分析,發(fā)現(xiàn)原始圖像像素值均在0~255內(nèi),而白色區(qū)域像素值一般在160以上,黑色區(qū)域一般在70以下。為了提取出黑線,檢測(cè)像素值的跳變是最直觀的方案,但是實(shí)際中一般黑白線邊沿的像素值不是突然跳變的,而是有一個(gè)過渡過程。所以將原始圖像進(jìn)行二值化處理不但有清晰邊沿線的功能,還能方便后續(xù)路徑識(shí)別部分算法的設(shè)計(jì)與處理。二值化處理就是對(duì)于輸入圖像的各個(gè)像素,先確定某個(gè)亮度值,當(dāng)像素的亮度超過該閾值時(shí),將對(duì)應(yīng)輸出圖像的像素值設(shè)為1,否則為0。行同步信號(hào)為一行掃描的開始信號(hào),結(jié)合處理后的二值化圖像,計(jì)時(shí)出行同步信號(hào)到第一次檢測(cè)到的黑線的時(shí)間t1來得出第一條黑線的位置,同時(shí)計(jì)時(shí)t2來得到黑線的寬度,計(jì)時(shí)t2到t3來得到白色賽道的寬度。行分離、輸出二值化的視頻信號(hào)如圖5所示。

圖5 行分離、輸出二值化的視頻信號(hào)
攝像頭通過賽道的黑線來進(jìn)行圖像識(shí)別,在攝像頭行消隱下降沿啟動(dòng)定時(shí)器,每當(dāng)有二值化邊沿來到時(shí)就會(huì)觸發(fā)相應(yīng)的引腳中斷,讀取定時(shí)器的值,通過中斷的次數(shù)可以反映對(duì)應(yīng)行的賽道信息,通過讀取定時(shí)器定時(shí)值可以反映車體在當(dāng)前賽道的位置[2]。定時(shí)器中斷的次數(shù)與賽道底色有必然聯(lián)系,對(duì)于藍(lán)色的賽道底色,在沒有干擾的情況下中斷次數(shù)為2,計(jì)數(shù)器的值分別為左右白色起點(diǎn)的位置,而對(duì)于白色的賽道底色,在沒有干擾的情況下中斷次數(shù)為6,第2、3次的中斷采用對(duì)圖像進(jìn)行硬件二值化處理,不僅提高了圖像采集的可靠性,而且減小了CPU的運(yùn)算負(fù)荷。設(shè)計(jì)的電路圖略——編者注。
1.3.3 賽道識(shí)別策略
依據(jù)攝像頭所獲取的賽道信息判斷賽道環(huán)境和車體位置,根據(jù)賽道情況來使智能車控制舵機(jī)角度和電機(jī)速度。當(dāng)前的賽道環(huán)境有:直線賽道、“十”字賽道和“S”彎賽道。各個(gè)賽道情況如圖6所示。

圖6 賽道情況
當(dāng)智能車位于直線賽道時(shí)依據(jù)攝像頭二值化端口輸出的圖像中t1檢測(cè)的時(shí)間來判斷車體位置。當(dāng)t1等于車體位于正中的t0時(shí),舵機(jī)不作處理;當(dāng)偏小時(shí),舵機(jī)向左側(cè)打角度;當(dāng)偏大時(shí),舵機(jī)向右側(cè)打角度。
當(dāng)智能車位于“十”字賽道時(shí),會(huì)出現(xiàn)攝像頭看到的許多行全為白色的情況,即中斷次數(shù)為2,此時(shí)默認(rèn)為小車處于賽道中心位置,可以不對(duì)小車位置進(jìn)行調(diào)整,即小車可以保持原來的行駛狀態(tài),直到檢測(cè)到彎道為止。
當(dāng)智能車位于“S”彎賽道時(shí),攝像頭二值化端口輸出的圖像中,t1的計(jì)時(shí)時(shí)間數(shù)值增大,表明智能車進(jìn)入“S”彎賽道。舵機(jī)處理方法類似于“十”字賽道,多行采集的數(shù)據(jù)中,視頻信號(hào)由檢測(cè)到黑線低電平到無低電平輸出,再到檢測(cè)到低電平信號(hào),表明智能車進(jìn)入的是“S”彎賽道的虛線段。此時(shí)可以使小車按之前的舵機(jī)角度保持行駛,直至圖像采集完虛線賽道進(jìn)入實(shí)線彎道[3]。
起跑線識(shí)別策略:因?yàn)樾枰ㄟ^定時(shí)器中斷的次數(shù)和定時(shí)器的數(shù)據(jù)來對(duì)攝像頭采集的數(shù)據(jù)進(jìn)行處理,在程序中應(yīng)用了很多算法對(duì)賽道中的干擾進(jìn)行濾除,因此當(dāng)檢測(cè)到起跑線時(shí),定時(shí)器對(duì)應(yīng)行定時(shí)器中斷次數(shù)為白底10次、藍(lán)底6次,以此作為標(biāo)志,當(dāng)檢測(cè)到此標(biāo)志時(shí)就認(rèn)為檢測(cè)到了起跑線,從而停車。
1.4 電機(jī)驅(qū)動(dòng)電路設(shè)計(jì)
整個(gè)電機(jī)驅(qū)動(dòng)電路使用兩路PWM輸入,可以靈活控制電機(jī)的正反轉(zhuǎn)、加速以及減速。電機(jī)使能端接到單片機(jī)的I/O口,可以快速控制電機(jī)啟動(dòng)和停止。使用了由分立元件制作的直流電動(dòng)機(jī)可逆雙極型橋式驅(qū)動(dòng)器,該驅(qū)動(dòng)器額定工作電流遠(yuǎn)大于電動(dòng)機(jī)正常工作電流,因而不易損壞。電機(jī)驅(qū)動(dòng)電路原理圖略——編者注。
本設(shè)計(jì)采用增量式PID控制來調(diào)節(jié)車速,通過控制編碼器對(duì)應(yīng)的數(shù)值來調(diào)節(jié)電機(jī)的PWM值。增量式PID調(diào)速是指控制的對(duì)象是速度的增量Δv(t),此時(shí)的控制量Δv(t)對(duì)應(yīng)著本次速度的增量,使用寄存器來存儲(chǔ)每次速度的增量。增量式算法優(yōu)點(diǎn)包括:算式中不需要累加,控制增量的確定僅與最近3次的采樣值有關(guān),容易通過加權(quán)處理獲得比較好的控制效果;計(jì)算機(jī)每次只輸出控制增量,即對(duì)應(yīng)執(zhí)行機(jī)構(gòu)位置的變化量,故機(jī)器發(fā)生故障時(shí)影響范圍小。采用軟件來實(shí)現(xiàn)PID控制,可利用算式(1)來完成:
進(jìn)一步可以改寫成

設(shè)計(jì)中選擇周期T=20 ms,當(dāng)確定了Kp、Ti、Td時(shí),只要從寄存器讀出前后3次的速度偏差值Δv(t),便可由式(1)和式(2)求出控制增量。實(shí)驗(yàn)證明:增量式PID控制能快速精準(zhǔn)地調(diào)節(jié)小車的速度,在直道加速和彎道減速過程中平穩(wěn)有效地控制小車的行駛。
2.1 主程序流程圖
主程序包括系統(tǒng)初始化、自學(xué)習(xí)矯正圖像并存儲(chǔ)信息、舵機(jī)和電機(jī)初始化、賽道信息采集與處理、舵機(jī)控制、速度監(jiān)測(cè)并控制電機(jī)的旋轉(zhuǎn)速度、檢測(cè)起跑線等過程,主程序流程圖如圖7所示。

圖7 主程序流程圖
主程序包括自學(xué)習(xí)數(shù)據(jù)處理子函數(shù),根據(jù)采集到行信息的邊沿?cái)?shù)目以及從定時(shí)器取出的數(shù)據(jù),從而確定跑道寬度以及黑線的位置;實(shí)時(shí)處理攝像頭數(shù)據(jù)子函數(shù),對(duì)正在運(yùn)行車模采集到的數(shù)據(jù)根據(jù)邊沿?cái)?shù)進(jìn)行相應(yīng)的分類處理;通過本行定時(shí)器數(shù)據(jù)差值的比較,濾除相鄰跑道干擾的子程序;濾除相鄰行邊沿?cái)?shù)不等且多余的干擾數(shù)據(jù)的子程序;處理數(shù)組列號(hào)是5(行信息邊沿觸發(fā)數(shù))轉(zhuǎn)換成4的數(shù)據(jù),便于判斷彎道并計(jì)算相鄰行黑線起點(diǎn)位置的子程序。
2.2 控制算法的設(shè)計(jì)
2.2.1 舵機(jī)控制算法的設(shè)計(jì)
首先將車模擺放在直道中間位置,通過初始化自學(xué)習(xí)采集較為標(biāo)準(zhǔn)的圖像,由于攝像頭采集的圖像是變形的,以攝像頭采集的第0行的數(shù)據(jù)作為基準(zhǔn),將其他行的數(shù)據(jù)與基準(zhǔn)數(shù)據(jù)對(duì)比生成一系列數(shù)據(jù)并保存。當(dāng)小車跑起來時(shí),對(duì)采集到的數(shù)據(jù)用自學(xué)習(xí)時(shí)生成的系數(shù)進(jìn)行校正,因?yàn)樵谧詫W(xué)習(xí)過程中兩條黑線及跑道中心線的位置已經(jīng)確定,此時(shí)可通過對(duì)當(dāng)前攝像頭采集到的黑線位置計(jì)算生成的中心線的位置,與自學(xué)習(xí)生成的中心線位置數(shù)據(jù)進(jìn)行比較,獲得當(dāng)前位置的偏差,并根據(jù)偏差來計(jì)算當(dāng)前位置舵機(jī)的PWM值。舵機(jī)根據(jù)單片機(jī)輸出的PWM值旋轉(zhuǎn)一定的角度,從而控制小車實(shí)時(shí)的轉(zhuǎn)向。
對(duì)攝像頭采集到的40行數(shù)據(jù)進(jìn)行分段,計(jì)算出各段的偏差,并根據(jù)不同段偏差值的大小選擇控制舵機(jī)旋轉(zhuǎn)的連續(xù)行數(shù)據(jù)段,再根據(jù)不同的系數(shù)通過比例控制得到較為理想的控制舵機(jī)連續(xù)的PWM值。為了防止頻繁控制舵機(jī)導(dǎo)致車模晃動(dòng),對(duì)偏差值設(shè)置一定的死區(qū),可讓小車平穩(wěn)轉(zhuǎn)彎。針對(duì)不同跑道可以相應(yīng)設(shè)置舵機(jī)控制標(biāo)志位,選擇不同的控制函數(shù)。
2.2.2 電機(jī)控制算法的設(shè)計(jì)
為了更好地控制智能車,舵機(jī)控制必須和速度控制結(jié)合起來,因此速度控制算法的實(shí)現(xiàn)很重要。在小車運(yùn)行的過程中直道和彎道的速度不同,直道需要加速,而彎道需要減速才能更好地過彎,這就需要在直道和彎道的交界處提前減速。因?yàn)閿z像頭的前瞻性,在遠(yuǎn)處就可以識(shí)別出遠(yuǎn)處的彎道,此時(shí)就需要減速,但由于車體的慣性因素,智能車不會(huì)立即將速度減到預(yù)定的大小,此時(shí)通過比較實(shí)際運(yùn)行速度與設(shè)定速度的偏差來控制速度。如果偏差過大,就需要反向制動(dòng)使智能車急減速,到彎道時(shí)速度就會(huì)減慢。通過編碼器每20 ms檢測(cè)一次速度,不斷判別實(shí)際速度與設(shè)定速度的偏差,從而校正車體速度以達(dá)到需要的效果。根據(jù)當(dāng)前控制舵機(jī)的偏差值,把車模的速度分成3個(gè)檔位,分別對(duì)應(yīng)3個(gè)不同的速度,足以應(yīng)對(duì)不同的彎道,再通過調(diào)節(jié)系數(shù)大小可以實(shí)現(xiàn)不同速度檔位下小車的平滑行駛。
本文論述了以嵌入式單片機(jī)K60作為核心控制器,動(dòng)態(tài)集成模擬攝像頭OV5116作為圖像傳感器獲取跑道信息,以增量式PID算法來控制舵機(jī)、電機(jī)的運(yùn)行。實(shí)驗(yàn)證明,此設(shè)計(jì)的相關(guān)硬件電路設(shè)計(jì)合理,電源模塊能高效穩(wěn)定運(yùn)行,圖像信息采集快速準(zhǔn)確,智能車變向及時(shí)、變速迅捷。
編者注:本文為期刊縮略版,全文見本刊網(wǎng)站www. mesnet.com.cn。
[1]王超藝,王宜懷.基于紅外傳感器的自尋跡小車控制系統(tǒng)的設(shè)計(jì)[J].電子工程師,2008,34(11).
[2]劉明,王洪軍,李永科.基于智能車中攝像頭的圖像采集的研究[J].電子設(shè)計(jì)工程,2012(17).
[3]程亞龍,周怡君.基于CMOS傳感器的智能車路徑識(shí)別研究[J].機(jī)械制造與自動(dòng)化,2007(5).
[4]王偉,張晶濤,柴天佑.PID參數(shù)先進(jìn)整定方法綜述[J].自動(dòng)化學(xué)報(bào),2000(3).
劉超(研究生),研究方向?yàn)殡娏ο到y(tǒng)及其自動(dòng)化。
Intelligent Car Control Strategy Based on K60 and Dynamic Integration Analog Camera※
Liu Chao,Bai Xingzhen,Liu Yongkui
(School of Electrical Engineering and Automation,Shandong University of Science and Technology,Qingdao 266590,China)
The paper designs an intelligent car that can smoothly complete tracking on the simulated pathway.The design takes the embedded microcontroller MK60DN512ZLVQ10 as the core controller,uses CMOS dynamic integrated analog camera as image sensor OV5116 to obtain the runway image.Hardware binarization is used to process image and extract the characteristic information of track.The model is able to complete the race in accordance with the provisions of the rules of the game and the runway through controlling the rotation of the steering engine and the speed of the motor.The experimental results show that the intelligent car can track precision,run fastly and smoothly,provides the reference for the related tracking match and design.
embedded system;MK60DN512ZLVQ10;intelligent tracking;sensor
TP249
A
薛士然
2014-10-15)
山東科技大學(xué)教育教學(xué)研究“群星計(jì)劃”(No.qx2013331);山東科技大學(xué)自動(dòng)化學(xué)院名校工程(No.MX-KJCX-2)。