河海大學(xué)常州校區(qū)-睿翼隊(duì)技術(shù)報(bào)告_第1頁
河海大學(xué)常州校區(qū)-睿翼隊(duì)技術(shù)報(bào)告_第2頁
河海大學(xué)常州校區(qū)-睿翼隊(duì)技術(shù)報(bào)告_第3頁
河海大學(xué)常州校區(qū)-睿翼隊(duì)技術(shù)報(bào)告_第4頁
河海大學(xué)常州校區(qū)-睿翼隊(duì)技術(shù)報(bào)告_第5頁
已閱讀5頁,還剩45頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、第六屆“飛思卡爾”杯全國大學(xué)生智能汽車競賽技術(shù)報(bào)告 學(xué) 校: 河海大學(xué)常州校區(qū)隊(duì)伍名稱: 睿翼隊(duì)參賽隊(duì)員: 張程偉 張勝 陳文仙帶隊(duì)教師: 黃國銘 黃 皎關(guān)于技術(shù)報(bào)告和研究論文使用授權(quán)的說明本人完全了解第四屆“飛思卡爾”杯全國大學(xué)生智能汽車邀請賽關(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ì)教師簽名:黃國銘 黃皎 日期:2011-8-12摘要本文介紹了河海大學(xué)常州校區(qū)電磁組睿翼

2、隊(duì)的隊(duì)員在準(zhǔn)備第六屆“飛思卡爾”杯全國大學(xué)生智能汽車競賽過程中的工作成果。智能車的硬件平臺(tái)是采用帶MC9S12XS128 處理器的 S12 環(huán)境,軟件平臺(tái)為 CodeWarrior IDE 5.0 開發(fā)環(huán)境 ,車模采用大賽組委會(huì)統(tǒng)一提供的 1 : 10 的仿真車模。本智能車依據(jù)交流信號(hào)能夠產(chǎn)生磁場(電磁感應(yīng))的原理,采用LC 諧振回路感應(yīng)電磁信號(hào)尋跡方案,同時(shí)配合光電編碼盤、電機(jī)、舵機(jī)、電池以及相關(guān)驅(qū)動(dòng)電路來進(jìn)行信息的處理,以達(dá)到路徑識(shí)別的目的,并通過PID 方式對電機(jī)和舵機(jī)進(jìn)行相關(guān)調(diào)節(jié),最終以閉合回路的形式控制模型車高速穩(wěn)定地在跑道上行駛。在文中詳細(xì)介紹了睿翼隊(duì)的設(shè)計(jì)方案,其中包括機(jī)械結(jié)構(gòu)的

3、安裝與調(diào)整、硬件電路的設(shè)計(jì)與制作、信號(hào)采樣策略、舵機(jī)的轉(zhuǎn)向控制、速度的閉環(huán)控制,以及與此次競賽相關(guān)的各類調(diào)試方法的思路和用到的相關(guān)調(diào)試工具。關(guān)鍵詞:電磁感應(yīng) PID 路徑識(shí)別 閉環(huán)控制目錄第一章 引言.71.1 比賽背景介紹.71.2 技術(shù)報(bào)告結(jié)構(gòu).8第二章 智能汽車控制系統(tǒng)總體設(shè)計(jì).92.1 總體設(shè)計(jì)思路 .102.2 系統(tǒng)硬件結(jié)構(gòu) .102.3 系統(tǒng)軟件結(jié)構(gòu) .11第三章 智能汽車機(jī)械系統(tǒng)調(diào)整與改造.123.1 模型車車體安裝及調(diào)整 .123.1.1 前輪的調(diào)整 .133.1.2 重心的調(diào)整 .133.1.3 后輪差速的調(diào)整 .143.1.4 齒輪傳動(dòng)機(jī)構(gòu)的調(diào)整 .153.2 舵機(jī)的安裝

4、.153.3 電路板的安裝 .163.4 測速傳感器的安裝 .17第四章 智能汽車硬件電路設(shè)計(jì) .184.1 電源模塊 .184.2 傳感器模塊 .214.3 單片機(jī)模塊 .234.4 驅(qū)動(dòng)模塊 .24第五章 智能汽車控制算法與軟件設(shè)計(jì).255.1 系統(tǒng)初始化 .255.1.1 AD 初始化 .265.1.2 SPI 初始化 .275.1.3 PWM 初始化 .285.1.4 速度傳感器的初始化.295.1.5 串口初始化 .305.1.6 鎖相環(huán)設(shè)置 .305.2 磁場信號(hào)的提取與處理 .315.3 PID 控制算法及智能車中的應(yīng)用. .325.3.1 PID 控制算法簡介 .325.3.2

5、 轉(zhuǎn)向控制的PD 調(diào)節(jié) .335.3.3 速度控制策略 .335.4 起跑線檢測 .34第六章 智能汽車系統(tǒng)的系統(tǒng)調(diào)試.356.1 軟件開發(fā)平臺(tái)Codewarrior IDE.356.1.1 Codewarrior IDE 功能介紹 .366.1.2 Codewarrior IDE 基本使用方法 .376.2 上位機(jī)的設(shè)計(jì)與實(shí)現(xiàn) .386.2.1 數(shù)據(jù)的實(shí)時(shí)顯示 . 39.6.2.2 數(shù)據(jù)的分組處理 . 40第七章 總結(jié) .417.1 在調(diào)試過程中遇到的問題及解決方案 .417.2 體會(huì) .417.3 車模參數(shù). 42參考文獻(xiàn) .43附錄.44第一章引言1.1 比賽背景介紹“飛思卡爾”杯全國大

6、學(xué)生智能車設(shè)計(jì)大賽在國內(nèi)已是第六次舉辦,其是由飛思卡爾半導(dǎo)體公司資助舉辦的以飛思卡爾單片機(jī)為核心的大學(xué)生課外科技競賽。其專業(yè)知識(shí)涉及到了控制、模式識(shí)別、傳感技術(shù)、汽車電子、電氣、計(jì)算機(jī)、機(jī)械等多個(gè)學(xué)科,對學(xué)生的知識(shí)融合和實(shí)踐動(dòng)手能力的培養(yǎng),對高等學(xué)??刂萍捌囯娮訉W(xué)科學(xué)術(shù)水平的提高,具有良好的長期的推動(dòng)作用。對國內(nèi)大學(xué)生綜合素質(zhì)的提高,團(tuán)隊(duì)精神意識(shí)的培養(yǎng)都具有重大的意義。開展智能車技術(shù)的研究,對汽車工程的發(fā)展、交通安全的保障,以及公路交通的有效控制與管理都具有十分重要的意義。如果在遇到障礙時(shí)及時(shí)使汽車技師的減速或剎車,則能夠有效地避免交通事故的發(fā)生。此外,由于智能車輛帶有路況信息采集系統(tǒng),可以

