蔽障循跡智能小車

上傳人:沈*** 文檔編號:62621714 上傳時間:2022-03-15 格式:DOC 頁數(shù):31 大小:1.71MB
收藏 版權(quán)申訴 舉報 下載
蔽障循跡智能小車_第1頁
第1頁 / 共31頁
蔽障循跡智能小車_第2頁
第2頁 / 共31頁
蔽障循跡智能小車_第3頁
第3頁 / 共31頁

下載文檔到電腦,查找使用更方便

10 積分

下載資源

還剩頁未讀,繼續(xù)閱讀

資源描述:

《蔽障循跡智能小車》由會員分享,可在線閱讀,更多相關(guān)《蔽障循跡智能小車(31頁珍藏版)》請在裝配圖網(wǎng)上搜索。

1、 2013年 7 月12日 一、緒論.......................................................................4 1.1智能小車的作用和意義..................................................................4 二、方案設(shè)計與論證 ................................................ 4 2.1 總體

2、方案設(shè)計 ...............................................................................4 2.2主控系統(tǒng) ........................................................................................5 2.3傳感器選擇方案 ............................................................................6 2.4電機驅(qū)動芯片選擇方案.........

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的運行參數(shù) ...................................................................................10 3.2.3 L298N的邏輯控制 ................................................................................... 10 3.3 TCRT5000的介紹 ..................................................................

6、...... 11 3.4LM339的介紹 ................................................................................12 3.5 L7805CV和L7806CV的介紹.........................................................12 四、硬件設(shè)計 ............................................................... 14 4.1 主控芯片STC89C52單片機最小系統(tǒng)板電路 .......

