三江學(xué)院三江攝像頭2隊(duì)新教學(xué)資料_第1頁(yè)
三江學(xué)院三江攝像頭2隊(duì)新教學(xué)資料_第2頁(yè)
三江學(xué)院三江攝像頭2隊(duì)新教學(xué)資料_第3頁(yè)
三江學(xué)院三江攝像頭2隊(duì)新教學(xué)資料_第4頁(yè)
三江學(xué)院三江攝像頭2隊(duì)新教學(xué)資料_第5頁(yè)
已閱讀5頁(yè),還剩41頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

Goodisgood,butbettercarriesit.

精益求精,善益求善。

三江學(xué)院三江攝像頭2隊(duì)新

第三屆“飛思卡爾”杯全國(guó)大學(xué)生

智能汽車邀請(qǐng)賽

技術(shù)報(bào)告

學(xué)校:三江學(xué)院

隊(duì)伍名稱:三江攝像頭2隊(duì)

參賽隊(duì)員:邢小強(qiáng)

湯佩和

金寅鋒

帶隊(duì)教師:楊正理

孫書芳

關(guān)于技術(shù)報(bào)告和研究論文使用授權(quán)的說明

本人完全了解第二屆“飛思卡爾”杯全國(guó)大學(xué)生智能汽車邀請(qǐng)賽關(guān)保留、使用技術(shù)報(bào)告和研究論文的規(guī)定,即:參賽作品著作權(quán)歸參賽者本人,比賽組委會(huì)和飛思卡爾半導(dǎo)體公司可以在相關(guān)主頁(yè)上收錄并公開參賽作品的設(shè)計(jì)方案、技術(shù)報(bào)告以及參賽模型車的視頻、圖像資料,并將相關(guān)內(nèi)容編纂收錄在組委會(huì)出版論文集中。

參賽隊(duì)員簽名:

帶隊(duì)教師簽名:

日期:

目錄

TOC\o"1-3"\h\z

HYPERLINK\l"_Toc206924613"

目錄

PAGEREF_Toc206924613\h

III

HYPERLINK\l"_Toc206924614"

第一章引言

PAGEREF_Toc206924614\h

1

HYPERLINK\l"_Toc206924615"

1.1大賽背景和概況

PAGEREF_Toc206924615\h

1

HYPERLINK\l"_Toc206924616"

1.2智能車應(yīng)用前景

PAGEREF_Toc206924616\h

1

HYPERLINK\l"_Toc206924617"

第二章賽車整體設(shè)計(jì)思路

PAGEREF_Toc206924617\h

2

HYPERLINK\l"_Toc206924618"

2.1系統(tǒng)設(shè)計(jì)方案要求、目標(biāo)

PAGEREF_Toc206924618\h

2

HYPERLINK\l"_Toc206924619"

2.2系統(tǒng)硬件結(jié)構(gòu)

PAGEREF_Toc206924619\h

2

HYPERLINK\l"_Toc206924620"

2.3系統(tǒng)軟件結(jié)構(gòu)

PAGEREF_Toc206924620\h

3

HYPERLINK\l"_Toc206924621"

第三章賽車機(jī)械部分設(shè)計(jì)

PAGEREF_Toc206924621\h

5

HYPERLINK\l"_Toc206924622"

3.1車體結(jié)構(gòu)設(shè)計(jì)

PAGEREF_Toc206924622\h

5

HYPERLINK\l"_Toc206924623"

3.1.1前輪傾角的調(diào)整

PAGEREF_Toc206924623\h

5

HYPERLINK\l"_Toc206924624"

3.1.2后輪差速機(jī)構(gòu)調(diào)整

PAGEREF_Toc206924624\h

6

HYPERLINK\l"_Toc206924625"

3.1.3舵機(jī)的安裝方式

PAGEREF_Toc206924625\h

6

HYPERLINK\l"_Toc206924626"

3.1.4攝像頭的固定

PAGEREF_Toc206924626\h

7

HYPERLINK\l"_Toc206924627"

3.2測(cè)速模塊設(shè)計(jì)與安裝

PAGEREF_Toc206924627\h

8

HYPERLINK\l"_Toc206924628"

3.3主板的安裝

PAGEREF_Toc206924628\h

9

HYPERLINK\l"_Toc206924629"

第四章系統(tǒng)硬件電路設(shè)計(jì)

PAGEREF_Toc206924629\h

10

HYPERLINK\l"_Toc206924630"

4.1S12微控制器的組成

PAGEREF_Toc206924630\h

10

HYPERLINK\l"_Toc206924631"

4.2電機(jī)驅(qū)動(dòng)電路模塊

PAGEREF_Toc206924631\h

10

HYPERLINK\l"_Toc206924632"

4.3圖像處理模塊

PAGEREF_Toc206924632\h

12

HYPERLINK\l"_Toc206924633"

4.4電源模塊

PAGEREF_Toc206924633\h

14

HYPERLINK\l"_Toc206924634"

第五章軟件設(shè)計(jì)方案

PAGEREF_Toc206924634\h

17

HYPERLINK\l"_Toc206924635"

5.1圖像采集和數(shù)據(jù)處理

PAGEREF_Toc206924635\h

17

HYPERLINK\l"_Toc206924636"

5.2速度控制

PAGEREF_Toc206924636\h

19

HYPERLINK\l"_Toc206924637"

5.2.1速度傳感器模塊

PAGEREF_Toc206924637\h

19

HYPERLINK\l"_Toc206924638"

5.2.2速度檢測(cè)的初始化及速度獲取

PAGEREF_Toc206924638\h

20

HYPERLINK\l"_Toc206924639"

5.2.3速度的控制

PAGEREF_Toc206924639\h

20

HYPERLINK\l"_Toc206924640"

5.3舵機(jī)轉(zhuǎn)向控制

PAGEREF_Toc206924640\h

21

HYPERLINK\l"_Toc206924641"

5.4起始線的識(shí)別

PAGEREF_Toc206924641\h

22

HYPERLINK\l"_Toc206924642"

第六章賽車調(diào)試

PAGEREF_Toc206924642\h

23

HYPERLINK\l"_Toc206924643"

6.1軟件調(diào)試平臺(tái)CodeWarrior

PAGEREF_Toc206924643\h

23

HYPERLINK\l"_Toc206924644"

6.2CodeWarriorIDE基本使用方法

PAGEREF_Toc206924644\h

24

HYPERLINK\l"_Toc206924645"

第七章模型車的主要技術(shù)參數(shù)

PAGEREF_Toc206924645\h

27

HYPERLINK\l"_Toc206924646"

第八章結(jié)論

PAGEREF_Toc206924646\h

28

HYPERLINK\l"_Toc206924647"

參考文獻(xiàn)

PAGEREF_Toc206924647\h

29

HYPERLINK\l"_Toc206924648"

附件A程序源代碼

PAGEREF_Toc206924648\h

30

第一章引言

1.1大賽背景和概況

“飛思卡爾”杯全國(guó)大學(xué)生智能汽車競(jìng)賽是由教育部高等學(xué)校自動(dòng)化專業(yè)教學(xué)指導(dǎo)分委員會(huì)主辦,飛思卡爾半導(dǎo)體公司協(xié)辦的全國(guó)性的比賽。

