飛思卡爾智能車大賽技術(shù)報(bào)告_第1頁(yè)
飛思卡爾智能車大賽技術(shù)報(bào)告_第2頁(yè)
飛思卡爾智能車大賽技術(shù)報(bào)告_第3頁(yè)
飛思卡爾智能車大賽技術(shù)報(bào)告_第4頁(yè)
飛思卡爾智能車大賽技術(shù)報(bào)告_第5頁(yè)
已閱讀5頁(yè),還剩28頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、第九屆“飛思卡爾”杯全國(guó)大學(xué)生 智能車競(jìng)賽光電組技術(shù)報(bào)告學(xué)校:中北大學(xué)伍名稱:ARES賽隊(duì)員:賀彥興王志強(qiáng) 雷鴻 隊(duì)教師:閆曉燕 甄國(guó)涌關(guān)于技術(shù)報(bào)告和研究論文使用授權(quán)的說(shuō)明書(shū)本人完全了解第八屆“飛思卡爾”杯全國(guó)大學(xué)生智能汽車競(jìng)賽關(guān)保留、使用技術(shù)報(bào)告和研究論文的規(guī)定,即:參賽作品著作權(quán)歸參賽者本人,比賽組委會(huì)和飛思卡爾半導(dǎo)體公司可以在相關(guān)主頁(yè)上收錄并公開(kāi)參賽作品的設(shè)計(jì)方案、技術(shù)報(bào)告以及參賽模型車的視頻、圖像資料,并將相關(guān)內(nèi)容編纂收錄在組委會(huì)出版論文集中。參賽隊(duì)員簽名:帶隊(duì)教師簽名:日期:2014-09-15日摘要本文介紹了第九屆“飛思卡爾杯全國(guó)大學(xué)生智能車大賽光電組中北大學(xué)參賽隊(duì)伍整個(gè)系統(tǒng)核心采

2、用飛思卡爾單片機(jī) MC9S12XS128MAA ,利用TSL1401線性CCD對(duì)賽道的行掃描采集信息來(lái)引導(dǎo)智能小車的前進(jìn)方向。機(jī)械系統(tǒng)設(shè)計(jì)包括前輪定位、方向轉(zhuǎn)角調(diào)整,重心設(shè)計(jì)器件布局設(shè)計(jì)等。硬件系統(tǒng)設(shè)計(jì)包括線性CCD傳感器安裝調(diào)整,電機(jī)驅(qū)動(dòng)電路,電源管理等模塊的設(shè)計(jì)。軟件上以經(jīng)典的PID算法為主,輔以小規(guī)Bang-Bang算法來(lái)控制智能車的轉(zhuǎn)向和速度。在智能車系統(tǒng)設(shè)計(jì)開(kāi)發(fā)過(guò)程中使用Altium Designer設(shè)計(jì)制作pcb電路板,CodeWarriorIDE作為軟件開(kāi)發(fā)平臺(tái),Nokia5110屏用來(lái)顯示各實(shí)時(shí)參數(shù)信息并利用藍(lán)牙通信模塊和串口模塊輔助調(diào)試。關(guān)鍵字:智能車 攝像頭 控制器 算法。

3、目錄1緒論. 11.1 競(jìng)賽背景.11.2國(guó)內(nèi)外智能車輛發(fā)展?fàn)顩r.11.3 智能車大賽簡(jiǎn)介.21.4 第九屆比賽規(guī)則簡(jiǎn)介.22智能車系統(tǒng)設(shè)計(jì)總述. 22.1機(jī)械系統(tǒng)概述. 32.2硬件系統(tǒng)概述. 52.3軟件系統(tǒng)概述.63智能車機(jī)械系統(tǒng)設(shè)計(jì). 73.1智能車的整體結(jié)構(gòu). 73.2前輪定位. 73.3智能車后輪減速齒輪機(jī)構(gòu)調(diào)整. 83.4傳感器的安裝. 84智能車硬件系統(tǒng)設(shè)計(jì). 84.1XS128芯片介紹. 84.2傳感器板設(shè)計(jì). 84.2.1電磁傳感器方案選擇. 84.2.2電源管理模. 94.2.3電機(jī)驅(qū)動(dòng)模塊. 104.2.4編碼器. 115智能車軟件系統(tǒng)設(shè). 115.1程序概述. 115