7、由交通控制中心實(shí)時(shí)提供前方的路況信息,就可以提前規(guī)劃路徑,有效的改善城市交通擁擠的狀況。此外,智能車在航天和軍事方面都有很大的發(fā)展?jié)摿ΑS捎诨鹦窍喔舻厍蚝苓h(yuǎn),遠(yuǎn)距離無線控制實(shí)時(shí)性不好,為了使火星車在有限的壽命內(nèi)完成更多的科研任務(wù),就必須有自主駕駛能力。在軍事上,未來戰(zhàn)場環(huán)境多變,無人駕駛汽車能夠完成諸如后勤補(bǔ)給等任務(wù),還可以改裝為無人戰(zhàn)車,減少人員傷亡。顯然,智能車的研究開發(fā)有著很大的現(xiàn)實(shí)意義和廣闊的應(yīng)用前景。在本次比賽中,參賽者要在組委會(huì)提供的模型車體及主控微控制器芯片基礎(chǔ)上設(shè)計(jì)制作具有自主道路識(shí)別能力的智能汽車。組委會(huì)提供統(tǒng)一智能車競賽車模、單片機(jī)HCS12 開發(fā)板、開發(fā)軟件CodeWar

8、rior 和在線調(diào)試工具等;參賽隊(duì)伍在車模平臺(tái)基礎(chǔ)上,制作一個(gè)能夠自主識(shí)別路線的智能車,在專門設(shè)計(jì)的跑道上自動(dòng)識(shí)別道路行駛。根據(jù)賽車單圈最短時(shí)間進(jìn)行評獎(jiǎng)。本技術(shù)報(bào)告就是我們隊(duì)為參加此次比賽而撰寫的智能車設(shè)計(jì)方案, 本方案詳細(xì)介紹了我們車子的機(jī)械結(jié)構(gòu)安裝與調(diào)整方法、硬件電路設(shè)計(jì)與制作方法、軟件系統(tǒng)的設(shè)計(jì)方法以及整個(gè)系統(tǒng)的開發(fā)工具及調(diào)試手段等。1.2 技術(shù)報(bào)告結(jié)構(gòu)本文以第五屆全國大學(xué)生智能汽車競賽為背景,為了保證智能汽車能夠具有迅捷的速度、遠(yuǎn)而清晰的前瞻以及較高的靈敏度與穩(wěn)定性,從軟硬件方面對系統(tǒng)進(jìn)行了優(yōu)化。本文結(jié)構(gòu)安排如下:第一章,引言。第二章,智能汽車控制系統(tǒng)總體設(shè)計(jì)。第三章,智能汽車機(jī)械系統(tǒng)

9、調(diào)整與改造。第四章,智能汽車硬件電路設(shè)計(jì)。第五章,智能汽車系統(tǒng)控制算法與軟件設(shè)計(jì)。第六章,智能汽車系統(tǒng)的系統(tǒng)調(diào)試。第七章,總結(jié)。第二章 智能汽車控制系統(tǒng)總體設(shè)計(jì)2.1 總體設(shè)計(jì)思路本比賽過程核心是速度與穩(wěn)定性權(quán)衡的過程,在保證賽車沖不出跑道的情況下追求速度最快,用時(shí)最短。因此,獲取有效、可靠的賽道信息以及實(shí)施合理的控制策略是保證比賽取得好成績的先決條件。本屆比賽新增了電磁組,就是將原來以黑線為引導(dǎo)線改為以一根通有100mA左右、20K 的交流信號(hào)線為引導(dǎo)線,這樣就需要尋找與往屆不同的傳感來感測信號(hào)。依據(jù)電磁感應(yīng)的原理我們用LC 諧振回路為傳感器來采集信號(hào),這樣采集到的信號(hào)是20K 的交流信號(hào),

10、但是信號(hào)強(qiáng)度很小,最后用運(yùn)放對采集到的信號(hào)進(jìn)行放大,最終將此信號(hào)送給單片機(jī)進(jìn)行處理。電磁感應(yīng)傳感器與以往的光電和攝像頭組的傳感器相比較,消耗的功率小了,但是其前瞻收到了明顯的限制。在控制策略方面,主要包括轉(zhuǎn)向控制和速度控制。對于舵機(jī)的轉(zhuǎn)向控制,我們采取經(jīng)典的位置式PD 算法,通過判斷傳感器檢測到的直道或彎道信號(hào)給不同的PD 參數(shù),以達(dá)到不同的效果。對于電機(jī)的速度控制策略,采用PID 調(diào)節(jié)的同時(shí)引入反轉(zhuǎn)制動(dòng)剎車電路,使得小車在直道可以盡快加速并能保證在過彎時(shí)迅速減到過彎的速度,使得小車可以快速行駛。對于機(jī)械結(jié)構(gòu)方面,根據(jù)比賽情況的需要,對小車的機(jī)械結(jié)構(gòu)進(jìn)行合理安裝和調(diào)整,比如說重心的前后高低、兩

11、只前輪的傾角、光電編碼盤的安裝、舵機(jī)的安裝、懸掛的松緊,主板的放置等,以保證小車穩(wěn)定、快速的行駛。各個(gè)方面的之間的聯(lián)系如下圖所示圖2.1 智能車總體結(jié)構(gòu)圖2.2 系統(tǒng)硬件結(jié)構(gòu)此智能車采用諧振回路定位系統(tǒng)來跟蹤前方的賽道,通過諧振回路將檢測到了信號(hào)進(jìn)行放大,送給外部A/D 進(jìn)行數(shù)據(jù)的處理,最后送給MC9S12XS128 進(jìn)行相應(yīng)的運(yùn)算,然后將計(jì)算得到的數(shù)據(jù)送給舵機(jī)和電機(jī),對其進(jìn)行相應(yīng)的控制。其中所用的硬件結(jié)構(gòu)包括:電源模塊、MC9S12XS128 系統(tǒng)、傳感器模塊、電機(jī)驅(qū)動(dòng)模塊、無線模塊。 電源模塊是將電池電壓通過穩(wěn)壓芯片進(jìn)行處理后,提供穩(wěn)定的電壓輸出,供給各個(gè)系統(tǒng)各模塊,為其提供可靠供電。 M

12、C9S12XS128 系統(tǒng)是整個(gè)硬件的核心部分,主要是給MC9S12XS128 單片機(jī)提供可工作的最小系統(tǒng),使其可是正常的工作。 傳感器模塊包括前面的電磁感應(yīng)模塊、速度傳感器模塊以及起跑線檢測模塊。電磁感應(yīng)模塊的作用是檢測前方的信號(hào),并將信號(hào)進(jìn)行簡單的處理后送給單片機(jī),單片機(jī)隨后根據(jù)送來的信號(hào)進(jìn)行運(yùn)算,將運(yùn)算結(jié)果送給電機(jī)對其控制,再由速度傳感器光電編碼盤對實(shí)際值進(jìn)行檢測,將反饋信號(hào)送給單片機(jī),最終形成閉環(huán)系統(tǒng)。 電機(jī)驅(qū)動(dòng)模塊是根據(jù)控制器輸出的PWM 信號(hào)進(jìn)行直流電機(jī)的轉(zhuǎn)速控制。 無線模塊是將傳感器數(shù)據(jù)實(shí)時(shí)發(fā)送到上位機(jī),便于上位機(jī)的數(shù)據(jù)分析,參數(shù)修正,從而提高調(diào)試效率。2.3 系統(tǒng)軟件結(jié)構(gòu)系統(tǒng)硬

