智能汽車武漢大學(xué)攝像頭技術(shù)報告_第1頁
智能汽車武漢大學(xué)攝像頭技術(shù)報告_第2頁
智能汽車武漢大學(xué)攝像頭技術(shù)報告_第3頁
智能汽車武漢大學(xué)攝像頭技術(shù)報告_第4頁
智能汽車武漢大學(xué)攝像頭技術(shù)報告_第5頁
已閱讀5頁,還剩137頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

第八屆全國大學(xué)生智能汽車大賽技術(shù)報告第八屆全國大學(xué)生智能汽車大賽技術(shù)報告PAGE32PAGE33第八屆全國大學(xué)生智能汽車大賽技術(shù)報告PAGE1第八屆“飛思卡爾”杯全國大學(xué)生智能汽車競賽技術(shù)報告學(xué)校:武漢大學(xué)隊伍名稱:我是傳奇參賽隊員:帶隊教師:關(guān)于技術(shù)報告和研究論文使用授權(quán)的說明 本人完全了解第八屆“飛思卡爾”杯全國大學(xué)生智能汽車競賽關(guān)保留、使用技術(shù)報告和研究論文的規(guī)定,即:參賽作品著作權(quán)歸參賽者本人,比賽組委會和飛思卡爾半導(dǎo)體公司可以在相關(guān)主頁上收錄并公開參賽作品的設(shè)計方案、技術(shù)報告以及參賽模型車的視頻、圖像資料,并將相關(guān)內(nèi)容編纂收錄在組委會出版論文集中。參賽隊員簽名: 帶隊教師簽名: 日期: 摘要本文設(shè)計的智能車系統(tǒng)以飛思卡爾公司生產(chǎn)的MK60N512VMD100微控制器為核心控制單元,利用SonyCCD攝像頭采集賽道信息,使用模擬比較器對圖像進(jìn)行硬件二值化,提取得到賽道兩邊的黑線信息,用于賽道識別和控制;利用編碼器反饋模型車的實際速度,使用PID+Bangbang控制算法調(diào)節(jié)驅(qū)動電機(jī)的轉(zhuǎn)速;根據(jù)前方黑線的信息,利用偏差計算,插值,曲線擬合,S彎判斷等方法對圖像進(jìn)行處理,根據(jù)圖像處理得到的黑線偏差,黑線擬合斜率,黑線曲率半徑等關(guān)鍵信息,用PID算法控制轉(zhuǎn)向舵機(jī)的角度,實現(xiàn)了對模型車運動速度和運動方向的閉環(huán)控制。為了提高模型車的速度和穩(wěn)定性,使用上位機(jī)、無線模塊、液晶模塊等調(diào)試工具,進(jìn)行了大量硬件與軟件測試。實驗結(jié)果表明,該系統(tǒng)設(shè)計方案確實可行。關(guān)鍵字:MK60N512VMD100,CCD,PID,PID+Bangbang,圖像處理與識別目錄4465摘要 III29238目錄 IV29805第一章:緒論 1276181.1課題背景 120851.2國外情況 129864第二章:智能車系統(tǒng)硬件的設(shè)計與調(diào)試 2203892.1模型車機(jī)械結(jié)構(gòu)的設(shè)計與調(diào)整 2286232.1.1汽車行駛的數(shù)學(xué)模型 29892.1.2舵機(jī)安裝方式與輸出臂長的選取 446712.1.3模型車前輪結(jié)構(gòu)的調(diào)整 8202192.1.4攝像頭支架的設(shè)計與安裝 10192532.2硬件電路的設(shè)計與調(diào)試 13170072.2.1FreescaleMK60DN512單片機(jī) 14203552.2.2電機(jī)驅(qū)動模塊 15272452.2.3車速檢測模塊 16173942.2.4電池供電模塊 1798662.2.5圖像采集模塊 19101062.2.6輔助調(diào)試模塊 252032第三章:智能車系統(tǒng)軟件的設(shè)計與調(diào)試 26257063.1、路徑識別賽道中心線提取及處理 2677643.1.1普通賽道的處理 26265613.1.2、特殊賽道類型的處理 30139353.2舵機(jī)控制 31225843.2.1數(shù)字PID舵機(jī)控制 31238893.2.2錯幀和小S控制 3248263.3速度控制 33223173.3.1速度的閉環(huán)控制 332853.3.2剎車功能的實現(xiàn) 3428039第四章:模型車主要技術(shù)參數(shù)說明 3715560參考文獻(xiàn) 3822521附錄: 39第一章:緒論 1.1課題背景 1.2國外情況智能車競賽最早始于韓國,2021年韓國漢陽大學(xué)承辦了第一屆智能車競賽,并由飛思卡爾(Freescale)公司贊助,每年大約有100余支大學(xué)生隊伍參加比賽。智能車的設(shè)計制作,其專業(yè)知識設(shè)計控制、模式識別、傳感技術(shù)、汽車電子、電器、計算機(jī)和機(jī)械等多個學(xué)科,對學(xué)生的知識融合和實踐動手能力的培養(yǎng),以及高等學(xué)??刂坪推囯娮訉W(xué)科學(xué)術(shù)水平的提高,具有良好的產(chǎn)期推動作用[2]。:智能車系統(tǒng)硬件的設(shè)計與調(diào)試根據(jù)組委會的相關(guān)規(guī)定,今年攝像頭組比賽車模更換為B車模。針對不同的車模,必然會有不同的調(diào)整方式。在比賽備戰(zhàn)之初,我們就對該車模進(jìn)行了詳細(xì)的系統(tǒng)分析。B車模精度不是很高,因此在規(guī)則允許范圍內(nèi)盡量改造車模,提高車模整體精度是很必要的。本章將重點介紹智能車系統(tǒng)硬件的設(shè)計與調(diào)試,包括模型車車機(jī)械結(jié)構(gòu)與硬件電路兩部分。前部分又細(xì)分為汽車行駛的數(shù)學(xué)模型,舵機(jī)的安裝方式與輸出臂長的選取,模型車前輪結(jié)構(gòu)的調(diào)整,攝像頭支架的設(shè)計與安裝。后部分又分為MK60DN512單片機(jī),電機(jī)驅(qū)動模塊,車速檢測模塊,電池供電模塊,圖像采集模塊,輔助調(diào)試模塊。 2.1模型車機(jī)械結(jié)構(gòu)的設(shè)計與調(diào)整2.1.1汽車行駛的數(shù)學(xué)模型根據(jù)汽車?yán)碚?,假設(shè)輪胎不打滑,并忽略輪胎所受的重力作用產(chǎn)生的形變以及左右兩側(cè)輪胎由于受力不均產(chǎn)生的形變,即可得到理想的汽車轉(zhuǎn)向模型:如圖2.1所示,即左右兩輪的軸線與后輪的主軸,三點交于車身中心所處道路位置的曲率中心.不失一般性,這里只討論右轉(zhuǎn)的情形.對于圖2.1,設(shè)左輪轉(zhuǎn)向為,右輪角分別為,對于以上模型,顯然有如下關(guān)系:于是得到在理想狀態(tài)下,汽車的過彎時的轉(zhuǎn)角方程:公式(一)同樣也可以得到右轉(zhuǎn)時:公式(二)圖2.1采用第一屆“飛思卡爾”智能車大賽組委會提供的韓國Matiz系列1:10模型車的參數(shù)對方程(1),方程(2)進(jìn)行仿真。圖2.2圖2.3結(jié)論:在模型車結(jié)構(gòu)參數(shù)一定的情況,小車左右兩輪的轉(zhuǎn)角存在一定的函數(shù)關(guān)系,當(dāng)向右過彎時,右輪轉(zhuǎn)向比左輪轉(zhuǎn)向大,同理向左轉(zhuǎn)彎時,左輪轉(zhuǎn)向比右輪轉(zhuǎn)向大,同時,隨著道路曲率半徑的越大,車輪所需的轉(zhuǎn)角越小。2.1.2舵機(jī)安裝方式與輸出臂長的選取 2.1.2.1舵機(jī)的工作原理舵機(jī)最早出現(xiàn)航模運動中,控制航模上的發(fā)動機(jī),翼舵轉(zhuǎn)向。在“飛思卡爾”智能汽車大賽中,主辦方提供的舵機(jī)內(nèi)部具有位置反饋電路,使它的舵盤輸出轉(zhuǎn)角正比于給其的脈沖信號的寬度.然而舵機(jī)是具有較大延遲特性的對象,其延遲與其轉(zhuǎn)角大小成正比,但如果能使舵機(jī)轉(zhuǎn)過一個越小的角度而使車輪轉(zhuǎn)過一個越大的角度,則會大大提供舵機(jī)過彎的響應(yīng)速度。而這與不僅圖2.4與舵機(jī)安裝方式有關(guān),也與舵機(jī)輸出臂的長度有極大的關(guān)系,輸出臂越長越有利提高響應(yīng)速度,但舵機(jī)在輸出力矩相同的條件下,力臂越長,作用力越小,所以當(dāng)轉(zhuǎn)輪遇到較大轉(zhuǎn)向阻力時,會影響舵機(jī)對轉(zhuǎn)向輪控制的精度,甚至反而使轉(zhuǎn)向輪的反應(yīng)速度變慢。因此找到一個較好的舵機(jī)安裝方式及其最優(yōu)的輸出臂長對提高舵機(jī)的反應(yīng)速度十分重要。設(shè)舵機(jī)的工作速度為,額定電壓下的堵轉(zhuǎn)力矩為,在比賽中拉動前輪轉(zhuǎn)動所需的最大驅(qū)動力為.因此在一定舵機(jī)安裝方式下,忽略其他次要因素,舵機(jī)的轉(zhuǎn)角與車輪轉(zhuǎn)角必定存在一定的函數(shù)關(guān)系.為舵機(jī)輸出臂長因此在安裝方式一定的情況下下,最優(yōu)輸出臂應(yīng)該滿足如下關(guān)系由于在模型車空間較小,因此舵機(jī)的安裝方式受到很大局限,下面討論舵機(jī)兩種的典型安裝方式并給各自的最優(yōu)輸出臂長。 2.1.2.2舵機(jī)的安裝方式一(輸出臂朝下)對于此種安裝方式,以主銷為軸,前軸為軸建立空間直角坐標(biāo)系如圖2.6.為了使小車左右轉(zhuǎn)向一致,在舵機(jī)的安裝中,一般將舵機(jī)前輪軸的中垂線上,并使舵機(jī)的轉(zhuǎn)軸與桿同處于平面上,且當(dāng)模型車直線行駛時,輸出臂垂直與桿。圖2.5圖2.6顯然對于圖2.6坐標(biāo)系,兩點的坐標(biāo)為即而,于是得到如下與的關(guān)系方程:公式(三) 2.1.2.3舵機(jī)的安裝方式二(輸出臂朝下)對于此種安裝方式,同樣以主銷為軸,前軸為軸建立空間直角坐標(biāo)系如圖2.8所示.為了使小車左右轉(zhuǎn)向一致,在舵機(jī)的安裝中,一般將舵機(jī)前輪軸的中垂線上,并使舵機(jī)的轉(zhuǎn)軸與桿同處于平面上,且當(dāng)模型車直線行駛時,輸出臂垂直與桿,并使之保持水平。圖2.7圖2.8顯然對于圖2.8坐標(biāo)系,兩點的坐標(biāo)即而,于是得到如下與的關(guān)系方程:公式(四) 2.1.2.4兩種舵機(jī)的安裝方式的比較由于模型車的循跡要求不是十分精密,因此車輪的轉(zhuǎn)角可以不是連續(xù)的,一度的精度足以滿足巡線要求,因此對于以上兩種安裝舵機(jī)的方式,給定,讓以一度為步長從1度遞增到120度,利用公式(三),公式(四)求出相應(yīng)的,然后對這120組進(jìn)行線性擬合,擬合所得的直線斜率越小,說明舵機(jī)的反應(yīng)越快。即采用智能車大賽提供的FutabaS3010舵機(jī)的參數(shù),利用Matlab編程,最終算得安裝方式(一)和安裝方式(二)的最優(yōu)輸出臂長,,以及在最優(yōu)輸出臂長下的擬合直線斜率,,最終結(jié)果如下:,,顯然安裝方式(二)要優(yōu)于安裝方式(一)圖2.9圖2.102.1.3模型車前輪結(jié)構(gòu)的調(diào)整現(xiàn)代汽車在正常行駛的過程種,為了使汽車直線行駛穩(wěn)定,轉(zhuǎn)向穩(wěn)定,轉(zhuǎn)向輕便,轉(zhuǎn)向后能及時回正,并減少輪胎和轉(zhuǎn)向系零件的磨損等,在轉(zhuǎn)向輪,轉(zhuǎn)向節(jié)和前軸之間須形成一定的相對安裝位置,叫車輪定位,其主要參數(shù)包括:主銷后傾,主銷內(nèi)傾,車輪外傾和前束。智能汽車大賽提供的車模的四項前輪定位參數(shù)均可調(diào),并給規(guī)格不同配件。 2.1.3.1主銷后傾主銷后傾是指在汽車的縱向平面內(nèi)(汽車的側(cè)面)有一個向后的傾角,即主銷軸線與地面垂直線在汽車縱向平面內(nèi)的夾角。采用主銷后傾角的原因是由于汽車在車輪偏轉(zhuǎn)后會產(chǎn)生一回正力矩,糾正車輪的偏轉(zhuǎn)。本屆攝像頭組使用的車模是B型車模,并且需要采用前輪驅(qū)動,后輪轉(zhuǎn)向的行駛方案。B型車模的主銷后傾角度是不可調(diào)節(jié)的,因此若想要轉(zhuǎn)向輪主銷后傾,只能將圖2.11的零件反過來安裝。圖2.11 2.1.3.2主銷前傾主銷前傾是指在汽車的橫向平面內(nèi)向內(nèi)傾斜的一個角度,即主銷軸線與地面垂直線在汽車橫向斷面內(nèi)的夾角。主銷前傾也有使車輪自動回正的作用。模型車可以通過調(diào)整拉桿的長度來改變主銷的內(nèi)傾角,調(diào)整范圍為0~10度時對模型車的性能影響不大,可根據(jù)在賽道上的調(diào)試情況自行調(diào)節(jié)。圖2.122.1.3.3前輪外傾角與前束前輪外傾角是指通過車輪中心的汽車橫向平面與車輪平面的交線與地面垂線之間的夾角。當(dāng)輪胎呈“八”字形張開時稱為“負(fù)外傾”,而呈現(xiàn)“V”字形張開時稱為“正外傾”。前輪外傾角可以減少轉(zhuǎn)向阻力,使汽車轉(zhuǎn)向輕便。模型車提供了序號為EX-19的配件用來調(diào)節(jié)前輪外傾的角度。當(dāng)車輪有了外傾角后,在滾動時就類似與圓錐滾動,從而導(dǎo)致兩側(cè)車輪向外滾開。由于轉(zhuǎn)向橫拉桿和車橋的約束使車輪不可能向外滾開,車輪將在地面上出現(xiàn)邊滾邊向內(nèi)滑移的現(xiàn)象,從而增加了輪胎的磨損。在安裝車輪時候,為了消除車輪外傾帶來的這種不良后果,可以使汽車兩前輪的中心面不平行,并使兩輪前邊緣距離小于后面的邊緣距離,兩者之差稱為“前輪前束”。如圖2.13所示,模型車是由舵機(jī)帶動左右橫拉桿實現(xiàn)圖2.13:前輪調(diào)節(jié)轉(zhuǎn)向的。主銷在垂直方向的位置確定后,改變左右橫拉桿的長度即可改變前束的大小。 2.1.4攝像頭支架的設(shè)計與安裝由于智能車在調(diào)試過程中需要對各種硬件參數(shù)進(jìn)行調(diào)整,其中就包括攝像頭的安裝高度,攝像頭與鉛垂線的夾角。因此攝像頭的安裝方式既要保證安裝牢靠,也應(yīng)使安裝位置可調(diào),同時應(yīng)該減輕重量,使重心降低,依據(jù)以上原則,分別設(shè)計了攝像頭底座(固定于車模底盤),攝像頭支桿,攝像頭固定座(安放攝像頭)和整車效果圖。圖2.14:攝像頭底座圖2.15:攝像頭支桿圖2.16:攝像頭固定座圖2.17:整車效果圖 2.2硬件電路的設(shè)計與調(diào)試智能車系統(tǒng)在硬件電路上主要包括電機(jī)內(nèi)部電路,舵機(jī)內(nèi)部電路,電源模塊,主控制器模塊,攝像頭及其采集模塊,電機(jī)驅(qū)動模塊,,測速模塊,輔助調(diào)試模塊等,其中大賽組委會規(guī)定嚴(yán)禁改動舵機(jī),電機(jī)的內(nèi)部結(jié)構(gòu),因此發(fā)揮空間主要集中在其他幾個模塊。圖2.18:硬件電路結(jié)構(gòu)圖2.2.1FreescaleMK60DN512單片機(jī)智能汽車大賽由美國飛思卡爾半導(dǎo)體公司(前摩托羅拉半導(dǎo)體部)贊助,“必須采用飛思卡爾半導(dǎo)體公司的8位、16位、32位處理器(單核)作為唯一的微控制器”,MK60DN512是Kinect系列單片機(jī)中的一款增強(qiáng)型32位單片機(jī),片內(nèi)資源豐富,接口模塊包括SPI、SCI、IIC、A/D、FTM等,在汽車電子應(yīng)用領(lǐng)域具有廣泛的用途。Kinetis系列微控制器是飛思卡爾公司于2021年下半年推出的,是業(yè)內(nèi)首款基于ARMCortex-M4內(nèi)核的微控制器。目前,Kinetis系列的微控制器有K10、K20、K30、K40、K50、K60和K70等幾個子系列。其中K50子系列是專用于醫(yī)療器械方面的專用系列,具有獨特的應(yīng)用特性。圖2.19:主控單片機(jī)引腳圖對于本小車系統(tǒng),144腳已經(jīng)足夠滿足需要,但為了提高單片機(jī)處理速度,縮短控制周期,本小車系統(tǒng)除了從軟件上下功夫,降低算法的復(fù)雜度,提高代碼的執(zhí)行效率外,也將單片機(jī)的時鐘周期提高到了180M。2.2.2電機(jī)驅(qū)動模塊B車模后輪驅(qū)動電機(jī)的型號為540有刷電機(jī),工作在7.2電壓下,空載電流為2.4A,轉(zhuǎn)速為21000r/min。在工作電流為11.6A時,轉(zhuǎn)速達(dá)到17300r/min,工作效率最大。由于比賽中,模型車不需要進(jìn)行倒車,因此設(shè)計的電機(jī)驅(qū)動模塊只需要實現(xiàn)模型車加速前行和制動即可,所以電機(jī)只工作在正轉(zhuǎn)方向的做功和發(fā)電兩個狀態(tài)。以前模擬量驅(qū)動器使用比較廣泛,現(xiàn)在由于PWM技術(shù)的不斷發(fā)展和日趨完善,具有調(diào)速范圍寬,效率高,易于數(shù)字控制,應(yīng)用范圍廣等特點,脈寬調(diào)制控制方法(PWM和SPWM)、變頻技術(shù)在直流調(diào)速和交流調(diào)速中獲得廣泛的使用。而MK60DN512單片機(jī)上就有集成的PWM模塊,因此可以使用大功率晶體管,全橋或者半橋電路,輸出PWM波形實現(xiàn)對電機(jī)的控制。在上一屆的比賽中了,為了簡化驅(qū)動電路的設(shè)計,多數(shù)的隊伍采用了集成電機(jī)驅(qū)動芯片MC33886來完成對電機(jī)的控制,盡管內(nèi)置短路保護(hù)、欠壓保護(hù)、過溫保護(hù)等功能[],性能優(yōu)越,但經(jīng)過實際的試驗發(fā)現(xiàn),33886在使用過程種發(fā)熱明顯,兩片并聯(lián)加裝上散熱片之后,發(fā)熱有所改善,但重量較大,不符合小車制作簡潔輕便的原則。權(quán)衡比較之后,在小車系統(tǒng)上采用自制的H橋的電路。圖2.20:電機(jī)驅(qū)動模塊2.2.3車速檢測模塊根據(jù)前幾屆比賽隊伍的情況,車速檢測器件大致有測速發(fā)電機(jī),旋轉(zhuǎn)編碼器,對射式光電開關(guān),霍爾元件等。綜合重量、價格、測量精度和安裝方面各方面因素,微型旋轉(zhuǎn)編碼器比較適合小車系統(tǒng)。具體實現(xiàn)如圖所示:利用車模后軸的齒輪將轉(zhuǎn)速傳動至編碼器,使編碼器輸出一定頻率的方波信號,在速度不太慢的情況下輸出與實際速度的線性關(guān)系較好。設(shè)定單片機(jī)的ECT模塊為脈沖累加功能,檢測信號的上升沿,就能采集這些脈沖,便得到得到當(dāng)前的車速。圖2.21:車速檢測模塊2.2.4電池供電模塊電源模塊為小車系統(tǒng)的其他各模塊提供所需要的電源。設(shè)計中,除了需要考慮電壓的范圍和電流容量等基本參數(shù)外,還要在電源轉(zhuǎn)換效率,降低噪聲,防止干擾和電路簡潔方面進(jìn)行優(yōu)化??煽康碾娫捶桨甘钦麄€硬件電路穩(wěn)定可靠運行的基礎(chǔ)。由于帶動整個小車系統(tǒng)工作的能量均來自一塊由6顆1.2V鎳鎘充電電池串聯(lián)而成的7.2V電池,容量為1800mAh。而系統(tǒng)中各模塊所需的工作電壓和工作電流各不相同,因此電源模塊應(yīng)該包括多個穩(wěn)壓電路,將電池電壓轉(zhuǎn)換為各個模塊所需的電壓,具體的電路結(jié)構(gòu)如圖所示圖2.22:電源供電模塊結(jié)構(gòu)圖目前市場上的電源穩(wěn)壓芯片很多,最常用的是線性穩(wěn)壓器,,如78xx系列的三段穩(wěn)壓器件,雖然這種線性穩(wěn)壓器具有輸出電壓成可調(diào)、穩(wěn)壓精度高的優(yōu)點,但是由于其線性調(diào)整工作方式在工作中會產(chǎn)生較大的“熱損失”,導(dǎo)致電源利用率不高,不易達(dá)到低功耗的要求。而低壓差的穩(wěn)壓芯片TPS7350則避開了這些缺陷。TPS7350具有輸入電壓范圍大,過熱、過流及電壓反接保護(hù)等特點,特別是當(dāng)其輸出電流為100mA時壓差僅僅為0.035V,只要輸入電壓在+7V~+5,1V范圍內(nèi)變化,TPS7350能可靠的保證輸出電壓穩(wěn)定在5V,從而顯著的提高了電源的利用效率。圖2.23:TPS7350典型電路圖圖2.24:最終設(shè)計電路2.2.5圖像采集模塊智能小車賽道識別方案一般有兩種:一、基于紅外光電傳感器;二、基于攝像頭。兩者各有所長,本小車系統(tǒng)采用攝像頭識別方案。一般說來,單片機(jī)采集圖像傳感器的數(shù)據(jù)有兩種方法,模擬式和數(shù)字式,數(shù)字式的圖像采集則是利用CMOS圖像傳感器的數(shù)字輸出特性,直接讀取傳感器的數(shù)字輸出。該方式性能穩(wěn)定,不需要A/D,圖像采集工作在單片機(jī)就變成了按照一定順序?qū)⑼獠繑?shù)據(jù)并行讀入,因此程序簡單,采集速度快。但是數(shù)字式攝像頭只有CMOS型,沒有找到CCD型的,而且使用起來外圍電路和軟件部分的寄存器設(shè)置較為繁瑣,故我們選用模擬式的具有較高成像質(zhì)量的CCD作為圖像采集模塊。2.2.5.1CCD視頻信號攝像頭主要由鏡頭,圖像傳感芯片和外圍電路構(gòu)成。圖像傳感芯片又是其最重要的部分,攝像頭的指標(biāo)(如黑白或彩色,分辨率)就取決于圖像傳感芯片的指標(biāo),該芯片要配以合適的外圍電路才能工作,將它們制作在一塊電路板上,稱為“單板”,若給單板配上鏡頭、外殼、引線和接頭,這就構(gòu)成了通常所見的攝像頭。攝像頭通常引出三個端子,一個為電源端,一個為地端,另一個就為視頻信號端(有的攝像頭多出一個端子,那是音頻信號端)。電源接多大要視具體的單板而定,目前而言,一般有兩種規(guī)格,5-9V,或9-12V,本小車系統(tǒng)采用5~9V的規(guī)格。攝像頭的視頻信號電壓一般位于0.5V-2V之間。按一定的分辨率,以隔行掃描的方式采樣圖像上的點,當(dāng)掃描到某點時,就通過圖像傳感芯片將該點處圖像的灰度轉(zhuǎn)換成與灰度成一一對應(yīng)關(guān)系的電壓值,然后將此電壓值通過視頻信號端輸出。具體而言(參見圖2.25),攝像頭連續(xù)地掃描圖像上的一行,就輸出一段連續(xù)的電壓視頻信號,該電壓信號的高低起伏正反映了該行圖像的灰度變化情況。當(dāng)掃描完一行,視頻信號端就輸出一低于最低視頻信號電壓的電平(如0.3V),并保持一段時間。這樣相當(dāng)于,緊接著每行圖像對應(yīng)的電壓信號之后會有一個電壓“凹槽”,此“凹槽”叫做行同步脈沖,它是掃描換行的標(biāo)志。然后,跳過一行后(因為攝像頭是隔行掃描的方式),開始掃描新的一行,如此下去,直到掃描完該場的視頻信號,接著就會出現(xiàn)一段場消隱區(qū)。此區(qū)中有若干個復(fù)合消隱脈沖(簡稱消隱脈沖),在這些消隱脈沖中,有個脈沖,它遠(yuǎn)寬于(即持續(xù)時間長于)其他的消隱脈沖,該消隱脈沖又稱為場同步脈沖,它是掃描換場的標(biāo)志。場同步脈沖標(biāo)志著新的一場的到來,不過,場消隱區(qū)恰好跨在上一場的結(jié)尾部分和下一場的開始部分,得等場消隱區(qū)過去,下一場的視頻信號才真正到來。PAL制式的攝像頭每秒掃描25幅圖像,每幅又分奇、偶兩場,先奇場后偶場,故每秒掃描50場圖像。每場圖像有312.5行,行周期為64us.奇場時只掃描圖像中的奇數(shù)行,偶場時則只掃描偶數(shù)行。具體的時序圖如下:圖2.25:攝像頭信號時序圖2.2.5.2視頻信號分離視頻信號每場是是不同的行組成,如圖1所示,場與場之間,行與行之間都存在同步信號,單片機(jī)通過對這些同步信號的捕捉,來控制圖像采集的時序,保證圖像采集的正確性。視頻信號分離芯片LM1881能將視頻信號中的行同步脈沖、消隱脈沖和場同步脈沖提取出來,并將它們轉(zhuǎn)換成數(shù)字信號交給單片機(jī)的I/O口。視頻信號分離電路如圖2.26所示。圖2.26:視頻信號分離電路2.2.5.3視頻信號數(shù)字化由于模擬攝像頭采集的圖像信號為模擬信號,而計算機(jī)系統(tǒng)為離散的數(shù)字系統(tǒng),故需要轉(zhuǎn)換為數(shù)字信號才能交付MCU處理。大賽組委會所推薦的芯片K60系列片內(nèi)集成了8路AD口,同時還具有豐富的IO接口資源,而且大賽中小車賽道色彩構(gòu)成的簡單性,使得視頻信號數(shù)字化方案變得多樣化。小車以模擬CCD攝像頭為傳感器,模擬式的采集先將一路視頻信號引用圖2.26電路,通過其可以將攝像頭輸出的復(fù)合視頻信號進(jìn)行分離,得到獨立的同步信號和視頻模擬量信號,然后通過逐行采樣來完成整幅圖像的采集。下面主要介紹三種對行信號的數(shù)字化的方法。1).片內(nèi)A/D轉(zhuǎn)換+DMA讀取由于MK60DN512本身就含有24路AD,故只需引入一路視頻信號至任意一個AD口,然后軟件上,先對AD口進(jìn)行相應(yīng)的初始化,再在行同步中斷函數(shù)中開啟DMA中斷即可完成數(shù)字化:此方法的優(yōu)點在于,不需要進(jìn)行額外的外圍電路設(shè)計,直接引入視頻信號,利用MK60DN512的片內(nèi)資源進(jìn)行AD轉(zhuǎn)換即可得到圖片灰度數(shù)據(jù)。K60在超頻到60M的情況下,能每行采集190個點,如果對圖片橫向精度要求不高,選擇此方法最為簡單。但如果CCD看得比較遠(yuǎn),由于圖像的幾何畸變,會造成遠(yuǎn)方的黑線最后AD結(jié)果只有一個黑點,這樣在黑線提取時造成了較高的誤判率,此時此方法就不再適用。2).片外A/D轉(zhuǎn)換為了每行信號得到更高的采樣精度,在K60還有多余的IO口前提下,我們可以考慮用片外A/D法。TCL5510為一款8位并行高速AD轉(zhuǎn)換芯片,如果采用獨立時鐘其AD速度能達(dá)到20MSPS,然后將數(shù)字信號通過8位數(shù)據(jù)總線并行輸出,直接引入到K60的一組IO口上,在軟件設(shè)計上只需對此IO口進(jìn)行讀取即可獲得數(shù)字信號。相應(yīng)AD轉(zhuǎn)換電路如圖2.27。圖2.27:片外AD轉(zhuǎn)換電路芯片對端口進(jìn)行讀取時,為了防止讀取到AD轉(zhuǎn)換的跳變沿,故需要進(jìn)行時鐘同步,K60含有3路PWM輸出,通過對一路PWM進(jìn)行翻轉(zhuǎn)輸出一定頻率的脈沖,即可模擬一個同步時鐘信號至片外AD模塊,較方便地解決了時鐘同步問題。在實際情況下,K60超頻到180M時每行能采集240個點,從而遠(yuǎn)方黑線消失的現(xiàn)象能得到很好的解決。除了采樣精度高,更重要的是此方法保存的是灰度信息,能極大程度上防止了圖像信息丟失,但是外圍電路比較復(fù)雜,而且占用了較多的IO口資源(需要K60額外提供一組8位的IO口進(jìn)行數(shù)字信號讀?。?。3).電壓比較器轉(zhuǎn)換以上兩種方法最后得到的都是圖像的灰度數(shù)據(jù),能夠比較逼真地反應(yīng)CCD所見情景。但是由于大賽中,賽道僅由黑白兩色組成(如圖2.28),所以即使是灰度數(shù)據(jù),我們最后處理時也一般要在軟件上進(jìn)行二值化將圖像分割成黑白二色圖片。所以,我們可以考慮直接用硬件進(jìn)行圖像二值化,將視頻信號轉(zhuǎn)換為一組方波信號,然后直接輸入到一位IO口中,對這一位的端口進(jìn)行讀取,高電平表示1,低電平表示0。在軟件上支灰度圖片進(jìn)行黑白分割時,比較常用的方法是固定閾值法,即高于此閾值電壓,即認(rèn)為是1,否則是0,然后再通過軟件進(jìn)行黑線邊緣檢測。圖2.28:小車賽道色彩構(gòu)成圖2.29.固定參考電壓二值電路圖2.30.邊沿檢測的二值電路采用固定參考電壓的二值電路設(shè)計起來比較簡單,對參考閾值電壓調(diào)結(jié)也比較方便-只需調(diào)節(jié)一個電位器阻值即可(為系統(tǒng)增加一個LCD,可直接在調(diào)節(jié)電位器后采集到的圖像,或者利用串口成像軟件觀測采集到的二值圖像),故具有一定的場地適應(yīng)性。但在實際使用過程中,我們發(fā)現(xiàn)采用固定參考電壓的二值電路在CCD視野比較遠(yuǎn)時,仍然會出現(xiàn)圖像無法分割的現(xiàn)象,此時該方法不再適用,故可以考慮采用邊沿檢測的二值電路。邊沿檢測二值電路中,將原始視頻信號和滯后處理的視頻信號輸入到電壓比較器兩端,在視頻信號跳變邊沿會在兩路輸入產(chǎn)生幅度差(如圖2.31左),然后當(dāng)幅度相差到一定程度(由滯回電路控制)時,電壓比較器輸出端便發(fā)生電平翻轉(zhuǎn),最后以方波形式輸出視頻信號(如圖2.31右,注:第一個低電平區(qū)為行同步區(qū),第二個為黑線區(qū))。原始視頻信號和滯后處理的視頻信號原始視頻信號和輸出方波信號圖2.31:硬件二值電路輸出相關(guān)波形圖采用邊沿檢測電路,通過對兩個電位器大小的調(diào)整,便能適應(yīng)不同比賽場地光線,而且能適應(yīng)CCD的不同視野,解決了固定電壓比較器遠(yuǎn)視野無法分割的缺點,具有更強(qiáng)的場地適應(yīng)性。而對比片外AD,此方案具有以下優(yōu)點:1.電路設(shè)計更簡單。2.占用芯片IO口只有一位,為片外AD的1/8。3.不用考慮時鐘同步的問題。4.橫向精度可以視為無限,在滿足要求的情況下,MCU不用超頻甚至還需要分頻,8M頻率讀端口便能每行采集120多個點。具體采集多少點依用戶需求而定。5.采用硬件二值,減少了CPU的運算量。顯然,對于色彩簡單的賽道環(huán)境,此方案擁有極大的優(yōu)勢,但是由于此方案直接給出的是0,1二值數(shù)據(jù),導(dǎo)致在圖像的軟件處理上便沒有了處理灰度數(shù)據(jù)的靈活性了。故此方案也成為了我們圖像采集的最終方案。2.2.6輔助調(diào)試模塊在小車的調(diào)試過程,經(jīng)常需要查看某些變量的值,通過串口線與上位機(jī)之間進(jìn)行通訊顯然不現(xiàn)實,于是給小車設(shè)計了無線串口模塊,使小車在行駛過程種將某些重要變量通過串口發(fā)送到上位機(jī)進(jìn)行分析處理。液晶模塊能夠?qū)崟r顯示各個參數(shù)及采集到的賽道圖像,通過按鍵還可以修改各種參數(shù),所以在調(diào)試小車的時候使用液晶模塊是十分方便有效的。圖2.27:無線串口圖2.28:液晶模塊 第三章:智能車系統(tǒng)軟件的設(shè)計與調(diào)試智能車系統(tǒng)的軟件系統(tǒng)包括賽道信息提取,賽道參數(shù)的分析與計算,舵機(jī)轉(zhuǎn)向控制,電機(jī)速度控制以及輔助調(diào)試等模塊,由于小車系統(tǒng)控制具有單任務(wù),周期性的特點,采用傳統(tǒng)的程序流程控制方法,將圖像采集到小車控制的任務(wù)放在一個死循環(huán)中順序執(zhí)行。3.1、路徑識別賽道中心線提取及處理3.1.1普通賽道的處理由于小車運行在底色為白色的環(huán)境下,只是在跑道兩邊有寬度為25mm的黑線指引。于是可以采用相對簡單的圖像分割方式,找到一個合適的分割閾值,將圖像二值化處理,當(dāng)某點的像素值高于該閾值時,為白色點,反之則為黑點,然后找出這些黑點的中心,即為目標(biāo)黑線所在的位置,此種方法稱為中心點提取算法。但考慮到比賽場地外部環(huán)境的不確定性,為了提高抗干擾能力,可以采用更為穩(wěn)定的邊緣提取算法,其基本原理是利用黑白交界處像素值將會出現(xiàn)較大跳變,利用此跳變找出黑線的左右邊緣。具體實現(xiàn)如圖3.2。為了方便后面的敘述,先明確以下變量的含義 row:攝像頭掃描一幅圖像上各點的行坐標(biāo)column:攝像頭掃描一幅圖像上各點的縱坐標(biāo)fbegin:左側(cè)黑線開始的行fend:左側(cè)黑線結(jié)束的行fbeign2:右側(cè)黑線開始的行fend2:右側(cè)黑線結(jié)束的行l(wèi)eft:某行左側(cè)黑線的位置right:某行右側(cè)黑線的位置data[i][j]:一幅圖像各點的像素值數(shù)組diff[i]:各行黑線的中心位置diff2[i]:各行黑線中心偏差圖3.2:左側(cè)目標(biāo)黑線提取程序流程圖右側(cè)黑線提取的方法相同,只是j從90到179。當(dāng)找到每行的左側(cè)和右側(cè)的黑線的位置后,diff[i]=(left+right)/2;因此對于最左最右就出現(xiàn)黑點時,采用中心提取算法,其他情況采用邊緣提取算法。圖3.3為原始采集到的圖像,圖3.4為最終提取效果圖,效果良好。圖3.3原始的圖像圖3.3:提取效果圖,黑色部分為找到的邊緣3.1.2特殊賽道類型的處理十字彎:十字彎道由于是兩邊邊線都斷開的,需要進(jìn)行補(bǔ)線處理。經(jīng)過試驗,用簡單的線性插值就能將線較好的補(bǔ)充完整。小S的虛線:通過判斷跳變次數(shù)來判斷小S,找到每次的跳變點,從而進(jìn)行簡單補(bǔ)線,可以使需要作為控制部分的小S虛線成為實線。遠(yuǎn)處用不到的可以不用處理,節(jié)省時間。3.2舵機(jī)控制對舵機(jī)的前輪控制,采用以較為簡單直接的位置式PID進(jìn)行控制為主,同時輔以壞幀圖像和小S彎道的控制策略。力求舵機(jī)控制使前輪轉(zhuǎn)向快速準(zhǔn)確。3.2.1數(shù)字PID舵機(jī)控制在提取到圖像信息較為完整的情況下,以圖像前方某行的黑線中心偏差和整幅圖像的擬合直線斜率作為控制量,總的算式為:公式(六)根據(jù)攝像頭拍攝的視野范圍,我們選取采集圖像中第5行的偏差作為單行偏差控制部分的考,慮到模型車在高速運行的時候,舵機(jī)的延時環(huán)節(jié)可以等效成一個積分環(huán)節(jié),該環(huán)節(jié)對道路中的蛇形線和路徑檢測中的干擾進(jìn)行了平均,保證了模型車的穩(wěn)定性,在偏差較大的情況下,使,不啟用D控制,在偏差較小的情況下啟用D控制。同時如果采用恒定的P參數(shù)對小車進(jìn)行控制,在很容易出現(xiàn)直道上小車來回震蕩、彎道轉(zhuǎn)向不足的現(xiàn)象。為此有必要對P參數(shù)進(jìn)行非線性化處理,即采用非線性P調(diào)節(jié)。圖3.8:非線性P調(diào)節(jié)如圖所示,Kp為比例項輸出,偏差在-3~3時為比例區(qū)間,輸出為0;當(dāng)偏差絕對值在3~13時,輸出一個較小的數(shù)值,對賽車產(chǎn)生的位移進(jìn)行微調(diào);當(dāng)偏差絕對值大于13時,比例系數(shù)增大,P_out輸出較大值,使舵機(jī)快速動作,以糾正大偏差。這樣即實現(xiàn)了系統(tǒng)在直道上時緩慢調(diào)節(jié),遇到彎道時迅速動作。3.2.2錯幀和小S控制由于小車前瞻較大,同時攝像頭的視野范圍有效,這樣在小車高速行駛到急彎時候,就會出現(xiàn)攝像頭采集不到黑線的情況,這種圖像情況稱為錯幀。對于錯幀情況,除了從硬件上努力,提高攝像頭的視野范圍外,在軟件上采取的策略為:當(dāng)?shù)谝淮纬霈F(xiàn)錯幀時,舵機(jī)保持上一周期的狀態(tài),連續(xù)出現(xiàn)錯幀時候則逐漸在原來的基礎(chǔ)上逐漸增大舵機(jī)控制量,當(dāng)錯幀連續(xù)出現(xiàn)7次時,將舵機(jī)達(dá)到極限位置,同時降低速度。同時對于賽道出現(xiàn)的小S彎情況,由于正確的補(bǔ)線使虛線部分和實線幾乎相同,所以,首先根據(jù)3.2.1的控制方法算出舵機(jī)控制量,然后去這個控制量的1/4作為實際的舵機(jī)控制量。即:公式(七)這樣即不會使轉(zhuǎn)向失控,有保證了小S彎直沖。 3.3速度控制3.3.1速度的閉環(huán)控制小車得以快速穩(wěn)定的運行,速度控制和舵機(jī)轉(zhuǎn)向控制應(yīng)該相互配合得很好,也就是說速度控制和轉(zhuǎn)向控制應(yīng)該是相互耦合的,然而這種耦合的數(shù)學(xué)模型十分復(fù)雜,實現(xiàn)起來十分復(fù)雜,因而在本小車的速度控制與舵機(jī)控制還是相互獨立的,其基本思想是:對路徑設(shè)別出來各種賽道類型,通過試驗找出各自的安全通過的極限速度,將這些速度設(shè)定為設(shè)為預(yù)定值,用PWM波進(jìn)行調(diào)速,各種賽道摩擦力各不相同,加上電池變化等等因素的影響,如果單純的用PWM波進(jìn)行開環(huán)調(diào)速,系統(tǒng)響應(yīng)時間較長,調(diào)速效果比較差。在硬件的實際中,小車上安裝了車速傳感器,通過單片機(jī)ECT模塊我們可以計算出賽車當(dāng)前的車速,然后采用PID閉環(huán)控制,就及時快速地調(diào)節(jié)車速達(dá)到預(yù)定值。同時為了提高電機(jī)的響應(yīng)速度,依據(jù)Bang-Bang控制理論,當(dāng)當(dāng)前速度與速度預(yù)設(shè)值之間相差較大時,用電機(jī)滿占空比或電機(jī)停轉(zhuǎn)的方式調(diào)速,當(dāng)當(dāng)前速度與設(shè)定值之間相差不大時,則通過PID調(diào)速。即:公式(八)同時由于控制周期不能足夠短,并且電機(jī)加速性能比較明顯,這種調(diào)速方式使得速度大起大落,為了是速度調(diào)節(jié)變得平滑一些,當(dāng)對一幅圖像分析計算出速度設(shè)定值后,在后一幅圖像的采集過程中,對速度進(jìn)行兩次控制,這樣就使得小車在直道上加速迅猛,同時在彎道上速度變化得穩(wěn)定平滑。3.3.2剎車功能的實現(xiàn)理想的賽車速度控制應(yīng)當(dāng)是直道上賽車以極限速度全速運行,在入彎的瞬間將速度降至通過該彎道安全車速,出彎后立即以極限速度運行。為了盡量提高直道上的車速并保持入彎后車速足夠安全,賽車必須能在最短的時間內(nèi)剎車。在現(xiàn)有的硬件上實現(xiàn)剎車有三種方法:(1)使用機(jī)械結(jié)構(gòu)剎車。在賽車左右后輪分別安裝一個伺服電機(jī),控制剎車片抱死后輪,以達(dá)到剎車的功能,和實際車輛的剎車原理相似。使用該方法需要增加兩個伺服電機(jī),如果左右剎車量不一致,賽車就會發(fā)生偏移,所以需要對左右輪車速進(jìn)行分別測量,并結(jié)合賽車轉(zhuǎn)向情況綜合計算,系統(tǒng)較為復(fù)雜,實現(xiàn)困難。(2)暫停驅(qū)動電路輸出。本方式為常用的剎車功能,具體操作可以斷開驅(qū)動電路或給電機(jī)0占空比實現(xiàn),實際效果是使賽車向前滑行,依靠輪胎與地面的摩擦力減速。但由于剎車距離較長,高速運行的賽車需要相當(dāng)長的一段滑行才能達(dá)到轉(zhuǎn)彎的安全車速,所以效果并不理想。(3)電機(jī)反轉(zhuǎn)。該方式綜合利用電機(jī)電磁制動和賽車后輪差速器結(jié)構(gòu)進(jìn)行剎車。高速運行的賽車剎車時,對電機(jī)施加一個反向電流,在電機(jī)內(nèi)部磁場反向,使轉(zhuǎn)子受到很大的磁力矩作用,迅速減速并反轉(zhuǎn)。由于本模型車后輪裝有差速器,允許左右后輪和傳動齒輪分別以不同速度轉(zhuǎn)動,當(dāng)電機(jī)與賽車后輪轉(zhuǎn)向相反時,他們之間摩擦力能使賽車很快減速。實際使用倒轉(zhuǎn)功能進(jìn)行剎車效果非常明顯,但頻繁對電機(jī)和驅(qū)動電路施加反向電流,兩者的發(fā)熱相當(dāng)明顯。綜合以上三種剎車方式,制定了快速減速的方案:在速度差較大時電機(jī)反轉(zhuǎn),速度差較小時賽車滑行,效果良好。在現(xiàn)有的速度控制策略基礎(chǔ)上加入剎車功能,我們將智能車速度控制策略設(shè)定為:公式(九)3.4開發(fā)與調(diào)試手段智能車的設(shè)計和開發(fā)是一個復(fù)雜的系統(tǒng)工程,為了提高了工作效率,在其調(diào)試與開發(fā)過程使用到了綜合使用各種開發(fā)平臺開發(fā)單片機(jī)和上位機(jī)程序,下面一一介紹。3.4.1IAR與在線調(diào)試工具BDMIAREmbeddedWorkbenchIDE是由IARSYSTEMS公司提供的面向FreescaleK60系列的MCU與DSP嵌入式應(yīng)用開發(fā)的軟件工具。其中包括集成開發(fā)環(huán)境IDE、處理器專家、全芯片仿真、可視化參數(shù)顯示工具、項目工程管理、C 交叉編譯器、匯編器、鏈接器以及調(diào)試器。其中在本設(shè)計中重要的部分就是集成開發(fā)環(huán)境和調(diào)試器。圖3.9:使用IAREmbeddedWorkbenchIDE開發(fā)智能車程序現(xiàn)代單片機(jī)具有很強(qiáng)的在線編程和調(diào)試功能,F(xiàn)reescaleK60系列單片機(jī)就具有BDM(BackgroundDebugMode)功能,可以實現(xiàn)在線程序下載和在線背景調(diào)試功能。3.4.2上位機(jī)軟件為了在上位機(jī)上能控制賽車,實時監(jiān)控其各參數(shù)和采集圖像,我們使用了上位機(jī)程序。(1)VC++開發(fā)的CCD智能小車監(jiān)控軟件在智能車開發(fā)初期,我們使用10級學(xué)長們開發(fā)的智能車監(jiān)控程序圖3.10:CCD智能小車監(jiān)控軟件(2)后期使用Matlab開發(fā)的智能車監(jiān)控程序本軟件的開發(fā)是為了在上位機(jī)進(jìn)行各種圖像處理算法和黑線位置計算的仿真。通過Matlab的Serial對象對計算機(jī)串口進(jìn)行操作[2],和單片機(jī)通訊。圖3.11基于Matlab的智能車監(jiān)控程序第四章:模型車主要技術(shù)參數(shù)說明本智能車主要技術(shù)參數(shù)如下:表4.1智能車技術(shù)參數(shù)統(tǒng)計項目參數(shù)路徑檢測方法(賽題組)攝像頭車模幾何尺寸(長、寬、高)(毫米)320*220*390車模軸距/輪距(毫米)103車模平均電流(勻速行駛)(毫安)800電路電容總量(微法)1122.472597傳感器種類及個數(shù)2新增加伺服電機(jī)個數(shù)0賽道信息檢測空間精度(毫米)5賽道信息檢測頻率(次/秒)50主要集成電路種類/數(shù)量3車模重量(帶有電池)(千克)2.210參考文獻(xiàn)[1]“第一屆‘飛思卡爾’杯全國大學(xué)生智能汽車邀請賽”組委會.“第一屆‘飛思卡爾’杯全國大學(xué)生智能車邀請賽”比賽規(guī)則.卓晴、黃開勝、邵貝貝等編.學(xué)做智能車—挑戰(zhàn)“飛思卡爾”杯.北京:北京航空航天大學(xué)出版社,2021.366~369[2]黃開勝、金華民、蔣狄南著.韓國智能模型車技術(shù)方案分析.卓晴、黃開勝、邵貝貝等編.學(xué)做智能車—挑戰(zhàn)“飛思卡爾”杯.北京:北京航空航天大學(xué)出版社2021.45~51[3]卓晴著.智能汽車自動控制器方案設(shè)計.卓晴、黃開勝、邵貝貝等編:學(xué)做智能車—挑戰(zhàn)“飛思卡爾”杯.北京:北京航空航天大學(xué)出版社,2021.5[4]鄒朗豪、李文昌、蘇啟健著.Rapidprototypeandsmartcardesign.卓晴、黃開勝、邵貝貝等編.學(xué)做智能車—挑戰(zhàn)“飛思卡爾”杯.北京:北京航空航天大學(xué)出版社,2021.71~86[5]卓晴、王琎、王磊著.基于面陣CCD的賽道參數(shù)檢測方法.卓晴、黃開勝、邵貝貝等編.學(xué)做智能車—挑戰(zhàn)“飛思卡爾”杯.北京:北京航空航天大學(xué)出版社2021.35~40[6]Freescale,Inc.MC9S12DT128BDeviceUserGuideV01.09.FreescaleSemiconductor,Inc,2021[7]Freescale,Inc.MC9S12DT128BCRGBlockUserGuideV03.08.FreescaleSemiconductor,Inc,2021[8]Freescale,Inc.MC33886Datasheet.U.S.A:FreescaleSemiconductor,Inc,2021[9]李立國、劉旺、郝杰等著.基于大前瞻光電識別和道路記憶方法的智能車.卓晴、黃開勝、邵貝貝等編.學(xué)做智能車—挑戰(zhàn)“飛思卡爾”杯.北京:北京航空航天大學(xué)出版社,2021.338~350[10]ONSemiconductor.NCP6303.0AFastLinearVoltageRegulators[11]余燦鍵、程東成、李偉強(qiáng)著.PID算法在智能汽車設(shè)計上的應(yīng)用.基于大前瞻光電識別和道路記憶方法的智能車.卓晴、黃開勝、邵貝貝等編.學(xué)做智能車—挑戰(zhàn)“飛思卡爾”杯.北京:北京航空航天大學(xué)出版社,2021.128~137[12]黃開勝、陳宋著.汽車?yán)碚撆c智能模型車機(jī)械結(jié)構(gòu)調(diào)整方法.卓晴、黃開勝、邵貝貝等編.學(xué)做智能車—挑戰(zhàn)“飛思卡爾”杯.北京:北京航空航天大學(xué)出版社2021.23[13]廣州周立功單片機(jī)發(fā)展著.I2C總線規(guī)范.廣州:廣州周立功單片機(jī)發(fā)展,2021[14]李紹民著.圖像傳感器OV7620在自主足球機(jī)器人中的應(yīng)用.國外電子元器件,2021年第10期:11~14[15]OmniVisionTechnologies,Inc.OV7620/OV7120Specification.OmniVision,Inc,2021全國大學(xué)生智能汽車邀請賽技術(shù)報告[16]林辛凡,李紅志,黃穎.第二屆“飛思卡爾”杯全國大學(xué)生智能汽車邀請賽技術(shù)報告[R],2021清華三角洲隊(原清華一隊)[17]吳小平、劉萬春、朱玉文著.基于TMS320C32的視覺圖像處理系統(tǒng)[J].探測與控制學(xué)報.2021年第22卷第1期:18~22附錄:附錄A:主控板原理圖附錄B:電源模塊和驅(qū)動模塊原理圖液晶調(diào)試模塊附錄C:Matlab圖像處理程序及處理效果clearallclcthres=120;left=-1;right=-1;row=50;column=96;image0=zeros(row,column);image1=zeros(row,column);image2=zeros(row,column);a=textread('E:\matlab\Camera1column9650\video8.txt','%s')';b=hex2dec(a)';%originalimage:image0m=1;fori=1:rowforj=1:columnimage0(i,j)=b(1,m);m=m+1;endendmfigure;colormap(gray)imagesc(image0)%imshow(image0,[0255]);%binaryimage:image1m=1fori=1:rowforj=1:columnimage1(i,j)=b(1,m);m=m+1;image1(i,j)=image1(i,j)-thres;ifimage1(i,j)<0image1(i,j)=0;elseifimage1(i,j)>0image1(i,j)=255;endendendendfigure;colormap(gray)imagesc(image1)%imshow(image1,[0255])%searchlineimage:image2image2=image1;fori=3:rowforj=1:columnifleft==-1ifimage2(i,j)>200ifimage2(i,j+1)>200ifimage2(i,j+2)>200left=j;end;end;end;elseifright==-1ifimage2(i,j)<100ifimage2(i,j+1)<100ifimage2(i,j+2)<100right=j;end;end;end;end;end;end;image2(i,fix((left+right)/2))=0;%image2(i,fix((left+right)/2-1))=0;left=-1;right=-1;end;figure;colormap(gray)imagesc(image2)%imshow(image1,[0255])附錄D:主控程序/********************************************************【dev.env.】IAR6.3【Target】K60DN512【Crystal】50.000Mhz【busclock】60.000MHz【pllclock】180.000MHz武漢大學(xué)智能車2021我是傳奇隊員:賀凌昊 劉向東 陶志浩*********************************************************/#include"includes.h"#include"system.h"#include"lcd.h"voidpit_isr0(void);voidpit_isr1(void);voidVideoISR(void);voidmain(void){DisableInterrupts;pllinit180M();periph_clk_khz=180000/3;//Thefactorissetinfunctionpllinit180M();vol=VoltCheck();InitFlashLcd();InitLCD();SetLCD();ClearLCD();//打開所有IO時鐘SIM_SCGC5=SIM_SCGC5_PORTA_MASK|SIM_SCGC5_PORTB_MASK|SIM_SCGC5_PORTC_MASK|SIM_SCGC5_PORTD_MASK|SIM_SCGC5_PORTE_MASK;//串口初始化uart_init(UART0,periph_clk_khz,115200);enableuartreint(UART0,UART0irq); //開串口3接收中斷//電機(jī)10KHzPWMLPLD_FTM0_PWM_Init(10000);//frequency=10,000HZ,realperiod=6001;LPLD_FTM0_PWM_Open(3,0);//duty=0LPLD_FTM0_PWM_Open(4,2021);//duty=0;//舵機(jī)100HzPWMLPLD_FTM1_PWM_Init(100);//frequency=100SERVO_MID=Middle;LPLD_FTM1_PWM_Open(0,SERVO_MID);//duty=15.46%,realperiod=37501//DelaymS(2500);//Startafter3Sdelay//定時5ms中斷初始化LPLD_PIT_Init(0,5000,pit_isr0);LPLD_PIT_Init(1,5,pit_isr1);disable_irq(69);//關(guān)pit1//脈沖累加初始化//LPLD_LPTMR_Init(1,0,2,0,NULL);//正交編碼測速初始化FTM2_QUAD_init();//LED初始化light_init(PORTA,14,1);light_init(PORTA,15,1);light_init(PORTA,16,1);light_init(PORTA,17,1);//GPIO初始化PORTC_PCR19=(PORT_PCR_MUX(1));//電機(jī)使能DDRC19=1;PTC19_OUT=0;//關(guān)電機(jī)使能,定時2s后再開PORTE_PCR28=(PORT_PCR_MUX(1));//視頻讀取IO設(shè)置DDRE28=0;//PORTE_PCR5=(PORT_PCR_MUX(1)|PORT_PCR_IRQC(9)|PORT_PCR_PE_MASK);//行中斷PORTE_PCR5=(PORT_PCR_MUX(1)|PORT_PCR_IRQC(9));//行中斷,GPIO,fallingedgeDDRE5=0;PORTA_PCR13=(PORT_PCR_MUX(1)|PORT_PCR_IRQC(11));//場中斷,GPIO,eitheredgeDDRA13=0;enable_irq(91);//超聲波初始化PORTB_PCR2=(PORT_PCR_MUX(1));//啟用第一功能GPIOPORTB_PCR3=(PORT_PCR_MUX(1));//啟用第一功能GPIODDRB2=0;//定義PTB4腳為輸入DDRB3=1;//定義PTB8腳為輸出InitVideoData();enFieldInt=1;InitPara();//uart_sendN(UART0,(uint8*)"IRIS-ForeSight",14);timcount=0;EnableInterrupts;//主循環(huán)while(1){if(endtime>=2&&endtime<=4){PTC19_OUT=1;//定時2s后開電機(jī)使能}PTD14_OUT=0;PTD12_IN=0;if(rowcomplete<rowready){searchline(ROW-rowcomplete-1);//searchcentreoftheROWrowcomplete++;if(rowcomplete==ROW){if(endtime>=LCD_Para1&&TripCount<=4)//detectstartlineafter1s{startline_detection();if(startline==1){endline++;startline=0;if(endline>=2){stopflag=1;}}else{endline=0;//if(stopflag==1&&stophold>0){stophold-=Speed;}}}servocontrol();/************VIimagesendbegin***********/if(Visend==1){//uart_send1(UART0,'x');SendVideo();}}/************VIimagesendend***********/InitPara();enable_irq(91);//完成一場處理,enabletheinterruptagainenable_irq(87);enFieldInt=1;}}if(endtime>=LCD_Para2)SetSpeed=0;if(SpdFlag==1){SpdFlag=0;if(stopflag==1){StopDelay=Speed;STOP=1;stopflag=0;}if(timcount>12021/(StopDelay/4+1)){SetSpeed=0;STOP=0;}//停車延時SpeedControl();}}}//視頻采集場行中斷voidVideoISR(void){if(PORTA_ISFR&(1<<13))//場中斷{if(enFieldInt){GPIO_ISR_PTA13();}PORTA_ISFR|=(1<<13);//寫1清中斷標(biāo)志位}if(PORTE_ISFR&(1<<5))//行中斷{if(enRowInt){GPIO_ISR_PTE5();}PORTE_ISFR|=(1<<5);//寫1清中斷標(biāo)志位}}//voidpit_isr0(void){shortintPulse;PIT_TFLG(0)|=PIT_TFLG_TIF_MASK;//清標(biāo)志Pulse=FTM2_CNT;Speed=Pulse;SpdFlag=1;FTM2_CNT=0;recount++;if(recount>=200){recount=0;endtime++;}if(endtime>=2&&timeout<100)timeout++;elsetimeout=100;if(STOP==1)//Period:500ms{timcount++;}}voidpit_isr1(void){PIT_TFLG(1)|=PIT_TFLG_TIF_MASK;//清標(biāo)志count++;}//*//函數(shù)名:uart3_isr*//功能:串口3數(shù)據(jù)接收中斷例程*//說明:無*//*voiduart0_isr(void){uint8ch;DisableInterrupts; //關(guān)總中斷//接收一個字節(jié)數(shù)據(jù) if(uart_re1(UART0,&ch)){if(ch=='g'){ uart_send1(UART0,'y');Visend=1;}} EnableInterrupts; //開總中斷}//*//文件名:gpio.c//說明:gpio驅(qū)動程序文件//*#include"gpio.h"http://包含gpio頭文件//*//函數(shù)名:gpio_init*//功能:初始化gpio*//參數(shù):port:端口名*//index:指定端口引腳*//dir:引腳方向,0=輸入,1=輸出*//data:初始狀態(tài),0=低電平,1=高電平*//返回:無*//說明:無*//*voidgpio_init(GPIO_MemMapPtrport,intindex,intdir,intdata){PORT_MemMapPtrp;switch((uint32)port){case0x400FF000u:p=PORTA_BASE_PTR;break;case0x400FF040u:p=PORTB_BASE_PTR;break;case0x400FF080u:p=PORTC_BASE_PTR;break;case0x400FF0C0u:p=PORTD_BASE_PTR;break;case0x400FF100u:p=PORTE_BASE_PTR;break;default:break;}PORT_PCR_REG(p,index)=(0|PORT_PCR_MUX(1));if(dir==1)//output{ GPIO_PDDR_REG(port)|=(1<<index); if(data==1)//output GPIO_PDOR_REG(port)|=(1<<index); else GPIO_PDOR_REG(port)&=~(1<<index);}elseGPIO_PDDR_REG(port)&=~(1<<index);}//*//函數(shù)名:gpio_ctrl*//功能:設(shè)置引腳狀態(tài)*//參數(shù):port:端口名*//index:指定端口引腳*//data:狀態(tài),0=低電平,1=高電平*//返回:無*//說明:無*//*voidgpio_ctrl(GPIO_MemMapPtrport,intindex,intdata){if(data==1)//outputGPIO_PDOR_REG(port)|=(1<<index);elseGPIO_PDOR_REG(port)&=~(1<<index);}//*//函數(shù)名:gpio_reverse*//功能:改變引腳狀態(tài)*//參數(shù):port:端口名;*//index:指定端口引腳

溫馨提示

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

評論

0/150

提交評論