4、.2采集傳感器信息及處理. 115.3計(jì)算賽道信息.135.4轉(zhuǎn)向控制策略. 175.5速度控制策略. 196總結(jié).196.1效果. 206.2遇到的問(wèn)題以及解決辦法. 20 6.3隊(duì)員之間的合作很重要.21附錄. 22源程序. 23 1緒論1.1 競(jìng)賽背景隨著經(jīng)濟(jì)發(fā)展,道路交通面臨新的問(wèn)題和新的挑戰(zhàn)。所以急需改變傳統(tǒng)交通模式,解決當(dāng)前面臨的困境,正是在這樣的背景下智能汽車迎來(lái)了大發(fā)展的時(shí)期,各國(guó)爭(zhēng)相投入大量資金研究無(wú)人駕駛技術(shù)。智能車的發(fā)展早期受限于技術(shù)手段,智能化較低,主要應(yīng)用在自動(dòng)化倉(cāng)貯系統(tǒng)和柔性裝配系統(tǒng)的物料運(yùn)輸,隨著新型高精度,高可靠性的傳感器不斷涌現(xiàn),現(xiàn)階段智能車正在向適應(yīng)城市道路

5、,野外復(fù)雜地形等方向發(fā)展,在不久的將來(lái)即可真正替代人工駕駛。1.2 國(guó)內(nèi)智能車輛發(fā)展?fàn)顩r1992年,國(guó)防科技大學(xué)研制成功了我國(guó)第一輛真正意義上的無(wú)人駕駛汽車。由計(jì)算機(jī)及其配套的檢測(cè)傳感器和液壓控制系統(tǒng)組成的汽車計(jì)算機(jī)自動(dòng)駕駛系統(tǒng),被安裝在一輛國(guó)產(chǎn)的中型面包車上,使該車既保持了原有的人工駕駛性能,又能夠用計(jì)算機(jī)控制進(jìn)行自動(dòng)駕駛行車。2000年6月,國(guó)防科技大學(xué)研制的第4代無(wú)人駕駛汽車試驗(yàn)成功,最高時(shí)速達(dá)76km,創(chuàng)下國(guó)內(nèi)最高紀(jì)錄。2003年7月,國(guó)防科技大學(xué)和中國(guó)一汽聯(lián)合研發(fā)的紅旗無(wú)人駕駛轎車高速公路試驗(yàn)成功,自主駕駛最高穩(wěn)定時(shí)速130km,其總體技術(shù)性能和指標(biāo)已經(jīng)達(dá)到世界先進(jìn)水平。 1.3 智

6、能車大賽簡(jiǎn)介飛思卡爾是業(yè)界領(lǐng)先的半導(dǎo)體公司,主要研發(fā)領(lǐng)域面向汽車應(yīng)用領(lǐng)域,產(chǎn)品質(zhì)量?jī)?yōu)秀,其他公司在汽車應(yīng)用方面很難與之抗衡。飛思卡爾智能車競(jìng)賽已經(jīng)經(jīng)歷了7屆比賽,并將于今年的夏天舉辦第八屆比賽。該競(jìng)賽由競(jìng)賽秘書(shū)處設(shè)計(jì)、規(guī)范標(biāo)準(zhǔn)硬軟件技術(shù)平臺(tái),競(jìng)賽過(guò)程包括理論設(shè)計(jì)、實(shí)際制作、整車調(diào)試、現(xiàn)場(chǎng)比賽等環(huán)節(jié),要求學(xué)生組成團(tuán)隊(duì),協(xié)同工作,初步體會(huì)一個(gè)工程性的研究開(kāi)發(fā)項(xiàng)目從設(shè)計(jì)到實(shí)現(xiàn)的全過(guò)程。該競(jìng)賽融科學(xué)性、趣味性和觀賞性為一體,是以迅猛發(fā)展、前景廣闊的汽車電子為背景,涵蓋自動(dòng)控制、模式識(shí)別、傳感技術(shù)、電子、電氣、計(jì)算機(jī)、機(jī)械與汽車等多學(xué)科專業(yè)的創(chuàng)意性比賽。該競(jìng)賽規(guī)則透明,評(píng)價(jià)標(biāo)準(zhǔn)客觀,堅(jiān)持公開(kāi)、公平、公正

7、的原則,力求向健康、普及、持續(xù)的方向發(fā)展。競(jìng)賽主要分為競(jìng)速賽和創(chuàng)意賽兩種。在競(jìng)速賽中,規(guī)則規(guī)定了使用的車模、傳感器類型、處理器類型和賽道尺寸等關(guān)鍵的因素,參賽選手可以在相同的條件下,自行設(shè)計(jì)硬件電路和軟件算法,最終能以最快速度跑完全程。競(jìng)速賽分為三個(gè)賽題組:光電組、攝像頭組、電磁組。不同之處在三個(gè)組的循線傳感器是不一樣的。電磁組的賽道中心鋪有細(xì)導(dǎo)線,導(dǎo)線中通有頻率和電流穩(wěn)定的電信號(hào),能利用電磁感應(yīng)原理檢測(cè)中心導(dǎo)線的位置。電磁組和另兩個(gè)賽題組相比,優(yōu)勢(shì)在于檢測(cè)信號(hào)穩(wěn)定,不會(huì)受到外界采光條件的變化而影響,也不會(huì)受到賽道外的背景色所干擾,所以比較少在比賽中途因找不到賽道中心而沖出賽道的情況,缺點(diǎn)在于

