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