第六屆 遠(yuǎn)航隊(duì)_第1頁
第六屆 遠(yuǎn)航隊(duì)_第2頁
第六屆 遠(yuǎn)航隊(duì)_第3頁
第六屆 遠(yuǎn)航隊(duì)_第4頁
第六屆 遠(yuǎn)航隊(duì)_第5頁
已閱讀5頁,還剩43頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、第六屆全國大學(xué)生“飛思卡爾”杯智能汽車競(jìng)賽技 術(shù) 報(bào) 告 學(xué) 校: 安徽理工大學(xué)隊(duì)伍名稱: 遠(yuǎn)航隊(duì)參賽隊(duì)員: 鞏干干王 建陽經(jīng)偉帶隊(duì)教師: 曲立國 唐超禮xvii關(guān)于技術(shù)報(bào)告和研究論文使用授權(quán)的說明本人完全了解第六屆全國大學(xué)生“飛思卡爾”杯智能汽車邀請(qǐng)賽有關(guān)保留、使用技術(shù)報(bào)告和研究論文的規(guī)定,即:參賽作品著作權(quán)歸參賽者本人,比賽組委會(huì)和飛思卡爾半導(dǎo)體公司可以在相關(guān)主頁上收錄并公開參賽作品的設(shè)計(jì)方案、技術(shù)報(bào)告以及參賽模型車的視頻、圖像資料,并將相關(guān)內(nèi)容編纂收錄在組委會(huì)出版論文集中。參賽隊(duì)員簽名:帶隊(duì)教師簽名:日 期:目錄摘 要iii第一章 引言11.1 智能車的發(fā)展歷史11.2 智能車研究的主要

2、意義和內(nèi)容1第二章 智能車設(shè)計(jì)分析32.1 設(shè)計(jì)要求及思路32.2 總體設(shè)計(jì)方案32.3 傳感器設(shè)計(jì)方案52.4電機(jī)驅(qū)動(dòng)模塊方案5第三章 智能車硬件設(shè)計(jì)63.1 機(jī)械設(shè)計(jì)63.1.1 車模的結(jié)構(gòu)特點(diǎn)63.1.2 舵機(jī)的安裝63.1.3 攝像頭的選擇及安裝73.1.4 系統(tǒng)電路板的固定及連接83.2 電路設(shè)計(jì)93.2.1 電路板核心的組成93.2.2 電源管理模塊103.2.3 電機(jī)驅(qū)動(dòng)113.2.4 編碼器模塊12第四章 智能車軟件系統(tǒng)的設(shè)計(jì)144.1 軟件整體流程圖144.2 圖像采集與處理的算法144.2.1 攝像頭的工作原理154.2.2 二值化處理164.2.3 邊沿檢測(cè)法164.3

3、轉(zhuǎn)向控制和車速控制的PID算法16第五章 開發(fā)和調(diào)試195.1 調(diào)試平臺(tái)CodeWarrior IDE195.1 調(diào)試器20第六章 總結(jié)226.1 車模主要技術(shù)參數(shù)說明226.2 總結(jié)22參考文獻(xiàn)24摘 要本文介紹了遠(yuǎn)航隊(duì)為第六屆全國大學(xué)生“飛思卡爾”杯智能汽車競(jìng)賽而設(shè)計(jì)的智能車系統(tǒng)。文中介紹了該智能車系統(tǒng)的軟、硬件結(jié)構(gòu)及其開發(fā)流程。該智能車系統(tǒng)以Freescale16位微處理器作為核心控制芯片,基于CCD攝像頭采集的賽道信息,提取黑線中心位置并求得小車偏離黑線的程度,采用模糊算法區(qū)分道路形狀,在此信息上進(jìn)一步處理以控制舵機(jī)的轉(zhuǎn)向,通過速度傳感器獲得實(shí)時(shí)速度信息,通過實(shí)時(shí)比較控制算法實(shí)現(xiàn)閉環(huán)反

4、饋控制。測(cè)試表明,該智能車能夠很好的跟隨黑色引導(dǎo)線,可以實(shí)現(xiàn)對(duì)應(yīng)于不同形狀的道路予以相應(yīng)的控制策略,可快速穩(wěn)定的完成整個(gè)賽道的行程。關(guān)鍵字:飛思卡爾,智能車,攝像頭,視頻采樣,閉環(huán)反饋控制,速度控制第一章 引言第一章 引言1.1 智能車的發(fā)展歷史智能車的研究始于20世紀(jì)50年代初美國 Barrett Electric 公司開發(fā)出的世界上第一臺(tái)自動(dòng)引導(dǎo)車輛系統(tǒng)(Automated Guided Vehicle System ,AGVS)。1974年,瑞典的Volvo Kalmar轎車裝配工廠與Schiinder-Digitron公司合作,研制出一種可裝載轎車車體的AGVS,并由多臺(tái)該種AGVS組

5、成了汽車裝配線,從而取消了傳統(tǒng)應(yīng)用的拖車及叉車等運(yùn)輸工具。20世紀(jì)80年代,伴隨著與機(jī)器人技術(shù)密集相關(guān)的計(jì)算機(jī)、電子通信技術(shù)的飛速發(fā)展,國外掀起智能機(jī)器人研究熱潮,其中各種具有廣泛應(yīng)用前景和軍用價(jià)值的移動(dòng)式機(jī)器人受到西方各國的普遍關(guān)注。全國大學(xué)生智能汽車競(jìng)賽是在統(tǒng)一汽車模型平臺(tái)上,使用飛思卡爾半導(dǎo)體公司的8位、16位微控制器作為核心控制模塊,通過增加道路傳感器、設(shè)計(jì)電機(jī)驅(qū)動(dòng)電路、編寫相應(yīng)軟件以及裝配模型車,制作一個(gè)能夠自主識(shí)別道路的模型汽車,按照規(guī)定路線行進(jìn),以完成時(shí)間最短者為優(yōu)勝。該競(jìng)賽涵蓋了控制、模式識(shí)別、傳感技術(shù)、電子、電氣、計(jì)算機(jī)、機(jī)械等多個(gè)學(xué)科交叉的大學(xué)生課外科技創(chuàng)意性比賽。1.2

