2023年全國(guó)碩士研究生考試考研英語一試題真題(含答案詳解+作文范文)_第1頁
已閱讀1頁,還剩38頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、<p>  本科畢業(yè)設(shè)計(jì)(論文)</p><p><b> ?。?0 屆)</b></p><p>  基于視角的智能車路徑信息采集</p><p><b>  目錄</b></p><p><b>  摘要III</b></p><p>

2、  AbstractIV</p><p><b>  第一章 緒論1</b></p><p><b>  1.1 背景1</b></p><p><b>  1.2 現(xiàn)狀2</b></p><p>  1.3 目的及意義3</p><p&g

3、t;  1.4 本文結(jié)構(gòu)4</p><p>  第二章 攝像頭和微控制器6</p><p>  2.1 攝像頭的分類及原理6</p><p>  2.2 數(shù)字?jǐn)z像頭OV6620的簡(jiǎn)介8</p><p>  2.3 智能車微控制器簡(jiǎn)介11</p><p>  第三章 系統(tǒng)總體設(shè)計(jì)13</p&

4、gt;<p>  3.1 智能車結(jié)構(gòu)框圖13</p><p>  3.2 路徑信息采集硬件設(shè)計(jì)14</p><p>  3.3 路徑信息采集軟件設(shè)計(jì)15</p><p>  3.4 圖像采集16</p><p>  3.5 圖像處理16</p><p>  第四章 詳細(xì)設(shè)計(jì)18&l

5、t;/p><p>  4.1 數(shù)字?jǐn)z像頭與微控制器的接口18</p><p>  4.2 微控制器相關(guān)資源的使用情況和初始化18</p><p>  4.3 圖像數(shù)據(jù)的緩沖20</p><p>  4.4 匯編語言在圖像采集中的應(yīng)用22</p><p>  4.5 圖像的二值化23</p>

6、<p>  第五章 調(diào)試與實(shí)現(xiàn)24</p><p>  5.1 攝像頭的安裝與調(diào)試24</p><p>  5.2 軟件調(diào)試25</p><p>  5.3 借助上位機(jī)調(diào)試26</p><p>  第六章 總結(jié)30</p><p><b>  參考文獻(xiàn)31</b>

7、</p><p><b>  附錄32</b></p><p><b>  致謝34</b></p><p>  基于視角的智能車路徑信息采集</p><p><b>  摘要</b></p><p>  自動(dòng)尋跡智能車涉及到當(dāng)前高技術(shù)領(lǐng)域內(nèi)的許多先

8、進(jìn)技術(shù),其中最主要的是傳感技術(shù)、路徑規(guī)劃和運(yùn)動(dòng)控制。本課題是以我參加的第五屆飛思卡爾智能車競(jìng)賽為背景,以微控制器作為核心控制單元,以數(shù)字?jǐn)z像頭作為路徑識(shí)別傳感器,以直流電機(jī)作為小車的驅(qū)動(dòng)裝置,以舵機(jī)控制為小車的轉(zhuǎn)向。車模競(jìng)賽的賽道是一個(gè)具有特定幾何尺寸約束、摩擦系數(shù)及光學(xué)特性的KT板,其中心貼有對(duì)可見光及不可見光均有較強(qiáng)吸收特性的黑色條帶作為引導(dǎo)線,寬度為2.5cm。在行駛過程中,系統(tǒng)通過攝像頭獲取前方賽道的圖像數(shù)據(jù),同時(shí)通過測(cè)速傳感器

9、實(shí)時(shí)獲取智能車的速度,采用路徑搜索算法進(jìn)行尋線判斷和速度分析,然后作控制決策,控制轉(zhuǎn)向舵機(jī)和直流驅(qū)動(dòng)電機(jī)工作。</p><p>  智能車通過實(shí)時(shí)采集到圖像由微控制器進(jìn)行算法的判斷,再由微控制器通過控制電機(jī)和舵機(jī)對(duì)自身運(yùn)動(dòng)速度及方向等進(jìn)行調(diào)整來“沿”賽道快速行駛。本文主要介紹通過數(shù)字?jǐn)z像頭和模擬攝像頭的原理比較后,以O(shè)V6620為元器件實(shí)現(xiàn)圖像采集的過程及對(duì)采集到路徑信息的識(shí)別和調(diào)試。</p>&l

10、t;p>  關(guān)鍵詞:智能車;圖像采集;微控制器;數(shù)字?jǐn)z像頭</p><p>  Path Information Collection of Intelligent Vehicle Based on Perspective</p><p><b>  Abstract</b></p><p>  Automatic tracing int

11、elligent vehicle involved in the field of high technology many advanced technology, one of the most main is sensing technology, path planning and motion control. This topic is I attend the fifth freescale intelligent car

12、 race as a background, based on the micro controller as the key control unit, digital camera sensor, as a pathway recognition in dc motor as a car drives to steering gear control for car steering. The track is a draw com

13、petition has specific geometric size co</p><p>  Intelligent car through the real-time data acquisition to image by MCU proceed algorithm of judgement, again by MCU through the control of their own and servo

14、 motor speed and direction of movement along the "adjusted to" driving fast track. This paper mainly introduces digital cameras and analog camera by the principle of OV6620 after comparing with for components,

15、the process of collecting and realize image for the collected information recognition and debugging path. </p><p>  Key words: Intelligent Car, Image Acquisition, MCU ,Digital Cameras</p><p><

16、;b>  第一章 緒論</b></p><p><b>  1.1 背景</b></p><p>  全國(guó)大學(xué)生“飛思卡爾”杯智能汽車競(jìng)賽是由教育部高等自動(dòng)化專業(yè)教學(xué)指導(dǎo)分委員會(huì)主辦,以智能汽車為研究對(duì)象的創(chuàng)意性科技競(jìng)賽。該競(jìng)賽是以迅猛發(fā)展、前景廣闊的汽車電子為背景,涵蓋自動(dòng)控制、模式識(shí)別、傳感技術(shù)、電子、電氣、計(jì)算機(jī)、機(jī)械與汽車等多個(gè)學(xué)科專業(yè)。

17、由競(jìng)賽秘書處為各參賽隊(duì)提供/購(gòu)置規(guī)定范圍內(nèi)的標(biāo)準(zhǔn)硬軟件技術(shù)平臺(tái),競(jìng)賽過程包括理論設(shè)計(jì)、實(shí)際制作、整車調(diào)試、現(xiàn)場(chǎng)比賽等環(huán)節(jié),要求學(xué)生組成團(tuán)隊(duì),協(xié)同工作,初步體會(huì)一個(gè)工程性的研究開發(fā)項(xiàng)目從設(shè)計(jì)到實(shí)現(xiàn)的全過程。競(jìng)賽凝聚了各隊(duì)同學(xué)們的創(chuàng)造性設(shè)計(jì)和開發(fā),以精確和速度作為賽車追求的最高目標(biāo)。[1]競(jìng)賽中的賽車模型按道路檢測(cè)方式的不同,分為光電組、攝像頭組、電磁組(第五屆起)分別進(jìn)行比賽。</p><p>  我們參加的攝像頭

18、組智能車所需的各主要單元簡(jiǎn)介如下:</p><p>  微控制核心系統(tǒng)(MCU),統(tǒng)一采用了FREESCAL公司的MC9S12XS128的微控制芯片,具體使用到MCU的模塊包括:數(shù)字與模擬信號(hào)模塊、PIT和RTI定時(shí)、PWM脈沖調(diào)制、SCI串行通信、I/O口等。</p><p>  傳感器,采用了數(shù)字?jǐn)z像頭OV6620。</p><p>  電源部分,采用了7.2V

19、 2000mA Ni-Cd蓄電池作為本方案的系統(tǒng)能源。并且通過穩(wěn)壓電路分出5V電壓分別給舵機(jī)和MCU供電。</p><p>  電機(jī)控制模塊(車速控制模塊),接收速度控制PID信號(hào),采用Bang-bang算法(小于給定車速時(shí),最大輸出;大于時(shí),最小。)控制電機(jī)運(yùn)行,達(dá)到控制車速目的。</p><p>  轉(zhuǎn)向控制模塊,通過方向PID控制舵機(jī)轉(zhuǎn)向,進(jìn)而控制小車轉(zhuǎn)彎。</p>&

