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

下載本文檔

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

文檔簡介

1、 2013年 7 月12日一、緒論.4 1.1智能小車的作用和意義.4 二、方案設(shè)計(jì)與論證 . 4 2.1 總體方案設(shè)計(jì) .4 2.2主控系統(tǒng) .52.3傳感器選擇方案 .6 2.4電機(jī)驅(qū)動(dòng)芯片選擇方案.6 2.5電機(jī)方案選擇.62.6電源方案選擇.7 三、主要器件介紹 .73.1 stc89c52的介紹 .7 3.2 l298n的介紹 .83.2.1 l298n的引腳功能 . 9 3.2.2 l298n的運(yùn)行參數(shù) .103.2.3 l298n的邏輯控制 . 10 3.3 tcrt5000的介紹 . 113.4lm339的介紹 .123.5 l7805cv和l7806cv的介紹.12四、硬件設(shè)

2、計(jì) . 14 4.1 主控芯片stc89c52單片機(jī)最小系統(tǒng)板電路 . 14 4.2 電機(jī)驅(qū)動(dòng)模塊電路.154.3紅外對黑線檢測模塊電路.16 4.4穩(wěn)壓電源電路.18五、程序設(shè)計(jì) . 19 5.1主程序 .19六、調(diào)試. 28 6.1硬件調(diào)試 .286.1.1元件的固定 . 286.1.2tcrt5000探頭 . 29 6.1.3 l298n馬達(dá)驅(qū)動(dòng)模塊 . 29 6.2軟件調(diào)試 . 29 6.2.1調(diào)試平臺(tái)介紹 . 296.2.2程序調(diào)試.296.3 測試結(jié)果與分析 . 30七、心得體會(huì). 30附件 元件清單 參考文獻(xiàn)一、緒論1.1智能小車的作用和意義 自第一臺(tái)工業(yè)機(jī)器人誕生以來,機(jī)器人的

3、發(fā)展已經(jīng)遍及機(jī)械、電子、冶金、交通、宇航、國防等領(lǐng)域。近年來機(jī)器人的智能水平不斷提高,并且迅速地改變著人們的生活方式。人們在不斷探討、改造、認(rèn)識(shí)自然的過程中,制造能替代人勞動(dòng)的機(jī)器一直是人類的夢想。隨著科學(xué)技術(shù)的發(fā)展,機(jī)器人的感系統(tǒng),對于視覺的各種技術(shù)而言圖像處理技術(shù)已相當(dāng)發(fā)達(dá),而基于圖像的理解技術(shù)還很落后,機(jī)器視覺需要通過大量的運(yùn)算也只能識(shí)別一些結(jié)構(gòu)化環(huán)境簡單的目標(biāo)。視覺傳感器的核心器件是攝像管或ccd,目前的ccd已能做到自動(dòng)聚焦。但ccd傳感器的價(jià)格、體積和使用方式上并不占優(yōu)勢,因此在不要求清晰圖像只需要粗略感覺的系統(tǒng)中考慮使用接近覺傳感器是覺傳感器種類越來越多,其中視覺傳感器成為自動(dòng)行

4、走和駕駛的重要部件。視覺的典型應(yīng)用領(lǐng)域?yàn)樽灾魇街悄軐?dǎo)航一種實(shí)用有效的方法。 機(jī)器人要實(shí)現(xiàn)自動(dòng)導(dǎo)引功能和避障功能就必須要感知導(dǎo)引線和障礙物,感知導(dǎo)引線相當(dāng)給機(jī)器人一個(gè)視覺功能。避障控制系統(tǒng)是基于自動(dòng)導(dǎo)引小車(avgauto-guide vehicle)系統(tǒng),基于它的智能小車實(shí)現(xiàn)自動(dòng)識(shí)別路線,判斷并自動(dòng)避開障礙,選擇正確的行進(jìn)路線。使用傳感器感知路線和障礙并作出判斷和相應(yīng)的執(zhí)行動(dòng)作。 該智能小車可以作為機(jī)器人的典型代表。它可以分為三大組成部分:傳感器檢測部分、cpu、執(zhí)行部分。機(jī)器人要實(shí)現(xiàn)自動(dòng)避障功能,還可以擴(kuò)展循跡等功能,感知導(dǎo)引線和障礙物??梢詫?shí)現(xiàn)小車自動(dòng)識(shí)別路線,選擇正確的行進(jìn)路線,并檢測到

