蔽障循跡智能小車畢業(yè)論文_第1頁
蔽障循跡智能小車畢業(yè)論文_第2頁
蔽障循跡智能小車畢業(yè)論文_第3頁
蔽障循跡智能小車畢業(yè)論文_第4頁
蔽障循跡智能小車畢業(yè)論文_第5頁
已閱讀5頁,還剩24頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、蔽障循跡智能小車一.導言1.1智能汽車的作用和意義自從第一臺工業(yè)機器人誕生以來,機器人的發(fā)展已經遍布機械、電子、冶金、交通、航空航天、國防等各個領域。近年來,機器人的智能水平不斷提高,人們的生活方式被迅速改變。在人類不斷探索、改造和認識自然的過程中,制造出能夠代替人類勞動的機器一直是人類的夢想。隨著科學技術的發(fā)展,機器人的感覺系統(tǒng)、圖像處理技術已經相當發(fā)達,對于各種視覺技術,而基于圖像的理解技術還很落后。機器視覺只能通過大量的運算來識別結構化環(huán)境中的一些簡單目標。視覺傳感器的核心器件是攝像管或CCD,目前的CCD可以實現(xiàn)自動對焦。但是CCD傳感器的價格、體積、使用量都不占優(yōu)勢。因此,在不需要清

2、晰圖像而只需要粗糙感覺的系統(tǒng)中考慮使用接近傳感器時,接近傳感器的種類越來越多,其中視覺傳感器成為自動行走和駕駛的重要組成部分。典型應用視野是一種實用有效的自主智能導航方法。為了實現(xiàn)自動引導功能和避障功能,機器人必須感知引導線和障礙物,感知引導線相當于賦予機器人視覺功能。避障控制系統(tǒng)是基于AVG自動引導車系統(tǒng)?;贏VG-自動引導車系統(tǒng),智能車能夠自動識別路線,判斷并自動避開障礙物,選擇正確的路線。使用傳感器感知路線和障礙物,做出判斷并采取相應的行動。這款智能車可以說是機器人的典型代表??梢苑譃槿齻€部分:傳感器檢測部分、CPU和執(zhí)行部分。為了實現(xiàn)自動避障功能,機器人還可以擴展跟蹤、感知引導線和障

3、礙物等功能。它能自動識別汽車的行駛路線,選擇正確的路線,并檢測障礙物自動避讓?;谏鲜鲆?,感知和檢測部分考慮到汽車一般不需要感知清晰的圖像,只需要粗略的感知。智能車的執(zhí)行部分由DC電機驅動,主要控制汽車的方向和速度。二、方案設計和論證2.1總體方案設計本系統(tǒng)是基于AT89C52單片機的汽車跟蹤系統(tǒng)。該系統(tǒng)采用兩組高靈敏度的紅外反射式光電傳感器檢測路面的黑跡,并將檢測到的數(shù)據(jù)送到單片機進行處理,利用單片機產生PWM波,可以在最短的時間內完成跟蹤。同時,紅外傳感器用于躲避障礙物。當檢測到紅綠燈時,用固定頻率的紅外信號指示不同的紅綠燈,使控制系統(tǒng)更加智能。在軟件程序中,采用了一定的控制算法,使得汽

4、車在通道中第一次遇到十字黑線時減速,第二次遇到十字黑線時可以以更慢的速度轉彎。因此,本系統(tǒng)由紅外光電傳感器、單片機和驅動單元組成,保證小車能在預定的軌道上運行。本設計的主要特點本設計的主要特點本設計的主要特點:1.自制PWM調速四輪結構車。2.采用6V電池供電,DC穩(wěn)壓電路工作穩(wěn)定。3.采用紅外發(fā)射傳感器接收和識別黑線標志,具有較高的準確性和靈敏度。2.2主控系統(tǒng)根據(jù)設計要求,我認為這個設計是一個多輸入的復雜程序控制問題。據(jù)此,擬定并綜合論證了如下兩個方案:方案一:選擇一片CPLD(如EPM7128LC84-15)作為系統(tǒng)的核心部件,實現(xiàn)控制和處理功能。CPLD具有速度快、編程容易、資源豐富、