20、lt;p>  無線傳輸模塊,使用了SCI進(jìn)行無線傳輸和接收,通過上位機(jī)軟件,可以實(shí)現(xiàn)對(duì)小車狀態(tài)的實(shí)時(shí)監(jiān)控。</p><p>  智能小車跑道的要求為:表面為白色,中心有連續(xù)黑線作為引導(dǎo)線,黑線寬25mm,鋪設(shè)跑道地板顏色與背景不一樣;跑道寬度為50cm,窄道區(qū)的寬度為45cm;跑道最小曲率半徑不小于50厘米; 跑道可以交叉,交叉角為90度;起跑線為特殊十字線;決賽的跑道中還會(huì)出現(xiàn)坡道。智能車競(jìng)賽的賽道如圖1

21、.1所示。</p><p>  圖1.1 智能車賽道示意圖</p><p><b>  1.2 現(xiàn)狀</b></p><p>  該競(jìng)賽迄今已成功舉辦了五屆,從第一屆共有25個(gè)?。ㄗ灾螀^(qū))、直轄市59所高校的112支隊(duì)伍參賽開始,發(fā)展到第五屆共有來自全國(guó)26個(gè)省(自治區(qū))、直轄市的230余所高校的780支隊(duì)伍參賽,分西部、華南、東北、華東與

22、華北五大分賽區(qū)進(jìn)行選拔。分賽區(qū)各組別獲得前十名左右的隊(duì)伍將有資格參加全國(guó)總決賽。</p><p>  在智能賽車制作過程中的首要任務(wù)就是對(duì)賽車傳感器的選擇。只有選擇好切實(shí)可行的方案才能奠定后期賽車能否達(dá)到較好的運(yùn)行狀態(tài)和良好的速度。今年的智能車大賽有三種類別,分別為:光電組,攝像頭組,電磁組。我們小組選擇了攝像頭組方向進(jìn)行制作。而以攝像頭為傳感器的種類也有很多,總的來說有數(shù)字?jǐn)z像頭和模擬攝像頭兩大類。經(jīng)過對(duì)比篩選

23、我們確定以數(shù)字?jǐn)z像頭OV6620做為智能車的傳感器。之后圍繞給定的傳感器和MCU進(jìn)行硬件的設(shè)計(jì)和搭建。硬件組合完畢后就是對(duì)賽車最重要的軟件調(diào)試階段。硬件電路部分我們可以用示波器、萬用表等工具進(jìn)行測(cè)試。軟件部分的話就需要用虛擬儀器進(jìn)行適當(dāng)?shù)恼{(diào)試。當(dāng)然核心部分為軟件的設(shè)計(jì)和反復(fù)的調(diào)試修改,使數(shù)字?jǐn)z像頭采集到的圖像通過虛擬軟件反映到電腦上,實(shí)現(xiàn)調(diào)節(jié)測(cè)試功能。</p><p>  1.3 目的及意義</p>

24、<p>  攝像頭采集路徑信息的方式有很多,根據(jù)攝像頭采集信號(hào)的種類大體可分為模擬信號(hào)和數(shù)字信號(hào)兩種。其中模擬視頻信號(hào)攜帶了由電磁信號(hào)變化而建立的圖像信息,可用電壓值的不同來表示,比如黑白信號(hào),0V表示黑,0.7V表示白,其他灰度介于兩者之間。數(shù)字視頻信號(hào)是通過把視頻核的每個(gè)像素表現(xiàn)為不連續(xù)的顏色值來傳送圖像資料,并且由計(jì)算機(jī)使用二進(jìn)制數(shù)據(jù)格式來傳送和儲(chǔ)存像素值。數(shù)字視頻信號(hào)沒有噪聲,用0和1表示,不會(huì)產(chǎn)生混淆,數(shù)字視頻信

25、號(hào)可以長(zhǎng)距離傳輸而不產(chǎn)生損失,可以通過網(wǎng)絡(luò)線,光纖等介質(zhì)傳輸,很方便的實(shí)現(xiàn)資源共享[2]。</p><p>  根據(jù)成像材料可分為CCD和CMOS兩種。怎樣才能更為高效、直接、快捷的采集到圖像是攝像頭智能車比賽成功的先決。</p><p>  本次課題我將詳細(xì)比較CCD和CMOS數(shù)字?jǐn)z像頭的優(yōu)缺點(diǎn)和采集圖像的一些原理,并綜合考慮得出傳感器的選取。并將選取好的攝像頭通過硬件設(shè)計(jì)和軟件編譯的結(jié)

26、合最終實(shí)現(xiàn)智能車路徑信息的采集,采集的最終結(jié)果如圖1.2所示,而二值化處理后的結(jié)果如圖1.3所示。</p><p>  圖1.2 采集到的賽道起始線的灰值圖像</p><p>  圖1.3 二值化后的采集圖像</p><p>  研究該課題除了對(duì)智能車的應(yīng)用外還可以適用于多種領(lǐng)域,如機(jī)器人的智能識(shí)別,自動(dòng)監(jiān)控等。同時(shí)通過參加此次智能車比賽后,對(duì)自己的動(dòng)手能力,聯(lián)

27、系實(shí)踐能力,開闊視野等多方面給以了加強(qiáng)。從中學(xué)習(xí)到很多東西,也意識(shí)到自己還有很多東西只是從書本上了解還是遠(yuǎn)遠(yuǎn)不夠的,只有實(shí)踐才能真正的掌握。對(duì)我今后的學(xué)習(xí)和工作都有很大的幫助意義。</p><p><b>  1.4 本文結(jié)構(gòu)</b></p><p>  本文通過對(duì)數(shù)字?jǐn)z像頭的基本原理和智能車比賽的闡述,詳細(xì)的介紹了基于視角的智能車圖像采集的實(shí)現(xiàn)過程。</p&

28、gt;<p>  第一章:緒論。本章闡述了本課題的背景、現(xiàn)狀及研究意義。</p><p>  第二章:攝像頭和微控制器。本章具體分析了攝像頭的分類和各自優(yōu)缺點(diǎn)以及選取的CMOS數(shù)字?jǐn)z像頭OV6620的原理和所用微控制器的簡(jiǎn)介。</p><p>  第三章:總體設(shè)計(jì)。主要介紹了智能車結(jié)構(gòu)框圖和攝像頭設(shè)計(jì)方案以及選型依據(jù),還介紹了攝像頭相關(guān)程序的工作流程。</p>

29、<p>  第四章:詳細(xì)設(shè)計(jì)。本章對(duì)實(shí)現(xiàn)路徑信息采集的整個(gè)硬件設(shè)計(jì)和軟件結(jié)合過程中的最核心部分進(jìn)行詳細(xì)的闡述。</p><p>  第五章:調(diào)試與實(shí)現(xiàn)。本章對(duì)外圍的硬件和內(nèi)部軟件的調(diào)試以及用上位機(jī)進(jìn)行調(diào)試。得到較理想的圖像結(jié)果并進(jìn)行了實(shí)際的路徑采集測(cè)試。 </p><p>  第六章:總結(jié)。本章總結(jié)整個(gè)調(diào)試過程中出現(xiàn)的問題和得到的經(jīng)驗(yàn),并指出了系統(tǒng)設(shè)計(jì)中還存在不足和改進(jìn)的方向。&