5、障礙物自動(dòng)躲避?;谏鲜鲆?,傳感檢測部分考慮到小車一般不需要感知清晰的圖像,只要求粗略感知即可。智能小車的執(zhí)行部分,是由直流電機(jī)來充當(dāng)?shù)模饕刂菩≤嚨男羞M(jìn)方向和速度。 二、方案設(shè)計(jì)與論證2.1 總體方案設(shè)計(jì) 本系統(tǒng)基于at89c52單片機(jī)的小車尋跡系統(tǒng),該系統(tǒng)采用兩組高靈敏度的紅外反射式光電傳感器,對路面的黑色軌跡進(jìn)行檢測,將檢測的數(shù)據(jù)送入單片機(jī)進(jìn)行處理,并利用單片機(jī)產(chǎn)生pwm波,并以最短時(shí)間完成尋跡。同時(shí)采用紅外傳感器對障礙物進(jìn)行躲避功能,遇到對于交通燈的檢測采用固定頻率的紅外線信號(hào)表示不同的交通指示燈,使控制系統(tǒng)更加智能。在軟件程序上采用一定的控制算法,使得小車在通道上第一次遇到十字黑

6、線時(shí)候減速行駛,在第二次遇到十字黑線可以實(shí)現(xiàn)減速轉(zhuǎn)彎,因此,本系統(tǒng)由紅外光電傳感器,單片機(jī)和驅(qū)動(dòng)單元共同作用,保證小車能在預(yù)先設(shè)定的軌跡上行駛。 本設(shè)計(jì)的主要特色本設(shè)計(jì)的主要特色本設(shè)計(jì)的主要特色本設(shè)計(jì)的主要特色: 1.自制的四個(gè)輪結(jié)構(gòu)小車,采用pwm調(diào)速。2.采用6v電池供電,直流穩(wěn)壓電路工作穩(wěn)定。 3.采用紅外發(fā)射傳感器接收對黑線標(biāo)志進(jìn)行識(shí)別,具有高精度和高靈敏度。 2.2主控系統(tǒng) 根據(jù)設(shè)計(jì)要求,我認(rèn)為此設(shè)計(jì)屬于多輸入量的復(fù)雜程序控制問題。據(jù)此,擬定了以下兩種方案并進(jìn)行了綜合的比較論證,具體如下: 方案一: 選用一片cpld(如epm7128lc84-15)作為系統(tǒng)的核心部件,實(shí)現(xiàn)控制與處理

7、的功能。cpld具有速度快、編程容易、資源豐富、開發(fā)周期短等優(yōu)點(diǎn),可利用vhdl語言進(jìn)行編寫開發(fā)。但cpld在控制上較單片機(jī)有較大的劣勢。同時(shí),cpld的處理速度非???,而小車的行進(jìn)速度不可能太高,那么對系統(tǒng)處理信息的要求也就不會(huì)太高,在這一點(diǎn)上,mcu就已經(jīng)可以勝任了。若采用該方案,必將在控制上遇到許許多多不必要增加的難題。為此,我們不采用該種方案,進(jìn)而提出了第二種設(shè)想。 方案二: 采用單片機(jī)作為整個(gè)系統(tǒng)的核心,用其控制行進(jìn)中的小車,以實(shí)現(xiàn)其既定的性能指標(biāo)。充分分析我們的系統(tǒng),其關(guān)鍵在于實(shí)現(xiàn)小車的自動(dòng)控制,而在這一點(diǎn)上,單片機(jī)就顯現(xiàn)出來它的優(yōu)勢控制簡單、方便、快捷。這樣一來,單片機(jī)就可以充分

8、發(fā)揮其資源豐富、有較為強(qiáng)大的控制功能及可位尋址操作功能、價(jià)格低廉等優(yōu)點(diǎn)。因此,這種方案是一種較為理想的方案。 針對本設(shè)計(jì)特點(diǎn)多開關(guān)量輸入的復(fù)雜程序控制系統(tǒng),需要擅長處理多開關(guān)量的標(biāo)準(zhǔn)單片機(jī),而不能用精簡i/o口和程序存儲(chǔ)器的小體積單片機(jī),d/a、a/d功能也不必選用。根據(jù)這些分析,我選定了stc89c52ra單片機(jī)作為本設(shè)計(jì)的主控裝置,52單片機(jī)具有功能強(qiáng)大的位操作指令,i/o口均可按位尋址,程序空間多達(dá)8k,對于本設(shè)計(jì)也綽綽有余,更可貴的是52單片機(jī)價(jià)格非常低廉。 在綜合考慮了傳感器、兩部電機(jī)的驅(qū)動(dòng)等諸多因素后,我們決定采用一片單片機(jī),充分利用stc89c52單片機(jī)的資源。2.3傳感器選擇方

