智能小車設(shè)計(jì)方案報(bào)告_第1頁(yè)
智能小車設(shè)計(jì)方案報(bào)告_第2頁(yè)
智能小車設(shè)計(jì)方案報(bào)告_第3頁(yè)
智能小車設(shè)計(jì)方案報(bào)告_第4頁(yè)
智能小車設(shè)計(jì)方案報(bào)告_第5頁(yè)
已閱讀5頁(yè),還剩31頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、精選優(yōu)質(zhì)文檔-傾情為你奉上專心-專注-專業(yè)摘要 自主反應(yīng)式智能系統(tǒng)是一種應(yīng)用廣泛的控制系統(tǒng)。對(duì)電路的分析和驗(yàn)證工作依靠智能化來(lái)完成,效率高。因此它的研究與開(kāi)發(fā)是一項(xiàng)非常有意義的工作。 本小車以 MSP430 超低功耗單片機(jī)為核心,在 SHARK 二型小車的基礎(chǔ)上研究小車避障尋跡的設(shè)計(jì)和實(shí)現(xiàn)方法,完成障礙檢測(cè)、避障、尋跡功能。充分運(yùn)用了 430 單片機(jī)的功能。本論文介紹了智能小車的機(jī)械結(jié)構(gòu)及相應(yīng)的硬件電路和實(shí)現(xiàn)算法。在機(jī)械結(jié)構(gòu)上,對(duì)普通的小車作了改進(jìn),即用一個(gè)萬(wàn)用輪來(lái)代替兩個(gè)前輪,使小車的轉(zhuǎn)向更加靈敏。利用反射式紅外傳感器來(lái)尋跡、紅外一體化接收頭來(lái)檢測(cè)障礙物的位置,通過(guò)改變單片機(jī)產(chǎn)生的 PWM

2、方波的占空比,使其能在設(shè)計(jì)范圍內(nèi)可實(shí)現(xiàn)任意角度黑線和任意角度移動(dòng),還可以實(shí)現(xiàn)避障的功能。在算法上,利用矢量分解法、PID 算法等對(duì)小車的運(yùn)行進(jìn)行控制并能有效的改善其運(yùn)行軌跡。關(guān)鍵字:MSP430尋跡避障PWM精選優(yōu)質(zhì)文檔-傾情為你奉上專心-專注-專業(yè)AbstractIndependences responding type intelligence system is a kind of applied extensive control system. Analyzing electric circuit and verifying a work depends on the intelli

3、gence to complete, its efficiency is high. So its research and development is a very meaningful works.With the core of 430microcomputer and at the foundation of SHARK, the No.3 small car can complete an obstacle examination, avoiding stumbling block and looking for vestige function, making full use

4、of 430microcomputer. This thesis introduced machine structure, homologous hardware electric circuit and the calculate way of the intelligence small car .Making improvement to the common car on the machine structure, we use a perfect wheel to make the car turning more easily. And we use some sensors

5、to look for vestige and avoid stumbling block. By change the empty ratio of PWM, the car can arbitrarily move with any angle of the black line within the scope of the design. On the calculate way, we use vector decomposition method、PID to control the car and improve its track.Key word: MSP430 lookin

6、g for vestige avoiding stumbling block PWM PID精選優(yōu)質(zhì)文檔-傾情為你奉上專心-專注-專業(yè)目錄目錄第一章第一章緒論緒論.1第二章第二章 各部件的工作原理各部件的工作原理.32.1 前輪(導(dǎo)向輪).32.2電機(jī).42.3反射式紅外傳感器.52.4紅外一體化接收頭.6第三章第三章硬件電路硬件電路.113.1電機(jī)驅(qū)動(dòng)電路.113.2反射式紅外傳感器電路.133.3紅外一體化接收頭電路.143.4 處理器電路.16第四章第四章電路原理圖電路原理圖.19第五章第五章控制算法控制算法.215.1黑線位置判別.215.2巡線算法.215.3搜線算法.235.4障礙

7、物位置判別.235.5轉(zhuǎn)彎控制.255.6 迷宮探路控制.26第六章第六章 相關(guān)軟件相關(guān)軟件.29第七章第七章 總結(jié)總結(jié).35精選優(yōu)質(zhì)文檔-傾情為你奉上專心-專注-專業(yè)7.1 本文總結(jié).357.2 進(jìn)一步的工作.35致謝致謝.37參考文獻(xiàn)參考文獻(xiàn) .39附錄一附錄一.41附錄二附錄二.42精選優(yōu)質(zhì)文檔-傾情為你奉上專心-專注-專業(yè)第一章緒論當(dāng)今社會(huì),科學(xué)技術(shù)日新月異,時(shí)代前進(jìn)的步伐越邁越寬,應(yīng)用自動(dòng)化設(shè)備,計(jì)算機(jī)處理,現(xiàn)代化通訊,數(shù)字化信息,現(xiàn)代化顯示設(shè)備等高新技術(shù)而建立的現(xiàn)代化智能,監(jiān)控等系統(tǒng)已經(jīng)得到充分的發(fā)展與應(yīng)用,智能機(jī)器人也就應(yīng)運(yùn)而生。同時(shí),在建設(shè)以人為本的和諧社會(huì)的過(guò)程中,智能服務(wù)機(jī)