30、lt;/p><p>  第二章 攝像頭和微控制器</p><p>  2.1 攝像頭的分類及原理</p><p>  攝像頭按照其采用的感光器件來分,有CCD和CMOS之分。其中CCD(Charge Coupled Device,電荷耦合組件)是應(yīng)用在攝像、圖像掃描方面的高端技術(shù)組件,CMOS(Complementary etal-Oxide Semiconduct

31、or,附加金屬氧化物半導(dǎo)體組件)則大多應(yīng)用在一些低端視頻產(chǎn)品中。但是這樣的定位并不表示在具體的攝像頭使用時(shí),兩者有很大區(qū)別。事實(shí)上經(jīng)過技術(shù)改造,目前CCD和CMOS的實(shí)際效果的差距已經(jīng)大大的減小了。下面具體總結(jié)了CCD和CMOS攝像頭的讀取方式、采集速度、耗電量、成像質(zhì)量四個(gè)方面的區(qū)別:</p><p>  CCD傳感器存儲(chǔ)的電荷信息需在同步信號(hào)控制下一位一位的實(shí)施轉(zhuǎn)移后讀取,電荷信息轉(zhuǎn)移和讀取輸出需要有時(shí)鐘控制

32、電路和三組不同的電源相配合,整個(gè)電路較為復(fù)雜。而CMOS傳感器經(jīng)光電轉(zhuǎn)換后直接產(chǎn)生電流(或電壓)信號(hào),信號(hào)讀取十分簡(jiǎn)單。</p><p>  CCD傳感器需在同步時(shí)鐘的控制下以行為單位并一位一位的輸出信息,速度較慢;而CMOS傳感器采集光信號(hào)的同時(shí)就可以取出電信號(hào),還能同時(shí)處理各單元的圖象信息,速度比CCD快很多。</p><p>  CCD傳感器電荷耦合器大多需要三組電源供電,耗電量較大

33、;CMOS傳感器只需使用一個(gè)電源,耗電量非常小,僅為CCD電荷耦合器的1/8到1/10,CMOS光電傳感器在節(jié)能方面具有很大優(yōu)勢(shì)。</p><p>  CCD傳感器制作技術(shù)起步較早,技術(shù)相對(duì)成熟,采用PN結(jié)合二氧化硅隔離層隔離噪聲,成像質(zhì)量相對(duì)CMOS傳感器有一定優(yōu)勢(shì)。由于CMOS傳感器集成度高,光電傳感元件與電路之間距離很近,相互之間的光、電、磁干擾較為嚴(yán)重,噪聲對(duì)圖象質(zhì)量影響很大。</p>&l

34、t;p>  下面我就列舉出前幾屆智能車比賽中采用CCD成像構(gòu)架的攝像頭實(shí)現(xiàn)智能車路徑信息采集的實(shí)例[3]。</p><p>  CCD采用的是視頻信號(hào)同步分離電路,需要的元件較多較復(fù)雜,整體的硬件原理框架如圖2.1所示。</p><p>  圖2.1 CCD采集系統(tǒng)框圖</p><p>  CCD軟件模塊采用的是:AD轉(zhuǎn)換初始化模塊,外部中斷初始化,AD中斷

35、響應(yīng)模塊和外部中斷響應(yīng)模塊。其中AD中斷響應(yīng)模塊是由外部中斷響應(yīng)啟動(dòng),采集固定圖像數(shù)據(jù)后停止,外部中斷響應(yīng)模塊的作用是判斷是否有幀圖像開始;啟動(dòng)AD轉(zhuǎn)換;標(biāo)示圖像采集完畢。</p><p>  此套方案的整體優(yōu)點(diǎn)是分辨率高,識(shí)別路徑參數(shù)多,占用MCU端口資源少,通過算法減少外部環(huán)境影響。而缺點(diǎn)和不足的是CCD攝像頭相對(duì)昂貴,占用RAM較多,道路檢測(cè)速率受到限制(<50Hz),輔助電路較多(12Vs升壓,LM

36、1881等)。而且只能使用微控制器的AD模塊端口來傳入數(shù)據(jù),其他端口的兼容性差。</p><p>  下面就對(duì)比采用CMOS的原理:</p><p>  CMOS的電路搭建和CCD很接近,采集方式也基本一致。不需要LM1881的輔助軟件。大量減少購(gòu)買的成本,自身便宜,構(gòu)架簡(jiǎn)潔,易于實(shí)現(xiàn)。采集的像素相對(duì)較高,幀數(shù)率也較快??捎玫牡臄?shù)字圖像的格式也較多,多單片機(jī)的要求簡(jiǎn)單,通用性極強(qiáng)。CCD采

37、用的是連續(xù)掃描它只有等到最后一個(gè)像素掃描完成后才進(jìn)行放大而CMOS傳感器的每個(gè)像素都有一個(gè)將電荷放大為電信號(hào)的轉(zhuǎn)換器。CMOS的功耗小,對(duì)于智能車而言就是更加的省電。</p><p>  說完了CCD的介紹下面簡(jiǎn)單說明CMOS采集的方式。COMS是通過行掃描和場(chǎng)掃描來實(shí)現(xiàn)圖像信息的采集,原理圖如下圖2.2所示,詳細(xì)內(nèi)容我將在詳細(xì)設(shè)計(jì)中通過分塊的信息模塊一一描述。</p><p>  圖2.

38、2 攝像頭信號(hào)掃描原理</p><p>  參考?xì)v年參賽選手的普遍選擇,很多人采用的是數(shù)字?jǐn)z像頭OV6620和OV7620,原理和參數(shù)幾乎一樣的兩個(gè)攝像頭。其中OV6620的價(jià)格較便宜,容易在網(wǎng)上或商店買到,而且和OV7620一樣都是輸出8位圖像數(shù)據(jù);具有自動(dòng)增益和自動(dòng)白平衡控制,能進(jìn)行亮度、對(duì)比度、飽和度、Y校正等多種調(diào)節(jié)功能;其視頻時(shí)序產(chǎn)生電路可產(chǎn)生行同步、場(chǎng)同步、混合視頻同步等多種同步信號(hào)和像素時(shí)鐘等多種

39、時(shí)序信號(hào);5V電源供電,工作時(shí)功耗<120mW,待機(jī)時(shí)功耗<10uW[4]。他們的主要區(qū)別在與像素不同,OV7620是640X480,OV6620是320X240;像素的不同導(dǎo)致價(jià)格的差異也很大。但考慮到單片機(jī)的接受能力上選擇OV6620是能足以滿足本系統(tǒng)道路識(shí)別的要求。</p><p>  綜上所述最終對(duì)比結(jié)果后我們采用結(jié)構(gòu)比較簡(jiǎn)單的COMS結(jié)構(gòu)的數(shù)字?jǐn)z像頭,又結(jié)合去年智能車比賽的經(jīng)驗(yàn),綜合結(jié)論是采

40、用CMOS容易上手的OV6620攝像頭。下面我將詳細(xì)介紹OV6620數(shù)字?jǐn)z像頭的原理和實(shí)現(xiàn)圖像采集的方案。</p><p>  2.2 數(shù)字?jǐn)z像頭OV6620的簡(jiǎn)介</p><p>  我們實(shí)際制作智能車時(shí)采用的數(shù)字CMOS攝像頭OV6620實(shí)物如下圖2.3所示[5]。</p><p>  圖2.3 OV6620攝像頭管腳和實(shí)物</p><p

41、>  下面給出OV6620數(shù)字?jǐn)z像頭各管腳說明如下表2.1所示。</p><p>  表2.1 OV6620攝像頭管腳的一覽表</p><p>  至于實(shí)際中智能車攝像頭具體要用到的管腳分別為:1至8號(hào)管腳灰度數(shù)字輸出信號(hào)總線,8位數(shù)據(jù)線;14號(hào)管腳為行視窗信號(hào)提取輸出;16號(hào)管腳為場(chǎng)中斷垂直信號(hào)提取輸出;15號(hào)17號(hào)21號(hào)管腳都是模擬地信號(hào)可以和31號(hào)接地通用;20號(hào)管腳是接5V

42、直流電源供電;31號(hào)管腳為接地。</p><p>  這里再深入介紹下數(shù)字?jǐn)z像頭OV6620的一些特征:</p><p>  OV6620需要穩(wěn)定的5V的電壓,正好和參賽的系統(tǒng)板的5V電源相同,可以通用同一個(gè)電源模塊供電。</p><p>  采集圖像的頻率是25幀每秒,一幀兩場(chǎng),每秒就是50場(chǎng),換句話說就是20ms就有一幅圖像產(chǎn)生。</p><