8、電磁傳感器一般由電感電容組成,如果需要增加賽車前瞻的話需要加固定支架把傳感器伸到賽車前方,這樣會(huì)增加車子轉(zhuǎn)彎時(shí)的轉(zhuǎn)動(dòng)慣量,影響車子轉(zhuǎn)彎的靈活性,曾有強(qiáng)隊(duì)想出來(lái)車體主動(dòng)懸掛的方式抵消轉(zhuǎn)彎時(shí)的轉(zhuǎn)動(dòng)離心力,從而提升車子轉(zhuǎn)彎速度,使得電磁車速度得到很大提升。1.4第九屆比賽規(guī)則簡(jiǎn)介參賽選手須使用競(jìng)賽秘書(shū)處統(tǒng)一指定的競(jìng)賽車模套件,采用飛思卡爾半導(dǎo)體公司的8位、16位、32位微控制器作為核心控制單元,自主構(gòu)思控制方案進(jìn)行系統(tǒng)設(shè)計(jì),包括傳感器信號(hào)采集處理、電機(jī)驅(qū)動(dòng)、轉(zhuǎn)向舵機(jī)控制以及控制算法軟件開(kāi)發(fā)等,完成智能車工程制作及調(diào)試,于指定日期與地點(diǎn)參加各分(?。┵悈^(qū)的場(chǎng)地比賽,在獲得決賽資格后,參加全國(guó)決賽區(qū)的場(chǎng)

9、地比賽。參賽隊(duì)伍的名次(成績(jī))由賽車現(xiàn)場(chǎng)成功完成賽道比賽時(shí)間來(lái)決定,參加全國(guó)總決賽的隊(duì)伍同時(shí)必須提交車模技術(shù)報(bào)告。大賽根據(jù)道路檢測(cè)方案不同分為電磁、光電平衡與攝像頭三個(gè)賽題組。使用四輪車模通過(guò)指定的線陣CCD器件或者分立的光電管傳感器獲得一維連續(xù)或者離散點(diǎn)賽道信息的屬于光電組,光電組:四輪車模允許雙向運(yùn)行。車模使用 B 型車模。車模運(yùn)行可以在比賽過(guò)程中,根據(jù)賽道要求隨時(shí)調(diào)整運(yùn)行方向,如圖2 所示 圖X原型車模如下 2 智能車系統(tǒng)設(shè)計(jì)總述智能車主要分為機(jī)械系統(tǒng)、硬件系統(tǒng)、和軟件系統(tǒng)三個(gè)部分,三個(gè)部分中以機(jī)械系統(tǒng)、硬件系統(tǒng)為基礎(chǔ),軟件系統(tǒng)為核心。在整個(gè)的后續(xù)調(diào)試和三部分之間的融合過(guò)程中也需要不斷地

10、修正已達(dá)到優(yōu)良的效果。2.1機(jī)械系統(tǒng)概述機(jī)械系統(tǒng)作為智能車的基礎(chǔ)影響著整個(gè)車的運(yùn)行姿態(tài)和速度,輕巧的車身可以使車更加靈活容易操控,合理的重心位置可以讓車運(yùn)行更平穩(wěn),而前輪定位、舵機(jī)安裝的方式和位置可以影響轉(zhuǎn)向靈活度。為了和傳感器和系統(tǒng)PCB控制板的安裝,也需要對(duì)車身,舵機(jī),舵機(jī)的轉(zhuǎn)度進(jìn)行細(xì)致的調(diào)整。圖V整體車體結(jié)構(gòu)圖VV線性CCD部分圖XX舵機(jī)部分圖BB編碼器部分2.2硬件系統(tǒng)概述硬件系統(tǒng)作為小車的基礎(chǔ)最重要的就是運(yùn)行穩(wěn)定,XS128單片機(jī)滿足了智能車競(jìng)賽中對(duì)運(yùn)算速度的需求,傳感器部分的設(shè)計(jì)要注意模塊間的分隔,避免相互干擾,要注意的是排列盡可能緊密,減小電路板面積。在設(shè)計(jì)電源管理模塊,傳感器檢

11、測(cè)處理模塊,起點(diǎn)檢測(cè)模塊,電機(jī)驅(qū)動(dòng)模塊等的時(shí)候都積極思考,盡量做到減少干擾,安全可靠。 圖XB硬件系統(tǒng)搭建簡(jiǎn)圖2.3軟件系統(tǒng)概述軟件系統(tǒng)作為智能車的核心是決定最后運(yùn)行速度和平穩(wěn)性的關(guān)鍵,主要工作是對(duì)傳感器采集到的數(shù)據(jù)進(jìn)行處理,選擇合適的方法解算賽道信息,制定合理的轉(zhuǎn)向控制策略使轉(zhuǎn)向平滑快速,制定有效的速度控制策略使智能車平均速度提高。程序流程圖:3智能車機(jī)械系統(tǒng)設(shè)計(jì)3.1智能車的整體結(jié)構(gòu)如圖所示:為了排布pcb板,安裝舵機(jī)和傳感器固定桿,并根據(jù)規(guī)則和車體的尺寸,對(duì)智能車的機(jī)械結(jié)構(gòu)做了一些調(diào)整包括減震彈簧的安裝,車底盤(pán)的高度,電池位置,期間為了較強(qiáng)的穩(wěn)固車體我們將電機(jī)部分和前車體進(jìn)行了固定。 3

12、.2前輪定位前輪定位(轉(zhuǎn)向輪定位)指轉(zhuǎn)向輪、轉(zhuǎn)向節(jié)和前軸三者之間與車架必須保持一定的相對(duì)安裝位置。在規(guī)則中只禁止改動(dòng)車底盤(pán)結(jié)構(gòu)輪距、輪徑和輪胎。前輪位置可以任意調(diào)整改變。若要在不同速度,負(fù)載,重心條件下使車在輕快穩(wěn)定的前進(jìn),那么最開(kāi)始時(shí)候的前輪要力求最好的中心位置的擺正。我們?cè)诙鏅C(jī)擺角設(shè)定的最小范圍內(nèi),依次標(biāo)算出它的左右擺點(diǎn)位置。并形成查詢表,根據(jù)不同道路的信息不同來(lái)計(jì)算不同路徑下的最優(yōu)曲率輸出控制舵機(jī)的擺角。3.3智能車后輪減速齒輪機(jī)構(gòu)調(diào)整齒輪傳動(dòng)機(jī)構(gòu)對(duì)車模的驅(qū)動(dòng)能力有很大的影響。調(diào)整的原則是:兩傳動(dòng)齒輪軸保持平行,齒輪間的配合間隙要合適,過(guò)松容易打壞齒輪,過(guò)緊又會(huì)增加傳動(dòng)阻力,浪費(fèi)動(dòng)力;傳