8、器人能夠完成考古發(fā)掘,海底揭密,宇宙探索等危險(xiǎn)作業(yè),以保證人身安全。 國(guó)家中長(zhǎng)期科學(xué)和技術(shù)發(fā)展規(guī)劃綱要一文指出:智能服務(wù)機(jī)器人是在非結(jié)構(gòu)環(huán)境下為人類提供必要服務(wù)的多種高技術(shù)集成的智能化裝備。以服務(wù)機(jī)器人和危險(xiǎn)作業(yè)機(jī)器人應(yīng)用需求為重點(diǎn),研究設(shè)計(jì)方法、制造工藝、智能控制和應(yīng)用系統(tǒng)集成等共性基礎(chǔ)技術(shù)。重點(diǎn)研究低成本的自組織網(wǎng)絡(luò),個(gè)性化的智能機(jī)器人。20062020 年,既是國(guó)家中長(zhǎng)期技術(shù)發(fā)展計(jì)劃實(shí)現(xiàn)階段,也是我們最具有活力和最激情洋溢的時(shí)段。該智能小車模型是一輛由 PCB 和車體拼裝的小車。所有的機(jī)械結(jié)構(gòu)和零部件都安裝固定在電路板上。因此完全不需要機(jī)械加工,非常適合實(shí)驗(yàn)階段機(jī)器人的研制。本文簡(jiǎn)述了智

9、能巡線避障小車自主走迷宮的設(shè)計(jì)思路和實(shí)現(xiàn)過(guò)程。包括小車的機(jī)械結(jié)構(gòu)、電路、軟件、控制算法、調(diào)試方法等。可作為一般的設(shè)計(jì)參考。小車的左右輪分別由 2 只舵機(jī)提供動(dòng)力,作為驅(qū)動(dòng)輪和導(dǎo)向輪使。430 單片機(jī)的 PWM 發(fā)生器產(chǎn)生 2 路(分為兩組)占空比可變的方波,經(jīng)三極管進(jìn)行擴(kuò)流后分別驅(qū)動(dòng)左右舵機(jī)??刂?2 路 PWM 的比例,不僅可以調(diào)節(jié)小車向前運(yùn)動(dòng)的速度,還可通過(guò) 2 路 PWM 占空比的差異,改變小車運(yùn)動(dòng)方向。5 只反射式紅外傳感器位于小車前下方,用于查找黑線位置并且實(shí)現(xiàn)尋跡。小車前端還分布有 3 個(gè)紅外一體化接收頭,實(shí)現(xiàn)避障并完成走迷宮。精選優(yōu)質(zhì)文檔-傾情為你奉上專心-專注-專業(yè)第二章第二章

10、 各部件的工作原理各部件的工作原理2.1 驅(qū)動(dòng)輪(導(dǎo)向輪)前輪亦為驅(qū)動(dòng)輪,其決定小車能否靈活拐彎的關(guān)鍵部分。這輛小車和汽車不同,不是靠擺舵來(lái)控制轉(zhuǎn)彎,而是靠左右后輪速度差來(lái)實(shí)現(xiàn)轉(zhuǎn)彎控制。圖為小車的仰視圖(未畫(huà)出傳感器)。小車的兩前輪是靠舵機(jī)進(jìn)行驅(qū)動(dòng)的。通過(guò)兩路 PWM 波實(shí)現(xiàn)對(duì)其的控制。只要調(diào)整 PWM 波的占空比即可控制舵機(jī)的轉(zhuǎn)速。當(dāng)小車左輪的速度高于右輪時(shí),小車右轉(zhuǎn)彎;反之,當(dāng)小車右輪的速度高于左輪時(shí), 小車左轉(zhuǎn)彎。 小車后輪屬?gòu)膭?dòng)輪,質(zhì)地較硬,其與地面磨擦力較小,與其動(dòng)力相比可以忽略不記。所以它可以自由偏移,而不影響小車的轉(zhuǎn)向.精選優(yōu)質(zhì)文檔-傾情為你奉上專心-專注-專業(yè)2.2 舵 機(jī)舵機(jī)

11、是一種位置伺服的驅(qū)動(dòng)器。它接收一定的控制信號(hào),輸出一定的角度,適用于那些需要角度不斷變化并可以保持的控制系統(tǒng)。在微機(jī)電系統(tǒng)和航模中,它是一個(gè)基本的輸出執(zhí)行機(jī)構(gòu)。準(zhǔn)的舵機(jī)有 3 條導(dǎo)線,分別是:電源線、地線、控制線,如圖所示。電源線和地線用于提供舵機(jī)內(nèi)部的直流電機(jī)和控制線路所需的能源電壓通常介于 46V,一般取 5V。注意,給舵機(jī)供電電源應(yīng)能提供足夠的功率。控制 線的輸入是一個(gè)寬度可調(diào)的周期性方波脈沖信號(hào),方波脈沖信號(hào)的周期為20 ms(即頻率為 50 Hz)。當(dāng)方波的脈沖寬度改變時(shí),舵機(jī)轉(zhuǎn)軸的角度發(fā)生改變,角度變化與脈沖寬度的變化成正比。2.3反射式紅外傳感器反射式紅外傳感器 ST188 采用