5、開發(fā)周期短等優(yōu)點??梢杂肰HDL語言編寫和開發(fā)。但CPLD在控制上不如單片機。同時CPLD的處理速度很快,汽車的行駛速度不能太高,所以對系統(tǒng)處理信息的要求不會太高。在這一點上,MCU已經可以勝任了。如果采用這種方案,控制上會出現(xiàn)很多不必要的問題。因此,我們不采納這個方案,然后提出第二個想法。方案二:以單片機為整個系統(tǒng)的核心,用它來控制移動的小車,使其達到既定的性能指標。充分分析我們的系統(tǒng),關鍵在于實現(xiàn)對小車的自動控制,而在這一點上,單片機顯示了它的優(yōu)勢簡單、方便、快捷的控制。這樣,單片機就能充分發(fā)揮其資源豐富、控制功能強大、可尋址操作功能和價格低廉的優(yōu)勢。因此,這是一個理想的方案。根據(jù)這種設計

6、的特點多開關量輸入的復雜程序控制系統(tǒng),需要善于處理多開關量輸入的標準單片機,但不能使用I/O口和程序存儲器簡化的小型單片機,D/A和A/D功能也不必選擇。根據(jù)這些分析,我選擇了STC89C52RA單片機作為本次設計的主控器件。52單片機具有強大的位操作指令,I/O口可逐位尋址,程序空間高達8K,對于本設計來說綽綽有余。更可貴的是52單片機很便宜。在考慮了很多因素之后,比如傳感器,兩個電機的驅動等等。我們決定采用單片機,充分利用STC89C52的資源。2.3傳感器選擇方案方案一:用LED發(fā)光,用光電二極管接收;當發(fā)光二極管發(fā)出的可見光照射黑帶時,光被黑帶吸收,光電二極管檢測到信號。高阻抗,使輸出

7、低。當LED發(fā)出的可見光照射到地面上時,LED發(fā)出的可見光被反射回來,被光電二極管檢測到,其阻抗迅速下降。此時,輸出端處于高電平。但由于光電二極管受環(huán)境中可見光影響較大,電路的穩(wěn)定性很差,但檢測信號可以通過運算放大器進行處理。方案二:采用反射式紅外光電傳感器。由TCRT5000反射式紅外二極管組成的路徑識別傳感器模塊在探測距離和靈敏度上可以滿足系統(tǒng)要求。該器件具有以下特點:當LED發(fā)出的光反射回來時,三極管導通,輸出低電平。光電二極管調理電路簡單,工作性能穩(wěn)定。綜上所述,本設計采用LED進行檢測,因為性價比合理。2.4電機驅動芯片選擇方案方案1:采用分立元件的H橋驅動電路。方案二:采用集成H橋

8、驅動電路芯片。由于集成H橋驅動電路芯片體積小,穩(wěn)定性高,所以選用集成驅動電路芯片作為電機驅動芯片,型號為L298N。2.5電機方案選擇方案一:采用步進電機。步進電機的一個顯著特點是具有快速啟動和停止的能力,可以實現(xiàn)電機的正反轉和調速,啟動性能好,啟動轉矩大。工作電壓可達36V,4A??梢酝瑫r驅動兩臺DC發(fā)動機。適用于機器人設計和智能汽車設計。如果沒有超過步進電機提供的動態(tài)轉矩值,步進電機可以立即啟動或反轉。調速方式:DC電機采用PWM信號平滑調速。方案二:采用普通DC減速電機,DC電機調速特性優(yōu)良,調速平穩(wěn)、方便,調節(jié)范圍廣,過載能力強,能承受頻繁的沖擊負載,能實現(xiàn)頻繁的無級快速啟動、制動和反