9、案 方案一:采用發(fā)光二極管發(fā)光,用光敏二極管接收; 發(fā)光二極管發(fā)出的可見光照射到黑帶時(shí),光線被黑帶吸收,光敏二極管為檢測到信號(hào)。呈高阻抗,使輸出端為低電平。當(dāng)發(fā)光二極管發(fā)出的可見光照射到地面時(shí),它發(fā)出的可見光反射回來被光敏二極管檢測到,其阻抗迅速降低,此時(shí)輸出端為高電平。但是由于光敏二極管受環(huán)境中可見光影響較大,電路的穩(wěn)定性很差,但可以通過運(yùn)放對檢測信號(hào)進(jìn)行處理。方案二: 采用反射式紅外光電傳感器。 用tcrt5000型反射式紅外對管組成的路徑識(shí)別傳感器模塊,檢測距離和靈敏度均能達(dá)到系統(tǒng)要求,該器件具有如下特點(diǎn):當(dāng)發(fā)光二極管發(fā)出的光反射回來時(shí),三極管導(dǎo)通輸出低電平,該光電對管調(diào)理電路簡單,工作

10、性能穩(wěn)定。 綜上所述,本設(shè)計(jì)采用發(fā)光二極管進(jìn)行檢測,原因是性價(jià)比較合理。2.4電機(jī)驅(qū)動(dòng)芯片選擇方案方案一:采用分立元件的h橋驅(qū)動(dòng)電路。 方案二:采用集成的h橋驅(qū)動(dòng)電路芯片。 由于集成的h橋驅(qū)動(dòng)電路芯片體積小,穩(wěn)定性高,因此選用集成的驅(qū)動(dòng)電路芯片作為電機(jī)的驅(qū)動(dòng)芯片,型號(hào)為l298n。2.5電機(jī)方案選擇 方案一: 采用步進(jìn)電機(jī),步進(jìn)電機(jī)的一個(gè)顯著特點(diǎn)就是具有快速啟停能力可實(shí)現(xiàn)電機(jī)正反轉(zhuǎn)及調(diào)速,啟動(dòng)性能好,啟動(dòng)轉(zhuǎn)矩大。工作電壓可達(dá)到36v,4a。可同時(shí)驅(qū)動(dòng)兩臺(tái)直流電機(jī)。適合應(yīng)用于機(jī)器人設(shè)計(jì)及智能小車的設(shè)計(jì)中,如果符合不超過步進(jìn)電機(jī)所能提供的動(dòng)態(tài)轉(zhuǎn)矩值,就能夠立即使步進(jìn)電機(jī)的啟功或者反轉(zhuǎn)。調(diào)速方式:直

11、流電動(dòng)機(jī)采用pwm信號(hào)平滑調(diào)速。方案二: 采用普通直流減速電機(jī),直流電動(dòng)機(jī)具有優(yōu)良的調(diào)速特性,調(diào)速平滑,方便,調(diào)整范圍廣,過載能力強(qiáng),能承受頻繁的沖擊負(fù)載,可實(shí)現(xiàn)頻繁的無極快速啟動(dòng),制動(dòng),和反轉(zhuǎn),能滿足各種不同的特殊運(yùn)行要求。 綜上所訴,我們選擇直流減速電機(jī)。2.6電源方案選擇方案一: 直接使用aa干電池進(jìn)行供電它的結(jié)構(gòu)十分簡單,但是供電能力差,不易長時(shí)間供電。 方案二: 使用3500ma干電池配合直流穩(wěn)壓整流電路輸入端口接9ma的干電池,經(jīng)電容濾波和l7805和l7806穩(wěn)壓后輸出約5v,6v電壓??杀WC長時(shí)間穩(wěn)定的輸出電壓。這樣可以提供持久穩(wěn)定的電流,穩(wěn)壓后給單片機(jī)系統(tǒng)和其他芯片供電。考慮

12、到系統(tǒng)穩(wěn)定工作的要求,所以選擇方案一。三 主要器件介紹3.1 stc89c52的介紹 stc89c52引腳功能說明vcc(40引腳):電源電壓 vss(20引腳):接地p0端口(p0.0p0.7,3932引腳):p0口是一個(gè)漏極開路的8位雙向i/o口。作為輸出端口,每個(gè)引腳能驅(qū)動(dòng)8個(gè)ttl負(fù)載,對端口p0寫入“1”時(shí),可以作為高阻抗輸入。在訪問外部程序和數(shù)據(jù)存儲(chǔ)器時(shí),p0口也可以提供低8位地址和8位數(shù)據(jù)的復(fù)用總線。此時(shí),p0口內(nèi)部上拉電阻有效。在flash rom編程時(shí),p0端口接收指令字節(jié);而在校驗(yàn)程序時(shí),則輸出指令字節(jié)。驗(yàn)證時(shí),要求外接上拉電阻。p1端口(p1.0p1.7,18引腳):p1

