![浙江城市學(xué)院技術(shù)報(bào)告_第1頁(yè)](http://file4.renrendoc.com/view/406ac2a6052f054af2b10c3341e5acbd/406ac2a6052f054af2b10c3341e5acbd1.gif)
![浙江城市學(xué)院技術(shù)報(bào)告_第2頁(yè)](http://file4.renrendoc.com/view/406ac2a6052f054af2b10c3341e5acbd/406ac2a6052f054af2b10c3341e5acbd2.gif)
![浙江城市學(xué)院技術(shù)報(bào)告_第3頁(yè)](http://file4.renrendoc.com/view/406ac2a6052f054af2b10c3341e5acbd/406ac2a6052f054af2b10c3341e5acbd3.gif)
![浙江城市學(xué)院技術(shù)報(bào)告_第4頁(yè)](http://file4.renrendoc.com/view/406ac2a6052f054af2b10c3341e5acbd/406ac2a6052f054af2b10c3341e5acbd4.gif)
![浙江城市學(xué)院技術(shù)報(bào)告_第5頁(yè)](http://file4.renrendoc.com/view/406ac2a6052f054af2b10c3341e5acbd/406ac2a6052f054af2b10c3341e5acbd5.gif)
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、第四屆“飛思”杯大學(xué)生智能汽車(chē)邀請(qǐng)賽技術(shù)學(xué)校:浙江大學(xué)城市學(xué)院隊(duì)伍名稱(chēng):風(fēng)馳一號(hào)參賽隊(duì)員:帶隊(duì)教師:陳琢江皓關(guān)于技術(shù)和研究使用的說(shuō)明本人完全了解第四屆“飛思”杯大學(xué)生智能車(chē)邀請(qǐng)賽關(guān)于保留、使用技術(shù)和研究的規(guī)定,即:參賽作品著作權(quán)歸參賽者本人,比賽組委會(huì)和飛思半導(dǎo)體公司可以在相關(guān)主頁(yè)上收錄并公開(kāi)參賽作品的設(shè)計(jì)方案、技術(shù)以及參賽模型車(chē)的、圖像資料,并將相關(guān)內(nèi)容編纂收錄在組委會(huì)集中。參賽隊(duì)員簽名:帶隊(duì)教師簽名:日期:目錄引言1第一章第二章智能車(chē)方案設(shè)計(jì)2第三章智能車(chē)機(jī)械改造設(shè)計(jì)4第四章智能車(chē)電路設(shè)計(jì)與實(shí)現(xiàn)6智能車(chē)控制策略與算法10第五章運(yùn)行調(diào)試與小結(jié)13第六章第七章技術(shù)參數(shù)統(tǒng)計(jì)15.參考文獻(xiàn)16附錄
2、 A 程序源代碼第一章 引言“飛思”杯智能車(chē)大賽是教育部為了加強(qiáng)大學(xué)生實(shí)踐、創(chuàng)新能力和團(tuán)隊(duì)精神的培養(yǎng)而舉辦的面向爾”杯智能汽車(chē)競(jìng)賽,是在位、16 位微型控制器作為大學(xué)生的智能汽車(chē)比賽。我國(guó)大學(xué)生“飛思卡汽車(chē)模型控制模塊,上,使用飛思半導(dǎo)體公司的 8構(gòu)思控制方案進(jìn)行系統(tǒng)設(shè)計(jì),包括傳感器信號(hào)處理、控制算法及執(zhí)行、動(dòng)力電機(jī)驅(qū)動(dòng)、轉(zhuǎn)向舵機(jī)控制等。系統(tǒng)按照功能劃分為:電源模塊、單片機(jī)模塊、運(yùn)行調(diào)試模塊、路徑識(shí)別模塊、直流電機(jī)驅(qū)動(dòng)模塊、轉(zhuǎn)向伺服模塊、速度測(cè)量模塊等。該競(jìng)賽是涵蓋了控制工程、模式識(shí)別、傳感技術(shù)、電子工程、電氣工程、計(jì)算機(jī)、機(jī)械及車(chē)輛工程等多個(gè)學(xué)科的科技創(chuàng)意性比賽,對(duì)大學(xué)生的知識(shí)融合和實(shí)踐動(dòng)手
3、能力的培養(yǎng),對(duì)技術(shù)的發(fā)展,具有良好的長(zhǎng)期的推動(dòng)作用。本文將先從整體上介紹模型車(chē)的制作思路和方案,再?gòu)能?chē)子的機(jī)械、傳感器、電路等硬件方面到控制的策略、算法的實(shí)現(xiàn)等方面具體介紹模型車(chē)的制作以及調(diào)試過(guò)程,最后介紹模型車(chē)的主要技術(shù)參數(shù)。第二章智能車(chē)方案設(shè)計(jì)本章主要簡(jiǎn)要地介紹智能車(chē)系統(tǒng)總體方案的選定和總體設(shè)計(jì)思路,在后面的章節(jié)中將整個(gè)系統(tǒng)分為機(jī)械結(jié)構(gòu)、控制模塊、控制算法等三部分對(duì)智能車(chē)控制系統(tǒng)進(jìn)行深入的介紹分析。通過(guò)學(xué)習(xí)競(jìng)賽規(guī)則和往屆競(jìng)賽相關(guān)技術(shù)資料了解到,路徑識(shí)別模塊是智能車(chē)系統(tǒng)的關(guān)鍵模塊之一,路徑識(shí)別方案的好壞,直接關(guān)系到最終性能的優(yōu)劣,因此確定路徑識(shí)別模塊的類(lèi)型是決定智能車(chē)總體方案的關(guān)鍵。如圖 2
4、.1,而目前能夠用于智能車(chē)輛路徑識(shí)別的傳感器主要有光電傳感器和 CCD/CMOS 傳感器。光電傳感器尋跡方案的優(yōu)點(diǎn)是電路簡(jiǎn)單、信號(hào)處理速度快,但是其前瞻距離有限;CCD頭尋跡方案的優(yōu)點(diǎn)則是可以更遠(yuǎn)更早地感知賽道的變化,但是信號(hào)處理卻比較復(fù)雜,如何對(duì)頭的圖像進(jìn)行處理和識(shí)別,加快處理速度是頭方案的難點(diǎn)之一。在比較了兩種傳感器優(yōu)劣之后,考慮到 CCD 傳感器圖像處理的后,決定選用應(yīng)用廣泛的光電傳感器,相信通過(guò)選用大前瞻的光電傳感器,加之精簡(jiǎn)的程序控制和較快的信息處理速度,光電傳感器還是可以極好的控制效果的。圖 2.1 光電傳感器參與 CCD 傳感器參系統(tǒng)采用采用了 7.2V 2000mAh Ni-C
5、d 蓄電池作為系統(tǒng)能源,并且通過(guò)穩(wěn)壓電路分出 6 伏,5 伏已分別給舵機(jī)和單片機(jī)供電。直流電機(jī)驅(qū)動(dòng)模塊接收速度控制信號(hào)控制驅(qū)動(dòng)電機(jī)運(yùn)行,達(dá)到控制車(chē)速目的。轉(zhuǎn)向伺服模塊控制舵機(jī)轉(zhuǎn)向,進(jìn)而控制智能車(chē)轉(zhuǎn)彎。速度測(cè)量模塊實(shí)時(shí)測(cè)量智能車(chē)車(chē)速,用于系統(tǒng)的車(chē)速閉環(huán)控制,以精確控制車(chē)速。系統(tǒng)充分使用了MC9S12XS128 單片機(jī)的模塊,具體使用到的模塊包括:ADC 模擬數(shù)字轉(zhuǎn)換模塊、定時(shí)器模塊、端口和實(shí)時(shí)時(shí)鐘模塊等。脈沖寬度調(diào)制模塊、中斷模塊、I/O系統(tǒng)調(diào)試過(guò)程中,使用了提供的代碼調(diào)試環(huán)境 CodeWarrior IDE,同進(jìn)行了仿真試驗(yàn)。時(shí)使用了的 Plastid2圖 2.2 系統(tǒng)結(jié)構(gòu)框圖第三章 智能車(chē)機(jī)
6、械改造設(shè)計(jì)3.1 舵機(jī)部分為了使轉(zhuǎn)彎更加靈活,對(duì)舵機(jī)相關(guān)部分作了部分改動(dòng)。首先,舵機(jī)力臂加長(zhǎng) 85mm。這樣,對(duì)于同樣的轉(zhuǎn)彎角度值,只需更小的舵機(jī)轉(zhuǎn)角,減小了舵機(jī)轉(zhuǎn)彎時(shí)慣性帶來(lái)的弊端。其次,此時(shí)舵機(jī)提供的力全部用在轉(zhuǎn)彎上。舵機(jī)反裝,使舵機(jī)連桿水平,因?yàn)閳D 3.1 舵機(jī)的安裝3.2 前輪部分為了增加前輪轉(zhuǎn)彎時(shí)的穩(wěn)定性,對(duì)前輪相關(guān)部分進(jìn)行了部分改動(dòng)。首先,更改前后墊片的數(shù)量,使前輪主銷(xiāo)后傾,這樣,車(chē)輪具有更好的自動(dòng)回正功能。其次,更改連桿的長(zhǎng)度,使車(chē)輪外傾,車(chē)輪轉(zhuǎn)彎時(shí),前半部分重心上移,促使轉(zhuǎn)彎更加穩(wěn)定。再次,樣增加了前輪的穩(wěn)定性。通過(guò)更改舵機(jī)連桿的長(zhǎng)度,增加前輪前束,同3.3 底盤(pán)部分為了提高運(yùn)
7、行時(shí)的穩(wěn)定性,對(duì)地盤(pán)相關(guān)部分作了部分改動(dòng)。首先,前輪相關(guān)位置加墊片,降低了前輪重心。其次,更改后輪車(chē)軸處的調(diào)節(jié)塊,使后輪重心升高,這樣,車(chē)身前傾,一定程度上,增加了車(chē)的穩(wěn)定性。3.4 后輪部分首先,更換后輪輪距調(diào)節(jié)塊,使后輪兩輪之間間距加大。這樣,車(chē)在轉(zhuǎn)彎時(shí)不容易產(chǎn)生側(cè)滑。其次,調(diào)節(jié)后輪差速,使轉(zhuǎn)彎更加靈活。3.5 測(cè)速傳感器測(cè)速傳感器的安裝如圖 3.2 所示。圖 3.2 測(cè)速傳感器的安裝第章 智能車(chē)的電路設(shè)計(jì)與實(shí)現(xiàn)4.1 電源部分為了能使智能車(chē)系統(tǒng)能正常工作,就需要對(duì)電池電壓調(diào)節(jié)。其中,單片機(jī)系統(tǒng)、車(chē)速傳感器電路需要 5V 電壓,路徑識(shí)別的光電傳感器和電路電壓工作為 5V、伺服電機(jī)工作電壓范
8、圍 4.8V 到 6V(或直接由電池提供),直流電機(jī)可以使用 7.2V 2000mAh Ni-cd 蓄電池直接供電??紤]到由于驅(qū)動(dòng)電機(jī)引起的電壓瞬間下降的現(xiàn)象,因此采用低壓降的三端穩(wěn)壓器成為必然。在采用 lm7805,和 lm7806 作為穩(wěn)壓。經(jīng)試驗(yàn)電壓紋波小,完全可以滿足要求。舵機(jī)電源部分采用 MC34063API。穩(wěn)壓電路6V7.2V5V圖 4.1 系統(tǒng)電壓調(diào)節(jié)圖4.2 測(cè)速電路由于考慮到成本需要,采用了紅外對(duì)管和黑白碼盤(pán)作為測(cè)速模塊的硬件。其中碼盤(pán)為 32 格的黑白相間圓盤(pán),如下圖所示:電機(jī)舵機(jī)測(cè)速板對(duì)管單片機(jī)電池(7.2v)2000mAh Ni-cd四圖 4.2 碼盤(pán)紅外傳感器安裝在
9、正對(duì)碼盤(pán)的前方,雖然這樣做精度比編要低很多,但是成本低廉制作容易,如果智能車(chē)速度較快,可以考慮再減少碼盤(pán)上黑白色條的數(shù)量即可。當(dāng)圓盤(pán)隨著齒輪轉(zhuǎn)動(dòng)時(shí),光電管接收到的反射光強(qiáng)弱交替變化,由此可以得到一系列高低電脈沖。設(shè)置 9S12 的 ECT 模塊,同時(shí)捕捉光電管輸出的電脈沖的上升沿和下降沿。通過(guò)累計(jì)一定時(shí)間內(nèi)的脈沖數(shù),或者隔時(shí)間,可以得到和速度等價(jià)的參數(shù)值。相鄰脈沖的間測(cè)速電路使用自行研制的紅外反射式光電測(cè)速傳感器。速度測(cè)量電路使用紅外反射式光電對(duì)管 RPR220,自行制作的編碼盤(pán),比較電路等組成。速度測(cè)量電路圖 2.8 所示。紅外反射式光電對(duì)管的光敏三極管信號(hào)通過(guò)比較器處理后輸入單片機(jī)的計(jì)數(shù)器
10、模塊,利用單片機(jī)的輸入捕捉功能,處理智能車(chē)速度信息。自制的編碼盤(pán)有 24 道黑色條紋,電機(jī)旋轉(zhuǎn)一周將產(chǎn)生 24 次輸入捕捉中斷。單片機(jī)兩次中斷的時(shí)間間隔 T。兩次中斷對(duì)應(yīng)于智能車(chē)前進(jìn)的距離S 為:16.5/24 cm,即 0.6875cm,其中 16.5cm 為智能車(chē)后輪實(shí)測(cè)周長(zhǎng)7。智能車(chē)實(shí)時(shí)速度 V(cm/s)的計(jì)算公式如下: S 16.5 / 24 .06875 cm / sVTTT4.3 紅外對(duì)管檢測(cè)電路由于采用了大功率對(duì)管,所以紅外對(duì)管的電路是整個(gè)電路中要求最高的,不緊要保證對(duì)管正常工作,而且還要考慮整個(gè)電路的能耗和發(fā)熱問(wèn)題。經(jīng)測(cè)試發(fā)現(xiàn)單個(gè)對(duì)管在通以 100mA 到 170mA 電流時(shí)
11、可以。保證抬高 20 到 30 厘米的距離。此時(shí)每個(gè)對(duì)管的管壓降為 1.2 到 1.5 伏。為了進(jìn)一步加大發(fā)光量,采用了雙發(fā)射管的辦法,即一個(gè)接受管對(duì)應(yīng)兩個(gè)發(fā)射管。為了降低整體的能耗。讓同一對(duì)的發(fā)射管串聯(lián),14 對(duì)發(fā)射管再并聯(lián)。同時(shí)使用了 irf540 進(jìn)行開(kāi)關(guān)控制。控制對(duì)管脈沖發(fā)光。開(kāi)關(guān)頻率為 200HZ。這樣既保證了大前瞻探測(cè)的需要,又降低了整體的能耗和對(duì)電源的沖擊圖 4.4 先串聯(lián)再并聯(lián)的脈沖發(fā)光對(duì)管電路圖。圖 4.5 對(duì)管實(shí)物圖4.4 撥碼開(kāi)關(guān)電路由于在智能車(chē)比賽開(kāi)始后,不能夠?qū)χ悄苘?chē)硬件及進(jìn)行修改,在保證了硬件有效可靠的同時(shí),有可能不能夠適應(yīng)新場(chǎng)地,所以設(shè)計(jì)撥碼開(kāi)關(guān)對(duì)智能車(chē)有關(guān)參數(shù)進(jìn)
12、行設(shè)置也是必要的。撥碼開(kāi)關(guān)電路如下圖所示:第五章 智能車(chē)的控制策略和算法5.1 路徑搜索算法對(duì)于本控制系統(tǒng)采用 14 對(duì)光電對(duì)管的方案,單排排列在車(chē)體頭部 10cm 處。為 6、7 的光電對(duì)管處于正位置。利用 14 對(duì)傳感器進(jìn)行道路識(shí)別。傳感器對(duì)白色的反射率比黑色的大。單片機(jī) ADC 讀入值相應(yīng)也大。在程序中對(duì)傳感器信號(hào)進(jìn)行處理,判斷傳感器是否檢測(cè)到黑色引導(dǎo)線。將單個(gè)傳感器對(duì)白色和黑色路面的 ADC 值之差分為平均的兩段,每次處理實(shí)時(shí)傳感器信號(hào)時(shí),判斷本次采樣的 ADC 值與黑色路面 ADC 值之差落在兩段中的哪一段。如果在靠近黑色的一段,則判定該傳感器檢測(cè)到黑線,將該傳感器對(duì)應(yīng)的變量置為判定
13、值 1;如果在靠近白色的一段,則判定該傳感器檢測(cè)到白線,將該傳感器對(duì)應(yīng)的變量置為判定值 1;為了增強(qiáng)判斷的準(zhǔn)確性,在對(duì) ADC 值采樣時(shí),采用了中值濾波方法,以去除瞬間的干擾。路徑檢測(cè)完后,將測(cè)的的路徑值暫時(shí),然后將路徑信息傳遞給舵機(jī)和電機(jī)控制部分,以選擇給定合適的轉(zhuǎn)角和速度。5.2 舵機(jī)、電機(jī)的控制智能車(chē)的舵機(jī)和電機(jī)都采用了經(jīng)典的控制方法。但是由于舵機(jī)和電機(jī)性能的不同要求,分別對(duì)其進(jìn)行了不同的修改??刂破饔杀壤龁卧≒)、積分單元(I)和微分單元(D)組成。其輸入 e (t)與輸出 u (t)的關(guān)系為積分 KI 來(lái)控制過(guò)去,誤差值是過(guò)去一段時(shí)間的誤差和,然后乘以一個(gè)負(fù)常數(shù) I,然后和預(yù)定值相
14、加。I 從過(guò)去的平均誤差值來(lái)找到系統(tǒng)的輸出結(jié)果和預(yù)定值的平均誤差。一個(gè)簡(jiǎn)單的比例系統(tǒng)會(huì)振蕩,會(huì)在預(yù)定值的附近來(lái)回變化,因?yàn)橄到y(tǒng)無(wú)法消除多余的糾正。通過(guò)加上一個(gè)負(fù)的平均誤差比例值,平均的系統(tǒng)誤差值就會(huì)總是減少。所以,最終這個(gè)回路系統(tǒng)會(huì)在預(yù)定值定下來(lái)。微分 KD 來(lái)控制將來(lái), 計(jì)算誤差的一階導(dǎo),并和一個(gè)負(fù)常數(shù) D 相乘,最后和預(yù)定值相加。這個(gè)導(dǎo)數(shù)的控制會(huì)對(duì)系統(tǒng)的改變作出反應(yīng)。導(dǎo)數(shù)的結(jié)果越大,那么控制系統(tǒng)就對(duì)輸出結(jié)果作出更快速的反應(yīng)。這個(gè) D 參數(shù)也是被成為可的控制器的原因。D 參數(shù)對(duì)減少控制器短期的改變很有幫助。一些實(shí)際中的速度緩慢的系統(tǒng)可以不需要 D 參數(shù)。由于舵機(jī)是一個(gè)具有大的延遲的執(zhí)行機(jī)構(gòu),
15、所以在控制中不能加入積分環(huán)節(jié)。否則會(huì)導(dǎo)致小蕩。所以小車(chē)采用 PD 控制。同時(shí)加入一個(gè)一階慣性環(huán)節(jié),不完全微分,給小車(chē)一個(gè)超前的調(diào)節(jié)。實(shí)際使用中,為了減少計(jì)算時(shí)間,將位置式轉(zhuǎn)化為增量式增量式公式:大到很小的時(shí)候,或由低速突然加到高速的過(guò)程中,會(huì)出現(xiàn)很大的超調(diào)。但是這個(gè)超調(diào)并不是有害的,因?yàn)?,?dāng)速度要求突變的時(shí)候,往往是小車(chē)由直道入彎道,或者由彎道入直道的過(guò)程,這個(gè)過(guò)程往往需要很快的大加,而由于小車(chē)的慣性,一般的調(diào)節(jié)難以滿足要求,這時(shí)使用大的超調(diào)量可以使小車(chē)有一個(gè)加速或剎車(chē)的過(guò)程,使之更好的達(dá)到要求速度。第六章 運(yùn)行調(diào)試與小結(jié)6.1 Codewarrior 開(kāi)發(fā)環(huán)境在整個(gè)開(kāi)發(fā)調(diào)試過(guò)程中,使用 Me
16、trowerks 公司為 MC9S12系列專(zhuān)門(mén)提供的開(kāi)發(fā)工具(Freescale Codewarrior IDE 4.6)。這是一套用 C 語(yǔ)言進(jìn)行編程的集成開(kāi)發(fā)環(huán)境本文智能車(chē)成的。的設(shè)計(jì)部分就是在此開(kāi)發(fā)環(huán)境下完Codewarrior 是由Metrowerks 公司提供的專(zhuān)門(mén)面向Freescale 所有 MCU 與DSP全應(yīng)用開(kāi)發(fā)的工具。其中包括集成開(kāi)發(fā)環(huán)境 IDE、處理器、仿真、可視化參數(shù)顯示工具、項(xiàng)目工程管理、C 交叉編譯器、匯編器、器以及調(diào)試器。CodeWarriorIDE 能夠自動(dòng)地檢查代碼中的明顯錯(cuò)誤,它通過(guò)一個(gè)集成的調(diào)試器和編輯器來(lái)掃描你的代碼,以找到并減少明顯的錯(cuò)誤,然后編譯并程
17、序以便計(jì)算機(jī)能夠理解并執(zhí)行你的程序。每個(gè)應(yīng)用程序都經(jīng)過(guò)了使用象CodeWorrior 這樣的開(kāi)發(fā)工具進(jìn)行編碼、編譯、編輯、和調(diào)試的過(guò)程。Metrowerks Codewarrior IDE 中的 mc9s12dg128.h 文件對(duì)所有寄存器對(duì)應(yīng)的存儲(chǔ)地址都進(jìn)行了宏定義,開(kāi)發(fā)者在開(kāi)發(fā)時(shí)直接調(diào)用這些宏就可以了。6.2仿真為了更好的定量分析影響小車(chē)行駛的各個(gè),而且最大限度的節(jié)約時(shí)間和成本。采用了的 PLAST2。仿真和實(shí)際調(diào)試相結(jié)合的辦法。仿真使用了通過(guò)仿真,發(fā)現(xiàn):1、小車(chē)傳感器的探測(cè)距離對(duì)速度有著決定的影響。所以傳感器應(yīng)該盡量的探測(cè)更遠(yuǎn)。但是傳感器的探測(cè)距離過(guò)最小轉(zhuǎn)彎的半徑。否則會(huì)出現(xiàn)盲區(qū)。2、適
18、度增加舵機(jī)的靈敏度,可以使轉(zhuǎn)彎更加靈活。所以長(zhǎng)了舵機(jī)的力臂。在實(shí)際調(diào)試中,加6.2 實(shí)際調(diào)試實(shí)際調(diào)試過(guò)程中,發(fā)現(xiàn)小車(chē)在直道上會(huì)出現(xiàn)左右抖動(dòng)的現(xiàn)象,通過(guò)軟件設(shè)置死區(qū)或其他處理方法,效果都不是很明顯,最后發(fā)現(xiàn)小車(chē)舵機(jī)和前輪的間隙是罪魁禍?zhǔn)?,通過(guò)把前輪設(shè)置為內(nèi)八形,完美的解決了這個(gè)問(wèn)題。在調(diào)試過(guò)程中,加了液晶顯示,還設(shè)置了蜂鳴器,這些輔助設(shè)備在比賽中為了減輕小車(chē)的重量,都是不需要的。但是在調(diào)試過(guò)程中,通過(guò)這些設(shè)備,可以及時(shí)的了解小車(chē)運(yùn)行的情況,達(dá)到事倍功半的效果。第七章 技術(shù)參數(shù)統(tǒng)計(jì)表 7.1 模型車(chē)技術(shù)參數(shù)統(tǒng)計(jì):項(xiàng)目參數(shù)路徑檢測(cè)方法(賽題組)光電組車(chē)模幾何尺寸(長(zhǎng)、寬、高)(毫米)385*220*
19、60車(chē)模軸距/輪距(毫米)200/150車(chē)模平均電流(勻速行駛)(毫安)200電路電容總量(微法)430傳感器種類(lèi)及個(gè)數(shù)紅外對(duì)管 14 個(gè)新增加伺服電機(jī)個(gè)數(shù)1賽道信息檢測(cè)空間精度(毫米)9賽道信息檢測(cè)頻率(次/秒)200參考文獻(xiàn) 航空航天大學(xué)開(kāi)發(fā)方法M,:機(jī)械工業(yè)1234.學(xué)做智能車(chē)M.2006.2004,單片機(jī)的:. 2002. 自動(dòng)控制理論M. 金華民, 蔣荻南. 韓國(guó)智能模型車(chē)技術(shù)方案分析J. 電子產(chǎn)品世界.2006(5):150-152567,. 智能控制器研究的現(xiàn)狀與進(jìn)展J. 自動(dòng)化儀表 2002 年 第 12 期王淑芳編 . 電機(jī)驅(qū)動(dòng)技術(shù)M .科學(xué).2008.光電編分類(lèi)及應(yīng)用J .
20、表技術(shù)與傳感器-1994 年 1 期主要集成電路種類(lèi)/數(shù)量9s12 單片機(jī)最小系統(tǒng)/133886 電機(jī)驅(qū)動(dòng)電路/4速度檢測(cè)電路/1車(chē)模重量(帶有電池)(千克)12附錄 A程序源代碼#include /* common defines and macros */#include /* derivative information */#pragma LINK_INFO DERIVATIVE mc9s12xs128 #includeincludes.htemp1=0,temp2=0; void main(void)unsignedi;unsigned char j; last_add_speed;
21、unsigned char start_line_numb=0; asm sei;CLK_Init(); Port_Init();PIT_Init();/定時(shí)器TIM_Init(); Sci0Open(); AD_Init();_Init(); asm cli;/計(jì)數(shù)器time_up_AD=2; AD_Max_Min();/環(huán)境檢測(cè) for(;)if(start_key()=1)time_up_AD=2;if(E_E3=0)DELAY(20000);stop_car=0; cnt=0;E=0 x8a; elseE=0 x82;aim_speed=Max_Speed;Speed_Clear();
22、key_board(); if(time_up_AD)if(count_1ms7)count_1ms=0; if(send_flag=1)/5put_numb(speed_break);/short_straight put_char( );speed_breakput_numb(now_speed);/history_error0Downnow_poerhistory_error0Downnow_poer put_str(rn);Road_UP();/黑線AD_Change_Max(); Turn_RL();brake();/Display_Array(LED_V,LEDNUM_UP); e
23、lsetime_up_AD=0;Speed_Control();if(start_flag=1|start_flag_boma=1)if(PORTK&0 x20)=0)if(start_flag_boma=1)start_flag_boma=0; stop_car=1;E=0X82;/速度設(shè)置/*if(PTJ&0 x01)=0)/中速speed_flag=1; if(narload_flag=1)add_speed=45;/if(wideload_flag=1) else if(narload_flag=2)add_speed=70;else add_speed=40; if(last_add
24、_speed!=add_speed)aim_speed=Max_Speed-add_speed; last_add_speed=add_speed;else if(PTJ&0 x02)=0)/高速speed_flag=2; if(narload_flag=1)add_speed=40;else if(narload_flag=2)add_speed=60; else add_speed=0; if(last_add_speed!=add_speed)aim_speed=Max_Speed-add_speed; last_add_speed=add_speed;else if(PTJ&0 x03
25、)=0)/speed_flag=3;速if(narload_flag=1)add_speed=10;else if(narload_flag=2)add_speed=20; else add_speed=-15; if(last_add_speed!=add_speed)aim_speed=Max_Speed-add_speed; last_add_speed=add_speed;else/低速speed_flag=0; if(narload_flag=1)add_speed=90;else if(narload_flag=2)add_speed=90; else add_speed=90;
26、if(last_add_speed!=add_speed)aim_speed=Max_Speed-add_speed; last_add_speed=add_speed;*/部分函數(shù)的定義#includeincludes.hspeed_flag=0;/速度大小標(biāo)志位 stop_car;add_speed=0;/add_speed200; aim_speed=Max_Speed; count_curve=0;/彎曲次數(shù)/函數(shù)名稱(chēng):函 數(shù) 功 能 :DianJi_(AD10)dian_P=15,dian_I=25,dian_D=0電機(jī)控制 P=80,dian_I=40,dian_D=40/long
27、dian_P=100,dian_I=60,speed_error2;,dian_D=70,speed_error0,speed_error1 long dian_P=50,dian_I=20,dian_D=20, speed_error0,speed_error1,speed_error2;long DianJi_(long present_speed)speed_error2=speed_error1; speed_error1=speed_error0; speed_error0=aim_speed-present_speed; returndian_P*(speed_error0-spe
28、ed_error1)+(speed_error0)*dian_I/10+dian_D*(speed_error0-2*speed_ error1+speed_error2);/dian_P*speed_error0;/long speed_=0;long low_speed,count_low_speed;/函數(shù)名稱(chēng):brake_sub1(void)函數(shù)功能: 剎車(chē)控制 1/void brake_sub1(lim_speed)PTT=0X00;if(cntbreak1=1)DTY45=50000; /反轉(zhuǎn)占空比E=0 xa2;/DELAY(40);/反轉(zhuǎn)/延時(shí)else if(cntbreak1
29、=5)DTY45=40000; E=0 xa2;/DELAY(40);else /*if(cntbreak1=5)DTY45=20000; E=0 xa2;/DELAY(40);else if(cntbreak17)*/|now_speedlim_speed)PTT=0X00;if(cntbreak2=1)DTY45=30000; /反轉(zhuǎn)占空比E=0 xa2;else if(cntbreak2=3)/反轉(zhuǎn)DTY45=25000; E=0 xa2;else if(cntbreak2=5)DTY45=25000; E=0 xa2;else if(cntbreak2=7)DTY45=20000; E
30、=0 xa2;elsePTT=0XFF;if(E!=0X82) E=0 x8a;cntbreak2=0;/函數(shù)名稱(chēng):函數(shù)功能:brake(void)剎車(chē)控制/tbreak2=0;void brake(void)if(cntbreak1!=0|(now_speed1400&straight_to_curve) /直道入彎剎車(chē)if(speed_break=1&(cntbreak1+; brake_sub1(1100);else if(speed_break=2&(cntbreak1+; brake_sub1(900);elsePTT=0XFF;cntbreak1=0;E!=0X82)E!=0X82
31、)if(E!=0X82) E=0 x8a; else /if(cntbreak2!=0)if(speed_break=1&(cntbreak2+; brake_sub2(1500);/普通剎車(chē)E!=0X82)else if(speed_break=2&(cntbreak2+; brake_sub2(1500);elseE!=0X82)PTT=0XFF;cntbreak2=0;if(E!=0X82) E=0 x8a;if(speed_break=50&( /*PTT=0X00;E!=0X82)DTY45=15000; E=0 xa2;DELAY(45);/put_char(s); E=0 x8a
32、;/反PTT=0XFF;*/speed_break=0;/PTT=0X00;DTY45=20000; E=0 xa2;/反DELAY(9);/put_char(s); E=0 x82;DELAY(3);/停/DTY45=30000;E=0 xa2; DELAY(9);E=0 x82;/反/停/ DELAY(3);DTY45=40000;E=0 xa2; DELAY(9);E=0 x82; DTY45=50000;DELAY(3);E=0 xa2; DELAY(9);E=0 x82;/反/停/反/停DELAY(3);E=0 x8a;/PTT=0XFF;/*if(high_speed_break!
33、=0|speed_break!=0)put_numb(now_speed); put_str(rn);*/ 函數(shù)名稱(chēng):DianJi_(AD10)/ 函數(shù)功能:電機(jī)控制/now_speed;void Speed_Control()s s s sic ic ic icpinl; last_pinl; count_n=0; count_break;/wan_panduan();if(time_up=1)/測(cè)速pinl=calculate_speed(); now_speed=pinl;/put_numb(pinl);/put_str(-);put_numb(aim_speed);put_str(-)
34、;put_numb(/put_str(rn); /put_numb(count_break);DTY23);Speed_Steinl);/if(pinl2)E_E3=0;/停車(chē)last_pinl=pinl;/ 函數(shù)名稱(chēng): void Speed_Stead(voidlong speed_now)/ 函數(shù)功能:/char high_speed;void Speed_Stead(long speed_now)long add;sic char add=DianJi_t; (speed_now/10);speed_+=add;/* if(speed_error0200);/DTY23=10000;el
35、se if(speed_error0190) else if(speed_error0180) else if(speed_error0150) else if(speed_error0100)/ else if(speed_error0600)/ else if(speed_error0200)DTY23=9000; DTY23=8000; DTY23=7000; DTY23=6000; DTY23=10000; DTY23=10000;/else if(speed_error0-10)DTY23=500;else if(speed_error0-2)speed_break=50;/DTY2
36、3=700;*/if(speed_error060000)Speed_Clear();speed_=60000;else if(speed_0)Speed_Clear();speed_=0;DTY23=speed_;/put_led_numb_L(straight_to_curve);/put_led_numb_H(t);/if(straight_to_curve=速次數(shù)小于 10 次t200)/直道入彎限速限if(straight_to_curve=1&now_speed500)/DTY23=6000;t+;t=0;/限速值 按鍵控制/計(jì)數(shù)限速次數(shù)/ else/不是直道入彎限速次數(shù)清零/ 函
37、數(shù)名稱(chēng):/ 函數(shù)功能:void Speed_Clear(void)/void Speed_speed_Clear(void)=0;speed_error2=0; speed_error1=0; speed_error0=0;#includeincludes.h/*/*/Duoji_Angle_101;/0100 左右unsigned char last_max=AD15_Middle,/上次allwhite=0,/是否全白toblack=3, AD10_BLACK;/全白時(shí)要走/黑線精確位置左 5155 右unsigned char straight_line_flag=0; add_curv
38、e=0; add_error_speed=0; now_history_error0Down;unsigned char history_poer,now_poer=0;/指向歷史、現(xiàn)在指針unsigned char history_AD10_BLACK100;/歷史黑線history_error0Down100;/歷史偏差/*/unsignedlast_Black_line_Up=AD15_Middle,last_Black_line_Down=AD15_Middle;duojizhi_up=DuoJi_Up_Middle,doujizhi duojizhi_down=DuoJi_Middl
39、e;=DuoJi_Up_Middle;/函數(shù)名稱(chēng): void Up_Control()函數(shù)功能: 舵機(jī)控制/void Up_Control()if(Black_line_Up=25);else if(Black_line_UpBlack_line_Up_Buffer&Black_line_Up-Black_line_Up_Buffer=6); else if(Black_line_Up=6); else Black_line_Up_Buffer=Black_line_Up;if(Black_Numb_UpDuoJi_Up_Left)=DuoJi_Up_Left;else if(doujizhi
40、DuoJi_Up_Middle+600)duojizhi_up-=20;else if(duojizhi_upDuoJi_Up_Middle-600)duojizhi_up+=20;DTY01=duojizhi_up;last_Black_line_Up=Black_line_Up_Buffer;/存歷史值now_poer=+now_poer%100;/history_AD10_BLACKnow_douji_poer=Black_line_Buffer;/歷史黑線history_error0Downnow_poer=(ang-6);/歷史偏差+Black_line_Up_Buffer-6lac
41、k_line_Up_Buffer-6)+(Black_line_Down_Bufferif(now_poerDuoJi_Left)duojizhi_down=DuoJi_Left;else if(duojizhi_downDuoJi_Right)duojizhi_down=DuoJi_Right;DTY67=duojizhi_down;brake_flag(); Road_Estimate();/ 函數(shù)名稱(chēng): void wan_jiangsu(viod)/ 函數(shù)功能: 彎道/void wan_jiangsu(void)if(short_straight=1|back_curve=1)aim_s
42、peed=Max_Speed; else aim_speed=150;/ 函數(shù)名稱(chēng): void brake_flag_for_speed(viod)/ 函數(shù)功能: 置剎車(chē)標(biāo)志位/void brake_flag_for_speed(n1,n2)if(now_history_error0Down=4&history_error0Downnow_poer-n1)ern1)|(now_history_errorspeed_break=1; if(short_straight=1&back_curve=1)speed_break=0;/PTT=0X00;elseif(now_history_error0
43、Down=4&history_error0Downnow_poern2)speed_break=2;/PTT=0X00;else if(now_history_error0Down=-2&history_error0Downnow_poer40)speed_break=2;/PTT=0X00;/* else if(error0Down15)speed_break=3;*/elsespeed_break=0; tbreak1=0;/PTT=0XFF;er-n2)|(now_history_erroerDuoJi_Up_Left)angle=-60;/左/右_VDuoJi_Up_Middle)an
44、gle=-(_V-DuoJi_Up_Middle)/(DuoJi_Up_60_refLeft-DuoJi_Up_Middle)/60);_VAD15_Left) return 100;if(AD10_BLACKAD15_Right)return 0;return(unsigned char)(AD10_BLACK*100/(AD15_Left-AD15_Right);/* for(i=1;i50;i+)Duoji_Angle_ Duoji_Angle_50-i=Duoji_Angle_ 50+i=Duoji_Angle_50-i+1-50+i-1+_Radd;_Ladd;for(i=0;i=1
45、00;i+)put_numb4(i);put_char(:);put_numb(Duoji_Angle_ put_str(rn);*/i);/DuoJi_(AD10)函數(shù)名稱(chēng):函數(shù)功能:舵機(jī)控制/P=20,I=10 ,D=4, error0,error1,error2;DuoJi_(AD10)/sic history_short_straight=0;P=2;I=20;D=10;if(Black_line_Up_Buffer=AD15_Middle| Black_line_Up_Buffer=AD15_Middle-2| Black_line_Up_Buffer=AD15_Middle+2)P
46、=0;I=8;D=0;error2=error1; error1=error0;error0=AD15_Middle-AD10;return P*(error0-error1)+I*(error0)+D*(error0-2*error1+error2);/ 函數(shù)名稱(chēng): void Clear_Direction_(void)/ 函數(shù)功能:舵機(jī)控制/void Clear_Direction_(void)doujizhi=DuoJi_Up_Middle; error0=0;error1=0; error2=0;/ 函數(shù)名稱(chēng): void Down_(void)/ 函數(shù)功能: 下舵機(jī)控制/PDown,I
47、Down,DDown,error0Down,error1Down,error2Down; aim_direction=0;Down_(void)temp=0;sic history_short_straight=0;if(short_straight=1&history_short_straight=0)Clear_Down_ history_short_straight=short_straight;();if(short_straight=1)PDown=15;IDown=1;DDown=15;elseif(back_curve=0)PDown=60;IDown=3;DDown=25; e
48、lsePDown=28;IDown=4;DDown=20;/* if(back_curve=1)PDown=15;IDown=1;DDown=20;elsePDown=50;IDown=1;DDown=25;*/error2Down=error1Down; error1Down=error0Down;error0Down=-(ang returnlack_line_Up_Buffer-6)+(Black_line_Down_Buffer-6);PDown*(error0Down-error1Down)+IDown*(error0Down)/10+DDown*(error0Down-2*erro
49、r1Do wn+error2Down);/函數(shù)名稱(chēng): void Clear_Down_函數(shù)功能:(void)/void Clear_Down_(void)duojizhi_down=DuoJi_Middle; error0Down=0; error1Down=0; error2Down=0;unsigned char speed_break=0,high_speed_break=0;/剎車(chē)標(biāo)志位/unsigned char curve=0;/彎曲大小AD_n_m=0;/直道入彎道時(shí)候的偏中心位置 unsigned char straight_to_curve=0;/直道入彎道標(biāo)志unsigne
50、d char long_straight=0; /長(zhǎng)直道標(biāo)志位 unsigned char short_straight=0; /長(zhǎng)直道標(biāo)志位 unsigned char to_right=0,to_left=0,back_curve=0;/ 函數(shù)名稱(chēng): void Road_Estimate(viod)/ 函數(shù)功能: 舵機(jī)控制/void Road_Estimate(void)siccount_right,count_left, count_middle, count_middle_down, begin_middle=1, begin_back;/if(history_error0Downnow_poer-15)&
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- GGFG-PAB-Exatecan-TFA-生命科學(xué)試劑-MCE-7805
- 2025年度私教健身中心教練團(tuán)隊(duì)合作協(xié)議
- 2025年度水產(chǎn)養(yǎng)殖技術(shù)支持租地合同
- 二零二五年度私人酒店健身教練用工協(xié)議
- 材料采購(gòu)合同
- 食堂操作間衛(wèi)生與消毒措施
- 河道清淤施工方案6篇
- 個(gè)人不服勞動(dòng)合同糾紛仲裁起訴狀范本
- 上海簡(jiǎn)易離婚合同模板
- 上海市商品住宅銷(xiāo)售合同模板
- (二模)遵義市2025屆高三年級(jí)第二次適應(yīng)性考試試卷 地理試卷(含答案)
- 二零二五隱名股東合作協(xié)議書(shū)及公司股權(quán)代持及回購(gòu)協(xié)議
- 風(fēng)電設(shè)備安裝施工專(zhuān)項(xiàng)安全措施
- IQC培訓(xùn)課件教學(xué)課件
- 2025年計(jì)算機(jī)二級(jí)WPS考試題目
- 高管績(jī)效考核全案
- 2024年上海市中考英語(yǔ)試題和答案
- 教育部《中小學(xué)校園食品安全和膳食經(jīng)費(fèi)管理工作指引》知識(shí)培訓(xùn)
- 建設(shè)用地報(bào)批服務(wù)投標(biāo)方案(技術(shù)方案)
- 2023年11月英語(yǔ)二級(jí)筆譯真題及答案(筆譯實(shí)務(wù))
- 工廠主文件(新)
評(píng)論
0/150
提交評(píng)論