9、轉,能滿足各種特殊運行要求。綜上所述,我們選擇DC減速電機。2.6供電方案選擇方案一:直接使用AA干電池供電。它的結構很簡單,但是供電能力差,不容易長時間供電。方案二:使用3500mA干電池,DC穩(wěn)壓整流電路的輸入端口接9mA干電池,經過電容濾波和L7805、L7806穩(wěn)壓后輸出5v、6v左右的電壓。它能保證長時間穩(wěn)定的輸出電壓。這樣就可以提供持續(xù)穩(wěn)定的電流,穩(wěn)壓后給單片機系統(tǒng)和其他芯片供電??紤]到系統(tǒng)穩(wěn)定工作的要求,選擇了第一種方案。三種主要設備介紹3.1 STC 89 c 52簡介STC89C52引腳功能描述VCC(40針):電源電壓VSS(20針):接地P0端口(P0.0P0.7,39

10、32引腳):P0端口是一個開漏的8位雙向I/O端口。作為輸出端口,每個引腳可以驅動8個TTL負載。將“1”寫入端口P0時,它可以用作高阻抗輸入。當訪問外部程序和數(shù)據(jù)存儲器時,P0端口還可以提供低8位地址和8位數(shù)據(jù)的多路復用總線。此時,P0口的上拉電阻有效。在Flash ROM編程中,P0端口接收指令字節(jié);檢查程序時,輸出指令字節(jié)。驗證時,需要外部上拉電阻。P1端口(P1.0P1.7,1 8針):P1端口是一個8位雙向I/O端口,帶有部分上拉電阻。P1的輸出緩沖器可以驅動(吸收或輸出電流)四個TTL輸入。向端口寫入1時,端口被器件的上拉電阻拉至高電位,可用作輸入端口。當P1端口作為輸入端口時,因

11、為有一個上拉電阻,被外界拉低的管腳會輸出一個電流。此外,P1.0和P1.1也可用作定時器/計數(shù)器2的外部技術輸入(P1.0/T2)和觸發(fā)輸入(P1.1/T2EX)。有關詳細信息,請參見下表:編程和驗證閃存ROM時,P1接收低8位地址。表XX P1.0和P1.1引腳復用功能當編程或驗證閃速ROM時,P3也接收一些控制信號。除了作為通用I/O端口之外,P3端口還具有其他復用功能,如下表所示:表XX P3端口引腳復用功能完成單片機的復位初始化操作??撮T狗計時完成后,RST引腳輸出96個晶振周期的高電平。專用寄存器AUXR(地址8EH)中的DISRTO位可以禁用此功能。在DISRTO默認狀態(tài)下,復位高

12、電平有效。XTAL1(19針):振蕩器反相放大器和時鐘產生電路的輸入。XTAL2(18引腳):振蕩器反相放大器的輸入。特殊功能寄存器3.2 L298N的介紹L298N是一款高壓大電流電機驅動芯片。該芯片的主要特點是:工作電壓高,最高工作電壓可達46V輸出電流大,瞬時峰值電流可達3A,連續(xù)工作電流為2A;具有兩個H橋的高壓大電流全橋驅動器可用于驅動DC電機、步進電機、繼電器、線圈等感性負載;采用標準TTL邏輯電平信號控制;有兩個使能控制端子,允許或禁止設備工作而不受輸入信號的影響;有一個邏輯電源輸入端,使部分邏輯電路工作在低電壓;可以外接檢測電阻,將變化反饋到控制電路。L298N的功能L298N

13、的操作參數(shù)L298N的邏輯控制L298N主要用于通過單片機的I/O輸入來改變芯片的控制端的電平,即可以使電機正轉、反轉、停止。輸入引腳和輸出引腳之間的邏輯關系如下所示表3.3電機控制L298N邏輯真值表3.3 TCRT 5000簡介TCRT5000光電傳感器模塊是基于TCRT5000紅外光電傳感器的紅外反射式光電開關。傳感器由高發(fā)射功率的紅外光電二極管和高靈敏度的光電晶體管組成,輸出信號經施密特電路整形,穩(wěn)定可靠。+:連接DC DC5V陽極-:連接DC DC5V負極s:信號輸出,光電晶體管飽和。此時,模塊的輸出處于高電平,表示二極管點亮。應用場合:電能表脈沖數(shù)據(jù)采樣、碎紙機紙張檢測、障礙物檢測