12、高發(fā)射功率紅外廣電二極管和高靈敏度光電晶體管組成。檢測(cè)距離可調(diào)整范圍為 415mm;采用非接觸檢測(cè)方式??捎糜贗C 卡電度表脈沖數(shù)據(jù)采集、集中抄表系統(tǒng)數(shù)據(jù)采集和傳真機(jī)紙張檢測(cè)等。精選優(yōu)質(zhì)文檔-傾情為你奉上專心-專注-專業(yè)圖 2.4反射式紅外傳感器工作原理反射式紅外傳感器中包含一個(gè)發(fā)射器 LED 和一個(gè)光探測(cè)器(光敏二極管光敏三極管) 。著兩個(gè)元件被封裝在同一個(gè)塑料殼體中,并且排列成適合他們工作的理想位置。LED 發(fā)出的一束光被一個(gè)表面反射后又回到探測(cè)器中。圖 1.4 是反射式紅外傳感器的工作原理圖。封裝在矩形殼體中的是發(fā)射器LED(由左側(cè)的白色方塊表示)和探測(cè)器裝置(在右側(cè)) 。虛線表示光線從

13、發(fā)射器 LED 中發(fā)出并反射回探測(cè)器;探測(cè)器檢測(cè)到的光強(qiáng)大小取決于物體表面的反射率,而這一光強(qiáng)就是傳感器的輸出值。如圖所示,選通信號(hào)(高電平)經(jīng)過(guò)三極管擴(kuò)流后送到傳感器的 K 腳,如果檢測(cè)到黑線,傳感器 C 腳輸出高電平;否則輸出為低電平。圖 2.5反射式紅外傳感器及其檢測(cè)距離與轉(zhuǎn)換效率的關(guān)系圖精選優(yōu)質(zhì)文檔-傾情為你奉上專心-專注-專業(yè)反射式傳感器在高度受控的理想環(huán)境下的工作性能更好,因?yàn)橛绊懰敵龅耐饨缫蛩赜泻芏啵绛h(huán)境光的變動(dòng)、傳感器與被探測(cè)物體之間的距離,以及被探測(cè)物體的反射率等。為了減少環(huán)境光的干擾,首先需要調(diào)整傳感器的方位使環(huán)境光不能直接射到探測(cè)器。反射式紅外傳感器 ST188 的最

14、佳探測(cè)距離為 6-14mm。所以將傳感器垂直于地面并且調(diào)整傳感器與地面的距離,大約在 10mm 左右。2.4紅外一體化接收頭電視機(jī)、唱機(jī)等家電中廣泛使用紅外線遙控器。紅外遙控器發(fā)出 38KHz 調(diào)制的紅外線,在接收端,被一體化紅外接收頭接收,解調(diào)出原始鍵碼值。因?yàn)榧t外遙控使用廣泛、成熟、大批量,所以相關(guān)紅外接收、發(fā)射元件價(jià)格很低。本方案使用通用遙控器的一體化紅外接收頭作為檢測(cè)元件。圖 2.7 一體化紅外接收頭工作原理一體化接收頭內(nèi)部集成有帶通濾波器,它只允許大約 38 kHz 的紅外信號(hào)通過(guò)。這種僅對(duì) 38KHz 敏感的特性,有助于消除環(huán)境光對(duì)遙控器接收的影響。如圖,當(dāng)紅外線發(fā)射管 IR LE

15、D)發(fā)出的 38KHz 的紅外線被一體化接收頭接收時(shí),接收頭輸出“0” 。當(dāng)沒(méi)有偵測(cè)到紅外線,或非 38KHz 紅外線(如日光燈干擾) ,輸出“1” 。第三章第三章硬件電路硬件電路3.1舵機(jī)驅(qū)動(dòng)電路精選優(yōu)質(zhì)文檔-傾情為你奉上專心-專注-專業(yè)此部分是整個(gè)小車的大腦,是整個(gè)小車運(yùn)行的核心部件,起著控制小車所有運(yùn)行狀態(tài)的作用。通常選用單片機(jī)作為小車的核心控制單元。這里選用MSP430F425 單片機(jī). 考慮到小車必須能夠前進(jìn)、倒退、停止,并能靈活專性,在左右兩輪各裝一個(gè)舵機(jī)分別進(jìn)行驅(qū)動(dòng)。當(dāng)左輪電機(jī)轉(zhuǎn)速高于右輪電機(jī)轉(zhuǎn)速時(shí)小車向右轉(zhuǎn),反之則向左轉(zhuǎn)。為了能控制車輪的轉(zhuǎn)速,左右兩輪的轉(zhuǎn)速,可以采取 PWM

16、調(diào)速法,即由單片機(jī)的 TA1 和 TA2 輸出一系列頻率固定的方波,再通過(guò)功率放大來(lái)驅(qū)動(dòng)舵機(jī),在單片機(jī)中編程改變輸出方波的占空比,從而可以改變電機(jī)的轉(zhuǎn)速。左右兩輪兩個(gè)電機(jī)轉(zhuǎn)速的配合就可以實(shí)現(xiàn)小車的前進(jìn)、倒退、轉(zhuǎn)彎等功能。驅(qū)動(dòng)電路如圖:需要注意的是:被二極管分流到電源兩端的電力將造成主板電壓的瞬變或噪聲。更嚴(yán)重的是當(dāng)采用 PWM 信號(hào)控制電機(jī)時(shí),每次關(guān)斷都會(huì)產(chǎn)生這種影響。如果導(dǎo)通三極管又重新開(kāi)啟,同時(shí)反向電動(dòng)勢(shì)電流仍然存在,結(jié)果三極管將直接導(dǎo)通電源正極和地。這一現(xiàn)象時(shí)間的長(zhǎng)短取決于續(xù)流二極管的關(guān)斷時(shí)間。這一電流稱作過(guò)沖電流,它同樣會(huì)產(chǎn)生噪聲。因此需在離接口慢近的地方加一旁路電容來(lái)消噪。旁路電容的