13、件是整個(gè)系統(tǒng)的基礎(chǔ),系統(tǒng)軟件結(jié)構(gòu)則根據(jù)硬件和控制需求來制定。系統(tǒng)的基本軟件流程為:首先,對各功能模塊和控制參數(shù)進(jìn)行初始化。然后,通過電磁傳感器采集到的數(shù)據(jù)獲取前方賽道的情況,同時(shí)通過速度傳感器模塊獲取賽車的速度。采用PD 對舵機(jī)進(jìn)行反饋控制。另外根據(jù)檢測到的速度,結(jié)合速度控制策略,對賽車速度不斷進(jìn)行適當(dāng)調(diào)整,使賽車在符合比賽規(guī)則的前提下,沿賽道快速行駛。圖2.2 系統(tǒng)的軟件結(jié)構(gòu)第三章 智能汽車機(jī)械系統(tǒng)調(diào)整與改造在對智能車幾個(gè)月來的研究,我們發(fā)現(xiàn)在規(guī)則允許范圍內(nèi),適當(dāng)優(yōu)化機(jī)械結(jié)構(gòu)可以帶來事半功倍的效果。其中包括很多方面,比如前輪傾角的選擇、舵機(jī)的安裝、懸掛的松緊、重心的高低前后等等。3.1 模型

14、車車體安裝及調(diào)整該車模是本屆比賽的B型車模,與往屆比賽的車模不一樣,車架長28.75cm,寬16.6cm,高7.cm,底盤采用2.5mm厚的玻璃纖維板, 具有一定的彈性和剛性。前輪調(diào)整方式簡單,全車滾珠軸承。前后輪軸高度可調(diào)(離地間隙0.75cm/1.65cm),雙滾珠差速。圖3.1 智能車車模根據(jù)長期的調(diào)試,我們發(fā)現(xiàn)對于前輪傾角、懸掛、后輪的差速做調(diào)整會(huì)使車行駛時(shí)有更好的效果。3.1.1 前輪的調(diào)整對于汽車的行駛向前和轉(zhuǎn)彎,都是由四個(gè)輪胎與地之間的摩擦力所驅(qū)使的,所以如果對車輪有一個(gè)合適的定位,則可以使汽車直線行駛時(shí)更加穩(wěn)定、轉(zhuǎn)向更加輕便,并且可以減少輪胎和轉(zhuǎn)向系零件的磨損等。根據(jù)汽車?yán)碚摚?/p>

15、對前輪的調(diào)整主要包括主銷后傾,主銷內(nèi)傾,前輪外傾,前輪前束幾個(gè)方面。 主銷后傾圖3.2 主銷后傾圖主銷后傾角指主稍軸線與地面垂直線在汽車縱向平面內(nèi)的夾角。 有主銷后傾角時(shí)汽車的車輪在車輪偏轉(zhuǎn)后,車輪和地面的作用會(huì)使車輪產(chǎn)生一回正力矩,糾正車輪的偏轉(zhuǎn)。 主銷內(nèi)傾圖3.3 主銷內(nèi)傾圖主銷內(nèi)傾角指主稍軸線與地面垂直線在汽車橫向斷面內(nèi)的夾角。當(dāng)轉(zhuǎn)向輪在外力作用下發(fā)生偏轉(zhuǎn)時(shí),由于主銷內(nèi)傾的作用,車輪有自動(dòng)回正的作用,同時(shí)轉(zhuǎn)向時(shí),路面作用在轉(zhuǎn)向輪上的阻力矩也將變小,時(shí)轉(zhuǎn)向操縱輕便。 前輪前束圖3.4 前輪前束圖前輪前束就是使兩前輪的中心面不平行,讓其前端距離小于后端距離。由于模型車在長時(shí)間的調(diào)試過程中,其

16、前輪便會(huì)變得很松,軸也會(huì)松動(dòng),適當(dāng)?shù)那笆鴮π≤嚨倪^彎性能有一定的幫助。3.1.2 重心的調(diào)整對于車的重心來說,重心越低,后輪的抓地力也就越好,前輪也會(huì)轉(zhuǎn)越敏感。因此,我們在盡量減少重量的同時(shí)將電路板做得非常小,剛好能斜嵌放在舵機(jī)和電池中間的底板上,這樣,不但可以壓低模型車的重心,防止高速過彎時(shí)翻車,也可以使縱向重心前移,增加轉(zhuǎn)彎性能。在裝旋轉(zhuǎn)編碼器時(shí)也把其裝的很低,以降低賽車的重心,提高賽車行駛的穩(wěn)定性。除了對車的重心進(jìn)行縱向調(diào)整之外,對車輛重心進(jìn)行前后方向調(diào)整,對賽車行駛性能也有很大的影響。從車輛運(yùn)動(dòng)學(xué)理論來看,車身重心前移,會(huì)增加轉(zhuǎn)向,但會(huì)是舵機(jī)的負(fù)載加大,大部分的重量壓在前輪,從而降低轉(zhuǎn)

17、向的靈敏度,同時(shí)降低后輪的抓地力;如果重心后移,就會(huì)減少轉(zhuǎn)向,但增大轉(zhuǎn)向靈敏度,后輪的抓地力也會(huì)增加。因此,調(diào)整合適的車身重心,讓車模更加適應(yīng)比賽賽道是非常關(guān)鍵的。為了保證賽車足夠的轉(zhuǎn)向和防止在高速入彎時(shí)出現(xiàn)甩尾現(xiàn)象,我們讓重心大概在賽車的中心,在過彎時(shí),使其前后輪的側(cè)向摩擦力大體相當(dāng),從而提高過彎性能和穩(wěn)定性。3.1.3 后輪差速的調(diào)整在拐彎時(shí)由于彎道內(nèi)側(cè)輪比外側(cè)輪的拐彎半徑小,則內(nèi)側(cè)輪比外側(cè)輪的速度小,這就使兩輪胎有一定的速度差,稱為差速。而賽車的差速機(jī)構(gòu)安裝在后輪軸上的,所以只可以調(diào)整后輪的差速。差速的作用是在車模轉(zhuǎn)彎的時(shí)候,降低后輪與地面之間的滑動(dòng);并且還可以保證在輪胎抱死的情況下不會(huì)

18、損害到電機(jī),其特性是:阻力越大的一側(cè),驅(qū)動(dòng)齒輪的轉(zhuǎn)速越低;而阻力越小的一側(cè),驅(qū)動(dòng)齒輪的轉(zhuǎn)速越高。以此次使用的后輪差速器為例,在過彎時(shí),因外側(cè)前輪輪胎所遇的阻力較小,輪速便較高;而內(nèi)側(cè)前輪輪胎所遇的阻力較大,輪速便較低。如果差速過緊,即兩輪胎的速度很接近時(shí),轉(zhuǎn)彎的時(shí)候內(nèi)側(cè)輪很容易打滑,從而產(chǎn)生側(cè)滑,使賽車滑出賽道。當(dāng)差速過松時(shí),會(huì)使直道的時(shí)候兩輪打滑,大大的減小了賽車的驅(qū)動(dòng)能力。所以差速調(diào)整要適當(dāng),才會(huì)使直道驅(qū)動(dòng)能力強(qiáng),彎道轉(zhuǎn)彎靈巧。3.1.4 齒輪傳動(dòng)機(jī)構(gòu)的調(diào)整齒輪傳動(dòng)機(jī)構(gòu)的調(diào)整就是調(diào)整電機(jī)輸出軸的齒輪與后輪軸上齒輪之間的耦合程度。當(dāng)耦合比較松時(shí)由于兩齒輪之間存在較大的縫隙,齒輪轉(zhuǎn)動(dòng)時(shí)會(huì)產(chǎn)生很