14、、黑白線檢測?;緟?shù):尺寸:長32毫米 37毫米;寬度7.5mm;5毫米厚工作電壓:DC 3V5.5V,推薦工作電壓為5V。探測距離:1mm8mm適用,焦距2.5 mm。傳感器的紅外發(fā)射二極管持續(xù)發(fā)射紅外線。當發(fā)射的紅外線沒有反射回來或反射回來但強度不夠高時,光電晶體管一直處于關斷狀態(tài),模塊輸出處于低電平,說明二極管一直處于關斷狀態(tài);當被檢測物體出現(xiàn)在檢測區(qū)域時,紅外線以足夠的強度反射回來,光電晶體管飽和。此時,模塊的輸出處于高電平,表示二極管點亮。靈敏度可調的跟蹤電路。當比較器正向輸入端的電壓低于反向輸入端的電壓時,輸出低電平,LED點亮,表示接收到反射光。3.4簡介3.4 LM339用于

15、智能小車的電路分析模塊LM339引腳圖和功能介紹LM339集成塊配有四個獨立的電壓比較器。LM339類似于增益不可調的運算放大器。每個比較器有兩個輸入和一個輸出。兩個輸入端中的一個稱為同相輸入端,用“+”表示,另一個稱為反相輸入端,用“-”表示。比較兩個電壓時,任一輸入端加一個固定電壓作為參考電壓(也叫閾值電平,可以選擇LM339輸入共模中的任意一點),另一端加一個要比較的信號電壓。當“+”端電壓高于“-”端電壓時,輸出管截止,相當于輸出端開路。當“-”端電壓高于“+”端時,輸出管飽和,相當于輸出端接了一個低電位。如果兩個輸入端子之間的電壓差大于10mV,輸出可以可靠地從一種狀態(tài)切換到另一種狀

16、態(tài)。因此,在微弱信號檢測等場合使用LM339是比較理想的。LM339的輸出相當于沒有集電極電阻的晶體管。使用時,應在正電源上連接一個電阻(稱為上拉電阻,選擇3-15K)。選擇不同電阻值的上拉電阻會影響輸出端的高電位值。因為當輸出晶體管關斷時,其集電極電壓基本取決于上拉電阻和負載的值。此外,比較器的輸出可以連接在一起。3.5 l 7805 cv和L7806CV的介紹L7805L7805是最常用的穩(wěn)壓芯片。它很容易使用。用一個非常簡單的電路,就可以輸入一個DC穩(wěn)壓電源。它的輸出電壓正好是5v,正好是51系列單片機運行所需的電壓。有ka7805、ads7805、cw7805等多個系列。,性能略有差異

17、。用的最多的是LM7805。在這里,我簡單介紹一下他使用的三個圖釘。其中1接整流器輸出的+電壓,2接公共地(也就是負極),3是我們需要的正5V輸出電壓。L7806L7806是一種固定式正電壓調節(jié)器電路,屬于三端正電壓調節(jié)器系列。產品應用廣泛,涉及各種穩(wěn)壓電源、充電器、數(shù)碼產品和家用電器。L7806芯片參數(shù):密封和包裝四。硬件設計。4.1主控芯片AT89C52單片機最小系統(tǒng)板電路本智能車采用的單片機最小系統(tǒng)板是我們自制的AT89C52最小系統(tǒng)板,具有體積小、重量輕、使用方便等優(yōu)點,可以很好的放置在智能車內。示意圖如下。小型系統(tǒng)PCB板4.2電機驅動模塊電路電機驅動模塊采用專用驅動芯片L298N作