17、作用是平滑電流脈動(dòng)和電源電壓的瞬變。當(dāng)電壓出現(xiàn)尖峰時(shí),電容將迅速地吸收這一能量,從而使電壓保持恒定。當(dāng)電壓降低時(shí),電容將向電路中回饋能量,從而使電壓有所回升。經(jīng)試驗(yàn)驗(yàn)證,從單片機(jī)出來(lái)的 PWM 電壓大約在 3.5V 左右,加到舵機(jī)兩邊最多只有 3V,這遠(yuǎn)遠(yuǎn)低于其耐壓,因此轉(zhuǎn)速也很慢,稍有摩擦就轉(zhuǎn)不動(dòng)了。因此需要再增加兩個(gè)三極管來(lái)進(jìn)行擴(kuò)流,還可以起保護(hù)單片機(jī)的作用。精選優(yōu)質(zhì)文檔-傾情為你奉上專心-專注-專業(yè)3.2反射式紅外傳感器電路這里的尋跡是指小車在白色地板上尋黑線行走,通常采用的方法是紅外探測(cè)法。即利用紅外線在不同顏色的物體表面具有不同的反射性質(zhì)的特點(diǎn),在小車行駛過(guò)程中不斷地向地面發(fā)射紅外光

18、,當(dāng)紅外光遇到白色紙質(zhì)地板時(shí)發(fā)生漫反射,反射光被安裝在小車上的接收管接收;如果遇到黑線則紅外光被吸收,小車上的接收管接收不倒紅外光。單片機(jī)就是否反射回來(lái)的紅外光為依據(jù)來(lái)確定黑線的位置和小車的行走路線。紅外探測(cè)器探測(cè)的距離有限,一般最大不應(yīng)超過(guò) 15cm。這里用反射式紅外傳感器 ST188。當(dāng)小車在白色地面行駛時(shí),裝在車下的紅外發(fā)射管發(fā)射紅外線信號(hào),經(jīng)白色反射后,被接收管接收,一旦接收管接收到信號(hào),輸出端將輸出低電平;當(dāng)小車行駛到黑線時(shí),紅外線信號(hào)被黑色吸收后,將輸出高電平,從而實(shí)現(xiàn)了通過(guò)紅線檢測(cè)信號(hào)的功能。將檢測(cè)到的信號(hào)送到單片機(jī)的 I/O 口,當(dāng) I/O 口檢測(cè)到的信號(hào)為高電平時(shí),表明紅外光

19、被地上的黑線吸收了,表明小車處在黑色的引線上;同理,當(dāng) I/O 口檢測(cè)到的信號(hào)為低電平時(shí),表明小車行駛在白色地面上。傳感器采取脈沖掃描式讀。例如某時(shí)刻 P_SEN1 高電平,其余 P_SEN2 至 5 低,這樣 1、4 號(hào)傳感器的紅外發(fā)射管亮,其余傳感器不發(fā)射紅外線。等待數(shù)據(jù)穩(wěn)定后,讀取 1、4 號(hào)傳感器的數(shù)據(jù)。然后關(guān)閉 1、4 號(hào)傳感器,打開(kāi) 2、5 號(hào)傳感器精選優(yōu)質(zhì)文檔-傾情為你奉上專心-專注-專業(yè)電源,依次類推,讀取 5 個(gè)傳感器的數(shù)據(jù)。這樣可以保證任何時(shí)刻都不會(huì)有臨近的傳感器同時(shí)工作。從而保證了相鄰傳感器之間不會(huì)互相干擾。同時(shí),紅外發(fā)射管是除了電機(jī)之外耗電最大的器件,脈沖工作方式可以大

20、大減少耗電量。3.3紅外一體化接收頭電路傳感器排布采用如下結(jié)構(gòu):每個(gè)傳感器組由一只紅外發(fā)射管、一只一體化紅外接收頭,和一只電容構(gòu)成??梢詼y(cè)量該方向是否存在障礙物和判斷障礙物的距離。電容用來(lái)穩(wěn)定電路,防止電源和地發(fā)生短路。硬件原理:采用一片 MSP430F245 作為控制器。利用 BasicTimer 的定時(shí)中斷,產(chǎn)生 38KHz 附近的若干頻率,從 P1.1 輸出方波。該方波經(jīng)過(guò)三極管擴(kuò)流來(lái)增加驅(qū)動(dòng)能力,給 3 個(gè)紅外 LED 供電。為防止互相干擾,3 只 LED 輪流點(diǎn)亮,每次只亮一只 LED,由 IRE 選擇哪支紅外 LED 被點(diǎn)亮。如果接收到反射回來(lái)的紅外線,接收端將輸出 TTL 電平,