43、p>  視野的可視距離,拿24MBUSCLK且每行可取150個(gè)點(diǎn)下進(jìn)行測(cè)量。具體數(shù)值和效果要依據(jù)真實(shí)情況自己進(jìn)行調(diào)節(jié)。</p><p>  內(nèi)部有可編程總線結(jié)構(gòu)IIC,可以調(diào)整攝像頭的參數(shù),比如說最大灰度,曝光率,對(duì)比度控制等等。</p><p>  內(nèi)部自動(dòng)圖像增強(qiáng),亮度,對(duì)比度,飽和度,銳度等,不需加AD,不需LMl1881。</p><p>  知道了O

44、V6620攝像頭的管腳和他的一些技術(shù)指標(biāo)特征是不足以掌握和靈活應(yīng)用他的。那么他的圖像采集原理及實(shí)際應(yīng)用是怎樣的呢,我先給出攝像頭的數(shù)字信號(hào)原理圖做進(jìn)一步的解釋。</p><p>  圖2.3 OV6620的行場(chǎng)信號(hào)的原理圖</p><p>  在采集時(shí)可以忽略TCLK(像素同步信號(hào)),首先是因?yàn)樗炝?,捕捉不到。其?shí)也沒有必要捕捉到它,采集圖像時(shí)盡快的一個(gè)點(diǎn)一個(gè)點(diǎn)的取就可以,和模擬攝像

45、頭一樣。</p><p>  VYNSC是判斷是否有一幅圖像的開始,周期是20ms,其中高電平持續(xù)的時(shí)間很短,可以忽略;HREF是判斷是否有一行圖像的開始,周期是63us左右,其中高電平持續(xù)40us,低電平持續(xù)時(shí)間23us,可以計(jì)算出一場(chǎng)有多少行:20ms/63us=317,實(shí)際值其實(shí)沒有這么多,要去掉消隱和無效信號(hào),實(shí)際只有292行。</p><p>  必須明確說明:場(chǎng)中斷要通過下降沿

46、捕捉,行中斷通過上升沿捕捉。</p><p>  有效的灰度數(shù)據(jù)是在行中斷之后的上升沿內(nèi),所以不要在中斷后的23us后采集,那是無效數(shù)據(jù)。下面列出計(jì)算一行OV6620有多少個(gè)點(diǎn),40us/110ns=363,消隱和無效信號(hào)丟掉后只有356個(gè)點(diǎn)。</p><p>  知道原理后,我們討論下采集上遇到的應(yīng)用問題:</p><p>  行信號(hào)與場(chǎng)信號(hào)的時(shí)間比較長(zhǎng),S12的

47、單片機(jī)足以捕捉到,但對(duì)于多數(shù)OV6620的像素同步而言110ns左右,單片機(jī)能夠捕捉到到信號(hào),但這一期間還有采集步驟,就很難做到即采集又判斷是否有像素同步。</p><p>  然而是否必須捕捉到TCLK信號(hào)了,讀回的信號(hào)才是正確的呢?答案顯然是否定的,對(duì)于S12單片機(jī)而言即使不用TCLK讀回來圖像也是對(duì)的。原因就是因?yàn)镾12單片機(jī)的讀取速度是有限的,我們有用匯編語言編寫程序而且無循環(huán)語句來測(cè)試采集的讀取速度,有

48、效點(diǎn)數(shù)一行就是280多左右,而OV6620的有效行像素輸出是352點(diǎn),說明單片機(jī)的讀取速度比CMOS的圖像輸出速度慢。</p><p>  現(xiàn)在限定的是一行取50個(gè)點(diǎn),至于如何平分這50點(diǎn)采取的是延時(shí)方法,即采集一點(diǎn),延時(shí)一會(huì)再采集一點(diǎn),平均分為50點(diǎn)。延時(shí)的具體時(shí)間是通過試驗(yàn)得來的。至于采集的效果和圖像的真實(shí)反映情況我將在第五章的調(diào)試與實(shí)現(xiàn)中具體介紹 。</p><p>  2.3 智

49、能車微控制器簡(jiǎn)介</p><p>  智能車的微控制器就是比賽組委會(huì)統(tǒng)一的MC9S12XS128微控制器[6]。</p><p>  MC9S12X家族是HCS12系列的增強(qiáng)型產(chǎn)品,基于S12 CPU內(nèi)核,可達(dá)到25MHz的HCS12的2-5倍的性能。S12X系列增加了172條額外指令,可以執(zhí)行32位計(jì)算(共有280條指令),總線頻率最高可達(dá)40MHz,并且具備完全的CAN功能,改進(jìn)了中斷

50、處理能力。</p><p>  S12X系列的CPU以復(fù)雜指令集CISC架構(gòu),集成了中斷控制器,有豐富的尋址方式。中斷有7個(gè)優(yōu)先級(jí),并且內(nèi)核支持優(yōu)先級(jí)的調(diào)度,最多可有117個(gè)中斷源,S12X可訪問最多8MB的全部存儲(chǔ)空間。</p><p>  S12X系列最大的特點(diǎn),是增加了一個(gè)平行處理的外圍協(xié)處理器XGATE模塊。該模塊是一個(gè)可編程的16位RISC核心,其設(shè)計(jì)運(yùn)行頻率可高達(dá)100MHz,

51、是一個(gè)智能的、可編程的直接內(nèi)存存儲(chǔ)(DMA)模塊,可以進(jìn)行中斷處理、通信和數(shù)據(jù)預(yù)處理,通過提供處圍模塊、RAM和I/O端口之間的高速數(shù)據(jù)處理與傳輸,卸載CPU的任務(wù),提高單片機(jī)的數(shù)據(jù)處理能力。</p><p>  S12XS系列保留了S12X CPU,去掉了另一個(gè)CPU——XGATE,保留了先進(jìn)的技術(shù),簡(jiǎn)化了操作,是S12X系列的經(jīng)濟(jì)型產(chǎn)品,目前有三種型號(hào):XS256、XS128和XS64,三者除了在內(nèi)存方面有些

52、差異,其余資源基本相同。</p><p>  下面先簡(jiǎn)單地介紹下XS128的常用內(nèi)部資源模塊,如圖2.4所示:</p><p>  圖2.4 XS128內(nèi)部資源</p><p>  內(nèi)存。它擁有128KB Flash、8K RAM和8K DataFlash。</p><p>  通信和I/O。它擁有一個(gè)MSCAN模塊,兼容CAN 2.0 A

53、、B;一個(gè)串行外設(shè)接口(SPI)模塊;兩個(gè)支持LIN的串行通信接口(SCI);高達(dá)91個(gè)通用輸入/輸出(GPIO)引腳。</p><p>  定時(shí)器和模數(shù)轉(zhuǎn)換器。它擁有一個(gè)ADC模塊,提供8/10/12位分辨率,可復(fù)用為16個(gè)模擬輸入通道;8通道8位,或4通道16位脈寬調(diào)制器(PWM);定時(shí)器(TIM),提供8通道16位輸入捕捉或輸出比較功能;PIT模塊,提供4通道軟件中斷精確定時(shí);RTI模塊,提供基于晶振源頻率

54、的定時(shí)。</p><p>  第三章 系統(tǒng)總體設(shè)計(jì)</p><p>  3.1 智能車結(jié)構(gòu)框圖</p><p>  制作智能車首先要有一個(gè)總體的思想設(shè)計(jì)方案。在總體的方案框架內(nèi)才能詳細(xì)設(shè)計(jì)我所需要的數(shù)字?jǐn)z像頭圖像采集。這里我先簡(jiǎn)單的介紹下我們的智能車總體結(jié)構(gòu),列出原理框圖,如圖3.1所示。</p><p>  圖3.1 智能車系統(tǒng)框圖&