7、.................... 14 4.2 電機驅(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馬達驅(qū)動模塊 .............................................

10、.............. 29 6.2軟件調(diào)試 ........................................................................................ 29 6.2.1調(diào)試平臺介紹 ......................................................................... 29 6.2.2程序調(diào)試...............................................................................

11、......29 6.3 測試結(jié)果與分析 ........................................................................... 30 七、心得體會.................................................................................. 30 附件 元件清單 參考文獻 一、緒論 1.1智能小車的作用和意義 自第一臺工業(yè)機器人誕生以來,機器人的發(fā)展已經(jīng)遍及機械、電子、冶金、交通、宇航、國防

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

13、主式智能導(dǎo)航一種實用有效的方法。 機器人要實現(xiàn)自動導(dǎo)引功能和避障功能就必須要感知導(dǎo)引線和障礙物,感知導(dǎo)引線相當(dāng)給機器人一個視覺功能。避障控制系統(tǒng)是基于自動導(dǎo)引小車(AVG—auto-guide vehicle)系統(tǒng),基于它的智能小車實現(xiàn)自動識別路線,判斷并自動避開障礙,選擇正確的行進路線。使用傳感器感知路線和障礙并作出判斷和相應(yīng)的執(zhí)行動作。 該智能小車可以作為機器人的典型代表。它可以分為三大組成部分:傳感器檢測部分、CPU、執(zhí)行部分。機器人要實現(xiàn)自動避障功能,還可以擴展循跡等功能,感知導(dǎo)引線和障礙物??梢詫崿F(xiàn)小車自動識別路線,選擇正確的行進路線,并檢測到障礙物自動躲避?;谏鲜鲆?/p>

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

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

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

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

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

19、反射回來時,三極管導(dǎo)通輸出低電平,該光電對管調(diào)理電路簡單,工作性能穩(wěn)定。 綜上所述,本設(shè)計采用發(fā)光二極管進行檢測,原因是性價比較合理。 2.4電機驅(qū)動芯片選擇方案 方案一:采用分立元件的H橋驅(qū)動電路。 方案二:采用集成的H橋驅(qū)動電路芯片。 由于集成的H橋驅(qū)動電路芯片體積小,穩(wěn)定性高,因此選用集成的驅(qū)動電路芯片作為電機的驅(qū)動芯片,型號為L298N。 2.5電機方案選擇 方案一: 采用步進電機,步進電機的一個顯著特點就是具有快速啟停能力可實現(xiàn)電機正反轉(zhuǎn)及調(diào)速,啟動性能好,啟動轉(zhuǎn)矩大。工作電壓可達到36V,4A??赏瑫r驅(qū)動兩臺直流電機。適合應(yīng)用于機器人設(shè)計及智能小車的設(shè)計中

20、,如果符合不超過步進電機所能提供的動態(tài)轉(zhuǎn)矩值,就能夠立即使步進電機的啟功或者反轉(zhuǎn)。調(diào)速方式:直流電動機采用PWM信號平滑調(diào)速。 方案二: 采用普通直流減速電機,直流電動機具有優(yōu)良的調(diào)速特性,調(diào)速平滑,方便,調(diào)整范圍廣,過載能力強,能承受頻繁的沖擊負(fù)載,可實現(xiàn)頻繁的無極快速啟動,制動,和反轉(zhuǎn),能滿足各種不同的特殊運行要求。 綜上所訴,我們選擇直流減速電機。 2.6電源方案選擇 方案一: 直接使用AA干電池進行供電它的結(jié)構(gòu)十分簡單,但是供電能力差,不易長時間供電。 方案二: 使用3500mA干電池配合直流穩(wěn)壓整流電路輸入端口接9mA的干電池,經(jīng)電容濾波和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口。作為輸出端口,每個引腳能驅(qū)動8個TTL負(fù)載,對端口P0寫入“1”時,可以作為高阻抗輸入。在訪問外部程序和數(shù)據(jù)存儲器時,P0口也可以提供低8位地址和8位數(shù)據(jù)的復(fù)用總線。此時,P0口內(nèi)部上拉電

22、阻有效。在Flash ROM編程時,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 RO

23、M編程和程序校驗時,P1接收低8位地址。表XX P1.0和P1.1引腳復(fù)用功能 在對Flash ROM編程或程序校驗時,P3還接收一些控制信號。 P3口除作為一般I/O口外,還有其他一些復(fù)用功能,如下表所示: 表XX P3口引腳復(fù)用功能 來完成單片機單片機的復(fù)位初始化操作??撮T狗計時完成后,RST引腳輸出96個晶振周期的高電平。特殊寄存器AUXR(地址8EH)上的DISRTO位可以使此功能無效。DISRTO默認(rèn)狀態(tài)下,復(fù)位高電平有效。 XTAL1(19引腳):振蕩器反相放大器和內(nèi)部時鐘發(fā)生電路的輸入端。 XTAL2(18引腳):振蕩器反相放大器的輸入端。 特殊功能寄存器

24、 3.2 L298N的介紹 L298N是一種高電壓、大電流電機驅(qū)動芯片。該芯片的主要特點是:工作電壓高,最高工作電壓可達46V;輸出電流大,瞬間峰值電流可達3A,持續(xù)工作電流為2A;內(nèi)含兩個H橋的高電壓大電流全橋式驅(qū)動器,可以用來驅(qū)動直流電動機和步進電動機、繼電器、線圈等感性負(fù)載;采用標(biāo)準(zhǔn)TTL邏輯電平信號控制;具有兩個使能控制端,在不受輸入信號影響的情況下允許或禁止器件工作;有一個邏輯電源輸入端,使內(nèi)部邏輯電路部分在低電壓下工作;可以外接檢測電阻,將變化量反饋給控制電路。 3.2.1 L298N的引腳功能 3.2.2 L298N的運行參數(shù) 3.2.

25、3 L298N的邏輯控制 主要采用L298N,通過單片機的I/O輸入改變芯片控制端的電平,即可以對電機進行正反轉(zhuǎn),停止的操作,輸入引腳與輸出引腳的邏輯關(guān)系圖為 表3.3 L298N對直流電機控制的邏輯真值表 3.3 TCRT5000的介紹 TCRT5000光電傳感器模塊是基于TCRT5000紅外光電傳感器設(shè)計的一款紅外反射式光電開關(guān)。傳感器采用高發(fā)射功率紅外光電二極管和高靈敏度光電晶體管組成,輸出信號經(jīng)施密特電路整形,穩(wěn)定可靠。 +:接直流DC5V正極 ?-:接直流DC5V負(fù)極 ?S:信號輸出端,光敏三極管飽和,此時模塊的輸出端為高電平,指示二極管被點亮。 應(yīng)用場合

26、:? 電度表脈沖數(shù)據(jù)采樣、?傳真機碎紙機紙張檢測、??障礙檢測?黑白線檢測? 基本參數(shù):? 外形尺寸:?長?32mm~37?mm;寬?7.5mm;厚?5mm ?工作電壓:?DC?3V~5.5V,推薦工作電壓為5V? ?檢測距離:?1mm~8mm適用,焦點距離為2.5mm ? 傳感器的紅外發(fā)射二極管不斷發(fā)射紅外線,當(dāng)發(fā)射出的紅外線沒有被反射回來或被反射回來但強度不夠大時,光敏三極管一直處于關(guān)斷狀態(tài),此時模塊的輸出端為低電平,指示二極管一直處于熄滅狀態(tài);被檢測物體出現(xiàn)在檢測范圍內(nèi)時,紅外線被反射回來且強度足夠大,光敏三極管飽和,此時模塊的輸出端為高電平,指示二極管被點亮。 ?靈敏度

27、可調(diào)的循跡電路。當(dāng)比較器的正向輸入端電壓低于反向輸入端的電壓時輸出低電平,LED?亮,表示接收到反射光。 3.4 LM339的介紹 智能小車中運用于電路分析模塊 LM339引腳圖與功能簡介 LM339集成塊內(nèi)部裝有四個獨立的電壓比較器。LM339類似于增益不可調(diào)的運算放大器。每個比較器有兩個輸入端和一個輸出端。兩個輸入端一個稱為同相輸入端,用“+”表示,另一個稱為反相輸入端,用“-”表示。用作比較兩個電壓時,任意一個輸入端加一個固定電壓做參考電壓(也稱為門限電平,它可選擇LM339輸入共模范圍的任何一點),另一端加一個待比較的信號電壓。當(dāng)“+”端電壓高于“-”端時,輸出管截止,

28、相當(dāng)于輸出端開路。當(dāng)“-”端電壓高于“+”端時,輸出管飽和,相當(dāng)于輸出端接低電位。兩個輸入端電壓差別大于10mV就能確保輸出能從一種狀態(tài)可靠地轉(zhuǎn)換到另一種狀態(tài),因此,把LM339用在弱信號檢測等場合是比較理想的。LM339的輸出端相當(dāng)于一只不接集電極電阻的晶體三極管,在使用時輸出端到正電源一般須接一只電阻(稱為上拉電阻,選3-15K)。選不同阻值的上拉電阻會影響輸出端高電位的值。因為當(dāng)輸出晶體三極管截止時,它的集電極電壓基本上取決于上拉電阻與負(fù)載的值。另外,各比較器的輸出端允許連接在一起使用。 3.5 L7805CV和L7806CV的介紹 L7805 L7805是我們最常用到的穩(wěn)壓芯

29、片了,他的使用方便,用很簡單的電路即可以輸入一個直流穩(wěn)壓電源他的輸出電壓恰好為5v,剛好是51系列單片機運行所需的電壓,他有很多的系列如ka7805,ads7805,cw7805等,性能有微小的差別,用的最多的還是LM7805,下面我簡單的介紹一下他的3個引腳以及用它來構(gòu)成的穩(wěn)壓電路的資料。? ? 其中1接整流器輸出的+電壓,2為公共地(也就是負(fù)極),3就是我們需要的正5V輸出電壓了. L7806 L7806為固定正電壓穩(wěn)壓電路,屬三端正電源穩(wěn)壓電路系列(3Terminals positive Voltage Regulator Series)。產(chǎn)品應(yīng)用非常

30、廣泛,涉及到各種穩(wěn)壓電源、充電器、數(shù)碼產(chǎn)品以及家電領(lǐng)域等。 L7806芯片參數(shù): 封裝 四、硬件設(shè)計 . 4.1 主控芯片AT89C52單片機最小系統(tǒng)板電路 本智能小車采用的單片機最小系統(tǒng)板是自己制做的AT89C52單片機最小系統(tǒng)板,它具有體積小,質(zhì)量輕,使用方便等優(yōu)點,能夠很好的放置在智能小車中。原理圖如下。 小系統(tǒng)PCB板 4.2 電機驅(qū)動模塊電路 電機驅(qū)動模塊采用專用驅(qū)動芯片L298N作為電機的驅(qū)動芯片。L298N是一種具有高電壓大電流的全橋驅(qū)動芯片,它的響應(yīng)頻率高,一片L298N可以分別控制兩個直流減速電機,而且還帶有控制使

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

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

33、近生活需求。驅(qū)動部分:直流驅(qū)動電機,由L298N雙通道馬達驅(qū)動模塊驅(qū)動前后兩個馬達,其力矩完全可以達到模擬效果。 電池的安裝:將電池放置在車體的下面,降低車體重心,提高穩(wěn)定性,同時可增加驅(qū)動輪的抓地力,減小輪子空轉(zhuǎn)所引起的誤差。 電源模塊:采用2支3500mA電池給電機供電,再用穩(wěn)壓芯片對電池電壓進行降壓給單片機。采用一套電源可減少小車的負(fù)重。 電機動力電路應(yīng)用說明: 基本思路為使能端輸入使能信號,即接高電平,控制輸入端A端輸入PWM 信號,控制輸出端B輸入方向信號,在一個PWM周期內(nèi),電動機只承受單極性的電壓,電機的選擇方向由控制信號決定,電機的速度由PWM決定,PWM占空比為0%-10

34、0%對應(yīng)于電機轉(zhuǎn)速0-MAX。因此,當(dāng)接收到由檢測模塊的信號時,單片機處理該信號,根據(jù)該信號產(chǎn)生對應(yīng)的PWM 波,從而可以根據(jù)調(diào)節(jié)電機的轉(zhuǎn)速與方向。 穩(wěn)壓電源電路圖 穩(wěn)壓電源PCB板 五、程序設(shè)計 5.1主程序 #include #define uchar unsigned char #define uint unsigned int uchar pwm_left =0;//變量定義,與速度比較的變量 uchar push_left =0;// 左電機占空比N/10 調(diào)速 uchar pwm_righ

35、t =0;//與速度比較的變量 uchar push_right=0;// 右電機占空比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_

36、2_led=P1^3; //四路尋跡模塊接口第三路 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; ou

37、t3=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 go(uint q) {

38、 ena=1; enb=1; out1=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; }

39、 void bizhang() { if(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_

40、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==0) //0010

41、 { 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=

42、=0) //0100 { 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);

43、 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) //1001 { go(30); delay(3); //本來延時6

44、 } else if(Left_1_led==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&&Lef

45、t_2_led==1&&Right_1_led==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==

46、0) // 1110 { turnleft(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(