21、被單片機(jī)接收,然后執(zhí)行相應(yīng)的避障措施。如果未接收到任何信號(hào),將一直輸出高電平。因?yàn)橐惑w化接收頭只對(duì) 38kHz 的方波敏感,而且它內(nèi)部帶有帶通濾波器,所以需要在發(fā)送 38kHz 的時(shí)候發(fā)送一段時(shí)間關(guān)閉一段時(shí)間,否則傳感器會(huì)認(rèn)為它是外界光而將返回的信號(hào)當(dāng)作干擾信號(hào)而忽略掉。為了避免各個(gè)傳感器之間的相互干擾,需要輪流打開(kāi)接收器。另外,因?yàn)榫x優(yōu)質(zhì)文檔-傾情為你奉上專心-專注-專業(yè)發(fā)光管發(fā)出的光是沿四面八方發(fā)送的,而且只要打開(kāi)電源發(fā)射管就會(huì)工作,所以也為了避免因別的發(fā)光管帶來(lái)的干擾,需要將發(fā)光管包的嚴(yán)嚴(yán)實(shí)實(shí)的這三個(gè)傳感器所起的作用是不同的。這三個(gè)傳感器用來(lái)檢測(cè)前方、左邊還有右邊是否有障礙物。通過(guò)對(duì)三

22、方向的障礙物完成走迷宮的路線尋找。3.4 處理器電路小車采用一片 MSP430F245 作為控制器。MSP430F425 的特點(diǎn)是:有五種節(jié)電模式;2 個(gè) 8 位,1 個(gè) 6 位并行端口,全部端口均具有中斷能力;保密熔絲的程序代碼保護(hù);具有 1 個(gè)捕獲比較寄存器的 16 位定時(shí)器 TIMER_A;多達(dá) 16KB FLASH ROM 和 512RAM 等等。系統(tǒng)采用 32.768KHz 晶振作為定時(shí)采樣用。另外留有 JTAG 口可以現(xiàn)場(chǎng)編程。并且還有液晶引腳未用到,將來(lái)還可以擴(kuò)展其功能。在做 PCB 板時(shí)已將這些引腳引出,可以直接使用。TIMERA 共有 4 種計(jì)數(shù)模式:停止模式、增計(jì)數(shù)模式、連

23、續(xù)計(jì)數(shù)模式和增減計(jì)數(shù)模式。我們用 TIMERA 的增計(jì)數(shù)模式來(lái)產(chǎn)生 38KHZ 的方波。具體原理為:捕獲比較寄存器 TACCR0 用作 TIMERA 增計(jì)數(shù)模式的周期寄存器,因?yàn)?TACCR0為 16 位寄存器,所以該模式適用于定時(shí)周期小于 65536 的連續(xù)計(jì)數(shù)情況。計(jì)數(shù)精選優(yōu)質(zhì)文檔-傾情為你奉上專心-專注-專業(yè)器 TAR 可以增加計(jì)數(shù)到 TACCR0 的值,當(dāng)計(jì)數(shù)值與 TACCR0 的值相等(或定時(shí)器值大于 TACCR0 的值)時(shí),定時(shí)器復(fù)位并從 0 開(kāi)始重新計(jì)數(shù)。圖 2.8 說(shuō)明了增計(jì)數(shù)模式的計(jì)數(shù)過(guò)程。當(dāng)定時(shí)器的值等于 TACCR0 的值時(shí),設(shè)置標(biāo)志位 CCIFG0(捕獲比較中斷標(biāo)志)為

24、 1,而當(dāng)定時(shí)器從 TACCR0 計(jì)數(shù)到 0 時(shí),設(shè)置標(biāo)志位TAIFG(定時(shí)器溢出標(biāo)志)為 1。計(jì)數(shù)過(guò)程中還可以通過(guò)改變 TACCR0 的值來(lái)重置技術(shù)周期。當(dāng)新周期大于舊周期時(shí),定時(shí)器會(huì)直接增計(jì)數(shù)到新周期;當(dāng)新周期小于舊周期時(shí),改變TATACCR0 時(shí)的定值器時(shí)鐘相位會(huì)影響定時(shí)器響應(yīng)新周期的情況。時(shí)鐘為高時(shí)改變 TACCR0 的值,則定值器會(huì)在下一個(gè)時(shí)鐘上升沿返回到 0,如果時(shí)鐘為低時(shí)改變 TACCR0 的值,則定時(shí)器接受新周期并在返回到 0 之前,繼續(xù)增加一個(gè)時(shí)鐘周期。可以隨時(shí)間變化任意改變 PWM 信號(hào)的占空比,具體的做法是:保持 TACCR0 的值不變(周期不變)改變 TACCRx 值(

25、改變占空比)增計(jì)數(shù)模式時(shí)的輸出實(shí)例精選優(yōu)質(zhì)文檔-傾情為你奉上專心-專注-專業(yè)TIMERA 的輸出模式由模式控制位 OUTMODEx 決定,共有 8 種輸出模式。除模式 0 外,其他的輸出都在定時(shí)器時(shí)鐘上升沿時(shí)發(fā)生變化。這里我們將輸出模式選為輸出模式 7。用該方式產(chǎn)生占空比為 50的 38KHZ 的方波;也可以通過(guò)改變 TACCRx 的值來(lái)改變電機(jī)的轉(zhuǎn)速,使其實(shí)現(xiàn)轉(zhuǎn)彎、后退等動(dòng)作。第五章控制算法5.1黑線位置判別 地面的黑線是導(dǎo)引線,位置讀取和計(jì)算的準(zhǔn)確度、穩(wěn)定性將直接影響小車的控制和運(yùn)行。下圖是實(shí)際運(yùn)行中出現(xiàn)的情況,黑塊表示感應(yīng)到黑線的傳感器。傳感器的排列比較密,可能 12 個(gè)傳感器都能踩到黑