與以往的專業(yè)競(jìng)賽不同,智能車大賽是以迅猛發(fā)展的汽車電子為背景,涵蓋了控制、模式識(shí)別、傳感技術(shù)、電子、電氣、計(jì)算機(jī)、機(jī)械等多個(gè)學(xué)科交叉的科技創(chuàng)新比賽,已經(jīng)成為各高校展示科研成果和學(xué)生實(shí)踐能力的重要途徑,同時(shí)也為社會(huì)選拔優(yōu)秀的創(chuàng)新人才提供了重要平臺(tái)。

第三屆“飛思卡爾”杯全國(guó)大學(xué)生智能汽車競(jìng)賽于2008年7月中旬舉行分區(qū)比賽,8月上旬舉行全國(guó)總決賽。競(jìng)賽內(nèi)容包括:以飛思卡爾HCS12單片機(jī)為核心控制模塊,以CCD或光電檢測(cè)元件檢測(cè)賽道引導(dǎo)線,引導(dǎo)改裝后的模型汽車以最快的速度按照大賽組委會(huì)所設(shè)定的賽道行進(jìn),以賽車在最短時(shí)間跑完全程的隊(duì)為優(yōu)勝隊(duì)。該競(jìng)賽是涵蓋了控制、模式識(shí)別、傳感技術(shù)、電子、電氣、計(jì)算機(jī)、機(jī)械等多個(gè)學(xué)科的科技創(chuàng)意性比賽,極具挑戰(zhàn)性與競(jìng)爭(zhēng)性。該比賽已經(jīng)列入教育部主辦的全國(guó)大學(xué)生五大競(jìng)賽之一。

1.2智能車應(yīng)用前景

智能車要實(shí)現(xiàn)在城市繁忙道路上完全無(wú)人駕駛,尚有很多研究工作要做。但是通過這輛車來(lái)研究一些關(guān)鍵技術(shù),并且把它們應(yīng)用到實(shí)際工程中去,還是可行的。譬如GPS在汽車定位、導(dǎo)航中的應(yīng)用;又如多種傳感器信息處理,如果將二維圖像與激光雷達(dá)的信息融合起來(lái),可以得到更確切的道路或環(huán)境的信息;傳感器技術(shù)和自動(dòng)駕駛技術(shù)可以實(shí)現(xiàn)汽車的自適應(yīng)巡航,輔助人們把車開得又快又穩(wěn)、安全可靠;汽車夜間行駛時(shí),如果裝上紅外攝像頭,就能實(shí)現(xiàn)夜晚的汽車安全輔助駕駛;在倉(cāng)庫(kù)、碼頭、工廠、機(jī)關(guān)、營(yíng)房、住宅區(qū)或者危險(xiǎn)、有毒、有害的工作環(huán)境里,自動(dòng)駕駛或遙控駕駛技術(shù)有著廣泛的應(yīng)用前景,如無(wú)人值守的巡邏監(jiān)視、設(shè)備的維護(hù)修理、物料的運(yùn)輸、消防滅火等等,有單位曾希望他們?cè)O(shè)計(jì)出遙控駕駛的消防車。

第二章賽車整體設(shè)計(jì)思路

2.1系統(tǒng)設(shè)計(jì)方案要求、目標(biāo)

智能車競(jìng)賽所使用的車模是一款帶有差速器的后輪驅(qū)動(dòng)模型賽車,由大賽組委會(huì)統(tǒng)一提供。通過設(shè)計(jì)基于Freescale公司開發(fā)的MC9S12DG128單片機(jī)的自動(dòng)控制器控制模型車在封閉的跑道上自主循線運(yùn)行。

自動(dòng)控制器是以單片機(jī)MC9S12DG128為核心,配合有傳感器,電機(jī),舵機(jī),電池及相應(yīng)的驅(qū)動(dòng)電路,它能夠自主識(shí)別路徑,控制模型車高速穩(wěn)定運(yùn)行在跑道上。

智能車競(jìng)賽要求參賽隊(duì)伍設(shè)計(jì)一輛以組委會(huì)提供的車模為主體的可以在賽道上自主尋線的模型車,比賽成績(jī)?yōu)閱稳ψ詈贸煽?jī)。

設(shè)計(jì)自動(dòng)控制器是制作智能車的核心環(huán)節(jié)??煽啃允侨〉贸煽?jī)的有力保障。在提高車速的同時(shí)保證智能車的穩(wěn)定性。同時(shí)盡量簡(jiǎn)化電路設(shè)計(jì),提高靈活性。

2.2系統(tǒng)硬件結(jié)構(gòu)

按照預(yù)計(jì)的設(shè)計(jì),我們?cè)O(shè)計(jì)出了系統(tǒng)結(jié)構(gòu)圖。我們力求在最簡(jiǎn)的硬件系統(tǒng)上實(shí)現(xiàn)我們所要的效果,使得系統(tǒng)更高效。

在組委會(huì)提供的車?;A(chǔ)上,通過MC9S12DG128采樣視頻信號(hào),獲得圖像數(shù)據(jù)。然后根據(jù)圖像數(shù)據(jù),提取目標(biāo)指引線。

圖像采集模塊主要有攝像頭、S12的A/D模塊、外圍芯片LM1881和電路組成。

舵機(jī)模塊主要控制智能車的轉(zhuǎn)角。驅(qū)動(dòng)模塊用于提供賽車的驅(qū)動(dòng),主要由MC33886芯片及其電路組成。

速度傳感器模塊由小型光電編碼器和ect脈沖捕捉功能構(gòu)成。提供速度閉環(huán)控制。

硬件系統(tǒng)結(jié)構(gòu)如圖2.1所示。

SKIPIF1<0

圖2.1硬件系統(tǒng)結(jié)構(gòu)

2.3系統(tǒng)軟件結(jié)構(gòu)

有了系統(tǒng)硬件結(jié)構(gòu)做后盾,通過軟件算法給小車注入思想后就可以跑起來(lái)了。

系統(tǒng)的基本軟件流程為:首先,對(duì)各功能模塊和控制參數(shù)進(jìn)行初始化。然后,通過圖像采集模塊獲取前方賽道的圖像數(shù)據(jù),然后S12利用邊緣檢測(cè)方法從圖像數(shù)據(jù)中提取賽道黑線,求得賽車與黑線位置的偏差,接著采對(duì)舵機(jī)進(jìn)行反饋控制。同時(shí)通過速度傳感器模塊獲取賽車的速度。根據(jù)檢測(cè)到的速度,結(jié)合速度控制策略,對(duì)賽車速度不斷進(jìn)行適當(dāng)調(diào)整,使賽車在符合比賽規(guī)則的前提下,沿賽道快速行駛。系統(tǒng)的基本軟件結(jié)構(gòu)如圖2.2所示。

SKIPIF1<0

圖2.2軟件流程圖

第三章賽車機(jī)械部分設(shè)計(jì)

3.1車體結(jié)構(gòu)設(shè)計(jì)