6、智能車研究的主要意義和內(nèi)容全國大學(xué)生智能汽車競(jìng)賽已經(jīng)成功舉辦了五屆,比賽規(guī)模不斷擴(kuò)大、比賽成績(jī)不斷提高。該競(jìng)賽涵蓋了控制、模式識(shí)別、傳感技術(shù)、電子、電氣、計(jì)算機(jī)、機(jī)械等多個(gè)學(xué)科交叉的大學(xué)生課外科技創(chuàng)意性比賽。通過比賽培養(yǎng)大學(xué)生的綜合知識(shí)運(yùn)用能力、基本工程實(shí)踐能力和創(chuàng)新意識(shí),激發(fā)大學(xué)生從事科學(xué)研究與探索的興趣和潛能,倡導(dǎo)理論聯(lián)系實(shí)際、求真務(wù)實(shí)的學(xué)風(fēng)和團(tuán)隊(duì)協(xié)作的人文精神。賽車采用飛思卡爾16位微控制器MC9S12XS128作為核心控制單元,由學(xué)生自主構(gòu)思控制方案及系統(tǒng)設(shè)計(jì),包括傳感器信號(hào)采集處理、控制算法及執(zhí)行、動(dòng)力電機(jī)驅(qū)動(dòng)、轉(zhuǎn)向舵機(jī)控制等,完成智能車工程制作及調(diào)試。為完成本系統(tǒng),主要做的內(nèi)容分為

7、以下幾部分:(1)對(duì)車模機(jī)械部分進(jìn)行詳細(xì)的分析和適當(dāng)?shù)恼{(diào)整;(2)分析控制電路各模塊的要求,計(jì)算出各模塊器件的參數(shù),設(shè)計(jì)完成硬件控制電路;(3)分析CCD攝像頭時(shí)序,完成圖像采集;(4)對(duì)數(shù)據(jù)進(jìn)行分析,設(shè)計(jì)控制算法并編寫控制程序第二章 智能車設(shè)計(jì)分析 第二章 智能車設(shè)計(jì)分析2.1 設(shè)計(jì)要求及思路 智能車比賽以快速、平穩(wěn)地完成賽程為目標(biāo),比賽過程中若出現(xiàn)小車同時(shí)有兩個(gè)輪子脫離跑道則被判為未能完成比賽,且要能跑完一圈后在起始線3米內(nèi)停車,否則成績(jī)加罰1秒。這就要求智能車能夠準(zhǔn)確提取賽道信息,及時(shí)做出合理的控制并迅速執(zhí)行。賽道為白底黑線,跑道表面為白色,中心有黑線作為引導(dǎo)線,黑線寬25mm±

8、;5,引導(dǎo)黑線大部分為連續(xù)黑線,部分線段會(huì)是虛線,白底寬50cm,黑線寬25mm,比賽允許選手自行設(shè)計(jì)傳感器和控制電路,并編寫控制程序和改動(dòng)舵機(jī)位置等,輪胎、電機(jī)等小車結(jié)構(gòu)不允許改動(dòng)。硬件是智能小車運(yùn)行的基礎(chǔ),通過部件的合理布局、連接,機(jī)械結(jié)構(gòu)設(shè)計(jì)改裝,使車體結(jié)構(gòu)穩(wěn)定可靠,適合賽道特點(diǎn)。硬件電路的設(shè)計(jì)和制作都強(qiáng)調(diào)可靠性,同時(shí)將功能相對(duì)獨(dú)立的控制處理模塊和電機(jī)驅(qū)動(dòng)模塊單獨(dú)制板,各獨(dú)立的模塊可以方便的升級(jí)。作為有自主識(shí)別能力的智能車,穩(wěn)定的硬件只是必要條件,而一套高效的軟件則是小車的靈魂。軟件負(fù)責(zé)協(xié)調(diào)各硬件模塊有條不紊的工作,就是小車的中樞神經(jīng)。軟件的設(shè)計(jì)中主要包括賽道信息提取,賽道狀況的判斷,根

9、據(jù)賽道狀況得出不同的速度給定;并通過對(duì)速度信息的提取,經(jīng)過一定算法使當(dāng)前車速盡快逼近給定速度。綜上,小車的整體設(shè)計(jì)思路是通過穩(wěn)定的硬件和高效的軟件相結(jié)合保證小車在穩(wěn)定前進(jìn)的前提下,用最短的時(shí)間完成比賽。2.2 總體設(shè)計(jì)方案如圖2.1所示,本智能車系統(tǒng)主要包括七大模塊:電源管理模塊、單片機(jī)控制模塊、賽道信息采集模塊、速度檢測(cè)模塊、舵機(jī)控制模塊、電機(jī)驅(qū)動(dòng)模塊、輔助調(diào)試模塊。單片機(jī)控制模塊電源模塊賽道信息采集速度檢測(cè)模塊輔助調(diào)試舵機(jī)控制模塊電機(jī)控制模塊圖2.1 智能車系統(tǒng)硬件結(jié)構(gòu)框圖系統(tǒng)各個(gè)組成部分的主要功能如下:電源管理模塊:主要提供系統(tǒng)各模塊正常工作所需要的電源。穩(wěn)定、高效的電源模塊是系統(tǒng)正常工

10、作的基礎(chǔ)。單片機(jī)控制模塊:本系統(tǒng)采用由Freescale公司生產(chǎn)的MC9S12XS128單片機(jī)作為系統(tǒng)的控制核心,它負(fù)責(zé)控制各個(gè)模塊間的協(xié)調(diào)工作,主要接收來自賽道信息采集模塊的賽道信息和速度檢測(cè)模塊反饋的速度信息,通過對(duì)這些信息進(jìn)行恰當(dāng)?shù)奶幚?,形成合適的控制量對(duì)舵機(jī)與驅(qū)動(dòng)電機(jī)進(jìn)行控制。賽道信息采集模塊:該模塊相當(dāng)于智能車的“眼睛”,主要負(fù)責(zé)采集小車所處位置當(dāng)前或前面的賽道信息,輸出相應(yīng)的信號(hào)供主控芯片處理。速度檢測(cè)模塊:該模塊主要檢測(cè)小車的當(dāng)前速度,作為速度反饋傳至控制器,以實(shí)現(xiàn)速度的閉環(huán)控制。精準(zhǔn)的速度檢測(cè),是實(shí)現(xiàn)準(zhǔn)確控制小車速度的前提。舵機(jī)控制模塊:該部分主要作為小車方向控制執(zhí)行機(jī)構(gòu),根據(jù)