19、大的兩齒輪之間的碰撞聲音,這樣會(huì)大大增加齒輪的磨損。當(dāng)耦合的比較緊時(shí)齒輪之間的摩擦力變大,這樣就會(huì)使電機(jī)分出一部分驅(qū)動(dòng)力克服齒輪之間的摩擦力做功,電機(jī)的負(fù)載無形中就增強(qiáng),從而減小了電機(jī)對后輪的驅(qū)動(dòng)能力。通過長時(shí)間的調(diào)試,我們發(fā)現(xiàn)通過聲音辨別的方法來調(diào)整齒輪的耦合程度是很有效的方法。當(dāng)齒輪耦合較松或兩齒輪之間不平行時(shí)的聲音很響,也就是齒輪之間撞擊的聲音很大,當(dāng)齒輪耦合比較緊時(shí)聲音很沉悶并且遲滯,最佳狀態(tài)是基本上沒有撞擊的聲音,聲音清脆并且沒有遲滯現(xiàn)象。3.2 舵機(jī)的安裝根據(jù)車模說明書組裝完成后,不難發(fā)現(xiàn)舵機(jī)在車模中間部分所占面積較多。因此,將舵機(jī)前移至于前輪水平線上,這樣不但可以增加車模中間部分

20、的面積用來放置主板,同時(shí)還可以使縱向重心前移,增加轉(zhuǎn)彎性能。圖3.5 舵機(jī)安裝圖3.3 電路板的安裝電路板是模型車上的核心部分,在安裝時(shí),考慮到電路板的穩(wěn)定性和模型車的重心等問題,我們把電路板做的比較小,斜嵌安裝在舵機(jī)和電池中間的底板上。圖3.6 主板安裝圖3.4 測速傳感器的安裝為了不影響加速性能,編碼器的傳動(dòng)齒輪選擇相對較小,齒輪之間呈水平狀態(tài)。這樣安裝齒輪咬合很好,即避免由于齒輪咬合太緊以致加重負(fù)載,同時(shí)也避免了因過松而出現(xiàn)的在轉(zhuǎn)動(dòng)中齒輪撞擊的現(xiàn)象,并減少電機(jī)的摩擦損耗和噪音。安裝完成后,要保證兩傳動(dòng)齒輪與測速齒輪嚙合良好,流轉(zhuǎn)順暢,判斷齒輪嚙合是否調(diào)整好的一個(gè)依據(jù)是:聽一下電機(jī)帶動(dòng)后輪

21、空轉(zhuǎn)時(shí)的聲音,聲音刺耳響亮,說明齒輪間的配合間隙過大,傳動(dòng)中有撞齒現(xiàn)象;聲音悶而且有遲滯,則說明齒輪間的配合間隙過小,或者齒輪軸向不平行,電機(jī)負(fù)載加大。調(diào)整好的齒輪傳動(dòng)噪音小,并且不會(huì)有碰撞類的雜音。圖3.7 光電編碼盤安裝圖第四章 智能汽車硬件電路設(shè)計(jì)電磁組智能車的硬件系統(tǒng)主要有以下幾個(gè)模塊組成:傳感器模塊、單片機(jī)模塊、電源模塊和驅(qū)動(dòng)模塊,以及調(diào)試時(shí)使用的無線收發(fā)模塊。為了減小重量,我們將單片機(jī)模塊、電源模塊、驅(qū)動(dòng)模塊和無線收發(fā)模塊都做在一塊板子上,并將主板放在舵機(jī)和電池的中間。下面將各個(gè)模塊詳細(xì)介紹。4.1 電源模塊電源模塊為整個(gè)系統(tǒng)提供電力供應(yīng),其工作的穩(wěn)定性直接關(guān)系著小車其他電路模塊的

22、正常工作,重要性不言而喻。在設(shè)計(jì)電源模塊時(shí),首先應(yīng)綜合考慮各模塊電路對電源功率的需求,然后根據(jù)需求選擇相應(yīng)的穩(wěn)壓芯片。在該小車的電源模塊設(shè)計(jì)過程中,在考慮各模塊對電源的功率需求之后,我們選擇一片LM1117-adj 為舵機(jī)供電,一片LM2940為單片機(jī)及編碼器供電,同時(shí),由于是第一次設(shè)置電磁組參賽類別,考慮到傳感器數(shù)量的可擴(kuò)充性,我們選擇兩片LM2940 并聯(lián)為傳感器模塊供電。具體原理圖如下。圖4.1 原理圖4.2 傳感器模塊電磁組的賽道信息是由20kHz、100mA 的交流電源流經(jīng)導(dǎo)線產(chǎn)生的交變磁場,如何將磁場信息檢測出來是傳感器設(shè)計(jì)的第一步。人類對磁場的研究有的極其漫長的歷史,物質(zhì)與磁場之

23、間也有著許多不同的物理效應(yīng)聯(lián)系:磁電效應(yīng)(電磁感應(yīng)、霍爾效應(yīng)、磁致電阻效應(yīng))、磁機(jī)械效應(yīng)、磁光效應(yīng)、核磁共振、超導(dǎo)體與電子自旋量子力學(xué)效應(yīng)。根據(jù)不同的物理效應(yīng),可以設(shè)計(jì)出不同磁場精度和范圍的傳感器。我們需要選擇適合車模競賽的路徑檢測方法,必須綜合考慮傳感器的磁場檢測精度、尺寸大小、頻率響應(yīng)、價(jià)格、功耗以及實(shí)現(xiàn)的難易程度等。在具體的設(shè)計(jì)過程中,我們選擇了最傳統(tǒng)的電磁感應(yīng)線圈方案,這種方案的原理簡單,電路較易實(shí)現(xiàn),并且設(shè)計(jì)出來的傳感器體積小、價(jià)格便宜、功耗低,可以滿足小車競賽循跡的要求。比賽選擇20kHz 的交變磁場作為路徑的導(dǎo)航信號(hào),在頻譜上可以有效避開周圍其他磁場的干擾??梢岳肔C 并聯(lián)電路

24、來實(shí)現(xiàn)選頻電路,對感應(yīng)信號(hào)進(jìn)行有效的放大。市場上購買比較方便的是10mH 的電感,根據(jù)LC 并聯(lián)諧振公式:可以計(jì)算出選頻所需的電容容值,市場上與該容值最為接近的是6.8nf,因此,在實(shí)際的電路中,我們選擇10mH的電感與6.8nf 的電容并聯(lián)來實(shí)現(xiàn)信號(hào)的選頻。選頻之后,需要對信號(hào)進(jìn)行有效的放大。在競賽秘書處提供的電磁組競賽車模路徑檢測設(shè)計(jì)參考方案中,提到了用三極管對選頻之后的信號(hào)進(jìn)行放大,而我們在設(shè)計(jì)的過程中選擇了用運(yùn)放放大,基于以下幾點(diǎn)理由:在當(dāng)今的電子領(lǐng)域,運(yùn)放已經(jīng)發(fā)展到了一個(gè)比較成熟的階段,普通的民用級運(yùn)放在性能上已經(jīng)能滿足大部分的設(shè)計(jì)需求。運(yùn)放較三極管而言,工作更加穩(wěn)定,工作狀態(tài)不易受

