![三江學(xué)院三江攝像頭2隊(duì)新教學(xué)資料_第1頁(yè)](http://file4.renrendoc.com/view/f3c0aea008e6a5a84706ac3890070675/f3c0aea008e6a5a84706ac38900706751.gif)
![三江學(xué)院三江攝像頭2隊(duì)新教學(xué)資料_第2頁(yè)](http://file4.renrendoc.com/view/f3c0aea008e6a5a84706ac3890070675/f3c0aea008e6a5a84706ac38900706752.gif)
![三江學(xué)院三江攝像頭2隊(duì)新教學(xué)資料_第3頁(yè)](http://file4.renrendoc.com/view/f3c0aea008e6a5a84706ac3890070675/f3c0aea008e6a5a84706ac38900706753.gif)
![三江學(xué)院三江攝像頭2隊(duì)新教學(xué)資料_第4頁(yè)](http://file4.renrendoc.com/view/f3c0aea008e6a5a84706ac3890070675/f3c0aea008e6a5a84706ac38900706754.gif)
![三江學(xué)院三江攝像頭2隊(duì)新教學(xué)資料_第5頁(yè)](http://file4.renrendoc.com/view/f3c0aea008e6a5a84706ac3890070675/f3c0aea008e6a5a84706ac38900706755.gif)
版權(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度口腔醫(yī)療耗材一站式采購(gòu)合同
- 2025年度建筑行業(yè)個(gè)人掛靠環(huán)保管理合同
- 2025年度專業(yè)顯示屏安裝與LED照明一體化合同范本
- 2025年度大型體育場(chǎng)館施工勞務(wù)分包合同
- 2025年度養(yǎng)豬廠養(yǎng)殖廢棄物處理與資源化利用合同
- 臨床診療指南內(nèi)科學(xué)分冊(cè)
- 2025年度會(huì)計(jì)事務(wù)所員工勞動(dòng)合同編制指南
- 2025年度共享單車充電設(shè)施建設(shè)合同
- 2025年度塔吊租賃與施工驗(yàn)收合同
- 2025年度教育機(jī)構(gòu)借款擔(dān)保合同范本發(fā)布
- 2025年廣東省春季高考英語(yǔ)情景交際題專項(xiàng)練習(xí)(含答案)
- 浙江省湖州是吳興區(qū)2024年中考語(yǔ)文二模試卷附參考答案
- 風(fēng)電設(shè)備安裝施工專項(xiàng)安全措施
- IQC培訓(xùn)課件教學(xué)課件
- 關(guān)于成立合同審核小組的通知
- 2024年上海市中考英語(yǔ)試題和答案
- 教育部《中小學(xué)校園食品安全和膳食經(jīng)費(fèi)管理工作指引》知識(shí)培訓(xùn)
- 征地拆遷項(xiàng)目社會(huì)穩(wěn)定風(fēng)險(xiǎn)評(píng)價(jià)報(bào)告
- 部編人教版語(yǔ)文小學(xué)六年級(jí)下冊(cè)第四單元主講教材解讀(集體備課)
- 節(jié)后復(fù)工安全教育培訓(xùn)內(nèi)容【5篇】
- EN779-2012一般通風(fēng)過濾器——過濾性能測(cè)定(中文版)
評(píng)論
0/150
提交評(píng)論