11、主控芯片輸出的控制信號(hào)執(zhí)行相應(yīng)的轉(zhuǎn)彎要求。電機(jī)驅(qū)動(dòng)模塊:驅(qū)動(dòng)電路是整個(gè)系統(tǒng)的重要組成部分,也是高效的算法得以實(shí)現(xiàn)的硬件基礎(chǔ)。它主要作為控制電機(jī)轉(zhuǎn)速的執(zhí)行機(jī)構(gòu),要求能有很好加速和制動(dòng)性能。輔助調(diào)試模塊:輔助調(diào)試模塊用于構(gòu)建一個(gè)良好的人車交互界面,如智能車調(diào)試時(shí)的一些重要信息的顯示以及一些重要參數(shù)的設(shè)定等。 2.3 傳感器設(shè)計(jì)方案根據(jù)比賽規(guī)則,智能車循跡的賽道為50cm寬的白色KT上鋪設(shè)25mm寬的黑色引導(dǎo)線,黑白分明,因此也就有多種傳感器供選擇。其中紅外傳感器和攝像頭是最常用的賽道檢測(cè)傳感器。在這里我們采用攝像頭來采集賽道信息。使用CCD圖像傳感器,可以獲取大量的圖像信息,可以全面完整的掌握路徑

12、信息,可以進(jìn)行較遠(yuǎn)距離的預(yù)測(cè)和識(shí)別圖像復(fù)雜的路面,而且抗干擾能力強(qiáng)。通過對(duì)采集到的圖像信息進(jìn)行一系列的處理來控制小車的速度和舵機(jī)轉(zhuǎn)向,從而完成比賽。2.4電機(jī)驅(qū)動(dòng)模塊方案驅(qū)動(dòng)電路是整個(gè)系統(tǒng)的重要組成部分,也是高效的算法得以實(shí)現(xiàn)的硬件基礎(chǔ)。要獲得一個(gè)良好的加速性能以及入彎時(shí)的及時(shí)制動(dòng)能力,那么一個(gè)性能優(yōu)異的驅(qū)動(dòng)電路是不可或缺的。對(duì)于直流電機(jī),常用的數(shù)字調(diào)速方法就是電樞電壓進(jìn)行脈寬調(diào)制技術(shù)(PWM)。典型的驅(qū)動(dòng)電路就是H橋式電路,可以控制電機(jī)的正反轉(zhuǎn),同時(shí)通過PWM脈寬調(diào)制可以方便的調(diào)節(jié)電機(jī)轉(zhuǎn)速。 第三章 智能車硬件設(shè)計(jì)第三章 智能車硬件設(shè)計(jì)3.1 機(jī)械設(shè)計(jì)3.1.1 車模的結(jié)構(gòu)特點(diǎn)本智能車系統(tǒng)采

13、用兩輪驅(qū)動(dòng),前輪控制轉(zhuǎn)向,后輪驅(qū)動(dòng)小車前進(jìn)。在小車中后部架起攝像頭來采集賽道信息,電源放置在靠近后輪的車底盤上,電路板置于車板前部。整個(gè)小車重心在中部偏后,有較好的穩(wěn)定性。3.1.2 舵機(jī)的安裝我們將舵機(jī)固定在兩前輪中間處,臥式放置呈,使舵機(jī)的力臂擺動(dòng)與軸心垂直,來提高舵機(jī)的轉(zhuǎn)彎靈敏度。增加從舵機(jī)到連桿之間的長(zhǎng)度,這樣與以前的長(zhǎng)度相比讓前輪轉(zhuǎn)過同樣的角度舵機(jī)只需轉(zhuǎn)過比以前更小的角度,在相同的舵機(jī)轉(zhuǎn)向條件下,轉(zhuǎn)向連桿在舵機(jī)一端的連接點(diǎn)離舵機(jī)軸心距離越遠(yuǎn),轉(zhuǎn)向輪轉(zhuǎn)向變化越快。這樣相當(dāng)于增大力臂長(zhǎng)度,提高線速度。但是,如果力臂過長(zhǎng),將會(huì)大大減低轉(zhuǎn)矩,所以本設(shè)計(jì)中,只是將力臂加長(zhǎng)至原來長(zhǎng)度的23倍。由

14、于改裝后舵機(jī)的中心位置需要重新調(diào)整,采用結(jié)合編程控制的方法來糾正舵機(jī)的中位。通過編程來實(shí)現(xiàn)舵機(jī)左右各轉(zhuǎn)一定的角度,最后居中靜止。這么做主要是為了消除舵機(jī)的抖動(dòng)對(duì)其中心位置帶來的影響。根據(jù)舵機(jī)最后靜止的位置來調(diào)節(jié)兩連桿的長(zhǎng)度,反復(fù)多次調(diào)節(jié),可以達(dá)到理想的效果。通過以上這些改造提高了舵機(jī)的響應(yīng)速度,為快速靈巧的轉(zhuǎn)向提供了硬件的保證。圖3-1所示為舵機(jī)的安裝位置。圖3-1 舵機(jī)的安裝位置3.1.3 攝像頭的選擇及安裝攝像頭采用CCD彩色攝像頭,其分辨率為620*320。由于攝像頭相對(duì)于其他模塊其固定位置偏高,因此必須考慮其固定支架的重量問題。我們采用碳纖維桿和PCB板,加工出一體化的支架,由于其強(qiáng)度