此次比賽選用的賽車車模采用1/10的仿真車模。賽車機(jī)械結(jié)構(gòu)只使用競(jìng)賽提供車模的底盤部分及轉(zhuǎn)向和驅(qū)動(dòng)部分??刂撇捎们拜嗈D(zhuǎn)向,后輪驅(qū)動(dòng)方案。

軟件程序和控制算法是要在一定的機(jī)械結(jié)構(gòu)上才能充分發(fā)揮的。所以機(jī)械部分不能小視。在對(duì)車體的機(jī)械結(jié)構(gòu)有了感性認(rèn)識(shí)后,針對(duì)具體的設(shè)計(jì)方案來(lái)調(diào)整小車的機(jī)械結(jié)構(gòu)。

3.1.1前輪傾角的調(diào)整

前輪是轉(zhuǎn)向輪,它的安裝位置由主銷內(nèi)傾、主銷后傾、前輪外傾和前輪前束等4個(gè)項(xiàng)目決定,反映了轉(zhuǎn)向輪、主銷和前軸等三者在車架上的位置關(guān)系。

主銷內(nèi)傾是指主銷裝在前軸略向內(nèi)傾斜的角度,它的作用是使前輪自動(dòng)回正。角度越大前輪自動(dòng)回正的作用就越強(qiáng)烈,但轉(zhuǎn)向時(shí)也越費(fèi)力,輪胎磨損增大;反之,角度越小前輪自動(dòng)回正的作用就越弱。

主銷后傾是指主銷裝在前軸,上端略向后傾斜的角度。它使車輛轉(zhuǎn)彎時(shí)產(chǎn)生的離心力所形成的力矩方向與車輪偏轉(zhuǎn)方向相反,迫使車輪偏轉(zhuǎn)后自動(dòng)恢復(fù)到原來(lái)的中間位置上。由此,主銷后傾角越大,車速越高,前輪穩(wěn)定性也愈好。

主銷內(nèi)傾和主銷后傾都有使汽車轉(zhuǎn)向自動(dòng)回正,保持直線行駛的功能。不同之處是主銷內(nèi)傾的回正與車速無(wú)關(guān),主銷后傾的回正與車速有關(guān),因此高速時(shí)后傾的回正作用大,低速時(shí)內(nèi)傾的回正作用大。

前輪外傾角對(duì)汽車的轉(zhuǎn)彎性能有直接影響,它的作用是提高前輪的轉(zhuǎn)向安全性和轉(zhuǎn)向操縱的輕便性。前輪外傾角俗稱“外八字”,如果車輪垂直地面一旦滿載就易產(chǎn)生變形,可能引起車輪上部向內(nèi)傾側(cè),導(dǎo)致車輪聯(lián)接件損壞。

所謂前束是指兩輪之間的后距離數(shù)值與前距離數(shù)值之差,也指前輪中心線與縱向中心線的夾角。前輪前束的作用是保證汽車的行駛性能,減少輪胎的磨損。前輪在滾動(dòng)時(shí),其慣性力會(huì)自然將輪胎向內(nèi)偏斜,如果前束適當(dāng),輪胎滾動(dòng)時(shí)的偏斜方向就會(huì)抵消,輪胎內(nèi)外側(cè)磨損的現(xiàn)象會(huì)減少。

3.1.2后輪差速機(jī)構(gòu)調(diào)整

當(dāng)賽車在正常過彎時(shí)(假設(shè)無(wú)轉(zhuǎn)向不足亦無(wú)轉(zhuǎn)向過度),4個(gè)輪子的轉(zhuǎn)速皆不相同,依序?yàn)椋和鈧?cè)前輪>外側(cè)后輪>內(nèi)側(cè)前輪>內(nèi)側(cè)后輪。此次所使用車模配備的是后輪差速機(jī)構(gòu)。差速器的特性是:阻力越大的一側(cè),驅(qū)動(dòng)齒輪的轉(zhuǎn)速越低;而阻力越小的一側(cè),驅(qū)動(dòng)齒輪的轉(zhuǎn)速越高。以此次使用的后輪差速器為例,在過彎時(shí),因外側(cè)后輪輪胎所遇的阻力較小,輪速便較高;而內(nèi)側(cè)后輪輪胎所遇的阻力較大,輪速便較低。

差速器的調(diào)整中要注意滾珠輪盤間的間隙,過松過緊都會(huì)使差速器性能降低,轉(zhuǎn)彎時(shí)阻力小的車輪會(huì)打滑,從而影響車模的過彎性能。好的差速機(jī)構(gòu),應(yīng)該在電機(jī)不轉(zhuǎn)的情況下,右輪向前轉(zhuǎn)過的角度與左輪向后轉(zhuǎn)過的角度近似相等,不會(huì)有遲滯或者過轉(zhuǎn)動(dòng)的情況發(fā)生。

調(diào)整的原則是:兩傳動(dòng)齒輪軸保持平行,齒輪間的配合間隙要合適,過松容易打壞齒輪,過緊又會(huì)增加傳動(dòng)阻力,白白浪費(fèi)動(dòng)力;傳動(dòng)部分要輕松、順暢,容易轉(zhuǎn)動(dòng),不能有卡住或遲滯現(xiàn)象。電機(jī)轉(zhuǎn)動(dòng)時(shí)抓住其中的一只輪子,另一只依然能稍稍轉(zhuǎn)動(dòng)為佳。

3.1.3舵機(jī)的安裝方式

舵機(jī)轉(zhuǎn)向是整個(gè)控制系統(tǒng)中延遲較大的一個(gè)環(huán)節(jié),為了減小此時(shí)間常數(shù),通過改變舵機(jī)的安裝位置,而并非改變舵機(jī)本身結(jié)構(gòu)的方法可以提高舵機(jī)的響應(yīng)速度。分析舵機(jī)控制轉(zhuǎn)向輪轉(zhuǎn)向的原理可以發(fā)現(xiàn),在相同的舵機(jī)轉(zhuǎn)向條件下,轉(zhuǎn)向連桿在舵機(jī)一端的連接點(diǎn)離舵機(jī)軸心距離越遠(yuǎn),轉(zhuǎn)向輪轉(zhuǎn)向變化越快。這相當(dāng)于增大力臂長(zhǎng)度,提高線速度。針對(duì)上述特性,將舵機(jī)安裝做了相關(guān)的改動(dòng)(如圖3.1)。

這樣安裝的優(yōu)點(diǎn)是:1)改變了舵機(jī)的力臂,使轉(zhuǎn)向更靈敏2)舵機(jī)安裝在了正中央,使左右轉(zhuǎn)向基本一致3)舵機(jī)轉(zhuǎn)角更穩(wěn)定。

圖3.1舵機(jī)安裝方式

3.1.4攝像頭的固定

攝像頭的安裝位置應(yīng)合適選取。安裝位置太低,會(huì)導(dǎo)致視域不夠廣闊,影響尋線的有效范圍;安裝位置太高,導(dǎo)引線會(huì)變得過窄而無(wú)法被檢測(cè)到,而且

