蔽障循跡智能小車 畢業(yè)論文
《蔽障循跡智能小車 畢業(yè)論文》由會員分享,可在線閱讀,更多相關《蔽障循跡智能小車 畢業(yè)論文(31頁珍藏版)》請在裝配圖網上搜索。
1、 2013年 7 月12日 一、緒論.......................................................................4 1.1智能小車的作用和意義..................................................................4 二、方案設計與論證 ................................................ 4 2.1 總體
2、方案設計 ...............................................................................4 2.2主控系統(tǒng) ........................................................................................5 2.3傳感器選擇方案 ............................................................................6 2.4電機驅動芯片選擇方案.........
3、.........................................................6 2.5電機方案選擇..................................................................................6 2.6電源方案選擇..................................................................................7 三、主要器件介紹 .........................................
4、............7 3.1 STC89C52的介紹 .........................................................................7 3.2 L298N的介紹 ...............................................................................8 3.2.1 L298N的引腳功能 ................................................................................
5、... 9 3.2.2 L298N的運行參數 ...................................................................................10 3.2.3 L298N的邏輯控制 ................................................................................... 10 3.3 TCRT5000的介紹 ..................................................................
6、...... 11 3.4LM339的介紹 ................................................................................12 3.5 L7805CV和L7806CV的介紹.........................................................12 四、硬件設計 ............................................................... 14 4.1 主控芯片STC89C52單片機最小系統(tǒng)板電路 .......
7、.................... 14 4.2 電機驅動模塊電路..........................................................................15 4.3紅外對黑線檢測模塊電路...............................................................16 4.4穩(wěn)壓電源電路...................................................................................18 五、程序設
8、計 ............................................................. 19 5.1主程序 .............................................................................................19 六、調試....................................................................... 28 6.1硬件調試 ......................................
9、...................................................28 6.1.1元件的固定 ........................................................................... 28 6.1.2TCRT5000探頭 ..................................................................... 29 6.1.3 L298N馬達驅動模塊 .............................................
10、.............. 29 6.2軟件調試 ........................................................................................ 29 6.2.1調試平臺介紹 ......................................................................... 29 6.2.2程序調試...............................................................................
11、......29 6.3 測試結果與分析 ........................................................................... 30 七、心得體會.................................................................................. 30 附件 元件清單 參考文獻 一、緒論 1.1智能小車的作用和意義 自第一臺工業(yè)機器人誕生以來,機器人的發(fā)展已經遍及機械、電子、冶金、交通、宇航、國防
12、等領域。近年來機器人的智能水平不斷提高,并且迅速地改變著人們的生活方式。人們在不斷探討、改造、認識自然的過程中,制造能替代人勞動的機器一直是人類的夢想。 隨著科學技術的發(fā)展,機器人的感系統(tǒng),對于視覺的各種技術而言圖像處理技術已相當發(fā)達,而基于圖像的理解技術還很落后,機器視覺需要通過大量的運算也只能識別一些結構化環(huán)境簡單的目標。視覺傳感器的核心器件是攝像管或CCD,目前的CCD已能做到自動聚焦。但CCD傳感器的價格、體積和使用方式上并不占優(yōu)勢,因此在不要求清晰圖像只需要粗略感覺的系統(tǒng)中考慮使用接近覺傳感器是覺傳感器種類越來越多,其中視覺傳感器成為自動行走和駕駛的重要部件。視覺的典型應用領域為自
13、主式智能導航一種實用有效的方法。 機器人要實現自動導引功能和避障功能就必須要感知導引線和障礙物,感知導引線相當給機器人一個視覺功能。避障控制系統(tǒng)是基于自動導引小車(AVG—auto-guide vehicle)系統(tǒng),基于它的智能小車實現自動識別路線,判斷并自動避開障礙,選擇正確的行進路線。使用傳感器感知路線和障礙并作出判斷和相應的執(zhí)行動作。 該智能小車可以作為機器人的典型代表。它可以分為三大組成部分:傳感器檢測部分、CPU、執(zhí)行部分。機器人要實現自動避障功能,還可以擴展循跡等功能,感知導引線和障礙物??梢詫崿F小車自動識別路線,選擇正確的行進路線,并檢測到障礙物自動躲避。基于上述要
14、求,傳感檢測部分考慮到小車一般不需要感知清晰的圖像,只要求粗略感知即可。智能小車的執(zhí)行部分,是由直流電機來充當的,主要控制小車的行進方向和速度。 二、方案設計與論證 2.1 總體方案設計 本系統(tǒng)基于AT89C52單片機的小車尋跡系統(tǒng),該系統(tǒng)采用兩組高靈敏度的紅外反射式光電傳感器,對路面的黑色軌跡進行檢測,將檢測的數據送入單片機進行處理,并利用單片機產生PWM波,并以最短時間完成尋跡。同時采用紅外傳感器對障礙物進行躲避功能,遇到對于交通燈的檢測采用固定頻率的紅外線信號表示不同的交通指示燈,使控制系統(tǒng)更加智能。在軟件程序上采用一定的控制算法,使得小車在通道上第一次遇到十字黑線時候
15、減速行駛,在第二次遇到十字黑線可以實現減速轉彎,因此,本系統(tǒng)由紅外光電傳感器,單片機和驅動單元共同作用,保證小車能在預先設定的軌跡上行駛。 本設計的主要特色本設計的主要特色本設計的主要特色本設計的主要特色: 1.自制的四個輪結構小車,采用PWM調速。 2.采用6V電池供電,直流穩(wěn)壓電路工作穩(wěn)定。 3.采用紅外發(fā)射傳感器接收對黑線標志進行識別,具有高精度和高靈敏度。 2.2主控系統(tǒng) 根據設計要求,我認為此設計屬于多輸入量的復雜程序控制問題。據此,擬定了以下兩種方案并進行了綜合的比較論證,具體如下: 方案一: 選用一片CPLD(如EPM7128LC84-15)作為系統(tǒng)
16、的核心部件,實現控制與處理的功能。CPLD具有速度快、編程容易、資源豐富、開發(fā)周期短等優(yōu)點,可利用VHDL語言進行編寫開發(fā)。但CPLD在控制上較單片機有較大的劣勢。同時,CPLD的處理速度非???,而小車的行進速度不可能太高,那么對系統(tǒng)處理信息的要求也就不會太高,在這一點上,MCU就已經可以勝任了。若采用該方案,必將在控制上遇到許許多多不必要增加的難題。為此,我們不采用該種方案,進而提出了第二種設想。 方案二: 采用單片機作為整個系統(tǒng)的核心,用其控制行進中的小車,以實現其既定的性能指標。充分分析我們的系統(tǒng),其關鍵在于實現小車的自動控制,而在這一點上,單片機就顯現出來它的優(yōu)勢——控制簡單、方便
17、、快捷。這樣一來,單片機就可以充分發(fā)揮其資源豐富、有較為強大的控制功能及可位尋址操作功能、價格低廉等優(yōu)點。因此,這種方案是一種較為理想的方案。 針對本設計特點——多開關量輸入的復雜程序控制系統(tǒng),需要擅長處理多開關量的標準單片機,而不能用精簡I/O口和程序存儲器的小體積單片機,D/A、A/D功能也不必選用。根據這些分析,我選定了STC89C52RA單片機作為本設計的主控裝置,52單片機具有功能強大的位操作指令,I/O口均可按位尋址,程序空間多達8K,對于本設計也綽綽有余,更可貴的是52單片機價格非常低廉。 在綜合考慮了傳感器、兩部電機的驅動等諸多因素后,我們決定采用一片單片機,充分利用STC89
18、C52單片機的資源。 2.3傳感器選擇方案 方案一:采用發(fā)光二極管發(fā)光,用光敏二極管接收; 發(fā)光二極管發(fā)出的可見光照射到黑帶時,光線被黑帶吸收,光敏二極管為檢測到信號。呈高阻抗,使輸出端為低電平。當發(fā)光二極管發(fā)出的可見光照射到地面時,它發(fā)出的可見光反射回來被光敏二極管檢測到,其阻抗迅速降低,此時輸出端為高電平。但是由于光敏二極管受環(huán)境中可見光影響較大,電路的穩(wěn)定性很差,但可以通過運放對檢測信號進行處理。 方案二: 采用反射式紅外光電傳感器。 用TCRT5000型反射式紅外對管組成的路徑識別傳感器模塊,檢測距離和靈敏度均能達到系統(tǒng)要求,該器件具有如下特點:當發(fā)光二極管發(fā)出的光
19、反射回來時,三極管導通輸出低電平,該光電對管調理電路簡單,工作性能穩(wěn)定。 綜上所述,本設計采用發(fā)光二極管進行檢測,原因是性價比較合理。 2.4電機驅動芯片選擇方案 方案一:采用分立元件的H橋驅動電路。 方案二:采用集成的H橋驅動電路芯片。 由于集成的H橋驅動電路芯片體積小,穩(wěn)定性高,因此選用集成的驅動電路芯片作為電機的驅動芯片,型號為L298N。 2.5電機方案選擇 方案一: 采用步進電機,步進電機的一個顯著特點就是具有快速啟停能力可實現電機正反轉及調速,啟動性能好,啟動轉矩大。工作電壓可達到36V,4A??赏瑫r驅動兩臺直流電機。適合應用于機器人設計及智能小車的設計中
20、,如果符合不超過步進電機所能提供的動態(tài)轉矩值,就能夠立即使步進電機的啟功或者反轉。調速方式:直流電動機采用PWM信號平滑調速。 方案二: 采用普通直流減速電機,直流電動機具有優(yōu)良的調速特性,調速平滑,方便,調整范圍廣,過載能力強,能承受頻繁的沖擊負載,可實現頻繁的無極快速啟動,制動,和反轉,能滿足各種不同的特殊運行要求。 綜上所訴,我們選擇直流減速電機。 2.6電源方案選擇 方案一: 直接使用AA干電池進行供電它的結構十分簡單,但是供電能力差,不易長時間供電。 方案二: 使用3500mA干電池配合直流穩(wěn)壓整流電路輸入端口接9mA的干電池,經電容濾波和L7805和L7806
21、穩(wěn)壓后輸出約5V,6V電壓??杀WC長時間穩(wěn)定的輸出電壓。這樣可以提供持久穩(wěn)定的電流,穩(wěn)壓后給單片機系統(tǒng)和其他芯片供電。考慮到系統(tǒng)穩(wěn)定工作的要求,所以選擇方案一。 三 主要器件介紹 3.1 STC89C52的介紹 STC89C52引腳功能說明 VCC(40引腳):電源電壓 VSS(20引腳):接地 P0端口(P0.0~P0.7,39~32引腳):P0口是一個漏極開路的8位雙向I/O口。作為輸出端口,每個引腳能驅動8個TTL負載,對端口P0寫入“1”時,可以作為高阻抗輸入。在訪問外部程序和數據存儲器時,P0口也可以提供低8位地址和8位數據的復用總線。此時,P0口內部上拉電
22、阻有效。在Flash ROM編程時,P0端口接收指令字節(jié); 而在校驗程序時,則輸出指令字節(jié)。驗證時,要求外接上拉電阻。 P1端口(P1.0~P1.7,1~8引腳):P1口是一個帶內部上拉電阻的8位雙向I/O口。P1的輸出緩沖器可驅動(吸收或者輸出電流方式)4個TTL輸入。對端口寫入1時,通過內部的上拉電阻把端口拉到高電位,這是可用作輸入口。P1口作輸入口使用時,因為有內部上拉電阻,那些被外部拉低的引腳會輸出一個電流。 此外,P1.0和P1.1還可以作為定時器/計數器2的外部技術輸入(P1.0/T2)和定時器/計數器2的觸發(fā)輸入(P1.1/T2EX),具體參見下表: 在對Flash RO
23、M編程和程序校驗時,P1接收低8位地址。表XX P1.0和P1.1引腳復用功能 在對Flash ROM編程或程序校驗時,P3還接收一些控制信號。 P3口除作為一般I/O口外,還有其他一些復用功能,如下表所示: 表XX P3口引腳復用功能 來完成單片機單片機的復位初始化操作??撮T狗計時完成后,RST引腳輸出96個晶振周期的高電平。特殊寄存器AUXR(地址8EH)上的DISRTO位可以使此功能無效。DISRTO默認狀態(tài)下,復位高電平有效。 XTAL1(19引腳):振蕩器反相放大器和內部時鐘發(fā)生電路的輸入端。 XTAL2(18引腳):振蕩器反相放大器的輸入端。 特殊功能寄存器
24、 3.2 L298N的介紹 L298N是一種高電壓、大電流電機驅動芯片。該芯片的主要特點是:工作電壓高,最高工作電壓可達46V;輸出電流大,瞬間峰值電流可達3A,持續(xù)工作電流為2A;內含兩個H橋的高電壓大電流全橋式驅動器,可以用來驅動直流電動機和步進電動機、繼電器、線圈等感性負載;采用標準TTL邏輯電平信號控制;具有兩個使能控制端,在不受輸入信號影響的情況下允許或禁止器件工作;有一個邏輯電源輸入端,使內部邏輯電路部分在低電壓下工作;可以外接檢測電阻,將變化量反饋給控制電路。 3.2.1 L298N的引腳功能 3.2.2 L298N的運行參數 3.2.
25、3 L298N的邏輯控制 主要采用L298N,通過單片機的I/O輸入改變芯片控制端的電平,即可以對電機進行正反轉,停止的操作,輸入引腳與輸出引腳的邏輯關系圖為 表3.3 L298N對直流電機控制的邏輯真值表 3.3 TCRT5000的介紹 TCRT5000光電傳感器模塊是基于TCRT5000紅外光電傳感器設計的一款紅外反射式光電開關。傳感器采用高發(fā)射功率紅外光電二極管和高靈敏度光電晶體管組成,輸出信號經施密特電路整形,穩(wěn)定可靠。 +:接直流DC5V正極 -:接直流DC5V負極 S:信號輸出端,光敏三極管飽和,此時模塊的輸出端為高電平,指示二極管被點亮。 應用場合:
26、 電度表脈沖數據采樣、傳真機碎紙機紙張檢測、障礙檢測黑白線檢測 基本參數: 外形尺寸:長32mm~37mm;寬7.5mm;厚5mm 工作電壓:DC3V~5.5V,推薦工作電壓為5V 檢測距離:1mm~8mm適用,焦點距離為2.5mm 傳感器的紅外發(fā)射二極管不斷發(fā)射紅外線,當發(fā)射出的紅外線沒有被反射回來或被反射回來但強度不夠大時,光敏三極管一直處于關斷狀態(tài),此時模塊的輸出端為低電平,指示二極管一直處于熄滅狀態(tài);被檢測物體出現在檢測范圍內時,紅外線被反射回來且強度足夠大,光敏三極管飽和,此時模塊的輸出端為高電平,指示二極管被點亮。 靈敏度可調的循跡電路。當比較器的正向輸入端電壓低于
27、反向輸入端的電壓時輸出低電平,LED亮,表示接收到反射光。 3.4 LM339的介紹 智能小車中運用于電路分析模塊 LM339引腳圖與功能簡介 LM339集成塊內部裝有四個獨立的電壓比較器。LM339類似于增益不可調的運算放大器。每個比較器有兩個輸入端和一個輸出端。兩個輸入端一個稱為同相輸入端,用“+”表示,另一個稱為反相輸入端,用“-”表示。用作比較兩個電壓時,任意一個輸入端加一個固定電壓做參考電壓(也稱為門限電平,它可選擇LM339輸入共模范圍的任何一點),另一端加一個待比較的信號電壓。當“+”端電壓高于“-”端時,輸出管截止,相當于輸出端開路。當“-”端電壓高于“+”端時
28、,輸出管飽和,相當于輸出端接低電位。兩個輸入端電壓差別大于10mV就能確保輸出能從一種狀態(tài)可靠地轉換到另一種狀態(tài),因此,把LM339用在弱信號檢測等場合是比較理想的。LM339的輸出端相當于一只不接集電極電阻的晶體三極管,在使用時輸出端到正電源一般須接一只電阻(稱為上拉電阻,選3-15K)。選不同阻值的上拉電阻會影響輸出端高電位的值。因為當輸出晶體三極管截止時,它的集電極電壓基本上取決于上拉電阻與負載的值。另外,各比較器的輸出端允許連接在一起使用。 3.5 L7805CV和L7806CV的介紹 L7805 L7805是我們最常用到的穩(wěn)壓芯片了,他的使用方便,用很簡單的電路即可以輸入一
29、個直流穩(wěn)壓電源他的輸出電壓恰好為5v,剛好是51系列單片機運行所需的電壓,他有很多的系列如ka7805,ads7805,cw7805等,性能有微小的差別,用的最多的還是LM7805,下面我簡單的介紹一下他的3個引腳以及用它來構成的穩(wěn)壓電路的資料。
30、領域等。 L7806芯片參數: 封裝 四、硬件設計 . 4.1 主控芯片AT89C52單片機最小系統(tǒng)板電路 本智能小車采用的單片機最小系統(tǒng)板是自己制做的AT89C52單片機最小系統(tǒng)板,它具有體積小,質量輕,使用方便等優(yōu)點,能夠很好的放置在智能小車中。原理圖如下。 小系統(tǒng)PCB板 4.2 電機驅動模塊電路 電機驅動模塊采用專用驅動芯片L298N作為電機的驅動芯片。L298N是一種具有高電壓大電流的全橋驅動芯片,它的響應頻率高,一片L298N可以分別控制兩個直流減速電機,而且還帶有控制使能端,用它作為驅動芯片,操作方便,穩(wěn)定,性能優(yōu)良。
31、L298N的5、7引腳為一個電機的控制信號輸入端,10、12引腳為另一個電機的控制信號輸入端,2、3引腳為一個電機的控制信號輸出端,13、14引腳為另一個電機的控制信號輸出端,通過單片機對L298N的輸入端進行指令控制,就能實現直流減速電機的正轉和反轉,從而控制小車前進和后退。 電機驅動電路原理圖如下。 驅動模塊PCB板 4.3紅外對黑線檢測模塊電路 由于有6個紅外傳感器排成一排均勻的安裝在小車底部,當光線照射到路面并反射,由于黑線和白紙的反射系數不同,根據接收到的反射光強度判斷是否眼黑線前進。在一般情況下,當黑線位于中間的兩個紅外傳感器之間,不管小車偏向哪一邊,都能檢測出
32、小車的偏移方向?;蛘弋斝≤嚻蜃筮厱r,右邊的傳感器檢測到黑線,輸出低電平給電機,否則,輸出高電平。 紅外作循跡電路原理圖 紅外作循跡PCB板 采用紅外對管制作循跡電路,當檢測到黑線時,紅外接受管導通,否則紅外對管截止,通過比較器LM339電壓比較,把電平狀態(tài)送給單片機進而單片機處理。原理圖如下。 電路分析原理圖 紅外電路分析PCB板 4.4穩(wěn)壓電源電路 電機驅動電路模塊: 本題目要求小車的機械系統(tǒng)穩(wěn)定、靈活、簡單,可選用兩輪式,考慮到現在的汽車多采用兩輪式我選用兩輪式的設計,使設計更貼近生活需求。驅動部分:直流驅動電機,由L298N雙
33、通道馬達驅動模塊驅動前后兩個馬達,其力矩完全可以達到模擬效果。 電池的安裝:將電池放置在車體的下面,降低車體重心,提高穩(wěn)定性,同時可增加驅動輪的抓地力,減小輪子空轉所引起的誤差。 電源模塊:采用2支3500mA電池給電機供電,再用穩(wěn)壓芯片對電池電壓進行降壓給單片機。采用一套電源可減少小車的負重。 電機動力電路應用說明: 基本思路為使能端輸入使能信號,即接高電平,控制輸入端A端輸入PWM 信號,控制輸出端B輸入方向信號,在一個PWM周期內,電動機只承受單極性的電壓,電機的選擇方向由控制信號決定,電機的速度由PWM決定,PWM占空比為0%-100%對應于電機轉速0-MAX。因此,當接收到由檢測
34、模塊的信號時,單片機處理該信號,根據該信號產生對應的PWM 波,從而可以根據調節(jié)電機的轉速與方向。
穩(wěn)壓電源電路圖
穩(wěn)壓電源PCB板
五、程序設計
5.1主程序
#include
35、ush_right=0;// 右電機占空比N/10 調速 bit Right_moto_stop=1; bit Left_moto_stop =1; uint time=0; uint a=0,flag=0,flag1=0; sbit Left_1_led=P1^0; //四路尋跡模塊接口第一路 sbit Left_2_led=P1^1; //四路尋跡模塊接口第二路 sbit Right_1_led=P1^2; //四路尋跡模塊接口第二路 sbit Right_2_led=P1^3; //四路尋跡模塊接口
36、第三路 uint a,d,y,z,q,w,c; sbit out1 = P2^0; sbit out2 = P2^1; sbit out3 = P2^2; sbit out4 = P2^3; sbit ena = P1^6; sbit enb = P1^7; sbit inright = P2^4; sbit inleft = P2^5; delay(uint a); int turnleft(uint z) { ena=1; enb=1; out1=1; out2=0; out3=1; out4=0; delay(z
37、); return 0; } int turnright(uint y) { ena=1; enb=1; out1=0; out2=1; out3=0; out4=1; delay(y); return 0; } int dengdai (uint d) { ena=0; enb=0; out1=0; out2=0; out3=0; out4=0; delay(d); return 0; } void go(uint q) { ena=1; enb=1; out1
38、=0; out2=1; out3=1; out4=0; delay(q); } int back(uint w) { ena=1; enb=1; out1=1; out2=0; out3=0; out4=1; delay(w); return 0; } int backright(int c) { ena=0; enb=1; out1=0; out2=0; out3=0; out4=1; delay(c); return 0; } void bizhang() { i
39、f(inright==1&&inleft==1) { go(50); } if(inright==0) { turnright(50); } if(inleft==0) { turnleft(50); } if(inright==0&&inleft==0) { backright(2000); } } void xunji() { { if(Left_1_led==0&&Left_2_led==0&&Right_1_led==0&&R
40、ight_2_led==0) //0 { go(50); } else if(Left_1_led==0&&Left_2_led==0&&Right_1_led==0&&Right_2_led==1) //0001 { turnright(20); delay(5); } else if(Left_1_led==0&&Left_2_led==0&&Right_1_led==1&&Right_2_led==0) //0010 { turnright
41、(20); //(9,6) delay(1); } else if(Left_1_led==0&&Left_2_led==0&&Right_1_led==1&&Right_2_led==1) //0011 { turnright(20); delay(3); } else if(Left_1_led==0&&Left_2_led==1&&Right_1_led==0&&Right_2_led==0) //0100 {
42、 turnleft(30); delay(3); } else if(Left_1_led==0&&Left_2_led==1&&Right_1_led==0&&Right_2_led==1) //0101 { turnright(30); delay(2); } else if(Left_1_led==0&&Left_2_led==1&&Right_1_led==1&&Right_2_led==1) //0111 { turnleft(30); delay(1); }
43、 else if(Left_1_led==1&&Left_2_led==0&&Right_1_led==0&&Right_2_led==0) //1000 { turnleft(30); delay(3); } else if(Left_1_led==1&&Left_2_led==0&&Right_1_led==0&&Right_2_led==1) //1001 { go(30); delay(3); //本來延時6 } else if(Left_1_led=
44、=1&&Left_2_led==0&&Right_1_led==1&&Right_2_led==0) //1010 { turnleft(30); delay(3); } else if(Left_1_led==1&&Left_2_led==0&&Right_1_led==1&&Right_2_led==1) //1011 { turnright(20); delay(3); } else if(Left_1_led==1&&Left_2_led==1&&Right_1_led==
45、0&&Right_2_led==0) //1100 { turnleft(20); delay(5); } else if(Left_1_led==0&&Left_2_led==0&&Right_1_led==0&&Right_2_led==1) // 1101 { turnleft(20); delay(5); } else if(Left_1_led==1&&Left_2_led==1&&Right_1_led==1&&Right_2_led==0) // 1110 { turnle
46、ft(20); delay(5); } // else if(Left_1_led==1&&Left_2_led==1&&Right_1_led==1&&Right_2_led==1) // 1111 // { //tiaosu(); // go(20); // delay(5); // } } } int delay(uint a) { uint x,y; for(x=a;x>0;x--) for(y=110
47、;y>0;y--); return 0; } /************************************************************************/ /* PWM調制電機轉速 */ /************************************************************************/ /* 左電機調速
48、 */ /*調節(jié)push_val_left的值改變電機轉速,占空比 */ void pwm_out_left_moto(void) { if(Left_moto_stop) { if(pwm_left<=push_left) ena=1; else ena=0; if(pwm_left>=100) pwm_left=0; } else ena=0; } /************************************
49、******************************/ /* 右電機調速 */ void pwm_out_right_moto(void) { if(Right_moto_stop) { if(pwm_right<=push_right) enb=1; else enb=0; if(pwm_right>=100) pwm_right=0; } else enb=0;
50、 } /*******************************************************************/ /* */ /* 定時器初值化 */ /*******************************************************************/ void init0(void)
51、{ TMOD=0X01; TH0= 0XF8; //1ms定時 TH0= 0XF8; TL0= 0X30; TL0= 0X30; TR0= 1; ET0= 1; EA = 1; } void init1(void) { TMOD=0x10; //設置定時器0工作模式1 TH1=(65536-50000)/256; //定時器裝初值 TL1=(65536-50000)%256; IT0=1; IT1=1; EX0=1; //開外部中斷0 EX1=1; //開外部中斷
52、1 ET1=1; //開定時器0中斷 TR1=1; //啟動定時器0 EA=1; //開總中斷 } /******************************************************************/ ///*TIMER0中斷服務子函數產生PWM信號*/ void timer0()interrupt 1 using 2 { TH0=0XF8; //1Ms定時 TL0=0X30; time++; pwm_left++; pwm_right++; pwm_out_left_m
53、oto(); pwm_out_right_moto(); } void run(int m,int n) { push_left =m; //PWM 調節(jié)參數1-10 1為最慢,10是最快 改這個值可以改變其速度 push_right =n; //PWM 調節(jié)參數1-10 1為最慢,10是最快 改這個值可以改變其速度 out1=0; //左電機前進 out2=1; out3=1; out4=0; //右電機前進 } void tiao
54、su() { while(flag==1) {run(30,30); delay(30); xunji(); if(Left_1_led==1&&Left_2_led==1&&Right_1_led==1&&Right_2_led==1) { a=1;flag=0; } } while(a==1) {run(99,99); delay(30); xunji(); if(Left_1_led==1&&Left_2_led==1&&Right_1_led==1&&Right_2_led==1) { a=2;} }
55、 } void main() { init0(); init1(); P1=0xff; P2=0xff; while(1) { if(Left_1_led==1&&Left_2_led==1&&Right_1_led==1&&Right_2_led==1) {flag=1;} //1111 else flag=0; delay(3); if(flag==0) xunji(); else tiaosu();
56、 } } 六、調試: 6.1硬件調試 6.1.1 元件的固定 小車主要有5大模塊的電路板組成的,板和板之間是靠導線連接。小車在循跡運動的時候時常顛簸,導致電路板移位致使電路板上面的元件受到干擾,使小車不穩(wěn)定運動,特別是L298N.所以我們除了在板上打孔鎖上螺絲,還在板和板之間用熱熔膠再固定,減少震動。 6.1.2 TCRT5000探頭 由TCRT5000組成的軌跡識別電路是本次設計成敗的關鍵,在初次調試時小車的搖頭動作(即轉向)時常出現不靈的情況。后來用電壓表測量了電壓比較器量輸入端的電壓發(fā)現基準電壓到了3.5V,而紅外探頭在檢測到黑線時
57、才3.6V。兩者電壓相差無幾,所以遇到黑線顏色較淺或反光的區(qū)域單片機會發(fā)生誤判的現象。于是我們測量了紅外探頭在黑白兩種極限情況下的電壓輸出情況。在測量了紅外探頭在黑色和白色兩種極限情況下的電壓后,調節(jié)電阻我把基準電壓調到5V,這個電壓值距黑色或白色情況下輸出的電壓值都很大,單片機會減少誤判的現象。改良過后測試正常,小車能靈活的搖頭,更功能實現。 6.1.3 L298N馬達驅動模塊 第一次給L298N馬達驅動模塊通電實現簡單的馬達單向驅動,發(fā)現馬達時跑時不跑。經過檢測發(fā)現是一根信號線接觸不良,重新接好后運行正常。此模塊是用的市面上可以買到的模塊所以性能比較穩(wěn)定,調試很成功。 6.
58、2軟件調試 6.2.1調試平臺介紹 此次編程采用了keil V4。KeilSoftware公司推出的uVision4是一款可用于多種8051MCU的集成開發(fā)環(huán)境(IDE),該IDE同時也是PK51及其它開發(fā)套件的一個重要組件。除增加了源代碼、功能導航器、模板編輯以及改進的搜索功能外,uVision4還提供了一個配置向導功能,加速了啟動代碼和配置文件的生成。此外其內置的仿真器可模擬目標MCU,包括指令集、片上外圍設備及外部信號等。uVision4提供邏輯分析器,可監(jiān)控基于MCUI/O引腳和外設狀態(tài)變化下的程序變量。uVision4提供對多種最新的8051類微處理器的支持,包括Analog
59、Devices的ADuC83x和ADuC84x,以及Infineon的XC866等。其界面如下圖 所示 。 6.2.2程序調試 在調試好硬件之后我第一次把軟件下載到系統(tǒng)里面進行實際測試,發(fā)現小車在彎道比較急的地方沒辦法繞過去,會發(fā)生脫軌現象。后來仔細分析了自己的算法,原本我是設定小車在遇到彎道后全力轉向繞過彎道,但是有些急得彎道小車無法繞過。此時我就想如何去解決在轉向角度有限的情況下解決轉急彎的問題。聯(lián)想到日常汽車在狹窄的小路上轉彎的情景我想到了倒退調整車體位置的方法。即在發(fā)現小車以現有的轉向角度無法完成轉彎時使小車反相倒退,這樣即可很很快的調整小車的位置。改進算法后我在進行了一次測試
60、,這次小車成功的繞過了90度的彎道。 根據測試結果,可以看出小車循跡避障功能基本實現。但是測試還是存在失敗的現象。分析其原因有兩點。一,小車熟讀過快在轉彎時未及時剎車。二,畫在紙上的跑道會存在褶皺的地方,而這些地方容易產生誤判的現象。得知這些原因以后我降低現車速度,再次進行了測試。結果表明,小車能很好的完成循跡,即使循跡軌道發(fā)生改變也不影響。但是小車不能根據賽道的情況自主的改變速度。這也是本次設計的一個缺陷。在實際調試過程中小車發(fā)生過程序跑飛的情況,經調整改進程序后,小車運行狀態(tài)穩(wěn)定。能很好的完成沿黑色軌道前進,改變軌道的形狀及轉彎角度,小車仍可完成循跡。 七、心得體會 在智能小車系統(tǒng)的
61、設計、調試及論文的寫作過程中,感謝很多同學給予了無數的指導和大力的支持。在這個過程中我們不僅學會了知識,還學會了治學的態(tài)度,那就是嚴謹,把知識變?yōu)榧河校瑮壠湓闫闪羝渚A,用自己的方式去解決問題,而不是人云亦云。 智能小車是傳感技術和自動化控制技術飛速發(fā)展的產物,使得機械和電子信息不再明顯分家,自動控制在工業(yè)領域中得地位越來越重要,智能這個詞是我們科技發(fā)展的重要產物。這次實踐中涉及的主要部分有傳感器檢測車部分、驅動部分、單片機為核心的控制芯片部分穩(wěn)壓及電路分析部分。各個部分的涉及,相互之間的連接協(xié)調等得成功,都是要建立在系統(tǒng)的閱讀大量資料,并且認真的分析課題的需求,還系統(tǒng)的學習的單片機的工作原
62、理及其使用方法。并且學習了相關軟件,如仿真、程序燒寫等得應用。通過本次課題設計,不僅是對我們課本所學知識的考查,更是對我的自學能力和收集資料能力以及動手能力的考驗。我們對一個項目的整體設計有了初步認識并能獨立設計出其接口電路,再有對電路板的制作有了一定的了解,并學會了使用Protel99設計電路。課程設計使我們意識到了實驗的重要性,在硬件制作和軟件調試的過程中,出現了很多問題,最終都是通過實驗的方法來解決的。還有以前對程序只是一個很模糊的概念,通過這次的課題設計使我對程序完全有了一個新的認識,并能使用C熟練的進行編程了。通過本次課題設計,極大的鍛煉了我們的思考和分析問題的能力,并對單片機有了一
63、個更深的認識。 小車的設計制作工作量飽滿,體現了團隊合作精神。在這次設計中也有很多的不足之處,我們缺少實際經驗,更多的是依靠網絡資源來解決問題,特別是各模塊的程序編寫,在軟件設計方面花費了很多的時間。特別是在最后調試階段,程序的控制問題給我們帶來了很大的困難,小車設計的硬件部分完成相對順利些,在軟件領域顯得不足,今后會更多的學習軟件。設計過程中單片機知識頗有設計,我們還應加強理論知識的學習。本次設計涉及到了一系列光機電一體化的技術。其中機械結構是小車能否穩(wěn)定運行的基礎,硬件電路決定了小車實現的功能,軟件部分是控制的靈魂,而同伴們鍥而不舍的精神則是整個設計的支柱! 總之,在課題設計的過程中,
64、無論是對于學習方法還是理論知識,我們都有了新的認識,受益匪淺,這將激勵我們在今后再接再厲,不斷完善自己的理論知識,提高實踐運作能力。 附件 元件清單: 1. 電機驅動芯片L298N 2. 穩(wěn)壓芯片L7805一個,L7806一個 3. 單片機STC89C52 4. 晶振12M 5. 輕觸開關和點觸開關各一個 6.電解電容220uF/25v、100uf/16v若干, 電容104若干,103電容若干 7. 10K滑動變阻器、470歐電阻若干 8. 電阻330歐若干,1K的若干個, 9.上拉電阻472歐一個 10. 紅外線傳感器TCRT5000 4個 11. 散
65、熱片一個 12.杜邦線若干(杜邦頭,焊片,包括線) 13. 萬用表 14. 插針和插排若干 15. 發(fā)光二極管若干 16. 二極管IN4007八個 17.車底盤模具 18. LM339芯片 19.TR18650 3000mAh 3.7v電源 20. 各種芯片底座若干 21.驅動直流電機4個 參考文獻 [1]郭惠,吳迅.單片機C語言程序設計完全自學手冊[M].電子工業(yè)出版社,2008.10:1-200. [2]王東鋒,王會良,董冠強. 單片機C語言應用100例[M]. 電子工業(yè)出版社,2009.3:145-300. [3]韓毅,楊天. 基于HCS12單片機的智
66、能尋跡模型車的設計與實現[J].學術期刊,2008,29(18):1535-1955. [4] 王曉明. 電動機的單片機控制[J]. 學術期刊,2002,13(15):1322-1755. [5]宏晶科技,《STC89C51RC/RD+系列單片機器件手冊》,2011年9月8號更新版本 [6求是科技,《單片機典型模塊設計實例導航(第2版)》,人民郵電出版社,2008年7月出版 [7]李全利,《單片機原理及應用技術》,高等教育出版社,2009年1月出版 [8]丁明亮,《51單片機應用設計與仿真-基于keilC與Proteus》,北京航空航天大學出版社,2009年2月出版 [9]張鑫,《單片機原理及應用(第2版)》,電子工業(yè)出版社,2010年出版6.張毅剛,《單片機原理與應用設計》,電子工業(yè)出版社,2008年出版 31
- 溫馨提示:
1: 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
5. 裝配圖網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。