18、為電機的驅動芯片。L298N是高壓大電流全橋驅動芯片,響應頻率高。一個L298N可以分別控制兩個DC減速電機,它還有一個控制使能端子。用它做驅動芯片,操作簡單,穩(wěn)定,性能優(yōu)異。L298N的管腳5和7是一個電機的控制信號輸入,管腳10和12是另一個電機的控制信號輸入,管腳2和3是一個電機的控制信號輸出,管腳13和14是另一個電機的控制信號輸出。通過單片機控制L298N的輸入,可以實現(xiàn)DC減速電機的正反轉,從而控制小車的前進和后退。電機驅動電路原理圖如下。驅動模塊PCB板4.3紅外線黑線檢測模塊電路由于有六個紅外傳感器排成一排,均勻安裝在車底,當光線照射在路面上發(fā)生反射時,由于黑線和白紙的反射系數(shù)

19、不同,可以根據(jù)接收到的反射光強度來判斷黑線是否在前進。一般情況下,當黑線位于中間的兩個紅外傳感器之間時,無論汽車向哪一側傾斜,都可以檢測到汽車的偏移方向?;蛘咂囅蜃髢A斜時,右側傳感器檢測到黑線,輸出低電平給電機;否則,它輸出高電平。紅外跟蹤電路原理圖紅外跟蹤PCB板跟蹤電路由紅外二極管構成。當檢測到黑線時,打開紅外接收器,否則關閉紅外二極管。通過比較器LM339的電壓比較,將電平狀態(tài)送到單片機進行進一步處理。示意圖如下。電路分析原理圖紅外電路分析PCB板4.4穩(wěn)壓電源電路電機驅動電路模塊:這個題目要求汽車的機械系統(tǒng)穩(wěn)定、靈活、簡單,可以選擇兩個輪子??紤]到現(xiàn)在大部分車都是兩個輪子,我選擇兩個

20、輪子的設計,讓設計更貼近生活需求。驅動部分:DC驅動電機,前后電機采用L298N雙通道電機驅動模塊驅動,其扭矩完全可以達到仿真效果。安裝電池:將電池放置在車身下方,降低車身重心,提高穩(wěn)定性,同時增加驅動輪的抓地力,減少車輪空轉帶來的誤差。電源模塊:用兩節(jié)3500mA電池給電機供電,然后用穩(wěn)壓芯片把電池電壓降壓給單片機。一套電源可以減輕汽車的負荷。電機電源電路應用說明:基本思路是使能信號輸入使能端,即高電平接通,PWM信號輸入控制輸入端A,方向信號輸入控制輸出端b,在一個PWM周期內,電機只承受單極性電壓,電機的選擇方向由控制信號決定,電機轉速由PWM決定,PWM占空比0%-100%對應電機轉速

21、0-MAX。因此,當接收到來自檢測模塊的信號時,單片機對該信號進行處理,并根據(jù)該信號產生相應的PWM波,從而可以根據(jù)該信號調整電機的轉速和方向。穩(wěn)壓電源電路圖穩(wěn)壓電源PCB板設計5.1主程序#include#定義uchar無符號字符#定義uint無符號整數(shù)uchar PWM _ left = 0;/變量定義,變量與速度的比較uchar push _ left = 0;/左電機占空比N/10速度調節(jié)uchar PWM _ right = 0;/與速度相比的變量uchar push _ right = 0;/右電機占空比N/10速度調節(jié)bit Right _ moto _ stop = 1;bit

22、 Left _ moto _ stop = 1;uint time = 0;uint a=0,flag=0,flag 1 = 0;sbit left_1_led=p10;/四通道跟蹤模塊接口的第一個通道sbit left_2_led=p11;/四通道跟蹤模塊接口的第二通道sbit right_1_led=p12;/四通道跟蹤模塊接口的第二通道sbit right_2_led=p13;/四通道跟蹤模塊接口的第三通道uint a,d,y,z,q,w,c;sbit out 1 = p20;sbit out 2 = p21;sbit out 3 = p22;sbit out 4 = p23;sbit

23、ENA = p16;sbit enb = p17;sbit in right = p24;sbit in left = p25;延遲(uint a);int左轉(uint z)ENA = 1;enb = 1;out1 = 1out 2 = 0;out 3 = 1;out 4 = 0;延遲(z);返回0;int右轉(uint y)ENA = 1;enb = 1;out 1 = 0;out 2 = 1;out 3 = 0;out 4 = 1;延遲(y);返回0;國際貨幣基金組織ENA = 0;enb = 0;out 1 = 0;out 2 = 0;out 3 = 0;out 4 = 0;延遲(d)