賽車系統(tǒng)會(huì)因重心抬高而穩(wěn)定性變差。

攝像頭的固定難度較大,攝像頭架設(shè)的高度較高,要求材料要輕,所占空間小,剛度大,與車模地板連接牢固,攝像頭角度可調(diào)。攝像頭安裝必須居中,最好做到可調(diào)。攝像頭不會(huì)過分影響模型車的重心,模型車的總體重心還應(yīng)該靠后。攝像頭角度要在不影響視野的前提下,盡量靠近垂直方向。因?yàn)檫@樣可以盡量減小最遠(yuǎn)點(diǎn)與最近點(diǎn)之間的變形差距,

考慮到攝像頭的可調(diào)性,將攝像頭支架分為底座和立桿。這樣可調(diào)性增加,更加靈活。攝像頭安裝如下圖3.2所示。

圖3.2攝像頭安裝方式

3.2測(cè)速模塊設(shè)計(jì)與安裝

為了使得賽車能夠平穩(wěn)地沿著賽道運(yùn)行,需要控制車速,使賽車在急轉(zhuǎn)彎時(shí)速度不至過快而沖出賽道。通過控制驅(qū)動(dòng)電機(jī)上的平均電壓可以控制車速,但是如果開環(huán)控制電機(jī)轉(zhuǎn)速,會(huì)受很多因素影響,例如電池電壓、電機(jī)傳動(dòng)摩擦力、道路摩擦力和前輪轉(zhuǎn)向角度等。這些因素會(huì)造成賽車運(yùn)行不穩(wěn)定。通過速度檢測(cè),對(duì)車模速度進(jìn)行閉環(huán)反饋控制,即可消除上述各種因素的影響,使得車模運(yùn)行得更穩(wěn)定。

車速檢測(cè)的方式有很多種,例如用測(cè)速發(fā)電機(jī)、轉(zhuǎn)角編碼盤、透射式光電檢測(cè)和霍爾傳感器檢測(cè)。經(jīng)過對(duì)去年測(cè)速方案和其它學(xué)校方案的比較,本次設(shè)計(jì)中速度傳感器采用的是OMRON公司生產(chǎn)的E6A2-CS3C型光電編碼器。它由5-12V的直流供電,安裝方式如圖3.3所示。速度傳感器用螺釘固定在塑料片上,塑料片固定在后輪支架上,這樣固定好之后,就有了較高的穩(wěn)定性。光電編碼器上的齒輪是由于原先是沒有的,所以是在經(jīng)過計(jì)算后訂做的。速度傳感器通過后輪軸上的齒輪與電機(jī)相連。

如圖3.3光電編碼器安裝位置

3.3主板的安裝

設(shè)計(jì)時(shí),考慮到底盤已有孔洞及車體上的支架位置,在制PCB板時(shí)就留好洞孔。將電路板支起一定高度,應(yīng)高于減震彈簧以免發(fā)生短路。將支柱固定牢,因?yàn)樵谛≤嚨拈L(zhǎng)久跑動(dòng)過程中由于撞擊等因素很有可能會(huì)松動(dòng)。應(yīng)經(jīng)常檢查,防范發(fā)生短路等故障。日常接觸的時(shí)候也應(yīng)保護(hù)主板,防止器件被碰掉。還有就是容易觸碰到的元件在做板時(shí)就應(yīng)當(dāng)注意將其轉(zhuǎn)移。安裝的過程主要考慮其穩(wěn)定性。

第四章系統(tǒng)硬件電路設(shè)計(jì)

4.1S12微控制器的組成

MC9S12DG128微控制器采用增強(qiáng)型16位S12CPU,片內(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é)數(shù)據(jù)鏈路控制器、29路獨(dú)立的數(shù)字I/O接口、20路帶中斷和喚醒功能的數(shù)字I/O接口、5個(gè)增強(qiáng)型CAN總線接口,并支持背景調(diào)試模式(BDM)。

4.2電機(jī)驅(qū)動(dòng)電路模塊

33886作為一個(gè)單片電路H-橋,是理想的功率分流直流馬達(dá)和雙向推力電磁鐵控制器.它的集成電路包含內(nèi)部邏輯控制,電荷泵,門控驅(qū)動(dòng),及低讀選通(on)金屬-氧化物半導(dǎo)體場(chǎng)效應(yīng)晶體管輸出電路.33886能夠控制連續(xù)感應(yīng)直流負(fù)載上升到5.0安培,輸出負(fù)載脈寬調(diào)制(PWM-ed)的頻率可達(dá)10kHz一個(gè)故障狀態(tài)輸出可以報(bào)告欠壓,短路,過熱的情況.兩路獨(dú)立輸入控制兩個(gè)半橋的推拉輸出電路的輸出.兩個(gè)無(wú)效輸入使H-橋產(chǎn)生三態(tài)輸出(呈現(xiàn)高阻抗).33886制定的參數(shù)范圍是-40°C≤TA≤125°C、5.0V≤V+≤28V。集成電路也可以工作在40V通過降低規(guī)定的定額值。集成電路能夠在表面安裝帶散熱裝置的電源組件.

圖4.1C33886的一個(gè)簡(jiǎn)單應(yīng)用電路

圖4.1MC33886典型應(yīng)用電路

在使用MC33886時(shí),采用兩片并聯(lián)使用,提高RS380SH的功率,提得提速更快。這樣做有兩個(gè)優(yōu)點(diǎn),其一是提高電機(jī)的輸入電流,增大電機(jī)的實(shí)際功率,使電機(jī)能在不增加動(dòng)力源的情況下,性能大幅度提高;其二是減小單片MC33886的功耗,MC33886發(fā)熱現(xiàn)象比較嚴(yán)重,上面須加上一定面積的散熱片來(lái)緩和一下,在這里用兩片MC33886來(lái)為同一個(gè)電機(jī)供能,可以有效地減小單片MC33886的功耗,發(fā)熱現(xiàn)象也可以得到部分緩解。

電路設(shè)計(jì)如圖4.2。MC3386發(fā)熱問題比較突出,特別是其正反轉(zhuǎn)較為頻繁的時(shí)候。在使用時(shí)在其上面加裝散熱片,以增大其散熱面積。

圖4.2C33886驅(qū)動(dòng)電路

4.3圖像處理模塊

攝像頭的信號(hào)經(jīng)過LM1881視頻分離芯片分離出行信號(hào)和場(chǎng)信號(hào),場(chǎng)信號(hào)代表一個(gè)圖像開始標(biāo)志,行信號(hào)是DG128進(jìn)行AD采集標(biāo)志。LM1881(如圖4.3)是針對(duì)電視信號(hào)的視頻同步分離芯片,它可以直接對(duì)電視信號(hào)進(jìn)行同步分離,準(zhǔn)確地獲得所需的視頻圖像信號(hào),使用者可根據(jù)需要對(duì)該同步信號(hào)進(jìn)行時(shí)序邏輯控制.

圖4.3LM1881應(yīng)用原理圖