13、動(dòng)部分要輕松、順暢,不能有遲滯或周期性振動(dòng)的現(xiàn)象。判斷齒輪傳動(dòng)是否良好的依據(jù)是,聽(tīng)一下電機(jī)帶動(dòng)后輪空轉(zhuǎn)時(shí)的聲音。聲音刺耳響亮,說(shuō)明齒輪間的配合間隙過(guò)大,傳動(dòng)中有撞齒現(xiàn)象;聲音悶而且有遲滯,則說(shuō)明齒輪間的配合間隙過(guò)小,或者兩齒輪軸不平行,電機(jī)負(fù)載變大。調(diào)整好的齒輪傳動(dòng)噪音很小,并且不會(huì)有碰撞類的雜音,后輪減速齒輪機(jī)構(gòu)就基本上調(diào)整好了,動(dòng)力傳遞十分流暢。3.4傳感器的安裝首先根據(jù)理論計(jì)算得出比較適合的前瞻距離,來(lái)慢慢調(diào)整線性CCD的仰角和高度。其引線盡可能的以最短的距離來(lái)將信息送入核心控制部分。起初設(shè)定的前瞻距離為50cm,來(lái)調(diào)整CCD。經(jīng)過(guò)后期調(diào)試最佳前瞻距離達(dá)到了60cm的距離。支架用的是材質(zhì)

14、輕巧強(qiáng)度很高的碳纖維管作為支撐桿。4智能車硬件系統(tǒng)設(shè)計(jì)4.1 主控芯片XS128芯片介紹:最高可以超頻到80MHz bus clock,BDM接口;PB0上接一個(gè)發(fā)光二極管“PB0”;電源指示放光二極管“5V”;參考電壓可以選擇5V,也可以去掉VRH電阻外接;兩個(gè)電源接口;對(duì)單片機(jī)供電部分布線作了特殊處理,更穩(wěn)定;插針為100mil的整數(shù)倍,標(biāo)準(zhǔn)點(diǎn)陣板可以直接插上去。板子尺寸:51*49mm,小而穩(wěn)!4.2硬件部分包括的幾大部分:4.2.1電源硬件設(shè)計(jì)部分cpu最小系統(tǒng)部分,電機(jī)驅(qū)動(dòng)部分,傳感器處理部分,顯示模塊,按鍵模塊。整體硬件搭建原理圖如圖: 4.2.2電源管理部分:電源管理模塊需要為整