13、口是一個(gè)帶內(nèi)部上拉電阻的8位雙向i/o口。p1的輸出緩沖器可驅(qū)動(dòng)(吸收或者輸出電流方式)4個(gè)ttl輸入。對端口寫入1時(shí),通過內(nèi)部的上拉電阻把端口拉到高電位,這是可用作輸入口。p1口作輸入口使用時(shí),因?yàn)橛袃?nèi)部上拉電阻,那些被外部拉低的引腳會(huì)輸出一個(gè)電流。此外,p1.0和p1.1還可以作為定時(shí)器/計(jì)數(shù)器2的外部技術(shù)輸入(p1.0/t2)和定時(shí)器/計(jì)數(shù)器2的觸發(fā)輸入(p1.1/t2ex),具體參見下表:在對flash rom編程和程序校驗(yàn)時(shí),p1接收低8位地址。表xx p1.0和p1.1引腳復(fù)用功能在對flash rom編程或程序校驗(yàn)時(shí),p3還接收一些控制信號(hào)。 p3口除作為一般i/o口外,還有其他

14、一些復(fù)用功能,如下表所示: 表xx p3口引腳復(fù)用功能來完成單片機(jī)單片機(jī)的復(fù)位初始化操作。看門狗計(jì)時(shí)完成后,rst引腳輸出96個(gè)晶振周期的高電平。特殊寄存器auxr(地址8eh)上的disrto位可以使此功能無效。disrto默認(rèn)狀態(tài)下,復(fù)位高電平有效。xtal1(19引腳):振蕩器反相放大器和內(nèi)部時(shí)鐘發(fā)生電路的輸入端。xtal2(18引腳):振蕩器反相放大器的輸入端。 特殊功能寄存器3.2 l298n的介紹l298n是一種高電壓、大電流電機(jī)驅(qū)動(dòng)芯片。該芯片的主要特點(diǎn)是:工作電壓高,最高工作電壓可達(dá)46v;輸出電流大,瞬間峰值電流可達(dá)3a,持續(xù)工作電流為2a;內(nèi)含兩個(gè)h橋的高電壓大電流全橋式驅(qū)

15、動(dòng)器,可以用來驅(qū)動(dòng)直流電動(dòng)機(jī)和步進(jìn)電動(dòng)機(jī)、繼電器、線圈等感性負(fù)載;采用標(biāo)準(zhǔn)ttl邏輯電平信號(hào)控制;具有兩個(gè)使能控制端,在不受輸入信號(hào)影響的情況下允許或禁止器件工作;有一個(gè)邏輯電源輸入端,使內(nèi)部邏輯電路部分在低電壓下工作;可以外接檢測電阻,將變化量反饋給控制電路。3.2.1 l298n的引腳功能3.2.2 l298n的運(yùn)行參數(shù) 3.2.3 l298n的邏輯控制主要采用l298n,通過單片機(jī)的i/o輸入改變芯片控制端的電平,即可以對電機(jī)進(jìn)行正反轉(zhuǎn),停止的操作,輸入引腳與輸出引腳的邏輯關(guān)系圖為表3.3 l298n對直流電機(jī)控制的邏輯真值表3.3 tcrt5000的介紹tcrt5000光電傳感器模塊是

16、基于tcrt5000紅外光電傳感器設(shè)計(jì)的一款紅外反射式光電開關(guān)。傳感器采用高發(fā)射功率紅外光電二極管和高靈敏度光電晶體管組成,輸出信號(hào)經(jīng)施密特電路整形,穩(wěn)定可靠。+:接直流dc5v正極-:接直流dc5v負(fù)極s:信號(hào)輸出端,光敏三極管飽和,此時(shí)模塊的輸出端為高電平,指示二極管被點(diǎn)亮。應(yīng)用場合:電度表脈沖數(shù)據(jù)采樣、傳真機(jī)碎紙機(jī)紙張檢測、障礙檢測黑白線檢測基本參數(shù):外形尺寸:長32mm37mm;寬7.5mm;厚5mm工作電壓:dc3v5.5v,推薦工作電壓為5v檢測距離:1mm8mm適用,焦點(diǎn)距離為2.5mm傳感器的紅外發(fā)射二極管不斷發(fā)射紅外線,當(dāng)發(fā)射出的紅外線沒有被反射回來或被反射回來但強(qiáng)度不夠大時(shí)

17、,光敏三極管一直處于關(guān)斷狀態(tài),此時(shí)模塊的輸出端為低電平,指示二極管一直處于熄滅狀態(tài);被檢測物體出現(xiàn)在檢測范圍內(nèi)時(shí),紅外線被反射回來且強(qiáng)度足夠大,光敏三極管飽和,此時(shí)模塊的輸出端為高電平,指示二極管被點(diǎn)亮。靈敏度可調(diào)的循跡電路。當(dāng)比較器的正向輸入端電壓低于反向輸入端的電壓時(shí)輸出低電平,led亮,表示接收到反射光。3.4 lm339的介紹智能小車中運(yùn)用于電路分析模塊lm339引腳圖與功能簡介lm339集成塊內(nèi)部裝有四個(gè)獨(dú)立的電壓比較器。lm339類似于增益不可調(diào)的運(yùn)算放大器。每個(gè)比較器有兩個(gè)輸入端和一個(gè)輸出端。兩個(gè)輸入端一個(gè)稱為同相輸入端,用“+”表示,另一個(gè)稱為反相輸入端,用“-”表示。用作比較