視頻信號(hào)中除了包含圖像信號(hào)之外,還包括了行同步信號(hào)、行消隱信號(hào)、場(chǎng)同步信號(hào)、場(chǎng)消隱信號(hào)以及槽脈沖信號(hào)、前均衡脈沖、后均衡脈沖等,因此,若要對(duì)視頻信號(hào)進(jìn)行采集,就必須準(zhǔn)確地把握各種信號(hào)問的邏輯關(guān)系。LM1881就是針對(duì)視頻信號(hào)的同步分離而生產(chǎn)的,LM1881可以從0.5~2V的標(biāo)準(zhǔn)負(fù)極性NTSC制、PAL制、SECAM制視頻信號(hào)中提取復(fù)合同步、場(chǎng)同步、奇偶場(chǎng)識(shí)別等信號(hào),這些信號(hào)都是圖像數(shù)字采集所需要的同步信號(hào),由此便確定采集點(diǎn)在哪一場(chǎng),哪一行。這幾種重要的輸出信號(hào)的時(shí)序參看圖(4.4)。

圖4.4輸出信號(hào)時(shí)序

LM1881將視頻信號(hào)中的行同步脈沖、消隱脈沖和場(chǎng)同步脈沖提取出來(lái),并將它們轉(zhuǎn)換成數(shù)字信號(hào)交給單片機(jī)的I/O口。最后整個(gè)采樣電路如圖4.5所示。

圖4.5攝像頭采樣電路

4.4電源模塊

電源管理在整個(gè)電路中起著舉足輕重的作用,電源芯片選擇的好壞直接影響系統(tǒng)能否正常工作。它不僅為單片機(jī)提供工作電壓,而且為各個(gè)控制芯片提供工作電壓。因此,電源管理芯片的好壞直接影響系統(tǒng)的穩(wěn)定性。但由于電機(jī)帶負(fù)荷的大電流特性,直接影響供電電源的質(zhì)量,進(jìn)而影響整個(gè)系統(tǒng)。

從整個(gè)系統(tǒng)穩(wěn)定可靠的角度出發(fā),我們選擇了一款低壓差芯片TPS7350,該芯片最具特色的優(yōu)點(diǎn)是當(dāng)輸出電流為100mA時(shí),最大壓差只有35mV,只需很少的外圍器件就能滿足應(yīng)用要求。此外,充分使用該芯片的復(fù)位功能,減少了芯片的使用量,提高了系統(tǒng)的穩(wěn)定性。

電源模塊主要包括單片機(jī)電源模塊、舵機(jī)電源模塊、攝像頭電源模塊。圖4.6所示是電源管理電路的框圖。

SKIPIF1<0

圖4.6電源管理框圖

圖4.7所示是使用TPS7350為整個(gè)智能車系統(tǒng)提供+5V的工作電壓的原理圖。

SKIPIF1<0

圖4.7+5V工作電壓原理圖

圖4.8所示是使用TPS7350為整個(gè)智能車系統(tǒng)提供+6V的工作電壓的原理圖。

圖4.8+6V工作電壓原理圖

第五章軟件設(shè)計(jì)方案

5.1圖像采集和數(shù)據(jù)處理

視頻信號(hào)經(jīng)過LM1881同步分離,行同步信號(hào)接到S12的ECT通道2是上,利用定時(shí)器中斷對(duì)行同步引發(fā)的外部中斷進(jìn)行處理;場(chǎng)同步信號(hào)接到是S12的T口上。當(dāng)場(chǎng)信號(hào)發(fā)生跳變時(shí),對(duì)行信號(hào)計(jì)數(shù)器清零。在行中斷服務(wù)函數(shù)中,每來(lái)一個(gè)行同步則行計(jì)數(shù)器加1,當(dāng)行計(jì)數(shù)等于所需采樣行時(shí),開始對(duì)此行信號(hào)進(jìn)行AD轉(zhuǎn)換,直到下一個(gè)行同步信號(hào)到來(lái)。行中斷服務(wù)函數(shù)的流程圖如下圖5.1所示。

SHAPE\*MERGEFORMAT

SKIPIF1<0

SHAPE\*MERGEFORMAT

圖5.1行中斷服務(wù)函數(shù)的流程圖

經(jīng)過實(shí)驗(yàn)發(fā)現(xiàn)在S12超頻在32Hz的情況下,視頻信號(hào)一行最多能采樣到63個(gè)點(diǎn),已經(jīng)滿足跑道的識(shí)別精度。在行數(shù)的選擇上考慮到對(duì)起始線的識(shí)別,我們提取了15行。圖像的采樣效果如下:

圖5.2采樣數(shù)據(jù)

從圖5.2可以看出黑色的值大概在1B左右,而白色大概在38左右;黑白顏色的值差別比較明顯。黑線提取我們采用邊緣檢測(cè)(灰度的跳變),具體的算法思路是:設(shè)定一個(gè)閥值(白線與黑線值的差),對(duì)每一行從左往右相鄰兩像素值做差(左減右),如果所得的差值大于所設(shè)定的閥值,則判定其右的相素點(diǎn)為黑色指引線的左邊緣,記錄下該相素點(diǎn)的橫坐標(biāo)。如果始終沒有檢測(cè)到大于閥值的情況,則該行的黑色指引的橫坐標(biāo)保持上一場(chǎng)時(shí)值。

雖然采用了邊緣檢測(cè)提取黑線,但由于賽道縫隙或其他黑色像點(diǎn)的干擾,會(huì)導(dǎo)致某些行的黑線位置發(fā)生跳變,為了解決這個(gè)問題,增強(qiáng)提取黑線的可靠性,采用了中值濾波對(duì)前面獲取的黑線位置進(jìn)行處理。中值濾波的思想是:對(duì)于某行的黑線位置,如果它的位置正好在前后兩行的中間,則保留原有位置;否則,以這三行中黑線位置居中的代替該行黑線位置。

5.2速度控制

5.2.1速度傳感器模塊

為了使得賽車能夠平穩(wěn)地沿著賽道運(yùn)行,需要控制車速,使賽車在急轉(zhuǎn)彎時(shí)速度不至過快而沖出賽道。通過控制驅(qū)動(dòng)電機(jī)上的平均電壓可以控制車速,但是如果開環(huán)控制電機(jī)轉(zhuǎn)速,會(huì)受很多因素影響,例如電池電壓、電機(jī)傳動(dòng)摩擦力、道路摩擦力和前輪轉(zhuǎn)向角度等。這些因素會(huì)造成賽車運(yùn)行不穩(wěn)定。通過速度檢測(cè),對(duì)車模速度進(jìn)行閉環(huán)反饋控制,即可消除上述各種因素的影響,使得車模運(yùn)行得更穩(wěn)定。

速度檢測(cè)我們采用了光電編碼器,通過檢測(cè)一段時(shí)間內(nèi)采集的脈沖數(shù),來(lái)達(dá)到檢測(cè)速度的變化。將光電編碼器的脈沖輸出引腳接到ECT通道2。

5.2.2速度檢測(cè)的初始化及速度獲取