26、線;轉(zhuǎn)彎處車身傾斜甚至23 個(gè)傳感器都能踩到黑線。應(yīng)該求黑線的中心位置作為結(jié)果。圖 5.1反射式紅外傳感器的運(yùn)算圖計(jì)算的方法是從左數(shù),找到第一個(gè)黑色傳感器編 i,再?gòu)挠覕?shù),找到第一個(gè)黑色傳感器編 j。(i+j)*10/2-20 就是黑線中心位置。這樣算出來(lái)的結(jié)果中有小數(shù)部分,用起來(lái)不太方便,因此我們將結(jié)果放大10 倍,再減去之間位置時(shí)算出來(lái)的值。5.2巡線算法小車是一個(gè)非常典型的慣性系統(tǒng)。對(duì)于這一類被控對(duì)象,PID 算法能簡(jiǎn)單有效的進(jìn)行控制。對(duì) PID 算法做個(gè)簡(jiǎn)單的說(shuō)明:Position=0Position= -15Position=0.5Posit= (i+j)*10/2-20精選優(yōu)質(zhì)文檔

27、-傾情為你奉上專心-專注-專業(yè)假設(shè)小車中心線在黑線中心線上,偏差為 0,小車正常行駛。如果某時(shí)刻檢測(cè)到黑線偏左,就要向左轉(zhuǎn)彎;如果檢測(cè)到黑線偏右,就要向右轉(zhuǎn)。偏得越多,就要向黑線方向打越大的舵角。這就是比例控制(P)遺憾的是,這種方法并不能將小車穩(wěn)定在線上,因?yàn)樾≤囉袘T性。假設(shè)黑線偏左,說(shuō)明小車偏右了,需要左傳舵,等到小車回到中心的時(shí)候,停止轉(zhuǎn)舵,可是小車的慣性會(huì)使車身繼續(xù)左轉(zhuǎn),直到?jīng)_過(guò)黑線,黑線又偏右。然后控制過(guò)程反復(fù),車身是在左右搖擺中向前行走的。這種搖擺叫做“超調(diào)” ,超調(diào)越大,控制越不穩(wěn)定,容易出軌。為了克服慣性,最簡(jiǎn)單的辦法是任何控制動(dòng)作都提前一點(diǎn)。適當(dāng)調(diào)整提前量可以抵消慣性;另外,

28、即使偏移量相同的情況下,在不同半徑的彎道,也需要不同的舵角。這些都是比例控制不能實(shí)現(xiàn)的。我們除了位置信息之外,還需要知道軌跡的變化趨勢(shì)。為了實(shí)現(xiàn)提前控制,在時(shí)間上,除非延長(zhǎng)傳感器,否則沒(méi)有辦法提前獲知轉(zhuǎn)彎。那么我們只能在控制量上想辦法。一個(gè)函數(shù)的導(dǎo)數(shù),反映了該函數(shù)的變化趨勢(shì)。同樣我們可以用黑線位置的微分值來(lái)提前得到變化趨勢(shì)。用本次位置減去前次位置求出差值,就大致知道偏移量的變化趨勢(shì)。將該差值和比例相加后一起作為控制量,即可實(shí)現(xiàn)提前控制。這就叫做比例微分控制(PD 控制)下圖是小車的控制系統(tǒng)框圖:圖 5.2PID 控制算法傳感器位置求出后,減去中心值,得到和中心的偏差量。該偏差量乘以比例系數(shù)得到

29、比例控制量。并且計(jì)算相鄰若干次偏差量之間的差值,乘以微分系精選優(yōu)質(zhì)文檔-傾情為你奉上專心-專注-專業(yè)數(shù),得到微分控制量。將比例控制量和微分控制量相加,作為最終的舵角控制量。積分控制在此系統(tǒng)中沒(méi)有使用,原因是舵角到位置之間本身就是積分關(guān)系的,另外積分控制有相當(dāng)大的滯后,對(duì)控制穩(wěn)定性不利。一般在調(diào)節(jié) P 和 D 時(shí)需要先調(diào)節(jié) P 的值,因?yàn)楸壤禂?shù)較微分系數(shù)對(duì)小車的影響更大。在調(diào)節(jié) P 的值時(shí)可以先將 D 的值置為 0。當(dāng)發(fā)現(xiàn)小車在偏離黑線卻可以很快的轉(zhuǎn)回來(lái)時(shí),P 就調(diào)的差不多了;D 的調(diào)節(jié)相對(duì)簡(jiǎn)單。5.6 迷宮探路控制對(duì)于迷宮尋路程序,如果迷宮不太復(fù)雜,且主要為縱橫方向的直線,我們采用讓小車在路