15、較高,可以保證攝像頭的穩(wěn)定性,不會(huì)出現(xiàn)攝像頭晃動(dòng)的問題,另一方面其重量較輕,不會(huì)導(dǎo)致攝像頭的重心過高的問題,以免出現(xiàn)車在過彎時(shí)出現(xiàn)側(cè)翻和車體傾斜的問題。圖3-2 攝像頭的安裝3.1.4 系統(tǒng)電路板的固定及連接本組共用到兩塊外接電路板,且制作成了印制板,安裝在車身中部的包括MCU,調(diào)試電路,電源電路等,而電機(jī)驅(qū)動(dòng)電路則單獨(dú)安排在后面的另一塊印制板上。我們將所有功能模塊電路整合到兩塊電路板上,即主副電路板。為降低智能車重心,我們使用銅柱將電路板安裝在車的底盤上,并通過插盤將系統(tǒng)板固定在電路板底部。系統(tǒng)主控板的安裝如圖所示:圖3-3 電路板的連接和安裝3.2 電路設(shè)計(jì)3.2.1 電路板核心的組成主控

16、制電路板沒有采用使用組委會(huì)提供的S12開發(fā)板,而采用我們自己設(shè)計(jì)的PCB板,主控電路主要包括MC9S12XS128最小系統(tǒng)、電源電路、LCD顯示、鍵盤、速度檢測(cè)電路和蜂鳴器報(bào)警電路等部分。 核心電路板我們采用飛思卡爾提供的MC9S12XS128作為主控制器,用來實(shí)現(xiàn)對(duì)小車的控制。MC9S12XS128控制器采用增強(qiáng)型16位CPU,片內(nèi)總線是時(shí)鐘頻率最高可達(dá)25MHz,片內(nèi)資源包括128KB的Flash存儲(chǔ)器、8KB的RAM、2KB的EEPROM;兩個(gè)異步串行通信接口、兩個(gè)串行外圍接口、一組8通道的輸入捕捉或輸出捕捉的增強(qiáng)型捕捉定時(shí)器、兩組8通道10路模數(shù)轉(zhuǎn)換器、一組8通道脈寬調(diào)制模塊、一個(gè)字節(jié)

17、數(shù)據(jù)鏈路控制器、29路獨(dú)立的數(shù)字I/O接口、20路帶中斷和喚醒功能的數(shù)字I/O接口、5個(gè)增強(qiáng)型CAN總線接口,并支持背景調(diào)試模式(BDM)。其結(jié)構(gòu)如下:圖3-4 電路板3.2.2 電源管理模塊電源管理在整個(gè)電路中起著舉足輕重的作用,電源芯片選擇的好壞直接影響系統(tǒng)能否正常工作。它不僅為單片機(jī)提供工作電壓,而且為各個(gè)控制芯片提供工作電壓。因此,電源管理芯片的好壞直接影響系統(tǒng)的穩(wěn)定性。但由于電機(jī)帶負(fù)荷的大電流特性,直接影響供電電源的質(zhì)量,進(jìn)而影響整個(gè)系統(tǒng)。從整個(gè)系統(tǒng)穩(wěn)定可靠的角度出發(fā),我們選擇了一款低壓差芯片LM2940,其最具特色的優(yōu)點(diǎn)是當(dāng)輸出電流為100mA時(shí),最大壓差只有350mV,只需很少的

18、外圍器件就能滿足應(yīng)用要求。此外,使用多片該芯片的獨(dú)立穩(wěn)壓,降低了各模塊間的相互干擾,提高了系統(tǒng)的穩(wěn)定性。電源模塊主要包括單片機(jī)電源模塊、舵機(jī)電源模塊、攝像頭電源模塊、電機(jī)電源模塊。電源模塊電路的框圖如下。 LM2940鎳鎘電池( 7.2v )單片機(jī)5v編碼器、CCD等LM2941舵機(jī)電機(jī)驅(qū)動(dòng)5v6v圖 3-5 電源模塊電路框圖3.2.3 電機(jī)驅(qū)動(dòng)智能車的動(dòng)力部分設(shè)計(jì)重點(diǎn)就是電機(jī)的驅(qū)動(dòng)電路模塊,我們智能車的驅(qū)動(dòng)是利用四片半橋驅(qū)動(dòng)芯片BST7970構(gòu)成H橋式驅(qū)動(dòng)電路分別控制兩個(gè)驅(qū)動(dòng)電機(jī)。為了實(shí)現(xiàn)直流電機(jī)的調(diào)速我們采用的是PWM 波控制調(diào)速。在具體使用中我們采用四片場(chǎng)效應(yīng)管并聯(lián)的方式來降低每片場(chǎng)效應(yīng)

19、管的驅(qū)動(dòng)電流,從而來降低場(chǎng)效應(yīng)管的發(fā)熱量達(dá)到保護(hù)驅(qū)動(dòng)電路的目的。這樣可以不用增加散熱片來給驅(qū)動(dòng)芯片散熱,并且大大的提高了加速驅(qū)動(dòng)能力,使得電機(jī)的加減速性能有很大提高。具體電路見3-6圖圖3-6電機(jī)驅(qū)動(dòng)電路原理圖3.2.4 編碼器模塊我們采用光電編碼器作為速度采集,選取了體積非常小而且重量輕的編碼器型號(hào)。光電編碼器是通過脈沖數(shù)的累積來獲取速度。在每一段速度采樣周期中,光電編碼器將所得到的脈沖數(shù)傳送到脈沖累加器,然后MCU將此次的數(shù)值分別與前兩個(gè)速度采樣周期的脈沖累加器值作差,從而進(jìn)行速度控制。速度傳感器安裝于車模后部,通過電機(jī)輪齒輪帶動(dòng)光電編碼器外的齒輪,當(dāng)電機(jī)齒輪轉(zhuǎn)動(dòng)時(shí)光電編碼的齒輪隨之轉(zhuǎn)動(dòng),