55、lt;/p><p>  下面我就對(duì)總體的原理框圖做出下解釋:</p><p>  中間的主控制器模塊就是比賽統(tǒng)一FREESCALE的MC9S12XS128芯片,實(shí)際中我們的攝像頭用到了它的只有8個(gè)AD口和2個(gè)PT口。微控制芯片的作用就是處理攝像頭采集到的信號(hào)并根據(jù)信號(hào)判斷路徑控制電機(jī)和舵機(jī)。</p><p>  左下邊的傳感器模塊就是本篇論文要詳細(xì)介紹的數(shù)字?jǐn)z像頭采集圖

56、像的模塊,它的作用就是采集圖像識(shí)別路徑,我將在詳細(xì)設(shè)計(jì)中一一分析。</p><p>  左上邊的調(diào)試和測(cè)試模塊是使用了串口(SCI)進(jìn)行無線傳輸和接收,通過上位機(jī)軟件,可以實(shí)現(xiàn)對(duì)小車狀態(tài)的實(shí)時(shí)監(jiān)控。</p><p>  右上邊的伺服控制模塊就是小車轉(zhuǎn)向的舵機(jī),也是方向控制模塊,具體的操作指令由MCU控制。</p><p>  右下邊的電機(jī)驅(qū)動(dòng)模塊,給電機(jī)的控制電源升

57、壓和降壓的控制,也是由單片機(jī)發(fā)出指令,具體我們采用的是雙片的M33886電機(jī)穩(wěn)壓驅(qū)動(dòng)模塊。</p><p>  最下邊的電源管理模塊我們采用的是LM2940的5V穩(wěn)壓芯片,路徑信息硬件設(shè)計(jì)中我會(huì)給出具體的電氣圖。</p><p>  3.2 路徑信息采集硬件設(shè)計(jì)</p><p>  要做路徑信息采集的硬件設(shè)計(jì)就先要有先知道圖像采集的總體框架圖,該圖主要說明采集信號(hào)

58、的走向方式,如下圖3.2所示。</p><p>  圖3.2 采集圖像的總體信號(hào)控制框圖</p><p>  信號(hào)從攝像頭采集直接傳輸?shù)轿⒖刂铺幚砥鞯腁D模塊和ECT(增強(qiáng)型時(shí)間模塊),然后微控制器對(duì)傳入的信號(hào)進(jìn)行處理,進(jìn)過判斷程序后對(duì)舵機(jī)和驅(qū)動(dòng)電機(jī)執(zhí)行相關(guān)控制。而采集圖像的硬件設(shè)計(jì)關(guān)鍵就是攝像頭的設(shè)計(jì)方案。</p><p>  在第二章中我們具體討論了CCD和C

59、MOS數(shù)字?jǐn)z像頭的區(qū)別,而且綜合比較后我們選定了OV6620這款COMS數(shù)字?jǐn)z像頭。選擇是基于經(jīng)驗(yàn),經(jīng)濟(jì),易于實(shí)現(xiàn),實(shí)用性高等條件綜合考慮的結(jié)果。</p><p>  攝像頭的設(shè)計(jì)方案首先要考慮數(shù)字?jǐn)z像頭的電源電路,由于選擇的OV6620攝像頭的電源為5V和微控制器的工作電壓一致,故可共用一個(gè)穩(wěn)壓源。為了達(dá)到這一電源要求,通過芯片LM2940將電池電壓7.2V直接變?yōu)?V,供給攝像頭和MCU使用。5V電源電路如圖

60、3.3所示。</p><p>  圖3.3 5V攝像頭穩(wěn)壓源</p><p>  知道穩(wěn)壓電路后,還要知道用到的OV6620的管腳為哪些。其中1至8管腳數(shù)據(jù)傳輸線,14號(hào)管腳行視窗信號(hào),16號(hào)場(chǎng)中斷信號(hào), 31號(hào)接地信號(hào),20號(hào)管腳是接5V直流電源供電。其中1至8號(hào)管腳連接MCU的1至8號(hào)AD口,14號(hào)管腳接MCU的PT1,16號(hào)管腳接MCU的PT0。</p><p&

61、gt;  3.3 路徑信息采集軟件設(shè)計(jì)</p><p>  根據(jù)設(shè)計(jì)要求,每一項(xiàng)數(shù)據(jù)參數(shù)采集可設(shè)定為由一個(gè)功能模塊來完成,各模塊相互連通最終構(gòu)成所要求的軟件系統(tǒng)。整體的軟件編譯在FREESCALE公司配套的軟件的CodeWarrior上實(shí)現(xiàn)。總體軟件的流程如圖3.4所示。</p><p>  圖3.4 總體軟件流程圖</p><p>  由流程圖我們可以知道軟件

62、系統(tǒng)的整體流程,這也是整體編程的依據(jù)。從控制角度劃分出的模塊,如圖3.5所示。</p><p>  圖3.5 總體軟件控制模塊</p><p>  開始就是整個(gè)系統(tǒng)各模塊的初始化。本文主要討論的模塊有圖像的采集和處理,我主要的目的就是實(shí)現(xiàn)圖像的采集和判斷。速度PID和舵機(jī)PID控制本文不做解釋。總之用到了哪個(gè)模塊都是要先初始,具體程序代碼將會(huì)在詳細(xì)設(shè)計(jì)中給出。</p>&l

63、t;p><b>  3.4 圖像采集</b></p><p>  在第二章中已說明使用的CMOS結(jié)構(gòu)數(shù)字?jǐn)z像頭OV6620采集圖像的原理是靠場(chǎng)中斷掃描和行中斷的采集構(gòu)成的一幅圖像畫。下面給出CMOS結(jié)構(gòu)數(shù)字?jǐn)z像頭路徑信息采集的基本流程如圖3.6所示。</p><p>  圖3.6 攝像頭采集圖像的程序流程圖</p><p>  從實(shí)現(xiàn)

64、場(chǎng)中斷和清除標(biāo)志位,屏蔽消隱信號(hào),開行中斷再到行中斷是圖像采集的全過程,清標(biāo)志位到輸入捕捉后面的就是圖像處理的方法。在詳細(xì)設(shè)計(jì)中給出每個(gè)模塊判斷的方法和接口的利用情況。其中行場(chǎng)中斷實(shí)現(xiàn)的核心還是對(duì)MCU的C語言編譯上,通過明了化的C語言,才能實(shí)現(xiàn)數(shù)據(jù)的采集和傳輸。</p><p><b>  3.5 圖像處理</b></p><p>  根據(jù)比賽要求,賽道上設(shè)置有起

65、始線、十字交叉線、彎道、窄道等各種標(biāo)志,只有當(dāng)車子能夠準(zhǔn)確采集到各個(gè)標(biāo)志位的狀態(tài)信息,才能夠確保小車按照要求在賽道上行駛,并順利的完成比賽。</p><p>  在圖像的識(shí)別判斷上我們采用了匯編語言,這個(gè)執(zhí)行效率高的語言。盡管代碼比較長(zhǎng),但思路清晰,單片機(jī)的資源占用也小。具體的代碼,我將在詳細(xì)設(shè)計(jì)的匯編專項(xiàng)里說明。這是我們?cè)O(shè)計(jì)的智能車有別其他參賽選手識(shí)別語言的地方。對(duì)于采集到的數(shù)據(jù)我們還單獨(dú)做了雙緩沖。這樣盡可能

66、的避免了丟線現(xiàn)象,保證了小車的穩(wěn)定性,同時(shí)也提高了數(shù)據(jù)的精確性,圖像采集的效率。</p><p>  針對(duì)智能車來說用COMS攝像頭采集車模前方一定距離內(nèi)的黑線,從中提取相關(guān)量,用來控制舵機(jī)的轉(zhuǎn)向,實(shí)現(xiàn)智能車的自動(dòng)循跡。由于單片機(jī)數(shù)據(jù)處理能力和速度有限,不能在短短的20 ms時(shí)間內(nèi)處理整場(chǎng)圖像。本系統(tǒng)設(shè)置攝像頭前瞻為1.4m。在不影響道路檢測(cè)精度需要的前提下,本系統(tǒng)采用隔行采集來壓縮圖像數(shù)據(jù),即相隔不同的有效行采