通過一段時(shí)間內(nèi)對(duì)脈沖數(shù)的檢測(cè),采用模數(shù)計(jì)數(shù)器向下溢出中斷,每20ms采樣一次光電編碼器輸出的脈沖數(shù)并同時(shí)產(chǎn)生一次中斷。因?yàn)殡娋幋a器是200個(gè)脈沖每轉(zhuǎn),采用了16位計(jì)數(shù)器,才能達(dá)到不會(huì)產(chǎn)生計(jì)數(shù)器益處的情況。其初使化如下:

MCFLG_MCZF=1;

MCCTL_MODMC=1;//循環(huán)計(jì)數(shù)方式

MCCTL_MCZI=1;

MCCTL_MCEN=1;//模數(shù)計(jì)數(shù)器使能

MCCTL_MCPR=3;//設(shè)置16分頻

MCCNT=40000;//設(shè)置中斷時(shí)間20ms

MCCTL_FLMC=1;

TIOS_IOS0=0;//設(shè)置PT0輸入捕捉

TCTL4=0x12;

PBCTL_PBEN=1;

每次通過對(duì)PACN10值的讀取,就可以知道速度的變化情況。

5.2.3速度的控制

對(duì)速度控制我們采用了bang-bang,讓電機(jī)穩(wěn)定在一定的速度下,實(shí)際調(diào)試時(shí)速度的控制效果不錯(cuò),電機(jī)的響應(yīng)速度很快。為可提高整體的速度,在直道盡力的加快速度,但會(huì)帶來(lái)入彎的時(shí)候會(huì)沖出的情況,為此我們采用了反向制動(dòng),把速度瞬速降低在一個(gè)很低的速度,能夠順利的入彎。具體的算法流程圖如下:

圖5.3算法流程圖

5.3舵機(jī)轉(zhuǎn)向控制

根據(jù)實(shí)際測(cè)試,確定了舵機(jī)的擺到中心位置時(shí)所對(duì)應(yīng)的PWM值steer_center,及左右轉(zhuǎn)向極限所對(duì)應(yīng)的PWM值steer_left和steer_right。

舵機(jī)轉(zhuǎn)向采用了P控制,根據(jù)跑道的曲率變化情況,分別設(shè)置不同的P值。首先確定舵機(jī)擺到中心位置steer_center時(shí),黑線的的位置car_center。然后根據(jù)不同的跑道情況采用PWMDTY01=steer_center+w2*P這個(gè)公式進(jìn)行控制,其w2是所采樣到的黑線位置和car_center的差值,P值則根據(jù)黑線的曲率變化而設(shè)定。

對(duì)于S道的處理有兩種方法:一是把S道和別的跑道區(qū)別開來(lái),然后一遇到S道就直接過去,或是盡量在很小擺動(dòng)的情況下通過S道。第一種方法,我們發(fā)現(xiàn)S道不能完全的和別的跑道區(qū)別開來(lái),所以就放棄這種方法而選擇第二種,通過減小P值來(lái)盡量減小在S倒的擺幅,效果比較不錯(cuò)。

5.4起始線的識(shí)別

根據(jù)今年的比賽規(guī)則,在跑完兩圈后賽車需要自動(dòng)停止在起始線之后三米的賽道內(nèi)。因此,我們針對(duì)起始線提出了識(shí)別和處理的方法。

要在三米內(nèi)自動(dòng)停止,首先要正確的識(shí)別起始線。起始線的識(shí)別有兩中方法:一是在車體前增加紅外管;二是直接用攝像頭識(shí)別。第一種方法要增加較多的紅外進(jìn)行識(shí)別,而且實(shí)際調(diào)試的時(shí)候發(fā)現(xiàn)其錯(cuò)誤識(shí)別的概率較高。第二種方法通過對(duì)黑線邊緣(上升沿和下降沿的)的統(tǒng)計(jì),來(lái)判斷是否拍到起始線。通過不斷的調(diào)試,起始線的識(shí)別正確率很高。

當(dāng)小車在靠近起始線的過程中,由于起始線的采樣頻率比較高,會(huì)連續(xù)幾場(chǎng)都看到起始線,這樣會(huì)使得小車一看到起始線就停止。為了防止這種情況的發(fā)生我們采用了積分濾波的方法,通過和原始數(shù)據(jù)比較達(dá)到正確識(shí)別起始線,具體算法實(shí)現(xiàn)如下:

SHAPE\*MERGEFORMAT

圖5.4起始線算法流程圖

第六章賽車調(diào)試

6.1軟件調(diào)試平臺(tái)CodeWarrior

CodeWarrior是由Metrowerks公司提供的專門面向Freescale所有MCU與DSP嵌入式應(yīng)用開發(fā)的軟件工具。其中包括集成開發(fā)環(huán)境IDE、處理器專家、全芯片仿真、可視化參數(shù)顯示工具、項(xiàng)目工程管理、C交叉編譯器、匯編器、鏈接器以及調(diào)試器。CodeWarrior不僅支持匯編語(yǔ)言,而且支持C、C++和Java高級(jí)語(yǔ)言。CodeWarriorIDE支持深入的C語(yǔ)言和匯編語(yǔ)言調(diào)試:?jiǎn)?dòng)/停止、單步、設(shè)置跟蹤觸發(fā)器、校驗(yàn)/修改存儲(chǔ)器和C變量、結(jié)構(gòu)與陣列,以及執(zhí)行其他仿真功能。其中在本設(shè)計(jì)方案中最為重要的部分就是集成開發(fā)環(huán)境IDE以及調(diào)試器。仿真調(diào)試窗口如圖6.1所示。

CodeWarrior4.6可以很好方便的完成MCS12DG128B單擊的新工程的建立,程序的編寫、下載和調(diào)試。通過BDM頭不僅可以燒寫程序,還可以在程序運(yùn)行時(shí)實(shí)時(shí)查看各參數(shù)的值。

圖6.1仿真調(diào)試窗口

6.2CodeWarriorIDE基本使用方法

Ⅰ運(yùn)行“開始菜單—>所有程序—>MetrowerksCodeWarrior—>CW12V3.1—>CodeWarriorIDE”,選擇“File—>New”。此后選擇MC9S12DG128B,按照提示選取期望的選項(xiàng)。直至建立工程文件。

如下:

圖6.2建立軟件環(huán)境過程

Ⅱ打開Start12.c文件,找到代碼

#ifdef_HCS12_SERIALMON

#define___INITRM(*(volatileunsignedchar*)0x0010)

#define___INITRG(*(volatileunsignedchar*)0x0011)

#define___INITEE(*(volatileunsignedchar*)0x0012)

#endif

修改成:

//#ifdef_HCS12_SERIALMON

#define___INITRM(*(volatileunsignedchar*)0x0010)

#define___INITRG(*(volatileunsignedchar*)0x0011)

#define___INITEE(*(volatileunsignedchar*)0x0012)

//#endif

之所以要進(jìn)行這個(gè)步驟是因?yàn)?,初始化代碼是認(rèn)為程序中有監(jiān)控程序的,但是因?yàn)槲覀兪鞘褂玫腷dm調(diào)試工具,所以就不需要監(jiān)控程序了。如果不注釋掉這兩條語(yǔ)句,一旦將程序燒寫到片內(nèi)的flash,會(huì)發(fā)現(xiàn)程序跑不起來(lái),因?yàn)槌跏蓟^程在等待監(jiān)控程序的響應(yīng),如果沒有監(jiān)控程序,那么程序就會(huì)進(jìn)入死循環(huán)的狀態(tài)。