20、在光電編碼的內(nèi)部產(chǎn)生脈沖。光電編碼器隨之向單片機(jī)輸送脈沖信號(hào),從而獲得車模的速度。圖3-7 編碼器的安裝 第四章 智能車軟件系統(tǒng)的設(shè)計(jì)第四章 智能車軟件系統(tǒng)的設(shè)計(jì)4.1 軟件整體流程圖開始初始化結(jié)束速度控制參數(shù)設(shè)定賽道信息AD采集賽道判別舵機(jī)控制是起始線?YN系統(tǒng)的軟件總流程框圖如圖所示,主要包括初始化、參數(shù)設(shè)定、傳感器參數(shù)自整定以及行駛控制等幾個(gè)模塊。圖4.1 系統(tǒng)軟件總流程圖4.2 圖像采集與處理的算法4.2.1 攝像頭的工作原理 攝像頭分黑白和彩色兩種,根據(jù)賽道特點(diǎn)可知,為達(dá)到尋線目的,只需提取畫面的灰度信息,而不必提取其色彩信息。攝像頭主要由鏡頭、圖像傳感芯片和外圍電路構(gòu)成。圖像傳感芯

21、片是其最重要的部分,但該芯片要配以合適的外圍電路才能工作。將芯片和外圍電路制作在一塊電路板上,稱為“單板”。若給單板配上鏡頭、外殼、引線和接頭,就構(gòu)成了通常所見的攝像頭,如聊天用的攝像頭;若只給單板配上鏡頭,這就是“單板攝像頭”。單板通常有三個(gè)端子:電源端、地端和視頻信號(hào)端(有的還多出一個(gè)端子, 那是音頻信號(hào)端)。電源接的電壓要視具體的單板而定,目前一般有兩種規(guī)格,6-9V或9-12V。視頻信號(hào)的電壓一般位于0.5V-2V之間。攝像頭的工作原理是:按一定的分辨率,以隔行掃描的方式采集圖像上的 點(diǎn),當(dāng)掃描到某點(diǎn)時(shí),就通過圖像傳感芯片將該點(diǎn)處圖像的灰度轉(zhuǎn)換成與灰度一一對(duì)應(yīng)的電壓值,然后將此電壓值通

22、過視頻信號(hào)端輸出。攝像頭連續(xù)地掃描圖像上的一行,則輸出就是一段連續(xù)的電壓信號(hào),該電壓信號(hào)的高低起伏反映了該行圖像的灰度變化。當(dāng)掃描完一行,視頻信號(hào)端就輸出一個(gè)低于最低視頻信號(hào)電壓的電平(如0.3V),并保持一段時(shí)間。這樣相當(dāng)于,緊接著每行圖像信號(hào)之后會(huì)有一個(gè)電壓“凹槽”,此“凹槽”叫做行同步脈沖,它是掃描換行的標(biāo)志。然后,跳過一行后(因?yàn)閿z像頭是隔行掃描的),開始掃描新的一行,如此下去,直到掃描完該場(chǎng)的視頻信號(hào),接著會(huì)出現(xiàn)一段場(chǎng)消隱區(qū)。該區(qū)中有若干個(gè)復(fù)合消隱脈沖,其中有個(gè)遠(yuǎn)寬于(即持續(xù)時(shí)間遠(yuǎn)長(zhǎng) 于)其它的消隱脈沖,稱為場(chǎng)同步脈沖,它是掃描換場(chǎng)的標(biāo)志。場(chǎng)同步脈沖標(biāo)志著新的一場(chǎng)的到來,不過,場(chǎng)消隱

23、區(qū)恰好跨在上一場(chǎng)的結(jié)尾和下一場(chǎng)的開始部分,得等場(chǎng)消隱區(qū)過去,下一場(chǎng)的視頻信號(hào)才真正到來。攝像頭每秒掃描25 幅圖像,每幅又分奇、偶兩場(chǎng),先奇場(chǎng)后偶場(chǎng),故每秒掃描50場(chǎng)圖像。奇場(chǎng)時(shí)只掃描圖像中的奇數(shù)行,偶場(chǎng)時(shí)則只掃描偶數(shù)行。攝像頭有兩個(gè)重要的指標(biāo):分辨率和有效像素。分辨率實(shí)際上就是每場(chǎng)行同步脈沖數(shù),這是因?yàn)樾型矫}沖數(shù)越多,則對(duì)每場(chǎng)圖像掃描的行數(shù)也越多。事實(shí)上,分辨率反映的是攝像頭的縱向分辨能力。有效像素常寫成兩數(shù)相乘的形式,如“240*320”,其中前一個(gè)數(shù)值表示單行視頻信號(hào)的精細(xì)程度,即行分辨能力;后一個(gè)數(shù)值為分辨率,因而有效像素=行分辨能力×分辨率。4.2.2 二值化處理二值化處

24、理最重要的是閾值的設(shè)定。所謂閾值就是將灰度或彩色圖像轉(zhuǎn)換 為高對(duì)比度的黑白圖像的界限。所有比閾值亮的像素轉(zhuǎn)換為白色,而所有比閾值暗的像素轉(zhuǎn)換為黑色。閾值的確定大體有兩種方法,固定閾值和動(dòng)態(tài)閾值,前者又分為全局閾值法和局部閾值法。全局閾值即是整幅圖像都使用一個(gè)閾值,局部閾值法是在不同區(qū)域采用不同閾值。動(dòng)態(tài)閾值是根據(jù)環(huán)境的變化,針對(duì)采集回來的圖像信息計(jì)算閾值。我們通過設(shè)定動(dòng)態(tài)閾值來檢測(cè)黑白跳變,并判定黑線偏差,為控制提供可靠的數(shù)據(jù),取得了良好的效果。雖然效果還不錯(cuò),但在不同環(huán)境下,光線強(qiáng)度各有不同,仍需要設(shè)定不同的閾值來使得黑線判定的更加準(zhǔn)確,同時(shí)可以降低部分干擾。4.2.3 邊沿檢測(cè)法 我們檢測(cè)