67、集一行數(shù)據(jù)(近處相隔的少,遠(yuǎn)處相隔的多),一共可采集20行數(shù)據(jù)。此外為了進(jìn)一步提高A/D轉(zhuǎn)換的速度,本系統(tǒng)還適當(dāng)?shù)貙S12的CPU超頻運(yùn)行并且設(shè)置A/D轉(zhuǎn)換器的精度為8位,這樣每行能采樣到50個(gè)點(diǎn),形成了一個(gè)面陣,而黑線在其中占據(jù)了某些點(diǎn)位[7]。由于我們一行采集50個(gè)點(diǎn),故中間值為25。圖像是智能車的底層,圖像的采集正確與否在以后的控制中尤為重要,故一定要確保采集回來的黑線的真實(shí)有效性,并且要增加濾波算法,比如在有效前瞻很小的時(shí)候,

68、本來只要判斷出黑線的轉(zhuǎn)向即可,給舵機(jī)以極限轉(zhuǎn)角可以讓車急轉(zhuǎn)彎。但是有效行很少的時(shí)候,如果不用特殊的濾波方法,只要有一行的黑線提錯(cuò),就可能讓小車轉(zhuǎn)錯(cuò),至于轉(zhuǎn)出界。采集圖像的AD(數(shù)模)控制主要是在C語言上的實(shí)現(xiàn)。如圖3.7所示圖像處理流程。</p><p>  圖3.7 攝像頭圖像處理流程圖</p><p>  根據(jù)流程所寫,在詳細(xì)設(shè)計(jì)中將對(duì)黑線的提取內(nèi)容進(jìn)行分析。它們分別為圖像采集后的緩

69、沖處理和二值化處理。目的及作用就是為了讓小車實(shí)現(xiàn)路徑的識(shí)別,控制舵機(jī)的轉(zhuǎn)向和小車的速度從而能夠使小車尋線跑。</p><p><b>  第四章 詳細(xì)設(shè)計(jì)</b></p><p>  詳細(xì)設(shè)計(jì)是整個(gè)設(shè)計(jì)過程中最重要的步驟。</p><p>  4.1 數(shù)字?jǐn)z像頭與微控制器的接口</p><p>  在總體設(shè)計(jì)中已基本

70、將小車的整體硬件思路闡釋,這里我給出我們依據(jù)原理深入分析攝像頭與微控制器接口的利用情況。</p><p>  第二章中簡(jiǎn)單介紹了MCU用到的管腳有8個(gè)AD數(shù)字口,2個(gè)PT中斷口,2個(gè)PS行通信口,4個(gè)數(shù)字口做了撥碼開關(guān),4個(gè)PWM控制口等。</p><p>  這里再簡(jiǎn)單的說明下核心單片機(jī)MC9S12XS128的應(yīng)用情況:</p><p>  16位S12X V2

71、CPU內(nèi)核,典型總線頻率40MHZ,基本指令周期25ns。為了更快的采集路徑信息我們將它超頻到80MHZ。</p><p>  內(nèi)部集成帶ECC(錯(cuò)誤校驗(yàn))功能的128KB FLASH存儲(chǔ)器、8KB RAM、8KB數(shù)據(jù)ROM。</p><p>  4通道24位周期中斷計(jì)數(shù)器PIT,攝像頭用到了兩個(gè)作為中斷計(jì)數(shù)器;</p><p>  2個(gè)SCI(串行通信)模塊支持L

72、IN總線,小車的無限模塊的通信就是靠這個(gè)模塊傳輸信息。</p><p>  8通道8位或4通道16位的PWM,控制舵機(jī)和M33886用的。</p><p>  16通道8位ADC,轉(zhuǎn)換時(shí)間3us,這是我們攝像頭采集數(shù)據(jù)后所采用的接收和換算模塊。</p><p>  S12XS128的芯片一般有64/80/112管腳貼片封裝,我們采用龍丘公司加工的S12XS128芯片

73、是112管腳的貼片封裝。</p><p>  3.3V-5.0V工作電壓范圍,我們?cè)谛≤囋O(shè)計(jì)中都統(tǒng)一用了LM2940的5VDC穩(wěn)壓芯片,和攝像頭的供電系統(tǒng)一致,節(jié)省了穩(wěn)壓元件,簡(jiǎn)化了電路,還有效降低了制作的成本。</p><p>  5V的穩(wěn)壓源在總體設(shè)計(jì)中已經(jīng)說明,電氣原理圖和參數(shù)等參考總體設(shè)計(jì)中的路徑信息采集硬件設(shè)計(jì)內(nèi)容。</p><p>  4.2 微控制器

74、相關(guān)資源的使用情況和初始化</p><p>  微控制器所用到的資源就是連接行中斷和場(chǎng)中斷處理的ECT模塊和8個(gè)AD口資源[8]?,F(xiàn)具體說明行中斷和場(chǎng)中斷的使用情況。</p><p>  總體設(shè)計(jì)中已簡(jiǎn)明說明了行場(chǎng)采集的相關(guān)流程和原理,下面著重介紹軟件實(shí)現(xiàn)對(duì)攝像頭行和場(chǎng)的控制,具體的C語言源代碼如下。</p><p>  //PT0--攝像頭場(chǎng)中斷VSYN,周期20

75、ms</p><p>  interrupt 8 void PT0_TSR(void){</p><p>  TFLG1_C0F=1;//清除中斷標(biāo)志</p><p>  VSYNFalg=1; //設(shè)置場(chǎng)中斷標(biāo)志</p><p>  HREFCount=0;//清除行同步計(jì)數(shù)</p><p>  if (CarRun

76、TimerEnable) CarRunTime++;//計(jì)時(shí)周期0.02s</p><p>  EnableInterrupts;</p><p>  if(StopTime) StopTime--;</p><p>  //WriteSendData();//發(fā)送數(shù)據(jù)</p><p>  AdSpeedFalg=1;</p>

77、<p><b>  }</b></p><p>  // PT1--攝像頭行中斷HREF</p><p>  interrupt 9 void PT1_TSR(void){</p><p><b>  int i;</b></p><p>  EnableInterrupts;</p

78、><p>  TFLG1_C1F=1;//清除中斷標(biāo)志</p><p>  if (VSYNFalg!=1) return; //場(chǎng)標(biāo)志無效放棄</p><p>  HREFCount++; //行同步計(jì)數(shù)加一</p><p>  if (HREFCount<100 || HREFCount>270) return; //放

79、棄前100行,和270行后的數(shù)據(jù)</p><p>  代碼中寫明了采用PT0做場(chǎng)中斷,PT1做行中斷的采集過程。采集的具體過程就是靠?jī)蓚€(gè)中斷實(shí)現(xiàn)一幀一幀的圖像,但在采集前還要先做好初始化的工作,下面就給出具體的初始化內(nèi)容。</p><p>  ECT就是MCU控制PT口的模塊,ECT為增強(qiáng)型時(shí)間模塊它的初始化源代碼如下所寫。</p><p>  //ECT初始化函數(shù)

80、</p><p>  //PT0接OV6620的場(chǎng)中斷VSYN,上升沿捕捉</p><p>  //PT1接OV6620的行中斷HREF,下降沿捕捉</p><p>  //ECT通道0--PT0優(yōu)先級(jí)最高,其次為通道1--PT1,其它中斷優(yōu)先級(jí)均低于ECT</p><p>  //測(cè)速編碼輸入到PT7** </p><p

81、>  //利用AN0-AN7讀CMOS攝像頭輸出數(shù)據(jù)</p><p>  //-----------------------------------------------------------</p><p>  void InitECT(void){</p><p>  TIOS=0x00;//初始化各通道為輸入捕捉</p><p&