25、外界環(huán)境的影響。運(yùn)放只需搭配簡單的外圍電路就能使用,而三極管需配置合適的靜態(tài)工作點(diǎn)才能正常工作,并且靜態(tài)工作點(diǎn)容易受到外界因素的影響,使得各傳感器的放大倍數(shù)存在難以知道的差異。因此,在查閱了一些運(yùn)放的參數(shù)之后,我們選擇了LM386 對選頻信號(hào)行放大,從示波器中,我們看出放大之后的信號(hào)較為可觀。圖4.2 運(yùn)放模塊原理圖4.3 單片機(jī)模塊以MC9S12XS128 為核心的單片機(jī)系統(tǒng)的硬件電路設(shè)計(jì)主要包括以下幾個(gè)部分:時(shí)鐘電路、復(fù)位電路、串口電路。各個(gè)部分的功能如下:時(shí)鐘電路給單片機(jī)提供一個(gè)外接的16MHz 的無源晶振。復(fù)位電路在電壓達(dá)到正常值時(shí)給單片機(jī)一個(gè)復(fù)位信號(hào)。串口電路使S12 與PC 機(jī)之間

26、建立連接。本系統(tǒng)采用的是標(biāo)準(zhǔn)的MC9S12 系列單片機(jī)的時(shí)鐘電路,通過把一個(gè)16MHz 的外部晶振接在單片機(jī)的外部晶振輸入接口EXTAL 和XTAL 上,然后利用MC9S12XS128 內(nèi)部的壓控振蕩器和鎖相環(huán)(PLL)把這個(gè)頻率提高,作為單片機(jī)工作的內(nèi)部總線時(shí)鐘。原理圖如下:圖4.3 外部晶振圖本系統(tǒng)直接采用一個(gè)0.1uF 的電容提供低電平復(fù)位信號(hào),手動(dòng)復(fù)位按鈕在系統(tǒng)調(diào)試時(shí)的作用很大。原理圖如下:圖4.4 復(fù)位電路原理圖串口電路使S12 單片機(jī)與PC 機(jī)之間能夠通信,在調(diào)試的過程中發(fā)揮著極大的作用。S12 最小系統(tǒng)原理圖如下:圖4.5 S12 最小系統(tǒng)原理圖4.4 驅(qū)動(dòng)模塊本方案的電機(jī)控制采

27、用ir2104 控制搭建的H 橋控制電機(jī)。這樣電路的內(nèi)阻很小,并且允許通過的電流很大,可以提供很強(qiáng)的驅(qū)動(dòng)能力。驅(qū)動(dòng)電路如圖所示。圖4.6 電機(jī)驅(qū)動(dòng)模塊原理圖第五章 智能汽車控制算法與軟件設(shè)計(jì)在智能車的整個(gè)系統(tǒng)中,硬件是基礎(chǔ),沒有一個(gè)好的硬件平臺(tái),軟件也就無法實(shí)現(xiàn)。而軟件對于整個(gè)智能車來說相當(dāng)于靈魂,只有有了軟件,智能車才能真正的達(dá)到智能的標(biāo)準(zhǔn)。對于軟件來說,首先是要對智能車的核心單片機(jī)的各個(gè)寄存器進(jìn)行初始化,然后在這個(gè)基礎(chǔ)上添加一些函數(shù)和控制算法。本屆電磁組智能車所用的芯片是MC9S12XS128,下面就對單片機(jī)的初始化話和各個(gè)控制算法進(jìn)行詳細(xì)的介紹。5.1 系統(tǒng)初始化由于我們采集的信號(hào)是正弦

28、信號(hào)及模擬信號(hào),而且用到外部AD,因此初始化主要包括:AD 初始化、PWM 初始化、SPI 初始化、串口初始化、速度傳感器初始化、鎖相環(huán)設(shè)置以及端口初始化。5.1.1 AD 初始化MC9S12XS128 單片機(jī)的AD 轉(zhuǎn)換模塊主要有以下幾個(gè)特點(diǎn):8/10/12 位的轉(zhuǎn)換精度、3us 一次的轉(zhuǎn)換時(shí)間可編程采樣時(shí)間、外部觸發(fā)控制、轉(zhuǎn)換完成中斷、連續(xù)轉(zhuǎn)換模式、1 到8 轉(zhuǎn)換序列長度等。但是考慮到速度的問題,在該系統(tǒng)中我們采用的是外部AD,然后通過SPI將信號(hào)傳遞到單片機(jī)進(jìn)行處理。5.1.2 SPI 初始化SPI 接口是全雙工三線同步串行外圍接口,采用主從模式架構(gòu),支持slave模式應(yīng)用,一般僅支持單

29、Master,數(shù)據(jù)的傳輸速率可達(dá)Mbps 的水平。圖5.1 SPI 傳輸引腳圖SPI 接口一共有四根信號(hào)線,分別是設(shè)備選擇線、時(shí)鐘線、串行輸出數(shù)據(jù)線、串行輸入數(shù)據(jù)線。其初始化過程為:SPI0CR1=0X1A;SPI0CR2_XFRW=1;/16 BIT WIDTHSPI0CR2_MODFEN=1;/SS port pin with MODF featureSPI0BR=0X00;/12Mbit/sSPI0CR1_SPE=1;/SPI0 使能5.1.3 PWM 初始化PWM 調(diào)制波有8 個(gè)輸出通道,每個(gè)輸出通道都可以獨(dú)立的輸出,每個(gè)通道都有一個(gè)精確的計(jì)數(shù)器來計(jì)算脈沖的個(gè)數(shù),還有兩個(gè)可供選擇的時(shí)鐘

30、源。其初始化的一般步驟是:禁止PWM、選擇時(shí)鐘、選擇極性、選擇對其模式、對占空比和周期進(jìn)行編程、使能PWM 通道。圖5.2 S12 中PWM 通路在本系統(tǒng)中需要兩路PWM 通道來分別控制舵機(jī)和電機(jī)的轉(zhuǎn)向和轉(zhuǎn)動(dòng)。舵機(jī)的PWM 是將0 和1 路的PWM 合并后進(jìn)行控制,這樣可以是舵機(jī)的精度從1/255 提高到1/65535 其初始設(shè)置如下:PWME=0; /關(guān)中斷PWMPRCLK=0x00; /不預(yù)分頻PWMCLK_PCLK1=1; /1 通道選擇時(shí)鐘SAPWMSCLA=40; /SA8 分頻PWMPOL_PPOL1=1; /極性選擇,占空比為PWMDTY01/PWMPER01PWMCAE_CAE

31、1=0; /左對齊PWMCTL_CON01=1; /將通道0/1 合并PWMDTY01=470; /高電平持續(xù)時(shí)間,確定占空比中427 右PWMPER01=3000; / 10msPWME_PWME1=1; /打開16 位PWM015.1.4 速度傳感器的初始化對每個(gè)控制周期內(nèi)速度傳感器產(chǎn)生的脈沖數(shù)進(jìn)行累加,就可以測得這個(gè)控制周期內(nèi)汽車行駛的平均速度。考慮到目前速度傳感器的精度較高,采用了16 位的脈沖累加器進(jìn)行脈沖計(jì)數(shù)。PACTL_PAEN=1; /開16 位脈沖累加器PACTL_PAMOD=0;PACTL_PEDGE=1;/上升沿觸發(fā)PACTL_PAOVI=0;PACTL_PAI=0; /