24、;返回0;無效go(單位q)ENA = 1;enb = 1;out 1 = 0;out 2 = 1;out 3 = 1;out 4 = 0;延遲(q);int back(uint w)ENA = 1;enb = 1;out1 = 1out 2 = 0;out 3 = 0;out 4 = 1;延遲(w);返回0;int右后衛(wèi)(int c)ENA = 0;enb = 1;out 1 = 0;out 2 = 0;out 3 = 0;out 4 = 1;延遲(c);返回0;無效張碧()if(inright=1&inleft=1)go(50);if(inright=0)右轉(50);if(inleft=

25、0)左轉(50);if(inright=0&inleft=0)back right(2000);void荀集() if(Left _ 1 _ led = = 0 & & Left _ 2 _ led = = 0 & & Right _ 1 _ led = = 0 & & Right _ 2 _ led = = 0)/0go(50);else if(Left _ 1 _ led = = 0 & & Left _ 2 _ led = = 0 & & Right _ 1 _ led = = 0 & & Right _ 2 _ led = = 1)/0001右轉(20);延遲(5);else if(L

26、eft _ 1 _ led = = 0 & & Left _ 2 _ led = = 0 & & Right _ 1 _ led = = 1 & & Right _ 2 _ led = = 0)/0010右轉(20);/(9,6)延遲(1);else if(Left _ 1 _ led = = 0 & & Left _ 2 _ led = = 0 & & Right _ 1 _ led = = 1 & & Right _ 2 _ led = = 1)/0011右轉(20);延遲(3);else if(Left _ 1 _ led = = 0 & & Left _ 2 _ led = = 1 &

27、 & Right _ 1 _ led = = 0 & & Right _ 2 _ led = = 0)/0100左轉(30);延遲(3);else if(Left _ 1 _ led = = 0 & & Left _ 2 _ led = = 1 & & Right _ 1 _ led = = 0 & & Right _ 2 _ led = = 1)/0101右轉(30);延遲(2);else if(Left _ 1 _ led = = 0 & & Left _ 2 _ led = = 1 & & Right _ 1 _ led = = 1 & & Right _ 2 _ led = = 1)/

28、0111左轉(30);延遲(1);else if(Left _ 1 _ led = = 1 & & Left _ 2 _ led = = 0 & & Right _ 1 _ led = = 0 & & Right _ 2 _ led = = 0)/1000左轉(30);延遲(3);else if(Left _ 1 _ led = = 1 & & Left _ 2 _ led = = 0 & & Right _ 1 _ led = = 0 & & Right _ 2 _ led = = 1)/1001go(30);延遲(3);/原始延遲為6else if(Left _ 1 _ led = = 1

29、 & & Left _ 2 _ led = = 0 & & Right _ 1 _ led = = 1 & & Right _ 2 _ led = = 0)/1010左轉(30);延遲(3);else if(Left _ 1 _ led = = 1 & & Left _ 2 _ led = = 0 & & Right _ 1 _ led = = 1 & & Right _ 2 _ led = = 1)/1011右轉(20);延遲(3);else if(Left _ 1 _ led = = 1 & & Left _ 2 _ led = = 1 & & Right _ 1 _ led = = 0

30、& & Right _ 2 _ led = = 0)/1100左轉(20);延遲(5);else if(Left _ 1 _ led = = 0 & & Left _ 2 _ led = = 0 & & Right _ 1 _ led = = 0 & & Right _ 2 _ led = = 1)/1101左轉(20);延遲(5);else if(Left _ 1 _ led = = 1 & & Left _ 2 _ led = = 1 & & Right _ 1 _ led = = 1 & & Right _ 2 _ led = = 0)/1110左轉(20);延遲(5);/else if