82、gt;  TCTL4=0x06;//通道0下降沿捕捉,通道1上升沿捕捉,其余通道停止捕捉 </p><p>  TSCR1=0x80;//主定時(shí)器允許</p><p>  TIE=0x00;//通道0、1中斷禁止</p><p>  PACTL=0x50;// 脈沖累加器使能,事件計(jì)數(shù)模式,上升沿計(jì)數(shù),中斷禁止</p><p>  INT_C

83、FADDR=0xe0; //設(shè)置中斷配置地址寄存器</p><p>  INT_CFDATA7=0x03; //設(shè)置ECT通道0中斷優(yōu)先級(jí)為3</p><p>  INT_CFDATA6=0x02; //設(shè)置ECT通道1中斷優(yōu)先級(jí)為2</p><p><b>  }</b></p><p>  采集的信號(hào)是通過單片機(jī)的

84、AD口傳輸給單片機(jī)的,故需要通過單片機(jī)對(duì)AD初始化,代碼如下:</p><p>  //ATD初始化函數(shù)</p><p>  //初始化AN0-AN7數(shù)字輸入</p><p>  void InitATD(void){</p><p>  ATD0DIENL=0xff;//使能AN0-AN7數(shù)字輸入輸出</p><p>

85、;  DDR1AD0=0x00; //設(shè)置輸入方向</p><p>  PER1AD0=0xff; //上拉使能 </p><p><b>  }</b></p><p>  只有ECT模塊和ATD模塊的初始化后才能實(shí)現(xiàn)MCU對(duì)數(shù)據(jù)的處理工作,下面圍繞圖像的處理過程解析。</p><p>  4.3 圖像數(shù)據(jù)的

86、緩沖</p><p>  在每幀的圖像中,采用重心提取算法來實(shí)現(xiàn)黑線重心位置的提取。為了緩解CPU堆棧的壓力,將圖像采集到的數(shù)據(jù)存放在二維數(shù)組中,然后將重心位置重新存入一維數(shù)組中。由于所設(shè)路徑上的白色底板和黑色引導(dǎo)線的灰度值相差較大,因此通過確定一個(gè)黑色和白色的閾值來區(qū)分黑白。判斷相鄰數(shù)據(jù)點(diǎn)灰度值的差值是否大于(或小于)該閾值,從而確定此處是否為黑線上的點(diǎn)。經(jīng)過多次實(shí)驗(yàn),最后確定閾值而且根據(jù)跑道的實(shí)際情況來定,依

87、據(jù)跑道給定最佳的閾值。從最左端的第一個(gè)有效數(shù)據(jù)點(diǎn)第7列(前6列數(shù)據(jù)為行消隱區(qū),舍棄)開始依次向右根據(jù)閡值判斷其是白點(diǎn)還是黑點(diǎn)。</p><p>  為了提高每幀圖像處理速度,先對(duì)每幀圖像的前兩行數(shù)據(jù)進(jìn)行處理,即在前兩行尋找連續(xù)的兩個(gè)黑點(diǎn),而且在列上也要有兩個(gè)黑點(diǎn),即為黑線其始處,以此為基本位置,再向下繼續(xù)尋找黑線重心[9]。若尋找失敗則跳過此幀圖像。由于實(shí)際采集數(shù)據(jù)中有相當(dāng)數(shù)量的無效幀,所以此舉節(jié)省了大量MCU資

88、源。</p><p>  在有效幀的每一行,得出每個(gè)黑點(diǎn)的位置值,然后將各黑點(diǎn)位置值相加再除以黑點(diǎn)數(shù)量,得出圖像每行的黑點(diǎn)重心坐標(biāo)。這樣做雖然會(huì)在對(duì)黑線提取的精度上有所犧牲,但是經(jīng)過除法后,相當(dāng)于進(jìn)行了一個(gè)較大的濾波,會(huì)使所提取黑線的誤差降低,保證了提取賽道信息的正確性。</p><p>  在每幀窗口濾波后的圖像中,如果有過多行重心“過輕”或者“過重” (即黑點(diǎn)過少或過多)則此幀圖像視為

89、無效。跳至處理下一幀圖像。在尋找下一行重心時(shí),尋找范圍是在上一行的黑點(diǎn)重心的左右附近,若找不到下一行重心,便跳過此行往下尋找。累計(jì)出現(xiàn)一定數(shù)量的無效行時(shí)跳過此幀圖像處理下一幀圖像。</p><p>  MCU初始化后,攝像頭采集到的數(shù)據(jù)要怎么處理,在這里攝像頭采集后的處理過程中我們?cè)O(shè)計(jì)了雙緩沖區(qū)。因?yàn)閿z像頭采集到的數(shù)據(jù)多于MCU的處理能力,但為了盡量的使數(shù)據(jù)不丟失,跑道不丟線,加大數(shù)據(jù)的保真性,我們?cè)黾恿穗p緩沖區(qū)

90、。這是對(duì)攝像頭智能車設(shè)計(jì)的新穎之處,具體代碼如下。</p><p>  CurrentROW++;</p><p>  if (CurrentROW>=ROWNUM){</p><p>  CurrentROW=0; //一場(chǎng)采集完清行號(hào)</p><p>  CurrentBUFF^=0x01; //下一場(chǎng)數(shù)據(jù)存儲(chǔ)在另外一個(gè)緩沖

91、區(qū)</p><p>  VSYNFalg=2; //場(chǎng)標(biāo)志設(shè)置為2表示一場(chǎng)數(shù)據(jù)采集完成</p><p><b>  Light^=1;</b></p><p>  RouteFlag=0;</p><p><b>  }</b></p><p>  4.4 匯編語

92、言在圖像采集中的應(yīng)用</p><p>  匯編語言屬于機(jī)器語言,擁有良好的機(jī)器兼容性,利用效率遠(yuǎn)高于C語言,但代碼寫起來較為冗長(zhǎng),而且不是很人性化,不容易上手。但采集這是一效率要求很高的過程,代碼的執(zhí)行效率也是賽車制勝的重要因素,而且匯編語言的穩(wěn)定性很好,執(zhí)行失真率低,故在圖像采集上應(yīng)用匯編語言編寫是個(gè)不錯(cuò)的方案。具體的代碼中有很多是重復(fù)的內(nèi)容,我節(jié)選出其主要內(nèi)容寫到下面。</p><p>

93、;  interrupt 9 void PT1_TSR(void){</p><p><b>  int i;</b></p><p>  EnableInterrupts;</p><p>  TFLG1_C1F=1;//清除中斷標(biāo)志</p><p>  if (VSYNFalg!=1) return; //場(chǎng)

94、標(biāo)志無效放棄</p><p>  HREFCount++; //行同步計(jì)數(shù)加一</p><p>  if (HREFCount<100 || HREFCount>270) return; //放棄前100行,和270行后的數(shù)據(jù)</p><p>  if ((HREFCount-100)%8==0){</p><p><b&

95、gt;  asm{</b></p><p>  ldd #10 //攝像頭劇中校正</p><p>  goon: dbne d, goon </p><p>  movb PT1AD0,IBMF;</p><p>  ldd DelayN</p><p>  g0: db

96、ne d, g0</p><p>  movb PT1AD0,IBMF+1;</p><p>  ldd DelayN</p><p>  g1:dbne d, g1;</p><p>  movb PT1AD0,IBMF+2;</p><p>  ldd DelayN</p><p>  g2

97、:dbne d, g2</p><p>  movb PT1AD0,IBMF+3;</p><p><b>  ldd D</b></p><p><b>  ……</b></p><p>  movb PT1AD0,IBMF+47;</p><p>  ldd DelayN

98、</p><p>  g47:dbne d, g47</p><p>  movb PT1AD0,IBMF+48;</p><p>  ldd DelayN</p><p>  g48:dbne d, g48</p><p>  movb PT1AD0,IBMF+49;</p><p>  }

99、//每隔10行,采集一行視頻數(shù)據(jù),每行50像素,每場(chǎng)采集20行。</p><p>  4.5 圖像的二值化</p><p>  為了排除雜點(diǎn),提取有效的黑線信息。經(jīng)過多天的實(shí)驗(yàn)測(cè)試后,采用的窗口處理算法如下:先將采集的圖像數(shù)據(jù)二值化,再使用3×3的窗口進(jìn)行窗口線性濾波,既當(dāng)一個(gè)窗口中含六個(gè)及以上個(gè)黑點(diǎn)時(shí)的中心為黑點(diǎn),否則為白點(diǎn)。下面給出實(shí)際代碼。</p><

100、p>  //圖像二值化處理函數(shù)</p><p>  //----------------------------------------------------------------</p><p>  void DoWithImage(void){</p><p><b>  int i,j;</b></p><p

101、>  unsigned char k;</p><p>  if (VSYNFalg!=2) return;</p><p>  VSYNFalg=0;</p><p>  k=CurrentBUFF^1;</p><p>  for (i=0;i<ROWNUM;i++)</p><p>  for (j=

102、0;j<COLNUM;j++)</p><p>  if (ImageInputBuff[k][i][j]>PixelGateValue) Image2Data[i][j]=WHITE;</p><p>  else Image2Data[i][j]=BLACK; </p><p><b>  }</b></p>&l

103、t;p>  二值化的過程其實(shí)就是確定個(gè)閾值,閾值以下的為0值,閾值以上的為F值。采集到的圖像在借助上位機(jī)調(diào)試中可以清晰的看到數(shù)據(jù)的劃分很明顯。</p><p>  第五章 調(diào)試與實(shí)現(xiàn)</p><p>  5.1 攝像頭的安裝與調(diào)試</p><p>  我們?cè)O(shè)計(jì)的智能小車尋跡系統(tǒng)是基于數(shù)字?jǐn)z像頭OV6620和飛思卡爾16微處理器MC9S12XS128組成,由