15、個(gè)電路提供穩(wěn)定而高質(zhì)量的電源,特別是對(duì)單片機(jī)的供電。本系統(tǒng)的設(shè)計(jì)中,編碼器、串口通信、傳感器和液晶顯示部分都需要5v供電;單片機(jī)OLED模塊均使用3.3v供電。考慮到電池電壓7.8v左右,電源管理模塊需要5v3.3v兩個(gè)穩(wěn)壓其中5v穩(wěn)壓芯片使用的是8940穩(wěn)壓芯片使用AMS1117全部輸出耦合采用紅寶石的頂級(jí)電解電容,確保穩(wěn)定型和可靠性。為防止電源電壓被拉低時(shí)引起單片機(jī)復(fù)位,采用二極管/電感和40uf電容的電路為單片機(jī)儲(chǔ)存電能,電路原理圖如下:4.2.3電機(jī)驅(qū)動(dòng)模塊用兩片英飛凌公司的半橋驅(qū)動(dòng)芯片BTS7970組成全橋。此電路只需要2片BTS芯片,外部電路簡(jiǎn)單,使用方便,性能可靠,方案成熟。缺點(diǎn)

16、是指標(biāo)會(huì)比用MOSFET管搭建大,而且車速一旦較快,輸出電流過(guò)大,會(huì)觸發(fā)芯片內(nèi)部的保護(hù)機(jī)制,不利于長(zhǎng)距離長(zhǎng)時(shí)間調(diào)試。電路原理圖如下:4.2.4編碼器5智能車軟件系統(tǒng)設(shè)計(jì)5.1程序概述程序使用了XS128芯片中的TIM模塊、PIT模塊、AD模塊、I/O模塊、PIT模塊、PWM模塊。其中舵機(jī)和電機(jī)通過(guò)PWM模塊來(lái)控制,舵機(jī)頻率100Hz,通過(guò)對(duì)賽道黑線邊緣部分的提取對(duì)賽道位置和賽道地形進(jìn)行判斷,I/0塊主要用來(lái)作為人機(jī)交互模塊使用。PIT模塊作為定時(shí)器產(chǎn)生1ms的定時(shí)中斷,轉(zhuǎn)向控制服務(wù)程序,速度控制服務(wù)程序均在PIT中斷當(dāng)中完成。AD采樣服務(wù)程序在AD中斷中完成。程序大概流程如下:(1)進(jìn)行各個(gè)模

17、塊的初始化。(2)在按下啟動(dòng)鍵之后程序進(jìn)入大循環(huán),掃描是否有暫停鍵按下。(3)AD中斷服務(wù)程序進(jìn)行AD采樣,PIT中斷服務(wù)程序,進(jìn)行線性CCD返回?cái)?shù)值數(shù)據(jù)析.(4)轉(zhuǎn)向控制,速度控制,輸出相應(yīng)的PWM波值控制電機(jī)和舵機(jī),使智能小車在賽道上平穩(wěn)運(yùn)行。5.2采集傳感器信息及處理TSLS1404線性CCD的工作時(shí)序圖如圖:對(duì)賽道每掃描一次信息的初始化以及每取五次信息進(jìn)行一次傳輸: for(i=0; i<128; i+) *pixel_pt+ = 0; StartIntegration();/預(yù)曝光 EnableInterrupts;/開(kāi)中斷 for(;) /SpeedControl(); Mo

18、torAction(10); /key_scan();/鍵盤(pán)掃描 if(TimerFlag10ms = 1) TimerFlag10ms = 0;/清10ms標(biāo)志 cnt+; if(cnt >=5) cnt = 0; SendImageData(PixNew); 5.3計(jì)算賽道信息:在實(shí)際測(cè)試和比賽之中,CCD接收到的信息往往伴隨著許多雜點(diǎn),那么就要削減這些雜點(diǎn)對(duì)計(jì)算的影響,我們采用了高斯濾波去除錯(cuò)誤點(diǎn)并實(shí)現(xiàn)曲化采集到的賽道信息點(diǎn),為判斷出黑線邊界我們又對(duì)數(shù)據(jù)進(jìn)行了二值化,以獲取賽道的邊緣線。同時(shí)為了盡量減少CCD的曝光時(shí)間我們隊(duì)CPU的執(zhí)行進(jìn)行了順序化。最后達(dá)到獲取賽道的信息。二值化的

19、閾值在這里用了動(dòng)態(tài)閾值,大大克服了CCD對(duì)環(huán)境的光亮強(qiáng)的狹小范圍內(nèi)依賴程度搞得高的缺點(diǎn)、5.3.1,去噪點(diǎn)void Enosing(uchar *a) char i; for(i=1;i<127;i+) if(ai=0) if(ai-1=1)&&(ai+1=1) ai=1; if(ai=1) if(ai-1=0)&&(ai+1=0) ai=0; 5.3.2計(jì)算動(dòng)態(tài)閾值void trends_threshold(uchar *a) unsigned char i,j,zmax=0,zmin=255,zbmax=0,zbmin=255,zamax=0,zami