47、x=a;x>0;x--) for(y=110;y>0;y--); return 0; } /************************************************************************/ /* PWM調(diào)制電機轉(zhuǎn)速 */ /************************************************************************/ /* 左電

48、機調(diào)速 */ /*調(diào)節(jié)push_val_left的值改變電機轉(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、*******************************************************/ /* 右電機調(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;

50、 } else enb=0; } /*******************************************************************/ /* */ /* 定時器初值化 */ /***************************************************************

51、****/ void init0(void) { TMOD=0X01; 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; //

52、開外部中斷0 EX1=1; //開外部中斷1 ET1=1; //開定時器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_r

53、ight++; 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是最快 改這個值可以改變其速度 push_right =n; //PWM 調(diào)節(jié)參數(shù)1-10 1為最慢,10是最快 改這個值可以改變其速度 out1=0; //左電機前進 out2=1; out3=1; out4=0;

54、 //右電機前進 } void tiaosu() { 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

55、==1) { a=2;} } } 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

56、 tiaosu(); } } 六、調(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)不靈的情況。后來用電壓表測量了電壓比較器量輸入端的電壓

57、發(fā)現(xiàn)基準(zhǔn)電壓到了3.5V,而紅外探頭在檢測到黑線時才3.6V。兩者電壓相差無幾,所以遇到黑線顏色較淺或反光的區(qū)域單片機會發(fā)生誤判的現(xiàn)象。于是我們測量了紅外探頭在黑白兩種極限情況下的電壓輸出情況。在測量了紅外探頭在黑色和白色兩種極限情況下的電壓后,調(diào)節(jié)電阻我把基準(zhǔn)電壓調(diào)到5V,這個電壓值距黑色或白色情況下輸出的電壓值都很大,單片機會減少誤判的現(xiàn)象。改良過后測試正常,小車能靈活的搖頭,更功能實現(xiàn)。 6.1.3 L298N馬達驅(qū)動模塊 第一次給L298N馬達驅(qū)動模塊通電實現(xiàn)簡單的馬達單向驅(qū)動,發(fā)現(xiàn)馬達時跑時不跑。經(jīng)過檢測發(fā)現(xiàn)是一根信號線接觸不良,重新接好后運行正常。此模塊是用的市面上可以買