104、攝像頭采集圖像有用信息送入單片機(jī)分析道路參數(shù)并做出控制決策。由我們團(tuán)隊(duì)所設(shè)計(jì)的智能車實(shí)物如圖5.1和圖5.2所示。</p><p>  圖5.1 智能汽車實(shí)物圖正面</p><p>  圖5.2 智能汽車實(shí)物圖側(cè)面</p><p>  依據(jù)硬件設(shè)計(jì)的原理思路和設(shè)計(jì)方案搭建了攝像頭的電路,并用了排線連接攝像頭和單片機(jī)整體電路板專門留出的接口。搭建好硬件后就是上電調(diào)

105、試了。上電后首先解決的就是攝像頭物理調(diào)焦的問題。調(diào)焦調(diào)好了,攝像頭才能正??吹綀D像而不是模糊一片。</p><p>  我們總結(jié)攝像頭在實(shí)際調(diào)試中調(diào)焦在3.6mm時(shí),傾角有25度左右,調(diào)焦越大視場(chǎng)越小,可視距離可達(dá)10米左右,但像素只有10萬多,但黑線只有2.5cm,調(diào)焦太遠(yuǎn)黑線會(huì)很細(xì),采點(diǎn)后很難分辨出是噪聲還是有用信息,經(jīng)過反復(fù)的調(diào)試后我們選擇了大概1.2m左右的距離為最佳。</p><p&

106、gt;<b>  5.2 軟件調(diào)試</b></p><p>  當(dāng)軟件設(shè)計(jì)完成之后我們馬上把它應(yīng)用到智能車的調(diào)試當(dāng)中,同時(shí)也可以對(duì)軟件設(shè)計(jì)的不足進(jìn)行調(diào)整,在經(jīng)過不斷的完善之后,該軟件已經(jīng)可以成功方便的應(yīng)用于智能車比賽的后期賽車調(diào)試當(dāng)中。</p><p>  我們截取了賽車運(yùn)行當(dāng)中傳回到上位機(jī)的實(shí)時(shí)數(shù)據(jù)的畫面(路徑信息采集與實(shí)現(xiàn)),在畫面當(dāng)中我們可以清楚的看到賽車運(yùn)行

107、中的各項(xiàng)參數(shù)信息,據(jù)此我們可以方便的發(fā)現(xiàn)賽車問題的所在,然后快速解決問題。</p><p>  為了節(jié)約系統(tǒng)時(shí)間,在編程中主要采用中斷處理,并且設(shè)置成上升沿觸發(fā)。在場(chǎng)中斷期間,先調(diào)用屏蔽場(chǎng)同步消隱子程序,把成像效果不好的部分濾除掉,隨后打開行中斷。當(dāng)經(jīng)過分頻后的行同步頭到來時(shí),開始捕捉圖像信號(hào)的4個(gè)任意沿,在相應(yīng)兩個(gè)沿之間,所捕捉到的系統(tǒng)時(shí)鐘脈沖個(gè)數(shù)就反映了當(dāng)前的路徑信息。另外,為了消除偶然誤差的影響,在不降低系

108、統(tǒng)速度測(cè)量精度的前提下,通過使用軟件上的循環(huán)隊(duì)列算法,保證了路徑信息的準(zhǔn)確性。循環(huán)隊(duì)列的具體實(shí)現(xiàn)過程為:通過設(shè)置一個(gè)長(zhǎng)度為L(zhǎng)的隊(duì)列,每發(fā)生一次輸入捕捉中斷就進(jìn)行一次入隊(duì)操作,由隊(duì)列“先進(jìn)先出”的性質(zhì),即替換最先入隊(duì)數(shù)據(jù),能夠保證將最新的刷新數(shù)據(jù)進(jìn)行數(shù)據(jù)處理并進(jìn)行控制,提高了控制的實(shí)時(shí)性。如圖5.3給出了軟件調(diào)試的CodeWarrior平臺(tái)界面截圖。</p><p>  圖5.3 軟件調(diào)試環(huán)境</p>

109、<p>  5.3 借助上位機(jī)調(diào)試</p><p>  調(diào)試階段采用的是上一屆參賽時(shí)積累下來的,利用LabVIEW軟件設(shè)計(jì)的上位機(jī)調(diào)試工具[10],具體的上位機(jī)源代碼見附錄所示。最后通過搭建好的整體硬件和無線傳輸模塊共同配合實(shí)現(xiàn)圖像的采集,下面給出我們事跡采集的圖像情況:</p><p>  圖5.4 十字線的灰度圖像采集</p><p>  圖5

110、.5 彎道的灰度圖像采集</p><p>  圖5.6 起跑線灰度圖像采集</p><p>  圖5.7 直線跑道灰度圖像采集</p><p>  通過實(shí)際的截圖可以看出識(shí)別到的黑線是較小的數(shù)值。能夠?qū)崿F(xiàn)圖像的采集。</p><p>  圖5.8 二值化后的起始線</p><p>  圖5.9 二值化后的彎道

111、線</p><p><b>  第六章 總結(jié)</b></p><p>  通過該設(shè)計(jì)完成的路徑信息采集結(jié)果基本達(dá)到了我想要的預(yù)期效果。其中調(diào)試是一個(gè)較漫長(zhǎng)的過程,不是一下子就能捕捉到圖像的。</p><p>  正是由于去年的智能車比賽有了一定的基礎(chǔ)和經(jīng)驗(yàn),故今年有機(jī)會(huì)開拓?cái)z像頭組的智能車。但攝像頭的智能車畢竟是第一次做,整個(gè)制作過程一路走來

112、很匆忙,很多東西都是一邊學(xué)一邊用。發(fā)現(xiàn)很多問題也修改了很多問題,摸著石頭過河總是有一定的盲目性,走了不少的彎路,浪費(fèi)了不少時(shí)間,但結(jié)果還是欣慰的。</p><p>  制作的過程中遇到了很多問題,從選材的對(duì)比,電路和管腳的選擇上,電路的搭建上再到軟件的編輯和最后的調(diào)試上都存在著一些問題。</p><p>  單說攝像頭的軟件程序調(diào)試的方案就有很多種,而且都要一一的試驗(yàn)。有很多種代碼可以使我

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論