20、n=255,t0,t1,za,zb; for(i=0;i<row;i+) for(j=0;j<column;j+) if(aj>zmax) zmax=aj; if(aj<zmin) zmin=aj; t0=(zmax+zmin)/2; if(Threshold!=t0) for(j=0;j<column;j+) if(aj>=t0) if(aj>zamax) zamax=aj; if(aj<zamin) zamin=aj; else if(aj>zbmax) zbmax=aj; if(aj<zbmin) zbmin=aj; za=(z

21、amax+zamin)/2; zb=(zbmax+zbmin)/2; t1=(za+zb)/2; if(t1!=t0) t0=t1; Threshold=t1; 5.3.3獲取賽道信息;通過(guò)對(duì)左丟線還是右丟線來(lái)判別車體偏離中心線的程度。uchar RightLostCnt,LeftLostCnt;void Getline2 (uchar *a) uchar i; uchar LeftLostFlog=1,RightLostFlog=1; for(i=2;i<124;i+) if(abs(ai-ai+2)>Threshold) if(abs(ai-1-ai+3)&&a

22、bs(ai-2-ai+4) if(ai<ai+2) LeftPot=i+1; LeftLostFlog=0; LeftLostCnt=0; if(ai>ai+2) RightPot=i+1; RightLostFlog=0; RightLostCnt=0; if(LeftLostFlog=0)&&(RightLostFlog=0) RaceFlog=NotLost; else if(LeftLostFlog=0) RightLostCnt+; RaceFlog=RightLost; else if(RightLostFlog=0) LeftLostCnt+; Rac

23、eFlog=LeftLost; else RaceFlog=AllLost;5.4轉(zhuǎn)向控制策略;轉(zhuǎn)向控制信號(hào)的源輸入控制信號(hào)源自CPU對(duì)編碼器信息和傳感器CCD信息經(jīng)過(guò)一系PID計(jì)算分別對(duì)電機(jī)控制模塊輸出當(dāng)前小車狀態(tài)下賽道對(duì)電機(jī)運(yùn)轉(zhuǎn)的要求。提取賽道信息:float Direction_P;float Direction_D;float DirectionError0,DirectionError1,DirectionDiff; /0當(dāng)前差值,1上次差值int DirectionOut;void DirectionControl1(void) float fP,fD;float BorderCo

24、m;/丟線補(bǔ)償量 float BorderError;/丟線偏差/取中線偏差 if(RaceFlog=NotLost) Centerpot=(LeftPot+RightPot)/2; DirectionError0=Centerpot-LineCenter; else if (RaceFlog=RightLost) BorderError=LeftPot; BorderCom=BorderError_p1*BorderError*BorderError*BorderError +BorderError_p2*BorderError*BorderError Centerpot = (LeftPo

25、t +127+BorderCom)/2; DirectionError0 = Centerpot -LineCenter; else if (RaceFlog=LeftLost) BorderError=127-RightPot; BorderCom=BorderError_p1*BorderError*BorderError*BorderError +BorderError_p2*BorderError*BorderError +BorderError_p3*BorderError+BorderError_p4; Centerpot = (RightPot - BorderCom)/2; D

26、irectionError0 = Centerpot-LineCenter; else DirectionError0=DirectionError1;/位置式pid DirectionDiff=DirectionError0-DirectionError1 DirectionError1 = DirectionError0; DirectionOut = fP +fD; /角度限制在-290290 if(DirectionOut>290) DirectionOut=290; if(DirectionOut<-290) DirectionOut=-290;/舵機(jī)轉(zhuǎn)角 ServoAc

27、tion(DirectionOut); 5.5速度控制策略實(shí)際上是對(duì)電機(jī)驅(qū)動(dòng)模塊的控制通過(guò)編碼器將當(dāng)前小車的速度值反饋回來(lái),從而形成控制閉環(huán),利用PID制器配合不高,而對(duì)速度的變化速度要求很所以在控制的過(guò)程中當(dāng)速度和升速度差別很大的時(shí)候用ang-Bang控制從而可以迅速達(dá)到設(shè)定速度周圍,然后再通過(guò)PID控制平穩(wěn)控制速度達(dá)到設(shè)定值。在實(shí)運(yùn)行當(dāng)中,P的增大可以加快上升時(shí)間,使調(diào)節(jié)更快,但會(huì)引起較大震蕩,而增加D可以減少震蕩會(huì)是上升之穩(wěn)定的時(shí)間加長(zhǎng),由于車在運(yùn)行過(guò)程中屬于大慣性系統(tǒng),調(diào)整PD的時(shí)候優(yōu)先調(diào)整在達(dá)到適合的時(shí)間之后再去調(diào)整D使速度變化平穩(wěn)。速度給定策略基本思想史入彎減速,出彎加速,在曲率不

28、變的賽道上如直道,大的環(huán)形彎,十字彎上都加速通過(guò)。同時(shí)設(shè)置最快最慢速度閾值保證能順利入彎不會(huì)沖出賽道。程序一開(kāi)始小車需要靜止在軌道上兩秒,然后迅速加速達(dá)到設(shè)定速度,然后進(jìn)入行駛階段,在行駛階段按照速度控制策略盡量做到加速剎車快速,變化過(guò)程平穩(wěn)沒(méi)有震蕩,設(shè)定一個(gè)速度變化的閾值,避免速度劇烈變化,閾值的增加對(duì)于小車的適應(yīng)性有影響,所量避免限制的過(guò)緊??偨Y(jié)6.1效果:啟動(dòng)后,液晶顯示模塊各項(xiàng)參數(shù)顯示正常,起跑后能順利通過(guò)大小彎道直道。藍(lán)牙模塊能正常傳送各項(xiàng)參數(shù)到上位機(jī)。6.2遇到的問(wèn)題和解決辦法:6.2.1機(jī)械安裝上由于舵機(jī)安裝過(guò)程和舵機(jī)本身的原因,在矯正前輪初始擺正過(guò)程中未能達(dá)到理想要求。解決辦法

29、:適當(dāng)調(diào)整拉桿的長(zhǎng)度和舵機(jī)臂鎖定螺絲的位置。這個(gè)就要慢慢的調(diào)整了。 6.2.2方案問(wèn)題:(1)時(shí)序問(wèn)題:采集用的是藍(lán)宙的20ms曝光自適應(yīng)程序,但是稍微暗環(huán)境下上位機(jī)顯示電壓依然很低。也許是我們沒(méi)有領(lǐng)略到他的精華所在吧,晚上不能調(diào)車。當(dāng)光線很強(qiáng)的情況下,依然調(diào)不了車經(jīng)過(guò)一系列調(diào)整參數(shù),修改程序,最終確定方案如下:5ms曝光,數(shù)據(jù)采集,濾波,動(dòng)態(tài)閾值二值化,去除噪點(diǎn),根據(jù)獲取到的賽道信息,判定丟線情況。根據(jù)丟線點(diǎn)數(shù)的多少進(jìn)行補(bǔ)光量的計(jì)算并進(jìn)行舵機(jī)擺角的控制輸出。(2)對(duì)環(huán)境光強(qiáng)賴性很強(qiáng)的問(wèn)題弱動(dòng)態(tài)閾值二值化可以有效解決”自適應(yīng)曝光”依然有的暗光下,輸出電平依然很低的問(wèn)題。避障很好,估計(jì)是加入去噪

30、點(diǎn)的原因吧。動(dòng)態(tài)閾值即使在很差的環(huán)境之下他都會(huì)有一個(gè)閾值的輸出,二值化后可以清晰分辨出賽道信息的。(3)計(jì)算問(wèn)題:很大可能是當(dāng)時(shí)計(jì)算時(shí)候把此處的圓心到賽道中心線距離45按照?qǐng)A心到內(nèi)圓邊沿45來(lái)算的整整差出將近25CM.還有一個(gè)硬件上的問(wèn)題。由于用的是幾年前的一個(gè)后輪,昨天晚上發(fā)現(xiàn)重大缺陷,后輪沒(méi)有差速.根據(jù)提取到的賽道信息給定角度&紅圈左后輪極限情況是剛剛壓到內(nèi)黑線和右前輪剛剛壓到外圓邊沿。下面是對(duì)環(huán)形彎道的定時(shí)分析。 解決此問(wèn)題盡可以適當(dāng)增大離心率來(lái)解決其突發(fā)盲點(diǎn)。6.3隊(duì)員之間的合作尤為重要在整個(gè)制作過(guò)程中,時(shí)時(shí)刻刻都會(huì)面臨新的問(wèn)題 附錄:各模塊的部分程序:A/D轉(zhuǎn)換初始化,設(shè)置A