58、到的模塊所以性能比較穩(wěn)定,調(diào)試很成功。 6.2軟件調(diào)試 6.2.1調(diào)試平臺介紹 此次編程采用了keil V4。KeilSoftware公司推出的uVision4是一款可用于多種8051MCU的集成開發(fā)環(huán)境(IDE),該IDE同時也是PK51及其它開發(fā)套件的一個重要組件。除增加了源代碼、功能導(dǎo)航器、模板編輯以及改進的搜索功能外,uVision4還提供了一個配置向?qū)Чδ埽铀倭藛哟a和配置文件的生成。此外其內(nèi)置的仿真器可模擬目標(biāo)MCU,包括指令集、片上外圍設(shè)備及外部信號等。uVision4提供邏輯分析器,可監(jiān)控基于MCUI/O引腳和外設(shè)狀態(tài)變化下的程序變量。uVision4提供對多

59、種最新的8051類微處理器的支持,包括AnalogDevices的ADuC83x和ADuC84x,以及Infineon的XC866等。其界面如下圖 所示 。 6.2.2程序調(diào)試 在調(diào)試好硬件之后我第一次把軟件下載到系統(tǒng)里面進行實際測試,發(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)彎時使小車反相倒退,這樣即可很

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

61、仍可完成循跡。 七、心得體會 在智能小車系統(tǒng)的設(shè)計、調(diào)試及論文的寫作過程中,感謝很多同學(xué)給予了無數(shù)的指導(dǎo)和大力的支持。在這個過程中我們不僅學(xué)會了知識,還學(xué)會了治學(xué)的態(tài)度,那就是嚴(yán)謹(jǐn),把知識變?yōu)榧河校瑮壠湓闫闪羝渚A,用自己的方式去解決問題,而不是人云亦云。 智能小車是傳感技術(shù)和自動化控制技術(shù)飛速發(fā)展的產(chǎn)物,使得機械和電子信息不再明顯分家,自動控制在工業(yè)領(lǐng)域中得地位越來越重要,智能這個詞是我們科技發(fā)展的重要產(chǎn)物。這次實踐中涉及的主要部分有傳感器檢測車部分、驅(qū)動部分、單片機為核心的控制芯片部分穩(wěn)壓及電路分析部分。各個部分的涉及,相互之間的連接協(xié)調(diào)等得成功,都是要建立在系統(tǒng)的閱讀大量資料,并且