Ⅲ添加代碼:將自己的代碼加入到工程文件中。

Ⅳ如果文件編譯通過,通過BDM下載。啟動(dòng)CodeWarrio4.1自帶的Hiwave.exe程序,該程序一般位于CodeWarrio4.1的安裝目錄“\Metrowerks\CWforHCS12XV4.1\prog”中,是用來(lái)往單片機(jī)下載程序和調(diào)試單片機(jī)的程序。啟動(dòng)后程序界面如圖6.1所示。

之后運(yùn)行路徑C:\ProgramFiles\Metrowerks\CWforHCS12XV4.1\prog下的hiwave.exe文件選擇TBDMLHCS12,在下拉菜單中選擇“setspeed”,輸入晶振頻率16.00,然后這個(gè)下拉菜單中會(huì)出現(xiàn)“Flash”選項(xiàng),點(diǎn)擊這個(gè)選項(xiàng),

出現(xiàn)如下的對(duì)話框:

圖10.6程序擦除燒寫界面

在下載自己的程序前應(yīng)該將板子中已經(jīng)存在的程序擦除,選擇有程序的部分,點(diǎn)擊Erase,擦除完成后,點(diǎn)擊Load,選擇自己所建立工程的文件夾中bin文件夾下后綴為“.abs”的文件,點(diǎn)擊打開,下載完成。至此已經(jīng)基本完成了從程序代碼編寫和設(shè)置過程,到下載燒制進(jìn)S12芯片的主要過程;其中也包括程序開發(fā)和調(diào)試的基本步驟。

第七章模型車的主要技術(shù)參數(shù)

賽車基本參數(shù)

長(zhǎng)

30.5cm

16.0cm

34.0cm

車重

1.4kg

功耗

負(fù)載

大于12W

電容總?cè)萘?/p>

554uF

傳感器

CMOS攝像頭

1個(gè)

除了車模原有的驅(qū)動(dòng)電機(jī)、舵機(jī)之外伺服電機(jī)個(gè)數(shù)

0

賽道信息檢測(cè)

視野范圍(近/遠(yuǎn))

10/60cm

頻率

50Hz

第八章結(jié)論

本文主要介紹了基于Freescale單片機(jī)的智能車設(shè)計(jì)流程、攝像頭尋線方案各個(gè)主要模塊的工作原理和設(shè)計(jì)思路?;仡櫿麄€(gè)設(shè)計(jì)過程,我們?cè)谧畛醯臄z像頭頭選擇和測(cè)試上花費(fèi)了很長(zhǎng)時(shí)間,不過我們堅(jiān)信有了一個(gè)完美的視角行走才會(huì)更加自如。各模塊的電路都要經(jīng)過反復(fù)的測(cè)試以確定其是否穩(wěn)定可靠。穩(wěn)定性對(duì)于參賽的小車是至關(guān)重要的。另外對(duì)于硬件的極好的維護(hù)性和可更換性也是一個(gè)很值得考慮的方面。在遇到突發(fā)情況下尤其體現(xiàn)其優(yōu)越性。

智能車機(jī)械部分也是一個(gè)很關(guān)鍵的問題,特別是在過彎的情況下體現(xiàn)的尤為突出。車體的抖動(dòng)和過彎速度比預(yù)計(jì)慢很大一部分是機(jī)械調(diào)試的問題。攝像頭組的還應(yīng)注意車體的重心,重心過高對(duì)于過彎可能會(huì)造成一些不利因素。

在這次比賽中,大家的能力有了顯著的提高。老師給予的幫助讓我們走的更穩(wěn)。同時(shí)在付出汗水的背后是收獲的笑臉。

參考文獻(xiàn)

[1].邵貝貝.單片機(jī)嵌入式應(yīng)用的在線開發(fā)方法[M].北京:清華大學(xué)出版社,2004.

[2].譚浩強(qiáng).C語(yǔ)言程序設(shè)計(jì)[M].北京:清華大學(xué)出版社,2005.

[3].王威等,HCS12微控制器原理及應(yīng)用.北京:北京航空航天大學(xué)出版社,2007.

[4].卓晴,黃開勝,邵貝貝等.學(xué)做智能車——挑戰(zhàn)“飛思卡爾”杯[C].北京:北京航空航天大學(xué)出版社,2007.

附件A程序源代碼

#include<hidef.h>/*commondefinesandmacros*/

#include<mc9s12dg128.h>/*derivativeinformation*/

#pragmaLINK_INFODERIVATIVE"mc9s12dg128b"

#include"system.h"

#include"ect.h"

#include"sci.h"

#include"ad.h"

#include"pwm.h"#ifndef__SYSTEM_H__

#define__SYSTEM_H__

#defineVALUE2/*閥值*/

#defineVALUE123

#defineROWCOUNTMIN65

#defineROWCOUNTMAX325

#defineROWCOUNTIMAGE15

#defineLINEMIN5

#defineLINEMAX55

#definesteer_center2600

#definesteer_left2870

#definesteer_right2350

#defineSPEEDMIN0

#defineSPEEDMAX190

wordrowcount;

wordrowimage;

byteImageData0[LINEMAX];

byteImageData[ROWCOUNTIMAGE][LINEMAX];

byteblackwire[ROWCOUNTIMAGE-1];

byteupwire[ROWCOUNTIMAGE-3];

byteA,B,C,K;

staticcharaa[7];

intpulsecount_low;

bytecount1=0;

bytecount2=0;

byteii,jj,mm,kk;

voidInit_PLL(void);

voidPortInit(void);

shortFuzzyLogic(shortstand);

intpulsecount;

inthigh1;

inthigh;

staticbytef1=0,f2=0;

staticintx1=0,x2=0;

#endif

voidInit_PLL(void)//初始化系統(tǒng)時(shí)鐘,F(xiàn)LASH和EEPROM的工作頻率

{

REFDV=0x03;

SYNR=0x07;//systemclock=16MHz*(SYNR+1)/(REFDV+1)=32MHz

while(0==CRGFLG_LOCK);//waitfor時(shí)鐘頻率穩(wěn)定鎖相環(huán)時(shí)鐘鎖定

CLKSEL=0x80;//選定鎖相環(huán)時(shí)鐘

FCLKDIV=0x49;

ECLKDIV=0x49;//使FLASH和EEPROM的擦除工作頻率在200KHz左右

}

/***端口處理****/

voidPortInit(void)

{

DDRT_DDRT1=0;/*場(chǎng)信號(hào)輸入*/

PERT_PERT1=1;

PPST_PPST1=0;

PUCR_PUPEE=1;

DDRB=0xff;

}

voidAD_Init(void)