18、兩個(gè)電壓時(shí),任意一個(gè)輸入端加一個(gè)固定電壓做參考電壓(也稱為門限電平,它可選擇lm339輸入共模范圍的任何一點(diǎn)),另一端加一個(gè)待比較的信號(hào)電壓。當(dāng)“+”端電壓高于“-”端時(shí),輸出管截止,相當(dāng)于輸出端開路。當(dāng)“-”端電壓高于“+”端時(shí),輸出管飽和,相當(dāng)于輸出端接低電位。兩個(gè)輸入端電壓差別大于10mv就能確保輸出能從一種狀態(tài)可靠地轉(zhuǎn)換到另一種狀態(tài),因此,把lm339用在弱信號(hào)檢測等場合是比較理想的。lm339的輸出端相當(dāng)于一只不接集電極電阻的晶體三極管,在使用時(shí)輸出端到正電源一般須接一只電阻(稱為上拉電阻,選3-15k)。選不同阻值的上拉電阻會(huì)影響輸出端高電位的值。因?yàn)楫?dāng)輸出晶體三極管截止時(shí),它的集

19、電極電壓基本上取決于上拉電阻與負(fù)載的值。另外,各比較器的輸出端允許連接在一起使用。3.5 l7805cv和l7806cv的介紹l7805l7805是我們最常用到的穩(wěn)壓芯片了,他的使用方便,用很簡單的電路即可以輸入一個(gè)直流穩(wěn)壓電源他的輸出電壓恰好為5v,剛好是51系列單片機(jī)運(yùn)行所需的電壓,他有很多的系列如ka7805,ads7805,cw7805等,性能有微小的差別,用的最多的還是lm7805,下面我簡單的介紹一下他的3個(gè)引腳以及用它來構(gòu)成的穩(wěn)壓電路的資料。 其中1接整流器輸出的+電壓,2為公共地(也就是負(fù)極),3就是我們需要的正5v輸出電壓了.l7806l7806為固定正電壓穩(wěn)壓電路,屬三端正

20、電源穩(wěn)壓電路系列(3terminals positive voltage regulator series)。產(chǎn)品應(yīng)用非常廣泛,涉及到各種穩(wěn)壓電源、充電器、數(shù)碼產(chǎn)品以及家電領(lǐng)域等。l7806芯片參數(shù):封裝四、硬件設(shè)計(jì).4.1 主控芯片at89c52單片機(jī)最小系統(tǒng)板電路本智能小車采用的單片機(jī)最小系統(tǒng)板是自己制做的at89c52單片機(jī)最小系統(tǒng)板,它具有體積小,質(zhì)量輕,使用方便等優(yōu)點(diǎn),能夠很好的放置在智能小車中。原理圖如下。 小系統(tǒng)pcb板4.2 電機(jī)驅(qū)動(dòng)模塊電路電機(jī)驅(qū)動(dòng)模塊采用專用驅(qū)動(dòng)芯片l298n作為電機(jī)的驅(qū)動(dòng)芯片。l298n是一種具有高電壓大電流的全橋驅(qū)動(dòng)芯片,它的響應(yīng)頻率高,一片l298n可

21、以分別控制兩個(gè)直流減速電機(jī),而且還帶有控制使能端,用它作為驅(qū)動(dòng)芯片,操作方便,穩(wěn)定,性能優(yōu)良。l298n的5、7引腳為一個(gè)電機(jī)的控制信號(hào)輸入端,10、12引腳為另一個(gè)電機(jī)的控制信號(hào)輸入端,2、3引腳為一個(gè)電機(jī)的控制信號(hào)輸出端,13、14引腳為另一個(gè)電機(jī)的控制信號(hào)輸出端,通過單片機(jī)對l298n的輸入端進(jìn)行指令控制,就能實(shí)現(xiàn)直流減速電機(jī)的正轉(zhuǎn)和反轉(zhuǎn),從而控制小車前進(jìn)和后退。電機(jī)驅(qū)動(dòng)電路原理圖如下。驅(qū)動(dòng)模塊pcb板4.3紅外對黑線檢測模塊電路由于有6個(gè)紅外傳感器排成一排均勻的安裝在小車底部,當(dāng)光線照射到路面并反射,由于黑線和白紙的反射系數(shù)不同,根據(jù)接收到的反射光強(qiáng)度判斷是否眼黑線前進(jìn)。在一般情況下,