32、禁止累加器溢出/觸發(fā)中斷5.1.5 串口初始化SCI 串行通信接口是一種通用異步通信接口UART,與MCS-51 的異步通信功能基本相同,為異步的串行通行。S12 有兩個(gè)串行通信接口SCI1 和SCI0,均為TTL 電平輸出用時(shí)可以對波特率、數(shù)據(jù)格式、發(fā)送輸出極性、接收喚醒方式等進(jìn)行選擇。另外發(fā)送和接受也可分開使能。其初始化的過程如下:SCI0BDL=0X9c; /Bandrate=9600SCI0CR1_LOOPS=0; /normal modeSCI0CR1_M=0; /8bitSCI0CR2_RIE=1; /接受中斷開SCI0CR2_TE=1;SCI0CR2_RE=1; /enable

33、T/R5.1.6 鎖相環(huán)設(shè)置鎖相環(huán)路實(shí)際上是指自動(dòng)相位控制電路,是利用兩個(gè)電信號(hào)的相位誤差,通過環(huán)路自身的調(diào)節(jié)作用,實(shí)現(xiàn)頻率準(zhǔn)確定位的系統(tǒng)。圖5.3 鎖相環(huán)系統(tǒng)圖S12 單片機(jī)中有四個(gè)不同的時(shí)鐘外部晶振時(shí)鐘、鎖相環(huán)時(shí)鐘、總線時(shí)鐘和內(nèi)核時(shí)鐘。該系統(tǒng)采用的是16MHZ 的外部晶振,在默認(rèn)的設(shè)置下,鎖相環(huán)時(shí)鐘為32MHZ,總時(shí)鐘為8MHZ,內(nèi)核時(shí)鐘為16MHZ。鎖相環(huán)時(shí)鐘與外部晶振時(shí)鐘的關(guān)系是由寄存器SYNR 和REFDV 來決定的。通過寄存器的設(shè)置,可以使總線時(shí)鐘超頻到40MHZ。當(dāng)POSTDIV!=0 時(shí),fbus=fpll/2=fvco/(4*POSTDIV)=fosc*(SYNDIV+1)/

34、(2*POSTDIV*(REFDIV+1)當(dāng)POSTDIV=0 時(shí),fbus=fpll/2=fvco/2=fosc*(SYNDIV+1)/(REFDIV+1)具體設(shè)置過程如下:CLKSEL=0X00; / disengage PLL to systemPLLCTL_PLLON=1; / turn on PLLREFDV=1; /鎖相環(huán)時(shí)鐘=2*16*(2+1)/(1+1)=48MHzSYNR=2; /總線時(shí)鐘=48/2=24MHzPOSTDIV=0x00; / fPLL= fVCO/(2xPOSTDIV)PLLCTL_CME=1; /打開時(shí)鐘monitorwhile(!(CRGFLG_LOCK

35、=1); /when pll is steady ,then use it;CLKSEL_PLLSEL =1; /engage PLL to system;5.2 磁場信號(hào)的提取與處理在本屆的電磁組智能車中,所檢測的信號(hào)是電磁信號(hào),為連續(xù)的模擬量,及在整個(gè)跑道的橫向范圍能都能檢測到信號(hào)的存在,唯一的差異就是信號(hào)的強(qiáng)弱。這樣我們可以有兩種處理方法:設(shè)定一個(gè)閥值,將在導(dǎo)線左右一定小的范圍內(nèi)的信號(hào)處理為檢測到導(dǎo)線,將其他的情況設(shè)定為沒有檢測到導(dǎo)線。這樣的處理方法就是將電磁信號(hào)處理成和光電一樣的數(shù)字信號(hào)進(jìn)行處理。圖5.4 信號(hào)處理效果圖:將整個(gè)跑道中檢測到的信號(hào)作為模擬量進(jìn)行處理,這樣檢測到的信號(hào)離導(dǎo)

36、線越近強(qiáng)度越大,在跑道的邊緣則信號(hào)越弱。對于傳感器的控制我們采取的是第二種方法。第一排的傳感器主要工作是檢測當(dāng)前導(dǎo)線的位置。我們在第一排上放了3 個(gè)傳感器來檢測信號(hào),然后根據(jù)各自的位置和檢測到的信號(hào)對得到的值進(jìn)行加權(quán)平均,這樣就得到了當(dāng)前黑線的位置。這樣根據(jù)得到的值可以得出當(dāng)前黑線與車身之間的夾角,然后將這一數(shù)據(jù)進(jìn)行處理轉(zhuǎn)化成PWM 信號(hào)送給舵機(jī)。5.3 PID 控制算法及智能車中的應(yīng)用5.3.1 PID 控制算法簡介自從計(jì)算機(jī)進(jìn)入控制領(lǐng)域以來,用數(shù)字計(jì)算機(jī)代替模擬計(jì)算機(jī)調(diào)節(jié)器組成計(jì)算機(jī)控制系統(tǒng),不僅僅可以用軟件實(shí)現(xiàn)PID 控制算法,而且可以利用計(jì)算機(jī)的邏輯功能,使PID 控制更加靈活。數(shù)字P

37、ID 控制在生產(chǎn)過程中是最普遍采用的控制算法,在機(jī)電、冶金、機(jī)械、化工等行業(yè)中獲得了廣泛的應(yīng)用。將偏差的比例(P)、積分(I)和微分(D)通過線性組合構(gòu)成控制量,對被控制對象進(jìn)行控制,故稱為PID 控制器。比例調(diào)節(jié)(P)的作用:對偏差瞬間做出作出反應(yīng)。偏差一旦產(chǎn)生控制器立即產(chǎn)生控制作用,使控制量向著減少偏差的方向變化??刂谱饔玫膹?qiáng)弱取決于比例系數(shù) ,比例系數(shù) 越大,控制作用越強(qiáng),則過渡過程越快,控制過程的靜態(tài)偏差也就越小;但是 越大,也越容易產(chǎn)生振蕩,破壞系統(tǒng)的穩(wěn)定性。故而,比例系數(shù) 選擇必須恰當(dāng),才能過渡時(shí)間少,靜差小而又穩(wěn)定的效果。積分調(diào)節(jié)(I)的作用:是使系統(tǒng)消除穩(wěn)態(tài)誤差,提高無差度。因

38、為有誤差,積分調(diào)節(jié)就進(jìn)行,直至無差,一旦停止,積分調(diào)節(jié)輸出異常值。積分作用的強(qiáng)弱取決于積分時(shí)間常數(shù),越小,積分作用就越強(qiáng)。反之則積分作用弱,加入積分調(diào)節(jié)可使系統(tǒng)穩(wěn)定性下降,動(dòng)態(tài)響應(yīng)變慢。積分作用常與另兩種調(diào)節(jié)規(guī)律結(jié)合,組成 PI 調(diào)節(jié)器或 PID 調(diào)節(jié)器。微分調(diào)節(jié)(D)的作用:阻止偏差的變化。它是根據(jù)偏差的變化趨勢(變化速度)進(jìn)行控制。偏差變化的越快,微分控制器的輸出就越大,并能在偏差值變大之前進(jìn)行修正。微分作用的引入,將有助于減小超調(diào)量,克服振蕩,使系統(tǒng)趨于穩(wěn)定,特別對高階系統(tǒng)非常有利,它加快了系統(tǒng)的跟蹤速度。但微分的作用對輸入信號(hào)的噪聲很敏感,對那些噪聲較大的系統(tǒng)一般不用微分,或在微分起作

39、用之前先對輸入信號(hào)進(jìn)行濾波。根據(jù) PID 控制器原理得知,PID 控制器的主要作用是快速平穩(wěn)地消除系統(tǒng)產(chǎn)生的偏差。圖5.5 模擬PID 控制系統(tǒng)原理圖5.3.2 轉(zhuǎn)向控制的PD 調(diào)節(jié)對于舵機(jī)的轉(zhuǎn)向我們采取的是傳統(tǒng)的PD 調(diào)節(jié)方法。根據(jù)前面?zhèn)鞲衅鞯玫降男盘?hào)進(jìn)行處理后,得出導(dǎo)線對于當(dāng)點(diǎn)小車的具體位置,然后通過PD 運(yùn)算給舵機(jī)一個(gè)值,使其得到一個(gè)相應(yīng)的位置夾角,同時(shí)前端傳感器再次檢測是否達(dá)到所要的結(jié)果,然后對舵機(jī)再做控制。這樣就形成一個(gè)閉環(huán)的控制算法。在車模偏離導(dǎo)線較小時(shí),舵機(jī)的轉(zhuǎn)角變化率較小時(shí),同時(shí)舵機(jī)轉(zhuǎn)角變化率較小時(shí),所給的P 和D 參數(shù)較?。划?dāng)在車模偏離黑色引導(dǎo)線較大時(shí),同時(shí)舵機(jī)的轉(zhuǎn)角變化率也