{

ATD0CTL2=0xC0;/*啟動(dòng)AD轉(zhuǎn)換,轉(zhuǎn)換結(jié)束后自動(dòng)清除CCFx位*/

ATD0CTL3=0x08;/*轉(zhuǎn)換序列長(zhǎng)度為1*/

ATD0CTL4=0x81;/*8位轉(zhuǎn)換精度,采樣時(shí)間為2*AD時(shí)鐘周期AD轉(zhuǎn)換時(shí)間為8Mz*/

ATD0CTL5=0xA0;/*右對(duì)齊無(wú)符號(hào),單通道采樣,通道0*/

ATD0DIEN=0x00;/*禁止數(shù)字輸入*/

ATD1CTL2=0xc0;

ATD1CTL3=0x04;

ATD1CTL4=0x83;//87

ATD1CTL5=0xb0;

ATD1DIEN=0x00;

}

voidECT_init(void)

{

TIOS_IOS2=0;//設(shè)置通道為輸入捕捉

TSCR1=0x80;//定時(shí)器使使能,正常工作

TSCR2=0x01;//禁止定時(shí)器益出中斷,預(yù)分頻系數(shù)為2

TFLG1=0x04;

TIE_C2I=1;

MCFLG_MCZF=1;

MCCTL_MODMC=1;//循環(huán)計(jì)數(shù)方式

MCCTL_MCZI=1;

MCCTL_MCEN=1;//模數(shù)計(jì)數(shù)器使能

MCCTL_MCPR=3;//設(shè)置16分頻

MCCNT=40000;//設(shè)置中斷時(shí)間20ms

MCCTL_FLMC=1;

TIOS_IOS0=0;//設(shè)置PT0輸入捕捉

TCTL4=0x12;

PBCTL_PBEN=1;

//TIE_C0I=1;

}

voidPWM_OPEN(void)

{

PWME=0x00;//關(guān)閉pwm

PWMCTL_CON01=1;//PWM01合并為16位輸出

PWMPRCLK=0x34;//時(shí)鐘A=2M,時(shí)鐘B=4M

PWMSCLA=100;//時(shí)鐘SA=A/(2*100)=10K

PWMSCLB=1;//時(shí)鐘SA=B/(2*1)=2000K

PWMCLK=0b00011100;//pwm01-A;pwm23-SB;pwm4-SA;

PWMPOL=0xff;//極性位為1

PWMCAE=0x00;//左對(duì)齊

PWMPER01=40000;//舵機(jī)PWM周期=A/40000=50HZ

PWMDTY01=2600;//舵機(jī)中心位置

PWME_PWME1=1;//舵機(jī)使能

PWMDTY2=110;

PWMPER2=200;//電機(jī)頻率=SB/200=10K

PWME_PWME2=1;//電機(jī)使能

PWMDTY3=0;

PWMPER3=200;//電機(jī)頻率=SB/200=10K

PWME_PWME3=1;//電機(jī)使能

PWME_PWME3=1;

/*PWMPER4=200;

PWMDTY4=100;

PWME_PWME4=1;*/

}

/***SCIopen***/

voidsciopen(void)

{

SCI0BD=208;

SCI0CR1=0;

SCI0CR2=0x0c;

}

/*發(fā)射端程序*/

voidSciTx(unsignedchartext)

{

unsignedchartemp;

temp=SCI0SR1;/*clearflag*/

while(!(SCI0SR1&0x80));/*waitforoutputbufferempty*/

SCI0DRH=0;

SCI0DRL=text;

}

/*接受端程序*/

charSciRx(void)

{

charresult,temp;

temp=SCI0SR1;/*clearflag*/

while(!(SCI0SR1&0x20));

result=SCI0DRL;

returnresult;

}

//*****絕對(duì)值函數(shù)*****//

byteabs_w(bytea,byteb)

{

bytediff;

if(a>=b)

{

diff=a-b;

}

else

{

diff=b-a;

}

returndiff;

}

//******延遲函數(shù)******//

voidDelay(void)

{

unsignedchari6;

unsignedintj6;

for(i6=0;i6<100;i6++)

{

for(j6=0;j6<20000;j6++)

asmnop;

}

}

//****取中間值*****//

bytemind(byteA,byteB,byteC)

{

if(A>B)

{

K=B;B=A;A=K;

}

if(B>C)

{

K=C;C=B;B=K;

}

if(A>B)

{

K=B;B=A;A=K;

}

returnB;

}

//***黑線的提取***//

voidwire_black(void)

{

bytei1,j,k;

for(i1=0;i1<ROWCOUNTMIN-1;i1++)

{

for(j=LINEMIN;j<LINEMAX-3;j++)

{

if(ImageData[i1][j]>ImageData[i1][j+3]+VALUE1)

{

for(k=3;k<10;k++)

{

if(ImageData[i1][j+k]+VALUE1<ImageData[i1][j+k+3])

{

blackwire[i1]=j+k/2+2;

k=10;

}

}

j=LINEMAX;

}

}

}

}

//***中值濾波***//

voiddeal_wire(void)

{

bytei3;

for(i3=0;i3<ROWCOUNTIMAGE-3;i3++)

{

upwire[i3]=mind(blackwire[i3],blackwire[i3+1],blackwire[i3+2]);

}

}

//*******舵機(jī)控制*******//

voidsteer_control(void)

{

bytei6;

charn,car_center;

charw2;

intw1,w3;

intw4=0;

for(i6=0;i6<ROWCOUNTIMAGE-3;i6++)

{

w4+=upwire[i6];

}

w4=w4/(ROWCOUNTIMAGE-3);

car_center=30;

n=abs_w(upwire[0]+upwire[ROWCOUNTIMAGE-3],2*upwire[7]);

w2=car_center-w4;

if(n<3)//直道

{

w1=steer_center+w2*10;

if(w1>steer_left)

{

w3=steer_left;

}

elseif(w1<steer_right)

{

w3=steer_right;

}

else

{

w3=w1;

}

}

else

{

w1=steer_center+w2*18;

if(w1>steer_left)

{

w3=steer_left;

}

elseif(w1<steer_right)

{

w3=steer_right;

}

else

{

w3=w1;

}

}

PWMDTY01=w3;

}

//*******起始線識(shí)別********///

voidstart_line(void)

{

bytei4;

bytej4;

bytej5;

bytej6;

bytemmm;

bytej7;

bytecount=0;

bytemm1;

for(i4=0;i4<14;i4++)

{

count=0;

for(j4=5;j4<54;j4++)

{

j5=ImageData[i4][j4];

j6=ImageData[i4][j4+1];

mm1=abs_w(j5,j6);

if(mm1>VALUE1)

{

count++;

if(count>3)

{

i4=14;

}

//SciTx(count);

}

}

}

count1=0;

if(count>3)

{

count1=1;

}

aa[6]=aa[5];

aa[5]=aa[4];

aa[4]=aa[3];

aa[3]=aa[2];

aa[2]=aa[1];

aa[1]=aa[0];

aa[0]=count1;

if((aa[0]==1)&&(aa[1]==0)&&(aa[2]==0)&&(aa[3]==0)&&(aa[4]==0)&&(aa[5]==0)&&(aa[6]==0))

{

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說明,都需要本地電腦安裝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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 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)論