62、認(rèn)真的分析課題的需求,還系統(tǒng)的學(xué)習(xí)的單片機的工作原理及其使用方法。并且學(xué)習(xí)了相關(guān)軟件,如仿真、程序燒寫等得應(yīng)用。通過本次課題設(shè)計,不僅是對我們課本所學(xué)知識的考查,更是對我的自學(xué)能力和收集資料能力以及動手能力的考驗。我們對一個項目的整體設(shè)計有了初步認(rèn)識并能獨立設(shè)計出其接口電路,再有對電路板的制作有了一定的了解,并學(xué)會了使用Protel99設(shè)計電路。課程設(shè)計使我們意識到了實驗的重要性,在硬件制作和軟件調(diào)試的過程中,出現(xiàn)了很多問題,最終都是通過實驗的方法來解決的。還有以前對程序只是一個很模糊的概念,通過這次的課題設(shè)計使我對程序完全有了一個新的認(rèn)識,并能使用C熟練的進行編程了。通過本次課題設(shè)計,極大的

63、鍛煉了我們的思考和分析問題的能力,并對單片機有了一個更深的認(rèn)識。 小車的設(shè)計制作工作量飽滿,體現(xiàn)了團隊合作精神。在這次設(shè)計中也有很多的不足之處,我們?nèi)鄙賹嶋H經(jīng)驗,更多的是依靠網(wǎng)絡(luò)資源來解決問題,特別是各模塊的程序編寫,在軟件設(shè)計方面花費了很多的時間。特別是在最后調(diào)試階段,程序的控制問題給我們帶來了很大的困難,小車設(shè)計的硬件部分完成相對順利些,在軟件領(lǐng)域顯得不足,今后會更多的學(xué)習(xí)軟件。設(shè)計過程中單片機知識頗有設(shè)計,我們還應(yīng)加強理論知識的學(xué)習(xí)。本次設(shè)計涉及到了一系列光機電一體化的技術(shù)。其中機械結(jié)構(gòu)是小車能否穩(wěn)定運行的基礎(chǔ),硬件電路決定了小車實現(xiàn)的功能,軟件部分是控制的靈魂,而同伴們鍥而不舍的精神