31、(Left _ 1 _ led = = 1 & & Left _ 2 _ led = = 1 & & Right _ 1 _ led = = 1 & & Right _ 2 _ led = = 1)/1111/tiaosu();/go(20);/delay(5);/ 中間延遲(單位a)uint x,y;for(x = a;x 0;x -)for(y = 110;y 0;y-);返回0;/*/* PWM調節(jié)電機速度*/*/*左電機速度調節(jié)*/*調整push_val_left的值以改變電機速度和占空比*/void pwm_out_left_moto(無效)if(左_機動_停止)if(pwm_lef

32、t=100)PWM _ left = 0;else ENA = 0;/*/*右電機速度調節(jié)*/void pwm_out_right_moto(void)if(右_馬達_停止)if(pwm_right=100)PWM _ right = 0;else enb = 0;/*/* */*定時器已初始化*/*/void init0(void)TMOD = 0 x 01;TH0 = 0XF8/1ms時序TH0 = 0XF8TL0 = 0X30TL0 = 0X30TR0 = 1;ET0 = 1;EA = 1;void init1(void)TMOD = 0 x 10;/設置定時器0的工作模式1TH1 =(

33、65536-50000)/256;/計時器的初始值TL1 =(65536-50000)% 256;IT0 = 1;IT1 = 1;EX0 = 1;/打開外部中斷0EX1 = 1;/打開外部中斷1ET1 = 1;/啟動定時器0中斷TR1 = 1;/起始定時器0EA = 1;/打開總中斷/*/*定時器0中斷服務子函數(shù)產生PWM信號*/使用2使定時器0()中斷1無效TH0 = 0XF8/1毫秒時序TL0 = 0X30time+;PWM _ left+;PWM _ right+;PWM _ out _ left _ moto();PWM _ out _ right _ moto();空行程(整數(shù)m,整

34、數(shù)n)push _ left = m;/PWM調整參數(shù)1-10 1最慢,10最快。改變這個值可以改變它的速度。push _ right = n;/PWM調整參數(shù)1-10 1最慢,10最快。改變這個值可以改變它的速度。out 1 = 0;/左側電機前進。out 2 = 1;out 3 = 1;out 4 = 0;/右電機向前移動虛空調和() while(flag=1)跑(30,30);延遲(30);訊奇();if(Left _ 1 _ led = = 1 & & Left _ 2 _ led = = 1 & & Right _ 1 _ led = = 1 & & Right _ 2 _ led

35、= = 1) a = 1;flag = 0;while(a=1)run(99,99);延遲(30);訊奇();if(Left _ 1 _ led = = 1 & & Left _ 2 _ led = = 1 & & Right _ 1 _ led = = 1 & & Right _ 2 _ led = = 1) a = 2;void main() init 0();init 1();P1 = 0 x ff;P2 = 0 x ff;while(1) if(Left _ 1 _ led = = 1 & & Left _ 2 _ led = = 1 & & Right _ 1 _ led = = 1

36、 & & Right _ 2 _ led = = 1) flag = 1; /1111else標志= 0;延遲(3);如果(標志=0)訊奇();其他條素();不及物動詞調試:6.1硬件調試部件的固定小車主要由五個模塊的電路板組成,各板之間用導線連接。小車沿軌道運動時,經常會發(fā)生顛簸,導致電路板位移,電路板上的元器件受到擾動,使小車運動不平穩(wěn),尤其是L298N。所以我們不僅在板材上打孔鎖緊螺絲,還在板材之間用熱熔膠固定,減少震動。TCRT5000探針由TCRT5000組成的軌跡識別電路是本設計成敗的關鍵。在最初的調試中,車頭的晃動(即轉向)往往顯得無效。后來用電壓表測量電壓比較器輸入端的電壓,發(fā)