25、目標(biāo)指引線的上邊緣。算法思路是:設(shè)定一個(gè)閾值,對(duì)于二位數(shù)組矩陣中每一列,從上至下求得中間隔兩行的兩像素值間的差值(上減下)。若差值大于等于閾值,則判定其下的像素點(diǎn)對(duì)應(yīng)的是黑色指引線的上邊緣,以此像點(diǎn)作為該列的特征點(diǎn),記錄下此像素點(diǎn)的縱坐標(biāo)值(即為相應(yīng)的上邊緣縱坐標(biāo)), 作為該列上目標(biāo)指引線的縱坐標(biāo)。有可能始終不會(huì)出現(xiàn)差值大于等于閾值的情況,則讓該列上目標(biāo)指引線縱坐標(biāo)值保持不變 (即同于分析上一場(chǎng)圖像數(shù)據(jù)時(shí)求得的縱坐標(biāo))。4.3 轉(zhuǎn)向控制和車速控制的PID算法在模擬控制系統(tǒng)中,控制器最常用的控制規(guī)律是PID控制.PID控制系統(tǒng)原理框圖如圖4-1所示.比例(P)作用積分(I)作用微分(D)作用受控

26、對(duì)象r(t)+_y(t)u(t)+e(t)圖 4-1 PID控制系統(tǒng)原理框圖圖中e(t)表示理想輸入與實(shí)際輸出的誤差,這個(gè)誤差信號(hào)被送到控制器,控制器算出誤差信號(hào)的積分值和微分值,并將它們與原誤差信號(hào)進(jìn)行線性組合,得到輸出量u(t)。其中,、 、 分別稱為比例系數(shù)、積分系數(shù)、微分系數(shù)。u接著被送到了執(zhí)行機(jī)構(gòu),這樣就獲得了新的輸出信號(hào)u(t),這個(gè)新的輸出信號(hào)被再次送到感應(yīng)器以發(fā)現(xiàn)新的誤差信號(hào),這個(gè)過程就這樣周而復(fù)始地進(jìn)行。PID各個(gè)參數(shù)作用基本介紹:比例環(huán)節(jié):成比例的反應(yīng)控制系統(tǒng)的偏差信號(hào)e(t),偏差一旦產(chǎn)生,控制器立即產(chǎn)生控制作用,減少偏差.積分環(huán)節(jié):主要用于消除靜差,提高系統(tǒng)的無差度.積

27、分作用的強(qiáng)弱取決于積分時(shí)間常數(shù),越大,積分作用弱,反之則越強(qiáng).微分環(huán)節(jié):反應(yīng)偏差信號(hào)的變化趨勢(shì)(變化速率),調(diào)節(jié)誤差的微分輸出,誤差突變時(shí),能及時(shí)控制,并能在偏差信號(hào)變得太大之前,在系統(tǒng)中引入一個(gè)有效地早期修正信號(hào),從而加快系統(tǒng)的動(dòng)作速度,減少調(diào)節(jié)時(shí)間.運(yùn)用PID控制的關(guān)鍵是調(diào)整三個(gè)比例系數(shù),即參數(shù)整定。PID整定的方法有兩大類:一是理論計(jì)算整定法。它主要是依據(jù)系統(tǒng)的數(shù)學(xué)模型,經(jīng)過理論計(jì)算確定控制器參數(shù)。由于智能車的整個(gè)系統(tǒng)是機(jī)電高耦合的分布參數(shù)系統(tǒng),并且要考慮賽道具體環(huán)境,要建立精確的智能車運(yùn)動(dòng)控制數(shù)學(xué)模型有一定難度,而且我們對(duì)車身機(jī)械結(jié)構(gòu)經(jīng)常進(jìn)行不斷修正,模型參數(shù)變化較頻繁,可操作性不強(qiáng);

28、二是工程整定方法,它主要依賴工程經(jīng)驗(yàn),直接在控制系統(tǒng)的試驗(yàn)中進(jìn)行,且方法簡(jiǎn)單,我們采用了這種方法,同時(shí),我們先后實(shí)驗(yàn)了幾種動(dòng)態(tài)改變PID參數(shù)的控制方法。通過組合三者的優(yōu)勢(shì),就可以得到優(yōu)化的控制性能. 第五章 開發(fā)和調(diào)試第五章 開發(fā)和調(diào)試CodeWarrior是由Metrowerks公司提供的專門面向 Freescale 所有MCU與DSP嵌入式應(yīng)用開發(fā)的軟件工具。其中包括集成開發(fā)環(huán)境IDE、處理器專家、全芯片仿真、可視化參數(shù)顯示工具、項(xiàng)目工程管理、C 交叉編譯器、匯編器、鏈接器以及調(diào)試器。 5.1 調(diào)試平臺(tái)CodeWarrior IDE通過CodeWarrior IDE你可以選擇C或C+語言進(jìn)

29、行編程,然后進(jìn)行編譯、鏈接和調(diào)試。通過BDM,你可以把程序燒入單片機(jī),還可以進(jìn)行在線調(diào)試。CodeWarrior IDE使用方便且功能強(qiáng)大,是智能車開發(fā)調(diào)試必不可少的工具。 CodeWarrior IDE在新建工程中的mc9s12xs128.h(以相對(duì)應(yīng)單片機(jī)型號(hào)為文件名)文件對(duì)所有寄存器對(duì)應(yīng)的存儲(chǔ)映射地址都進(jìn)行了宏定義,可供開發(fā)者在軟件開發(fā)時(shí)直接調(diào)用。 要進(jìn)行軟件編程,必須先在CodeWarrior IDE中建立一個(gè)新的工程,然后才能輸入代碼,進(jìn)行編譯鏈接最終寫入單片機(jī)中。打開CodeWarrior,然后單擊“File>New”,再根據(jù)向?qū)崾据斎胂嚓P(guān)信息,就能建立一個(gè)新的工程。Cod