22、當(dāng)黑線位于中間的兩個(gè)紅外傳感器之間,不管小車偏向哪一邊,都能檢測出小車的偏移方向?;蛘弋?dāng)小車偏向左邊時(shí),右邊的傳感器檢測到黑線,輸出低電平給電機(jī),否則,輸出高電平。紅外作循跡電路原理圖紅外作循跡pcb板 采用紅外對管制作循跡電路,當(dāng)檢測到黑線時(shí),紅外接受管導(dǎo)通,否則紅外對管截止,通過比較器lm339電壓比較,把電平狀態(tài)送給單片機(jī)進(jìn)而單片機(jī)處理。原理圖如下。 電路分析原理圖紅外電路分析pcb板4.4穩(wěn)壓電源電路電機(jī)驅(qū)動(dòng)電路模塊:本題目要求小車的機(jī)械系統(tǒng)穩(wěn)定、靈活、簡單,可選用兩輪式,考慮到現(xiàn)在的汽車多采用兩輪式我選用兩輪式的設(shè)計(jì),使設(shè)計(jì)更貼近生活需求。驅(qū)動(dòng)部分:直流驅(qū)動(dòng)電機(jī),由l298n雙通道馬

23、達(dá)驅(qū)動(dòng)模塊驅(qū)動(dòng)前后兩個(gè)馬達(dá),其力矩完全可以達(dá)到模擬效果。 電池的安裝:將電池放置在車體的下面,降低車體重心,提高穩(wěn)定性,同時(shí)可增加驅(qū)動(dòng)輪的抓地力,減小輪子空轉(zhuǎn)所引起的誤差。 電源模塊:采用2支3500ma電池給電機(jī)供電,再用穩(wěn)壓芯片對電池電壓進(jìn)行降壓給單片機(jī)。采用一套電源可減少小車的負(fù)重。電機(jī)動(dòng)力電路應(yīng)用說明:基本思路為使能端輸入使能信號(hào),即接高電平,控制輸入端a端輸入pwm 信號(hào),控制輸出端b輸入方向信號(hào),在一個(gè)pwm周期內(nèi),電動(dòng)機(jī)只承受單極性的電壓,電機(jī)的選擇方向由控制信號(hào)決定,電機(jī)的速度由pwm決定,pwm占空比為0%-100%對應(yīng)于電機(jī)轉(zhuǎn)速0-max。因此,當(dāng)接收到由檢測模塊的信號(hào)時(shí),

24、單片機(jī)處理該信號(hào),根據(jù)該信號(hào)產(chǎn)生對應(yīng)的pwm 波,從而可以根據(jù)調(diào)節(jié)電機(jī)的轉(zhuǎn)速與方向。穩(wěn)壓電源電路圖穩(wěn)壓電源pcb板五、程序設(shè)計(jì) 5.1主程序 #include#defineuchar unsigned char#defineuint unsigned intuchar pwm_left =0;/變量定義,與速度比較的變量uchar push_left =0;/ 左電機(jī)占空比n/10 調(diào)速uchar pwm_right =0;/與速度比較的變量uchar push_right=0;/ 右電機(jī)占空比n/10 調(diào)速bit right_moto_stop=1;bit left_moto_stop =1

25、;uint time=0;uint a=0,flag=0,flag1=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 out1 = p20;sbit out2 = p21;sbit out3 = p22;sbit out4 = p23;sbit ena = p16;sbit enb = p17;sbit inright =

26、p24;sbit inleft = p25;delay(uint a);intturnleft(uint z) ena=1; enb=1; out1=1; out2=0; out3=1; out4=0; delay(z); 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 g