31、/D轉(zhuǎn)換時(shí)鐘頻率為4MHz #include "includes.h"/*/函 數(shù) 名:AD_Init /功 能:A/D轉(zhuǎn)換初始化,設(shè)置A/D轉(zhuǎn)換時(shí)鐘頻率為4MHz /參 數(shù):無(wú) /返 回:無(wú)*/void AD_Init_40M(void) /ATD0CTL4: SRESS8=0, 將采集到的模擬量以10位二進(jìn)制數(shù)表示 /SMP1=0,SMP0=0,采樣時(shí)間:2 A/D 時(shí)鐘周期 /PRS4=0,PRS3=0,PRS2=1,PRS1=0,PRS0=0 AD時(shí)鐘頻率 ATD0CTL4 = 0x04;/設(shè)置采樣時(shí)間和頻率,fATDCLK=fBUS/(2 ×(PRS +

32、 1) /ATD0CTL3: DJM=1,S8C=0,S4C=0,S2C=0,S1C=1,FIFO=0,FRZ1=0,FRZ0=0 ATD0CTL3 = 0x88; /采樣結(jié)果右對(duì)齊,每個(gè)序列的轉(zhuǎn)換個(gè)數(shù)為1 /ATD0CTL0: ?=0,?=0,?=0,?=0,WRAP3=0,WRAP2=0,WRAP1=0,WRAP0=1 ATD0CTL0 = 0x01; /AD循環(huán)采集到AN1后即可 /ATD0CTL1: ETRIGSEL=0,SRES1=1,SRES0=0,SMP_DIS=0,ETRIGCH3=1,ETRIGCH2=1 /ETRIGCH1=1,ETRIGCH0=1 ATD0CTL1 = 0