37、現(xiàn)參考電壓達到了3.5V,而紅外探頭檢測黑線時只有3.6V。兩者的電壓幾乎相同,所以單片機遇到黑線較淺或反光的區(qū)域會誤判。因此,我們在兩種極端情況下測量了紅外探頭的電壓輸出:黑色和白色。在測量了黑白兩種極端情況下紅外探頭的電壓后,我通過調整電阻將參考電壓調整為5V。這個電壓值和輸出的電壓值無論是黑還是白都相差很遠,所以單片機會減少誤判的現(xiàn)象。改進后測試正常,汽車可以靈活搖頭,實現(xiàn)更多功能。L298N電機驅動模塊L298N電機驅動模塊首次通電,實現(xiàn)簡單的單向電機驅動。當找到馬達時,它不運行。測試后發(fā)現(xiàn)某信號線接觸不良,重新連接后運行正常。這個模塊是商用模塊,所以性能比較穩(wěn)定,調試非常成功。6.2

38、軟件調試6.2.1調試平臺介紹Keil V4用于此編程。KeilSoftware公司推出的UVision4是一個可用于各種8051MCU的集成開發(fā)環(huán)境(IDE)。IDE也是PK51和其他開發(fā)工具包的重要組成部分。除了添加源代碼、函數(shù)導航器、模板編輯和改進的搜索功能,uVision4還提供了配置向導功能,加速了啟動代碼和配置文件的生成。此外,外部仿真器可以模擬目標MCU,包括指令集、片內外設和外部信號。UVision4提供了邏輯分析器,可以根據(jù)MCUI/O引腳和外設狀態(tài)變化來監(jiān)控程序變量。UVision4支持各種最新的8051微處理器,包括AnalogDevices的ADuC83x和ADuC84

39、x以及英飛凌的XC866。界面如下圖所示。程序調試調試完硬件,第一次下載軟件到系統(tǒng)進行實際測試,發(fā)現(xiàn)車子過不了彎,會出軌。后來我仔細分析了自己的算法。本來我是把車設置成遇到彎道后完全掉頭的,但是他們有些著急,車繞不過彎。在這一點上,我想用有限的轉向角來解決急轉彎的問題。想到日常汽車在狹窄的道路上轉彎,我想到了向后調整車身位置的方法。也就是說,當發(fā)現(xiàn)小車在現(xiàn)有的轉向角度下無法轉彎時,小車會反相,從而快速調整小車的位置。改進算法后,我又進行了一次測試,這次汽車成功繞過了90度彎道。根據(jù)測試結果可以看出,基本實現(xiàn)了小車跟蹤避障功能。然而,測試仍然失敗。這種分析有兩個原因。第一,車讀太快,轉彎時剎車失

40、靈。第二,畫在紙上的跑道會有褶皺,這些地方容易出現(xiàn)誤判。知道了這些原因,我把現(xiàn)在的車的速度降下來,重新測試了一遍。結果表明,即使跟蹤軌跡發(fā)生變化,小車也能很好地完成跟蹤。但是賽車不能根據(jù)賽道的情況自主改變速度。這也是這個設計的一個缺陷。實際調試過程中,車的程序跑偏了。經過對方案的調整和改進,該車運行狀態(tài)穩(wěn)定。它可以很好的完成沿著黑色賽道的行進,改變賽道的形狀和轉彎角度,賽車依然可以完成循跡。七、體驗。在智能車系統(tǒng)的設計、調試、論文撰寫過程中,我感覺很多同學都給予了無數(shù)的指導和大力支持。在這個過程中,我們不僅學到了知識,也學到了治學的態(tài)度,那就是嚴謹,把知識變成自己的,去其糟粕,留其精華,用自己的方式解決問題,而不是人云亦云。智能汽車是傳感技術和自動控制技術快速發(fā)展的產物,使得機械和電子信息的分離不再明顯。自動控制在工業(yè)領域發(fā)揮著越來越重要的作用。智能這個詞是我們科技發(fā)展的重要產物。本次實習涉及的主要部分有傳感器巡檢車、驅動部分、以單片機為核心的控制芯片、穩(wěn)壓及電路分析部分。各部分的成功參與、相互聯(lián)系和協(xié)調等。,是建立在系統(tǒng)閱讀大量資料,認真分析課題需求,系統(tǒng)學習單片機工

溫馨提示

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

最新文檔

評論

0/150

提交評論