27、o(uint q) ena=1; enb=1; out1=0; out2=1; out3=1; out4=0; delay(q);intback(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; voidbizhang()if(inright=1&inleft=1)go(50); if(inright=0)turnright(

28、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=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

29、=0)/0010 turnright(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) /0100turnleft(30);delay(3);else if(left_1_led=0&left_2_led=1&right_1_led=0&right_2_led=1) /0101turnrigh

30、t(30); delay(2);else if(left_1_led=0&left_2_led=1&right_1_led=1&right_2_led=1) /0111turnleft(30);delay(1);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) /1001go(30);delay(3); /本來延時(shí)6else if(lef

31、t_1_led=1&left_2_led=0&right_1_led=1&right_2_led=0) /1010turnleft(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_led=0) /1100turnleft(20);delay(5); else if(left_1_led=0&left_2_led=0&ri

32、ght_1_led=0&right_2_led=1) / 1101turnleft(20); delay(5);else if(left_1_led=1&left_2_led=1&right_1_led=1&right_2_led=0) / 1110turnleft(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;x0;x-)for(y=1

33、10;y0;y-);return 0;/*/* pwm調(diào)制電機(jī)轉(zhuǎn)速 */*/* 左電機(jī)調(diào)速 */*調(diào)節(jié)push_val_left的值改變電機(jī)轉(zhuǎn)速,占空比 */void pwm_out_left_moto(void) if(left_moto_stop) if(pwm_left=100)pwm_left=0; else ena=0;/*/* 右電機(jī)調(diào)速 */ void pwm_out_right_moto(void) if(right_moto_stop) if(pwm_right=100)pwm_right=0; else enb=0;/*/* */* 定時(shí)器初值化 */*/void init

34、0(void)tmod=0x01;th0= 0xf8; /1ms定時(shí)th0= 0xf8; tl0= 0x30; tl0= 0x30;tr0= 1;et0= 1;ea = 1;void init1(void)tmod=0x10; /設(shè)置定時(shí)器0工作模式1th1=(65536-50000)/256; /定時(shí)器裝初值tl1=(65536-50000)%256;it0=1; it1=1;ex0=1;/開外部中斷0ex1=1;/開外部中斷1et1=1;/開定時(shí)器0中斷tr1=1;/啟動(dòng)定時(shí)器0ea=1;/開總中斷/*/*timer0中斷服務(wù)子函數(shù)產(chǎn)生pwm信號(hào)*/ void timer0()interr

35、upt 1 using 2 th0=0xf8; /1ms定時(shí) tl0=0x30; time+; pwm_left+; pwm_right+; pwm_out_left_moto(); pwm_out_right_moto(); void run(int m,int n) push_left =m; /pwm 調(diào)節(jié)參數(shù)1-10 1為最慢,10是最快 改這個(gè)值可以改變其速度 push_right =n; /pwm 調(diào)節(jié)參數(shù)1-10 1為最慢,10是最快 改這個(gè)值可以改變其速度 out1=0; /左電機(jī)前進(jìn) out2=1; out3=1; out4=0; /右電機(jī)前進(jìn) void tiaosu() w

36、hile(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 main() init0();init1();p1=0xff;p2=0xff; while(1) if(left_1_led=1&left_2_led=

37、1&right_1_led=1&right_2_led=1) flag=1; /1111 else flag=0; delay(3); if(flag=0) xunji(); else tiaosu();六、調(diào)試: 6.1硬件調(diào)試 6.1.1 元件的固定 小車主要有5大模塊的電路板組成的,板和板之間是靠導(dǎo)線連接。小車在循跡運(yùn)動(dòng)的時(shí)候時(shí)常顛簸,導(dǎo)致電路板移位致使電路板上面的元件受到干擾,使小車不穩(wěn)定運(yùn)動(dòng),特別是l298n.所以我們除了在板上打孔鎖上螺絲,還在板和板之間用熱熔膠再固定,減少震動(dòng)。 6.1.2 tcrt5000探頭 由tcrt5000組成的軌跡識(shí)別電路是本次設(shè)計(jì)成敗的關(guān)鍵,在初次調(diào)試

38、時(shí)小車的搖頭動(dòng)作(即轉(zhuǎn)向)時(shí)常出現(xiàn)不靈的情況。后來用電壓表測量了電壓比較器量輸入端的電壓發(fā)現(xiàn)基準(zhǔn)電壓到了3.5v,而紅外探頭在檢測到黑線時(shí)才3.6v。兩者電壓相差無幾,所以遇到黑線顏色較淺或反光的區(qū)域單片機(jī)會(huì)發(fā)生誤判的現(xiàn)象。于是我們測量了紅外探頭在黑白兩種極限情況下的電壓輸出情況。在測量了紅外探頭在黑色和白色兩種極限情況下的電壓后,調(diào)節(jié)電阻我把基準(zhǔn)電壓調(diào)到5v,這個(gè)電壓值距黑色或白色情況下輸出的電壓值都很大,單片機(jī)會(huì)減少誤判的現(xiàn)象。改良過后測試正常,小車能靈活的搖頭,更功能實(shí)現(xiàn)。6.1.3 l298n馬達(dá)驅(qū)動(dòng)模塊 第一次給l298n馬達(dá)驅(qū)動(dòng)模塊通電實(shí)現(xiàn)簡單的馬達(dá)單向驅(qū)動(dòng),發(fā)現(xiàn)馬達(dá)時(shí)跑時(shí)不跑。經(jīng)

39、過檢測發(fā)現(xiàn)是一根信號(hào)線接觸不良,重新接好后運(yùn)行正常。此模塊是用的市面上可以買到的模塊所以性能比較穩(wěn)定,調(diào)試很成功。6.2軟件調(diào)試 6.2.1調(diào)試平臺(tái)介紹 此次編程采用了keil v4。keilsoftware公司推出的uvision4是一款可用于多種8051mcu的集成開發(fā)環(huán)境(ide),該ide同時(shí)也是pk51及其它開發(fā)套件的一個(gè)重要組件。除增加了源代碼、功能導(dǎo)航器、模板編輯以及改進(jìn)的搜索功能外,uvision4還提供了一個(gè)配置向?qū)Чδ埽铀倭藛?dòng)代碼和配置文件的生成。此外其內(nèi)置的仿真器可模擬目標(biāo)mcu,包括指令集、片上外圍設(shè)備及外部信號(hào)等。uvision4提供邏輯分析器,可監(jiān)控基于mcui