30、口始終左轉(zhuǎn)或者始終右轉(zhuǎn)的方法走迷宮,也就是讓小車沿迷宮的邊沿走。利用小車前面三個(gè)傳感器來(lái)檢測(cè)障礙,設(shè)置向前,向左,向右三個(gè)轉(zhuǎn)向優(yōu)先級(jí)的高低,來(lái)進(jìn)行自主搜索。左轉(zhuǎn)優(yōu)先級(jí)最高,其次是向前,最后是右轉(zhuǎn)。通過(guò)延時(shí)使得小車每隔一段時(shí)間尋找左邊界。在找到左邊界的地方直行。倘若未找到邊界,則再向左偏移一定的角度,繼續(xù)尋找,直至找到為止。對(duì)于不太復(fù)雜的迷宮,使用該方法,一直沿著左邊就可以走出迷宮了。第六章第六章 相關(guān)軟件相關(guān)軟件軟件部分我分為兩步來(lái)單獨(dú)實(shí)現(xiàn)尋跡和避障功能。尋跡部分使用了前面的五個(gè)反射式紅外傳感器,對(duì)于單獨(dú)進(jìn)行尋跡功能來(lái)說(shuō)這已經(jīng)足夠了。紅外一體化接收頭用到前面的三個(gè),用來(lái)執(zhí)行走簡(jiǎn)單迷宮的功能。關(guān)

31、于硬件的調(diào)試:一)用萬(wàn)用表進(jìn)行一些簡(jiǎn)單的測(cè)試,可以檢測(cè)出是否有短路,斷路,以及一些元器件的好壞。二)用示波器檢測(cè)傳感器的好壞,以及能否正常工作,對(duì)于傳感器的正常工作與否,還要通過(guò)軟件的調(diào)試與檢測(cè),以便知道 CPU 能控制傳感器的工作和接受傳感器的信號(hào),對(duì)整個(gè)系統(tǒng)進(jìn)行控制關(guān)于軟件的調(diào)試:一)對(duì)電機(jī)的控制運(yùn)行調(diào)試; 精選優(yōu)質(zhì)文檔-傾情為你奉上專心-專注-專業(yè)二)對(duì)尋跡傳感器的檢測(cè);附:#define P_SEN14_H P1OUT |= (BIT5) /P1.5#define P_SEN14_L P1OUT &= (BIT5) /開(kāi)啟或關(guān)閉 1,4 號(hào)傳感器 #define P_SEN25

32、_H P1OUT |= (BIT6) /P1.6#define P_SEN25_L P1OUT &= (BIT6) /開(kāi)啟或關(guān)閉 2,5 號(hào)傳感器#define P_SEN3_H P1OUT |= (BIT7) /P1.7#define P_SEN3_L P1OUT &= (BIT7) /開(kāi)啟,關(guān)閉三號(hào)傳感器#define SEN1_IN (P2IN & BIT1) /P2.1 #define SEN2_IN (P2IN & BIT2) /P2.2#define SEN3_IN (P2IN & BIT3) /P2.3#define SEN4_IN (P2

33、IN & BIT4) /P2.4#define SEN5_IN (P2IN & BIT5) /P2.5 1 至 5 號(hào)傳感器的輸入的值#define P_coefficient 100 #define I_coefficient 0#define D_coefficient 25signed char Last_Position5=0,0,0,0,0; /聲明數(shù)組,用于依次存放前 5 次的黑線位置。/* 名 稱:Sensor_Init()* 功 能:對(duì)反射式紅外傳感器進(jìn)行初始化設(shè)置* 入口參數(shù):無(wú)* 出口參數(shù):無(wú)*/void Sensor_Init()精選優(yōu)質(zhì)文檔-傾情為你奉上

34、專心-專注-專業(yè) P1DIR |= (BIT5+BIT6+BIT7); P1OUT &= (BIT5+BIT6+BIT7); _DINT(); /將 IO 設(shè)為輸出,其它默認(rèn)為輸入/* 名 稱:DELAY()* 功 能:程序延時(shí)* 入口參數(shù):無(wú)* 出口參數(shù):無(wú)*/void Delay(unsigned int j) for(unsigned int k=0;kj;k+);/*名 稱:Caculate_Position()*功 能:計(jì)算黑線位置*入口參數(shù):SensData,5 個(gè)傳感器的返回值*出口參數(shù):SensorPosition*說(shuō) 明: 通過(guò)計(jì)算黑線與中心位置的偏差來(lái)控制小車*/s

35、igned char Caculate_Position(unsigned char *SensData) signed char i,j,SensorPosition; /存儲(chǔ) 5 個(gè)的傳感器的值 for(i=0;i=0;j-) /從右往左數(shù),找第一個(gè)讀到黑線的傳感器編號(hào) j if(SensDataj!=0) break; if(i=5) return(0 x80); SensorPosition=(i+j)*10/2-20; /黑線中心位置就是(i+j)/2 /定點(diǎn)數(shù)表示不了 0.5,所以除之前先乘 10,這樣 0.5 就對(duì)應(yīng) 5 /黑線位置值域就是 040。為便于表示偏差,零值應(yīng)該在中間