64、則是整個設(shè)計的支柱! 總之,在課題設(shè)計的過程中,無論是對于學(xué)習(xí)方法還是理論知識,我們都有了新的認(rèn)識,受益匪淺,這將激勵我們在今后再接再厲,不斷完善自己的理論知識,提高實踐運作能力。 附件 元件清單: 1. 電機驅(qū)動芯片L298N 2. 穩(wěn)壓芯片L7805一個,L7806一個 3. 單片機STC89C52 4. 晶振12M 5. 輕觸開關(guān)和點觸開關(guān)各一個 6.電解電容220uF/25v、100uf/16v若干, 電容104若干,103電容若干 7. 10K滑動變阻器、470歐電阻若干 8. 電阻330歐若干,1K的若干個, 9.上拉電阻472歐一個 10. 紅

65、外線傳感器TCRT5000 4個 11. 散熱片一個 12.杜邦線若干(杜邦頭,焊片,包括線) 13. 萬用表 14. 插針和插排若干 15. 發(fā)光二極管若干 16. 二極管IN4007八個 17.車底盤模具 18. LM339芯片 19.TR18650 3000mAh 3.7v電源 20. 各種芯片底座若干 21.驅(qū)動直流電機4個 參考文獻 [1]郭惠,吳迅.單片機C語言程序設(shè)計完全自學(xué)手冊[M].電子工業(yè)出版社,2008.10:1-200. [2]王東鋒,王會良,董冠強. 單片機C語言應(yīng)用100例[M]. 電子工業(yè)出版社,2009.3:145-30

66、0. [3]韓毅,楊天. 基于HCS12單片機的智能尋跡模型車的設(shè)計與實現(xiàn)[J].學(xué)術(shù)期刊,2008,29(18):1535-1955. [4] 王曉明. 電動機的單片機控制[J]. 學(xué)術(shù)期刊,2002,13(15):1322-1755. ? [5]宏晶科技,《STC89C51RC/RD+系列單片機器件手冊》,2011年9月8號更新版本 [6求是科技,《單片機典型模塊設(shè)計實例導(dǎo)航(第2版)》,人民郵電出版社,2008年7月出版? [7]李全利,《單片機原理及應(yīng)用技術(shù)》,高等教育出版社,2009年1月出版? [8]丁明亮,《51單片機應(yīng)用設(shè)計與仿真-基于keil?C與Proteus》,北京航空航天大學(xué)出版社,2009年2月出版? [9]張鑫,《單片機原理及應(yīng)用(第2版)》,電子工業(yè)出版社,2010年出版?6.張毅剛,《單片機原理與應(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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

相關(guān)資源

更多
正為您匹配相似的精品文檔

相關(guān)搜索

關(guān)于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權(quán)所有   聯(lián)系電話:18123376007

備案號:ICP2024067431-1 川公網(wǎng)安備51140202000466號


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務(wù)平臺,本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權(quán)或隱私,請立即通知裝配圖網(wǎng),我們立即給予刪除!