40、較大時(shí),所給的PD 參數(shù)也較大??偟膩碚f,就是用分段的PD 調(diào)節(jié)來對舵機(jī)進(jìn)行控制調(diào)節(jié)的。5.3.3 速度控制策略圖5.6 小功率直流電機(jī)調(diào)速系統(tǒng)對于電機(jī)的PID 控制策略,我們使用的是一般的增量式的PID 調(diào)節(jié)。對于參數(shù)Kp、Kd 以及Ki 的整定有以下幾個(gè)方法:1、在偏差比較大時(shí), 為使盡快消除偏差, 提高響應(yīng)速度, 同時(shí)為了避免系統(tǒng)響應(yīng)出現(xiàn)超調(diào),Kp 取大值,Ki 取零;在偏差比較小時(shí),為繼續(xù)減小偏差,并防止超調(diào)過大、產(chǎn)生振蕩、穩(wěn)定性變壞,Kp 值要減小, Ki 取小值;在偏差很小時(shí),為消除靜差,克服超調(diào),使系統(tǒng)盡快穩(wěn)定, Kp 值繼續(xù)減小, Ki 值不變或取稍大。2、當(dāng)偏差與偏差變化率同

41、號(hào)時(shí),被控量是朝偏離既定值方向變化。因此,當(dāng)被控量接近定值時(shí),反向的比例作用阻礙積分作用,避免積分超調(diào)及隨之而來的振蕩,有利于控制;而當(dāng)被控量遠(yuǎn)未接近各定值并向定值變化時(shí),則由于這兩項(xiàng)反向,將會(huì)減慢控制過程。在偏差比較大時(shí),偏差變化率與偏差異號(hào)時(shí), Kp 值取零或負(fù)值,以加快控制的動(dòng)態(tài)過程。3、偏差變化率的大小表明偏差變化的速率,差值越大, Kp 取值越小, Ki取值越大,反之亦然。同時(shí),要結(jié)合偏差大小來考慮。4、微分作用可改善系統(tǒng)的動(dòng)態(tài)特性,阻止偏差的變化,有助于減小超調(diào)量,消除振蕩,縮短調(diào)節(jié)時(shí)間,允許加大Kp,使系統(tǒng)穩(wěn)態(tài)誤差減小,提高控制精度,達(dá)到滿意的控制效果。所以,在當(dāng)前值比較大時(shí),K

42、d 取零,實(shí)際為 PI 控制;在當(dāng)前值比較小時(shí), Kd 取正值,實(shí)行 PID 控制。電機(jī)的PID 調(diào)節(jié)后的效果圖如下所示:圖5.7 電機(jī)PID 調(diào)節(jié)效果圖5.4 起跑線檢測本屆智能車電磁組智能車競賽的起跑線與光電和攝像頭組的競賽都有所不同,它是以6 塊磁鐵為起跑線的檢測:圖5.8 競賽跑道起跑區(qū)示意圖由于是以磁鐵為起跑線,如果用檢測導(dǎo)線的傳感器去檢測起跑線是不現(xiàn)實(shí)的,所以我們采用干簧管為起跑線的檢測裝置。干簧管是一種磁敏的特殊開關(guān)。它通常由兩個(gè)或三個(gè)既導(dǎo)磁又導(dǎo)電材料做成的簧片觸點(diǎn),被封裝在充有惰性氣體(如氮、氦等)或真空的玻璃管里,玻璃管內(nèi)平行封裝的簧片端部重疊,并留有一定間隙或相互接觸以構(gòu)成

43、開關(guān)的常開或常閉接點(diǎn)。當(dāng)永久磁鐵靠近干簧管時(shí),或者由繞在干簧管上面的線圈通電后形成磁場使簧片磁化時(shí),簧片的接點(diǎn)就會(huì)感應(yīng)出極性相反的磁極。由于磁極極性相反而相互吸引,當(dāng)吸引的磁力超過簧片的抗力時(shí),分開的接點(diǎn)便會(huì)吸合;當(dāng)磁力減小到一定值時(shí),在簧片抗力的作用下接點(diǎn)又恢復(fù)到初始狀態(tài)。這樣便完成了一個(gè)開關(guān)的作用。 因此可以作為傳感器用,用于計(jì)數(shù),限位等等。有一種自行車公里計(jì),就是在輪胎上粘上磁鐵,在一旁固定上兩個(gè)簧片的干簧管構(gòu)成的。裝在門上,可作為開門時(shí)的報(bào)警、問候等。在“斷線報(bào)警器”的制作中,也會(huì)用到干簧管。圖5.9 干簧管實(shí)物圖根據(jù)多次試驗(yàn),我們發(fā)現(xiàn),如果用一排單簧管作為起跑線的檢測裝置在某些區(qū)域內(nèi)

44、則會(huì)產(chǎn)生死區(qū),及檢測不到起跑線。所以為了是起跑線的檢測更加準(zhǔn)確,我們采用在一個(gè)位置上放置兩個(gè)相互垂直的干簧管作為檢測裝置,如圖所示:圖5.10 起跑線檢測模塊這樣在小車運(yùn)行的時(shí)候,無論車模處于什么位置都可以檢測到起跑線。第六章 智能汽車系統(tǒng)的系統(tǒng)調(diào)試當(dāng)一個(gè)系統(tǒng)方案設(shè)計(jì)好之后,主要的工作是將其付諸于實(shí)踐,在真實(shí)的軟硬件平臺(tái)上進(jìn)行調(diào)試,不斷細(xì)化,找出最佳的方案。在整個(gè)系統(tǒng)的開發(fā)過程中,使用的是 Metrowerks 公司為 MC9S12 系列單片機(jī)專門提供的全套開發(fā)工具(Metrowerks Codewarrior IDE)。這是一套用 C 語言進(jìn)行編程的集成開發(fā)環(huán)境。本文智能車系統(tǒng)的軟件設(shè)計(jì)部分