40、/o引腳和外設(shè)狀態(tài)變化下的程序變量。uvision4提供對多種最新的8051類微處理器的支持,包括analogdevices的aduc83x和aduc84x,以及infineon的xc866等。其界面如下圖 所示。6.2.2程序調(diào)試 在調(diào)試好硬件之后我第一次把軟件下載到系統(tǒng)里面進(jìn)行實(shí)際測試,發(fā)現(xiàn)小車在彎道比較急的地方?jīng)]辦法繞過去,會(huì)發(fā)生脫軌現(xiàn)象。后來仔細(xì)分析了自己的算法,原本我是設(shè)定小車在遇到彎道后全力轉(zhuǎn)向繞過彎道,但是有些急得彎道小車無法繞過。此時(shí)我就想如何去解決在轉(zhuǎn)向角度有限的情況下解決轉(zhuǎn)急彎的問題。聯(lián)想到日常汽車在狹窄的小路上轉(zhuǎn)彎的情景我想到了倒退調(diào)整車體位置的方法。即在發(fā)現(xiàn)小車以現(xiàn)有的

41、轉(zhuǎn)向角度無法完成轉(zhuǎn)彎時(shí)使小車反相倒退,這樣即可很很快的調(diào)整小車的位置。改進(jìn)算法后我在進(jìn)行了一次測試,這次小車成功的繞過了90度的彎道。根據(jù)測試結(jié)果,可以看出小車循跡避障功能基本實(shí)現(xiàn)。但是測試還是存在失敗的現(xiàn)象。分析其原因有兩點(diǎn)。一,小車熟讀過快在轉(zhuǎn)彎時(shí)未及時(shí)剎車。二,畫在紙上的跑道會(huì)存在褶皺的地方,而這些地方容易產(chǎn)生誤判的現(xiàn)象。得知這些原因以后我降低現(xiàn)車速度,再次進(jìn)行了測試。結(jié)果表明,小車能很好的完成循跡,即使循跡軌道發(fā)生改變也不影響。但是小車不能根據(jù)賽道的情況自主的改變速度。這也是本次設(shè)計(jì)的一個(gè)缺陷。在實(shí)際調(diào)試過程中小車發(fā)生過程序跑飛的情況,經(jīng)調(diào)整改進(jìn)程序后,小車運(yùn)行狀態(tài)穩(wěn)定。能很好的完成沿

42、黑色軌道前進(jìn),改變軌道的形狀及轉(zhuǎn)彎角度,小車仍可完成循跡。七、心得體會(huì)在智能小車系統(tǒng)的設(shè)計(jì)、調(diào)試及論文的寫作過程中,感謝很多同學(xué)給予了無數(shù)的指導(dǎo)和大力的支持。在這個(gè)過程中我們不僅學(xué)會(huì)了知識(shí),還學(xué)會(huì)了治學(xué)的態(tài)度,那就是嚴(yán)謹(jǐn),把知識(shí)變?yōu)榧河?,棄其糟粕留其精華,用自己的方式去解決問題,而不是人云亦云。智能小車是傳感技術(shù)和自動(dòng)化控制技術(shù)飛速發(fā)展的產(chǎn)物,使得機(jī)械和電子信息不再明顯分家,自動(dòng)控制在工業(yè)領(lǐng)域中得地位越來越重要,智能這個(gè)詞是我們科技發(fā)展的重要產(chǎn)物。這次實(shí)踐中涉及的主要部分有傳感器檢測車部分、驅(qū)動(dòng)部分、單片機(jī)為核心的控制芯片部分穩(wěn)壓及電路分析部分。各個(gè)部分的涉及,相互之間的連接協(xié)調(diào)等得成功,都是要建立在系統(tǒng)的閱讀大量資料,并且認(rèn)真的分析課題的需求,還系統(tǒng)的學(xué)習(xí)的單片機(jī)的工作原理及其使用方法。并且學(xué)習(xí)了相關(guān)軟件,如仿真、程序燒寫等得應(yīng)用。通過本次課題設(shè)計(jì),不僅是對我們

溫馨提示

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

評(píng)論

0/150

提交評(píng)論