30、eWarrior運(yùn)行界面如圖5-1所示:圖5-1 CodeWarrior運(yùn)行界面5.1 調(diào)試器CodeWarrior IDE中的調(diào)試器不僅可以進(jìn)行在線調(diào)試,還可以進(jìn)行在線的仿真。在調(diào)試器中,我們可以看到定義的全局變量的變化和各個(gè)寄存器的當(dāng)前值,還可以看到單片機(jī)內(nèi)存中內(nèi)容等。此外,還有許多其他的實(shí)用功能,在智能車的調(diào)試過程中使用很是方便有效。具體調(diào)試器界面如圖5-2所示。圖5-2調(diào)試界面 第六章 總結(jié) 第六章 總結(jié)6.1 車模主要技術(shù)參數(shù)說明表 6-1 模型車技術(shù)參數(shù)統(tǒng)計(jì)項(xiàng)目參數(shù)路徑檢測(cè)方法(賽題組)攝像頭車模幾何尺寸(長(zhǎng)、寬、高)(毫米)320*210*320車模軸距/輪距(毫米)200/14

31、0車模平均電流(勻速行駛)(毫安)2000電路電容總量(微法)1600傳感器種類及個(gè)數(shù)攝像頭1個(gè),編碼器2個(gè)新增加伺服電機(jī)個(gè)數(shù)0賽道信息檢測(cè)空間精度(毫米)2賽道信息檢測(cè)頻率(次/秒)50主要集成電路種類/數(shù)量主控板1塊,驅(qū)動(dòng)板1塊,最小系統(tǒng)板1塊,LCD板1塊車模重量(帶有電池)(千克)1.136.2 總結(jié)本文詳細(xì)介紹了為第六屆全國智能車大賽而準(zhǔn)備的智能車系統(tǒng)方案。該系統(tǒng)以Freescale1 16位單片機(jī)MC9S12XS128作為系統(tǒng)控制處理器,采用攝像頭采樣獲取賽道信息,通過檢測(cè)方法提取賽道黑線,求出控制黑線偏差,采用PID方式對(duì)舵機(jī)轉(zhuǎn)向進(jìn)行反饋控制,并通過速度編碼器對(duì)小車形成速度閉環(huán)控

32、制。文中介紹了賽車機(jī)械結(jié)構(gòu)和調(diào)整方法,賽車各個(gè)主要模塊的工作原理和設(shè)計(jì)思路,并敘述了系統(tǒng)開發(fā)過程中所用到的開發(fā)工具、軟件以及各種調(diào)試、測(cè)試方法。在學(xué)校和學(xué)院領(lǐng)導(dǎo)的關(guān)心下、在指導(dǎo)老師的精心幫助下,我們經(jīng)過不懈的努力,對(duì)智能車進(jìn)行深入地研究,對(duì)飛思卡爾16位控制器MC9S12XS128有了深入地了解。最終決定了主要的設(shè)計(jì)方案,其中的很多參數(shù)則是通過大量的試驗(yàn)才決定的。同時(shí)對(duì)于CodeWarrior IED開發(fā)環(huán)境我們有了相當(dāng)充分的了解,并熟練掌握BDM的調(diào)試方法。通過對(duì)整個(gè)設(shè)計(jì)建模,充分發(fā)揮了動(dòng)手能力,把想法變?yōu)榱爽F(xiàn)實(shí),并配以合理的理論解釋,將智能車的硬件設(shè)計(jì)、軟件輔助設(shè)計(jì)清晰表達(dá)出來。幾個(gè)月的精

33、心準(zhǔn)備和不懈努力,我們?cè)诎不召悈^(qū)的比賽當(dāng)中得到了肯定,取得了較好的成績(jī),達(dá)到了我們最初設(shè)計(jì)的目標(biāo)。在未來的時(shí)間里,我們會(huì)再接再厲,使小車的性能更加穩(wěn)定,希望在即將到來的全國總決賽上能夠發(fā)揮出自己的水平,贏得更好的成績(jī)。參考文獻(xiàn)1 邵貝貝.單片機(jī)嵌入式應(yīng)用的在線開發(fā)方法,北京:清華大學(xué)出版社,20042 卓晴,黃開勝,邵貝貝.學(xué)做智能車挑戰(zhàn)“飛思卡爾”杯,北京:北京航空航天大學(xué)出版社,20073 黃友銳,曲立國. PID控制參數(shù)整定與實(shí)現(xiàn),北:科學(xué)出版社出版,20104 吳曄,張揚(yáng),藤勤.基于HCS12的嵌入式系統(tǒng)設(shè)計(jì).北京:電子工業(yè)出版社,2010年1月5 童詩白.華成英模擬電子技術(shù)基礎(chǔ)M北京

34、: 高等教育出版社20006 王曉明.電動(dòng)機(jī)的單片機(jī)控制M.北京:北京航空航天大學(xué)出版社,20027 謝劍英,賈青.微型計(jì)算機(jī)控制技術(shù).北京:國防工業(yè)出版社,20068 臧杰,閻巖.汽車構(gòu)造M.北京:機(jī)械工業(yè)出版社,20059 王慶有.圖像傳感器應(yīng)用技術(shù).北京:電子工業(yè)出版社,2003 年9 月10 余志生.汽車?yán)碚揗.北京:機(jī)械工業(yè)出版社,2006.11 安鵬,馬偉.S12單片機(jī)模塊應(yīng)用及程序調(diào)試J.電子產(chǎn)品世界.2006.第211期.162-16312 沈長(zhǎng)生常用電子元器件使用一讀通M北京: 人民郵電出版社,200413 楊國田. 摩托羅拉68HC12系列微控制器原理,應(yīng)用與開發(fā)技術(shù).中國