45、就是在此開發(fā)環(huán)境下完成的。6.1 軟件開發(fā)平臺(tái)Codewarrior IDE在整個(gè)開發(fā)調(diào)試過程中, 使用 Metrowerks 公司為 MC9S12 系列專門提供的全套開發(fā)工具Freescale Codewarrior IDE 5.0。CodeWarrior for S12 是面向以HC12 或S12 為 CPU 的單片機(jī)嵌入式應(yīng)用開發(fā)的軟件包。包括集成開發(fā)環(huán)境IDE、處理器專家?guī)?、全芯片仿真、可視化參?shù)顯示工具、項(xiàng)目工程管理器、C交叉編譯器、匯編器、鏈接器以及調(diào)試器。在Codewarrior 軟件中可以使用匯編語言或C 語言,以及兩種語言的混合編程。CodeWarrior IDE 能夠自動(dòng)地

46、檢查代碼中的明顯錯(cuò)誤,它通過一個(gè)集成的調(diào)試器和編輯器來掃描你的代碼,以找到并減少明顯的錯(cuò)誤,然后編譯并鏈接程序以便計(jì)算機(jī)能夠理解并執(zhí)行你的程序。 每個(gè)應(yīng)用程序都經(jīng)過了使用CodeWarrior 這樣的開發(fā)工具進(jìn)行編碼、編譯、編輯、鏈接和調(diào)試的過程。Metrowerks Codewarrior IDE 中的 mc9s12xs128.h 文件對所有寄存器對應(yīng)的存儲(chǔ)映射地址都進(jìn)行了宏定義,開發(fā)者在軟件開發(fā)時(shí)直接調(diào)用這些宏就可以了。6.1.1 Codewarrior IDE 功能介紹CodeWarrior IDE 能夠自動(dòng)檢查代碼中的語法錯(cuò)誤,它通過一個(gè)集成的調(diào)器和編輯器來掃描代碼,以找到并減少明顯的

47、錯(cuò)誤,然后編譯、鏈接程序以計(jì)算機(jī)能夠理解和執(zhí)行程序。每個(gè)應(yīng)用程序都經(jīng)過了像 CodeWorrior 這樣的試便開發(fā)工具進(jìn)行編輯、編譯、鏈接和調(diào)試的過程。6.1.2 Codewarrior IDE 基本使用方法 選擇建立工程, 選擇新建工程向?qū)D6.1 新建工程 選擇具體芯片型號(hào)MC9S12XS128圖6.2 選擇芯片 選擇編程語言,可以有多種選擇,可以是匯編、C、C+ , 輸入工程名為text,并設(shè)置程序地址圖6.3 選擇語言 選擇不采用選擇處理器專家系統(tǒng) 不選用pc-lint 選擇不使用“浮點(diǎn)指針支持” 內(nèi)存模式選擇 選擇仿真選項(xiàng)對于48 步驟的設(shè)置一般是取默認(rèn)值,所以只要在步驟3 的界面直

48、接點(diǎn)擊完成就可以。這樣一個(gè)仿真工程建立完成。 我們使用的是CodeWarrior 比較新的版本CodeWarrior5.0,用它可以很好很方便的完成MCS12DG128B 單片機(jī)的新工程的建立,程序的編寫、下載和調(diào)試。通過BDM 頭不僅可以燒寫程序,還可以在程序運(yùn)行時(shí)實(shí)時(shí)查看各參數(shù)的值。仿真調(diào)試窗口入圖3.1 所示圖6.4 仿真調(diào)試窗口6.2 上位機(jī)的設(shè)計(jì)與實(shí)現(xiàn)在調(diào)試的時(shí)候需要讓單片機(jī)將當(dāng)前的相關(guān)數(shù)據(jù)通過無線串口發(fā)送給電腦,然后對數(shù)據(jù)進(jìn)行分析,再做相應(yīng)的調(diào)整。有時(shí)需要根據(jù)事實(shí)情況來判斷系統(tǒng)現(xiàn)在所處理的數(shù)據(jù),這就需要上位機(jī)有實(shí)時(shí)顯示的功能;有時(shí)需要同時(shí)發(fā)送幾個(gè)相關(guān)的數(shù)據(jù),這時(shí)就需要對數(shù)據(jù)進(jìn)行相應(yīng)

49、的處理,使其分組顯示。所以根據(jù)不同的情況,分別設(shè)計(jì)了不同的上位機(jī)來對數(shù)據(jù)進(jìn)行處理。6.2.1 數(shù)據(jù)的實(shí)時(shí)顯示對于數(shù)據(jù)的實(shí)時(shí)顯示,是建立在MATLAB 的平臺(tái)上構(gòu)建起來的。MATLAB 是矩陣實(shí)驗(yàn)室(Matrix Laboratory)的簡稱,是美國MathWorks 公司出品的商業(yè)數(shù)學(xué)軟件,用于算法開發(fā)、數(shù)據(jù)可視化、數(shù)據(jù)分析以及數(shù)值計(jì)算的高級技術(shù)計(jì)算語言和交互式環(huán)境。MATLAB 由一系列工具組成,這些工具方便用戶使用MATLAB 的函數(shù)和文件,其中許多工具采用的是圖形用戶界面。包括MATLAB 桌面和命令窗口、歷史命令窗口、編輯器和調(diào)試器、路徑搜索和用于用戶瀏覽幫助、工作空間、文件的瀏覽器。

50、Matlab 一個(gè)高級的矩陣/陣列語言,它包含控制語句、函數(shù)、數(shù)據(jù)結(jié)構(gòu)、輸入和輸出和面向?qū)ο缶幊烫攸c(diǎn)。用戶可以在命令窗口中將輸入語句與執(zhí)行命令同步,也可以先編寫好一個(gè)較大的復(fù)雜的應(yīng)用程序(M 文件)后再一起運(yùn)行。MATLAB 有強(qiáng)大的科學(xué)計(jì)算機(jī)數(shù)據(jù)處理能力,出色的圖形處理功能,以及實(shí)用的程序接口和發(fā)布平臺(tái)。該上位機(jī)是根據(jù)無線串口的相關(guān)函數(shù)在MATLAB 的平臺(tái)上建立的可視化編程。其可視化界面如下圖所示:圖6.5 上位機(jī)實(shí)時(shí)顯示在運(yùn)行該上位機(jī)之前,首先需要設(shè)定波特率、端口號(hào)和接收數(shù)據(jù)類型(ASC碼或十進(jìn)制碼),然后運(yùn)行,等待數(shù)據(jù)的接受。當(dāng)上位機(jī)接收到數(shù)據(jù)時(shí),就是在顯示區(qū)域?qū)崟r(shí)顯示所接受的數(shù)據(jù)。6.2.2 數(shù)據(jù)的分組處理在對數(shù)據(jù)的分

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(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ǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論