33、x4F; /12位分辨率,采樣前內(nèi)部采樣電容不放電 /ATD0CTL2: ?=0,AFFC=1,ICLKSTP=0,ETRIGLE=0,ETRIGP=0,ETRIGE=0,ASCIE=0, /ACMPIE=0 ATD0CTL2 = 0x40; /下降沿觸發(fā),不接受外部信號(hào),禁用ATD比較中斷請(qǐng)求 /* Description: AD_Measure12* function :通道選擇,采樣*/uint16_t AD_Measure12(uint8_t Channel) ATD0CTL5_Cx = Channel; while(ATD0STAT0_SCF = 0); return ATD0DR0

34、;電機(jī)控制*函數(shù)名稱:SpeedControl*描述 ;電機(jī)控制* *最后時(shí)間;*/float Speed_P;float Speed_I;float SpeedOutLast,SpeedOut;float SpeedError1,SpeedError0;float SpeedFactor=330;void SpeedControl(void) float RealSpeed,TheorySpeed,SpeedErrorDiff; float fP,fI; TheorySpeed = DirectionError0/tan(DirectionOut*0.0016) ; /0.0016為方向參數(shù)

35、轉(zhuǎn)化為弧度的比例 RealSpeed= PACNT/SpeedFactor; /PT7接受脈沖 PACNT=0; SpeedError0 = RealSpeed - TheorySpeed; SpeedErrorDiff = SpeedError0 - SpeedError1; fP = SpeedErrorDiff* Speed_P; fI = SpeedError0 * Speed_I; SpeedOut = SpeedOutLast+fP+fI; SpeedOutLast = SpeedOut; SpeedError1 = SpeedError0; if(SpeedOut>100)

36、 SpeedOut=100; if(SpeedOut<-100) SpeedOut=-100; MotorAction(SpeedOut);PWM模塊:void PWM_Init_40M(void) PWME=0x00; /關(guān)PWM PWMPRCLK=0x22; / 0011 0010 A=B=40M/4=10M 時(shí)鐘預(yù)分頻寄存器設(shè)置 PWMSCLA=5; / SA=A/2/5=1M 時(shí)鐘設(shè)置 PWMSCLB=5; / SB=B/2/5=1M 時(shí)鐘設(shè)置 PWMCTL=0x00; / 不級(jí)聯(lián) 控制寄存器設(shè)置 /motor_1 PWMCLK_PCLK0=1; / PWM0-SA 時(shí)鐘源的選擇

37、 PWMPOL_PPOL0=1; / Duty=High Time 極性設(shè)置 PWMCAE_CAE0=0; / Left-aligned 對(duì)齊方式設(shè)置 PWMPER0=100; / Frequency=SB/100=10K 周期寄存器設(shè)置 PWMDTY0=0; / Duty cycle = 0 占空比寄存器設(shè)置 /motor_2 PWMCLK_PCLK1=1; / PWM1-SA 時(shí)鐘源的選擇 PWMPOL_PPOL1=1; / Duty=High Time 極性設(shè)置 PWMCAE_CAE1=0; / Left-aligned 對(duì)齊方式設(shè)置 PWMPER1=100; / Frequency=SA/100=10K 周期寄存器設(shè)置 PWMDTY1=25; / Duty cycle = 0 占空比寄存器設(shè)置 /servoPWMPOL_PPOL7=1; / PWM輸出先高后低 PWMCLK_PCLK7=1; / 選擇Clock B作為通道7的時(shí)鐘 PWMCAE_CAE7=0; / 左對(duì)齊,1為中心對(duì)對(duì)齊 PWMCTL_CON67=1; / 級(jí)聯(lián)67 PWMPER67=20000; / 舵機(jī)PP67,,20MS PWMDTY67=18525; / 舵機(jī)中間值 20000-1475 WME=0xC3; /開(kāi)PWM SCI模塊void SCI0_In

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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)論