36、 /所以再減 20,變成-200+20 表示黑線最左中間最右 /如果全白(找不到黑線),就返回-128,作為出錯(cuò)標(biāo)志。 return(SensorPosition); /將計(jì)算結(jié)果返回/*名 稱:ReadSensor()*功 能:讀取黑線位置*入口參數(shù):無(wú)*出口參數(shù):Position,小車偏移量*/signed char ReadSensor()/從傳感器讀取小車當(dāng)前位置 signed char position; unsigned char i; unsigned char SensorData5; P_SEN14_H ; /打開(kāi) 1、6 號(hào)傳感器電源 Delay(400); /略延遲,等待

37、數(shù)據(jù)穩(wěn)定 SensorData0=SEN1_IN; /讀 1 號(hào)傳感器 SensorData3=SEN4_IN; /讀 6 號(hào)傳感器(注意數(shù)組下標(biāo)從 0 開(kāi)始,編號(hào)少 1) P_SEN14_L; /關(guān)閉 1、6 號(hào)傳感器電源 P_SEN25_H ; /打開(kāi) 2、7 號(hào)傳感器電源精選優(yōu)質(zhì)文檔-傾情為你奉上專心-專注-專業(yè) Delay(400); /略延遲,等待數(shù)據(jù)穩(wěn)定 SensorData1=SEN2_IN; /讀 2 號(hào)傳感器 SensorData4=SEN5_IN; /讀 7 號(hào)傳感器 P_SEN25_L ; /關(guān)閉 2、7 號(hào)傳感器電源 P_SEN3_H ; Delay(100); Sen

38、sorData2=0; P_SEN3_H ; /讀取的 5 個(gè)傳感器的狀態(tài),存入了 SensorData5里面 for(i=0;i0) /Rotation 大于 0 是右轉(zhuǎn) /1 是左輪,2 是右輪 if(Rotation 5) Rotation = 5;精選優(yōu)質(zhì)文檔-傾情為你奉上專心-專注-專業(yè) TACCR1=601; /左輪全速前進(jìn) TACCR2=611-Rotation; /右輪減速 else /Rotation 小于 0 是左轉(zhuǎn) if(Rotation 4000) Temp_PID = 4000; if(Temp_PID-4000) Temp_PID = -4000; Temp_PID

39、=Temp_PID/500; / -44 SetRotation(Temp_PID); void PWM_Init(void) P1SEL |= BIT2; /占空比為 7.5%即 1.5ms 時(shí),舵機(jī)停轉(zhuǎn) P2SEL |= BIT0; P1DIR |= BIT2; P2DIR |= BIT0; TACTL |= TASSEL_1 + TACLR; /TIMER_A 時(shí)鐘源設(shè)為 ACLK,并清 TAR TACCTL1 =OUTMOD_7; TACCTL2 =OUTMOD_7; TACCR0 = 655; /TACCR0 中斷周期約為 20ms TACCR1=601; TACCR2=611; T

40、ACTL |= MC_1; /TIMER_A 工作于增計(jì)數(shù)方式 /75 時(shí)占空比是 7.5%void Start_Wait() /加電源后延遲幾秒 unsigned int i; for(i=0;i32000;i+);void main() WDTCTL = WDTPW + WDTHOLD; /系統(tǒng)初始化精選優(yōu)質(zhì)文檔-傾情為你奉上專心-專注-專業(yè) FLL_CTL0 |= XCAP18PF; Start_Wait(); Sensor_Init(); PWM_Init(); signed char Position; while(1) Position=ReadSensor(); PID_Cont

41、rol(Position); Delay(1000); 三)對(duì)于避障傳感器的檢測(cè)。附:#include msp430 x42x.h#define IRE1 (P1OUT &= BIT5) /打開(kāi)紅外發(fā)射#define IRE2 (P1OUT &= BIT6)#define IRE3 (P1OUT &= BIT7)#define IREG1 (P1OUT |= BIT5) /關(guān)紅外發(fā)射#define IREG2 (P1OUT |= BIT6)#define IREG3 (P1OUT |= BIT7)#define IRD1 (P2IN & BIT1) /紅外接收#

42、define IRD2 (P2IN & BIT2)#define IRD3 (P2IN & BIT3)unsigned char data3;unsigned char n,Flag=0;void Delay1(unsigned int j)精選優(yōu)質(zhì)文檔-傾情為你奉上專心-專注-專業(yè) for(unsigned int i=0;ij;i+);void PWM_Init(void) P1SEL |= BIT2; /占空比為 7.5%即 1.5ms 時(shí),舵機(jī)停轉(zhuǎn) P2SEL |= BIT0; P1DIR |= BIT2; P2DIR |= BIT0; TACTL |= TASSEL_1 + TACLR; /TIMER_B 時(shí)鐘源設(shè)為 ACLK,并清 TAR TACCTL1 =OUTMOD_7; TACCTL2 =OUTMOD_7; TACCR0 = 655; /TACCR0 中斷周期約為 20ms TACCR1=604; /小于 606 正轉(zhuǎn) TACCR2=608; /大于 606 正轉(zhuǎn) TACTL |= MC_1; /TIMER_B 工作于增計(jì)數(shù)方式 void Start_Wait() /加電源后延遲幾秒 unsigned int i; for(i=0;i25) B

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論