35、電力出版社,200314 張偉等 Protel DXP 高級(jí)應(yīng)用M北京.:人民郵電出版社,2002 附:程序代碼 附:程序代碼#include <hidef.h> /* common defines and macros */#include "derivative.h" /* derivative-specific definitions */#include "define.h" extern signed char diffSIZE_Y;extern unsigned char VideoDataSIZE_YSIZE_X; extern

36、 unsigned char sample_rowSIZE_Y; extern unsigned char ErrLineCnt; extern unsigned char flag_Badrow,flag_Badrow_last,Bad_times; extern unsigned char kind; /跑道類型,用于調(diào)試 extern signed int a,b;extern signed int P1,D1; /舵機(jī)PD參數(shù) extern unsigned char sha_che_i; extern unsigned int Speed_zhi,Speed_wan,Speed_ba

37、d,Speed_po; extern unsigned char set_para_kind; extern unsigned int speed_Kp,speed_Ki; extern unsigned char time_chuan_xian; extern unsigned int time_stop_enable; extern void PLL_Init(void); extern void PWM_Init(void); extern void PORT_Init(void); extern void AD_Init0(void); extern void AD_Init1(voi

38、d); extern void ADD_Init(void); extern void LCD_Init(void); extern void lcd_display_para(void); extern void para_set_menu(void); extern void para_set_dis(void); extern void realspeed_dis(void); extern void lcd_logo(void); / LCD顯示 extern void lcd_dianyajiance(void); extern void lcd_V(void); extern vo

39、id clear_lcd(void); extern void dis_diff(void); /控制函數(shù)/ extern void init_Control(void); extern void ServoControl(void); extern void SpeedControl(void); extern void CalcuLine(void); extern void ScanLine(unsigned char temp); extern void pulse_cnt(void); extern void start_point(unsigned char temp); exte

40、rn void ADD_black_Line(void); / extern void smoothing(void); /變量定義/ unsigned int row_counter,hang; unsigned char ccd_data_sample_end_flags=0; unsigned int battery_voltage,battery_voltage1; unsigned char sample_flag,sample_row_j; unsigned char Threshold_temp; unsigned char BadFrame_control; unsigned

41、char flag_podao,ENC_sample_cnt,ENC_sample_delay,podao_kind=0; unsigned int ENC_sample; unsigned int time; /*延時(shí)函數(shù)*/ void delay(unsigned char x) unsigned char i; for (i=0;i<x;i+); void longdelay(unsigned int x) unsigned int i; unsigned int j; for (i=0;i<x;i+) for(j=0;j<1000;j+) ; void Dly_ms(

42、int ms) int ii,jj; if (ms<1) ms=1; for(ii=0;ii<ms;ii+) for(jj=0;jj<2670;jj+); /*/ void battery_check(void) unsigned char i; battery_voltage=0; AD_Init0(); for(i=0;i<16;i+) while(!ATD0STAT0_SCF); battery_voltage=battery_voltage+ATD0DR0L; battery_voltage=battery_voltage/16; battery_voltage

43、1=battery_voltage*300/255; if(battery_voltage1<69) BEER=0; else BEER=1; /*/ AN1 void ENC_check(void) unsigned int i; ENC_sample=0; if(podao_kind=1) ENC_sample_delay+; if(ENC_sample_delay<50) return; else podao_kind=0; ENC_sample_delay=0; AD_Init1(); for(i=0;i<16;i+) while(!ATD0STAT0_SCF); E

44、NC_sample=ENC_sample+ATD0DR1L; ENC_sample=ENC_sample/16; if(ENC_sample>110) flag_podao=1; BEER=0; else if(flag_podao=1) ENC_sample_cnt+; if (ENC_sample_cnt>28) ENC_sample_cnt=0; flag_podao=0; podao_kind=1; BEER=1; /*/ void init_sys_virable(void) unsigned char i; PWMDTY23=3850; a=0;b=0; for(i=0

45、;i<SIZE_Y;i+) diffi=0; BadFrame_control=0; BEER=1; set_para_kind=6; PWME=PWME&0xCC; speed_Ki=1; speed_Kp=7; Speed_zhi=200; Speed_wan=150; Speed_bad=130; Speed_po=150; Threshold_temp=35; ENC_sample_cnt=0; ENC_sample_delay=0; podao_kind=0; time_chuan_xian=0; time_stop_enable=17; /*/ void read_c

46、cd_data(void) for(hang=0;hang<SIZE_X;hang+) PORTE_PE3=1; _asm(nop);_asm(nop); _asm(nop);_asm(nop); _asm(nop);_asm(nop); PORTE_PE3=0; _asm(nop);_asm(nop); _asm(nop);_asm(nop); _asm(nop);_asm(nop); VideoDatasample_row_j-1hang=PORTA; /*/void main(void) unsigned char i=0,test_temp=0; COPCTL=COPCTL&am

47、p;0xf8; /禁止看門狗 /*參數(shù)初始化*/ PLL_Init(); PWM_Init(); PORT_Init(); ADD_Init(); LCD_Init(); init_Control(); init_sys_virable(); /*電壓檢測(cè)*/ clear_lcd(); lcd_logo(); Dly_ms(1500); clear_lcd(); lcd_dianyajiance(); battery_check(); lcd_V(); Dly_ms(1500); /*/ clear_lcd(); para_set_menu(); " for(;) para_set_dis(); if(KEY1=0) set_para_kind+; if(set_para_kind=11)set_para_kind=0; while(KEY1=0); longdelay(150); /200 if(KEY2=0) switch(set_para_kind) case 0:Speed_zhi=Speed_zhi+5; break; case 1:Speed_wan=Speed_wan+5; break; case 2:sha_che_i=sha_che_i+1; break; case 3:Speed_b

溫馨提示

  • 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. 人人文庫網(wǎng)僅提供信息存儲(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)論