智能循跡避障小車控制系統(tǒng)設(shè)計(jì)最終版_第1頁
智能循跡避障小車控制系統(tǒng)設(shè)計(jì)最終版_第2頁
智能循跡避障小車控制系統(tǒng)設(shè)計(jì)最終版_第3頁
智能循跡避障小車控制系統(tǒng)設(shè)計(jì)最終版_第4頁
智能循跡避障小車控制系統(tǒng)設(shè)計(jì)最終版_第5頁
已閱讀5頁,還剩26頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、上海大學(xué)20162017學(xué)年秋季學(xué)期研究生課程考試課程名稱:微機(jī)接口技術(shù)與數(shù)字控制課程編號(hào):09Z077005論文題目:基于STC89C5口片機(jī)自動(dòng)避障循跡小車控制系統(tǒng)的設(shè)計(jì)研究生姓名:肖青峰、徐鵬、付高峰學(xué)號(hào):16721678任課教師:沈林勇論文評(píng)語:成績:評(píng)閱日期:基于STC89C52$片機(jī)自動(dòng)避障循跡小車控制系統(tǒng)設(shè)計(jì)肖青峰、徐鵬、付高峰上海大學(xué)機(jī)電工程與自動(dòng)化學(xué)院,上海200072摘要:本設(shè)計(jì)是基于STC89C5空片機(jī)的自動(dòng)循跡避障小車的控制系統(tǒng)設(shè)計(jì)。利用紅外對(duì)管檢測(cè)黑線與障礙物,并以STC89C52L片機(jī)為控制芯片控制電動(dòng)小汽車的速度及轉(zhuǎn)向,從而實(shí)現(xiàn)自動(dòng)循跡避障的功能。其中小車驅(qū)動(dòng)由L

2、298N驅(qū)動(dòng)電路完成,速度由單片機(jī)輸出的PWM控制。關(guān)鍵詞:循跡避障小車;STC89C52單片機(jī);紅外對(duì)管;pwm速-25 -1設(shè)計(jì)目標(biāo)和任務(wù)制定隨著社會(huì)水平提高與電子商務(wù)的快速發(fā)展,大型化集成化商品多元化的倉儲(chǔ)集散中心應(yīng)運(yùn)而生。這些倉庫通常面積巨大,(有的可達(dá)上萬平方米,)并且物品種類繁多,倉儲(chǔ)流量大,可是當(dāng)前大多數(shù)倉儲(chǔ)中心依舊采用傳統(tǒng)的人工管理,工人管理工作繁瑣且工作效率低下,綜上所述,現(xiàn)代倉儲(chǔ)業(yè)正面臨著發(fā)展瓶頸,制約著倉儲(chǔ)行業(yè)的進(jìn)一步發(fā)展。如果有一種智能倉儲(chǔ),使得我們能夠在實(shí)際的物流活動(dòng)中提高倉儲(chǔ)的效率,減少倉儲(chǔ)的人力資源成本和倉庫的直接成本,解決絕對(duì)人力不能滿足大型物流中心運(yùn)作的情況,

3、那么我們的倉儲(chǔ)行業(yè)又能向前邁進(jìn)一個(gè)新階。因此,基于上訴當(dāng)前倉管配貨工作的任務(wù)繁忙,減小倉管員工作量,提高倉儲(chǔ)管理工作效率,我們決定制作一智能避障循跡小車,用于倉庫不同貨架間貨物的自動(dòng)配送。我們的小車能實(shí)現(xiàn)循跡移動(dòng),在不同工作點(diǎn)之間穿梭。借助我們的小車,倉管員只需輕松輸入目標(biāo)代碼,就可以實(shí)現(xiàn)將貨物自動(dòng)送達(dá)目標(biāo)貨架或者將不同貨架的貨物收集到配送點(diǎn)。同時(shí)為了避免小車在行進(jìn)過程中撞擊到人員、貨物或者貨架等障礙物,我們的小車具有自動(dòng)避障和自動(dòng)停車功能。2設(shè)計(jì)方案的擬定2.1 整體系統(tǒng)設(shè)計(jì)該整個(gè)系統(tǒng)由控制模塊、光電傳感器檢測(cè)模塊、電源模塊、電機(jī)及驅(qū)動(dòng)模塊等子模塊組成。如框圖所示:2.2 控制模塊設(shè)計(jì)針對(duì)本

4、設(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ù)這些分析,我選定了STC89C52I片機(jī)作為本設(shè)計(jì)的主控裝置,52單片機(jī)具有功能強(qiáng)大的位操作指令,I/O口均可按位尋址,并具有如下性能優(yōu)點(diǎn):(1)微處理器該單片機(jī)中有一個(gè)8位的微處理器,與通用的微處理器基本相同,同樣包括了運(yùn)算器和控制器兩大部分,只是增加了面向控制的處理功能,不僅可處理數(shù)據(jù),還可以進(jìn)行位變量的處理。(2)數(shù)據(jù)存儲(chǔ)器片內(nèi)為128個(gè)字節(jié),片外最多可外擴(kuò)至64k字節(jié),用來存儲(chǔ)程序在運(yùn)行期間的工作變量、運(yùn)算的中間結(jié)果、數(shù)據(jù)暫存和

5、緩沖、標(biāo)志位等,所以稱為數(shù)據(jù)存儲(chǔ)器。(3)程序存儲(chǔ)器由于受集成度限制,片內(nèi)只讀存儲(chǔ)器一般容量較小,如果片內(nèi)的只讀存儲(chǔ)器的容量不夠,則需用擴(kuò)展片外的只讀存儲(chǔ)器,片外最多可外擴(kuò)至64k字節(jié)。(4)中斷系統(tǒng)具有5個(gè)中斷源,2級(jí)中斷優(yōu)先權(quán)。(5)定時(shí)器/計(jì)數(shù)器片內(nèi)有2個(gè)16位的定時(shí)器/計(jì)數(shù)器,具有四種工作方式。(6)串行口1個(gè)全雙工的串行口,具有四種工作方式??捎脕磉M(jìn)行串行通訊,擴(kuò)展并行I/O口,甚至與多個(gè)單片機(jī)相連構(gòu)成多機(jī)系統(tǒng),從而使單片機(jī)的功能更強(qiáng)且應(yīng)用更廣。(7)P0口、P1口、P2口、P3口為4個(gè)并行8位I/O口。(8)特殊功能寄存器共有21個(gè),用于對(duì)片內(nèi)的個(gè)功能的部件進(jìn)行管理、控制、監(jiān)視。實(shí)

6、際上是一些控制寄存器和狀態(tài)寄存器,是一個(gè)具有特殊功能的RAMK。由上可見,STC89C52單片機(jī)的硬件結(jié)構(gòu)具有功能部件種類全,功能強(qiáng)等特點(diǎn)。特別值得一提的是該單片機(jī)CPU中的位處理器,它實(shí)際上是一個(gè)完整的1位微計(jì)算機(jī),這個(gè)一位微計(jì)算機(jī)有自己的CPU位寄存器、I/O口和指令集。1位機(jī)在開關(guān)決策、邏輯電路仿真、過程控制方面非常有效;而8位機(jī)在數(shù)據(jù)采集,運(yùn)算處理方面有明顯的長處。對(duì)于本設(shè)計(jì)該單片機(jī)綽綽有余,更可貴的是52單片機(jī)價(jià)格非常低廉。81Pl0JT2PO.OJADOPl1JT2EXPD.1;AD1Pl2P0.2/AD2Pl3P0.S/AD3Pl4P0.4?AD4Pl5P0&AD5Pl6

7、P0.67AD6Pl7P0.77AD7P30/RXDP2.7/A15P3IfTXDP2.6/A14P32/INTOP2.5/A13P33/INT1P24/A12P34fT0P2.3/A11P3VT1P2.2/A10P36tWRP2.1/A9P3.7/WP20/A8PSENEARSTALEVCCXTAL1GMDXTAL2392333743611535163473333:I102?31127123513251424152316221721293L934052011BSTC39C52STC89C52引腳圖2.3 光電傳感檢測(cè)模塊循跡方案設(shè)計(jì):方案一:采用攝像頭循跡法:利用攝像頭對(duì)賽道提取信息,分有數(shù)

8、字式和模擬式。方案二:紅外對(duì)管循跡法:利用黑白色對(duì)紅外線的吸收作用不同,其由發(fā)射管和接收管配對(duì)組成,發(fā)射管發(fā)射出紅外線,當(dāng)發(fā)射到黑色軌道時(shí),被黑色軌道所吸收,當(dāng)發(fā)射到白色跑道外時(shí),會(huì)發(fā)射回來,接收管接收到光線信號(hào),產(chǎn)生一電壓信號(hào)給單片機(jī),從而實(shí)現(xiàn)對(duì)軌跡信息的讀取。方案三:激光管循跡法:其循跡原理與紅外對(duì)管相同,不同的是其測(cè)距比較遠(yuǎn)。綜上所述,又考慮到成本的原因,本次設(shè)計(jì)采用紅外對(duì)管循跡法。采用脈沖調(diào)制的反射式紅外發(fā)射接收器。由于采用帶有交流分量的調(diào)制信號(hào),則可大幅度減少外界的干擾;此外紅外發(fā)射接收管的工作電流取決于平均電流,如果采用占空比小的調(diào)制信號(hào),在平均電流不變的情況下,瞬時(shí)電流很大(50

9、100mA)(ST-188允許的最大輸入電流為50mA,則大大提高了信噪比。避障方案設(shè)計(jì):方案一:紅外線避障。方案二:超聲波避障。本次設(shè)計(jì)本打算利用兩種方案混合使用,但是由于后期制作過程中,超聲波模塊損壞,只能使用紅外線避障。其也是由發(fā)射管和接收管組成,工作原理與循跡的相同,發(fā)射管發(fā)出紅外線,當(dāng)遇到障礙物時(shí)就會(huì)反射回來,接收管接收到反射的信號(hào)就會(huì)產(chǎn)生一電壓信號(hào)給單片機(jī),從而實(shí)現(xiàn)對(duì)障礙物的檢測(cè)?!蓖怍⑺╇娮鐻ED狀態(tài)指示燈原裝紅外發(fā)射汽44mm16mmM3螺絲孔紅外線傳感器模塊實(shí)物圖2.4 電源模塊電源模塊,用9V的鋅電源給前、后輪電機(jī)供電,然后使用7805穩(wěn)壓管來把高電壓穩(wěn)成5V分別給單片機(jī)

10、和電機(jī)驅(qū)動(dòng)芯片供電。7805電源模塊2.5 電機(jī)及電機(jī)驅(qū)動(dòng)模塊電機(jī)方案的選擇:方案一:采用直流電機(jī),優(yōu)點(diǎn)在于硬件電路設(shè)計(jì)簡單。當(dāng)外加額定直流電壓時(shí),轉(zhuǎn)速幾乎相等,調(diào)速性能較好,且性價(jià)比高。對(duì)于小車的行駛,能夠很好的控制。方案二:采用步進(jìn)電機(jī),步進(jìn)電機(jī)可以實(shí)現(xiàn)精確的轉(zhuǎn)角輸出,只要施加合適的脈沖序列,電機(jī)可以按照人們的預(yù)定的速度或方向進(jìn)行連續(xù)的轉(zhuǎn)動(dòng),便于控速,但是軟件程序的編寫較直流電機(jī)稍顯復(fù)雜。表2.1電機(jī)性能對(duì)比表對(duì)比項(xiàng)直流電機(jī)步進(jìn)電機(jī)調(diào)速性能較好較差位置控制精度較差好控制難易程度簡單較難價(jià)格低中綜合考慮,本智能車決定采用直流電機(jī)作為只能車的動(dòng)力電機(jī)??蛇x用減速比為1:電機(jī)采用直流減速電機(jī),直

11、流減速電機(jī)轉(zhuǎn)動(dòng)力矩大,體積小,重量輕,裝配簡單,使用方便。由于其內(nèi)部由高速電動(dòng)機(jī)提供原始動(dòng)力,帶動(dòng)變速(減速)齒輪組,可以產(chǎn)生較大扭力。74的直流電機(jī),減速后電機(jī)的轉(zhuǎn)速為100r/min。若車輪直徑為6cm,則小車的最大速度可以達(dá)到0.314m/s能夠較好的滿足系統(tǒng)的要求。下圖為電機(jī)的實(shí)物圖直流減速電機(jī)電機(jī)驅(qū)動(dòng)方案的選擇:方案一:采用繼電器對(duì)電動(dòng)機(jī)的開或關(guān)進(jìn)行控制,通過開關(guān)的切換對(duì)小車的速度進(jìn)行調(diào)整.此方案的優(yōu)點(diǎn)是電路較為簡單,缺點(diǎn)是繼電器的響應(yīng)時(shí)間慢,易損壞,壽命較短,可靠性不高。萬案一:采用電阻網(wǎng)絡(luò)或數(shù)字電位器調(diào)節(jié)電動(dòng)機(jī)的分壓,從而達(dá)到分壓的目的。但電阻網(wǎng)絡(luò)只能實(shí)現(xiàn)有級(jí)調(diào)速,而數(shù)字電阻的元

12、器件價(jià)格比較昂貴。更主要的問題在于一般的電動(dòng)機(jī)電阻很小,但電流很大,分壓不僅回降低效率,而且實(shí)現(xiàn)很困難。方案二:采用功率三極管作為功率放大器的輸出控制直流電機(jī)。線性型驅(qū)動(dòng)的電路結(jié)構(gòu)和原理簡單,加速能力強(qiáng),采用由達(dá)林頓管組成的H型橋式電路(如圖2.1)。用單片機(jī)控制達(dá)林頓管使之工作在占空比可調(diào)的開關(guān)狀態(tài)下,精確調(diào)整電動(dòng)機(jī)轉(zhuǎn)速。這種電路由于工作在管子的飽和截止模式下,效率非常高,H型橋式電路保證了簡單的實(shí)現(xiàn)轉(zhuǎn)速和方向的控制,電子管的開關(guān)速度很快,穩(wěn)定性也極強(qiáng),是一種廣泛采用的PWM調(diào)速技術(shù)。現(xiàn)市面上有很多此種芯片,我選用了L293專用驅(qū)動(dòng)器。所用芯片L293屬于H橋集成電路,其輸出電流為1000m

13、A最高電流2A,最高工作電壓36V,可以驅(qū)動(dòng)感性負(fù)載,特別是其輸入端可以與單片機(jī)直接相聯(lián),從而很方便地受單片機(jī)控制。當(dāng)驅(qū)動(dòng)小型直流電機(jī)時(shí),可以直接控制兩路電機(jī),并可以實(shí)現(xiàn)電機(jī)正轉(zhuǎn)與反轉(zhuǎn),實(shí)現(xiàn)此功能只需改變輸入端的邏輯電平。本模塊具有體積小,控制方便的特點(diǎn)。采用此模塊定會(huì)使您的電機(jī)控制自如,應(yīng)對(duì)小車題目輕松自如。L293D電機(jī)驅(qū)動(dòng)模塊電機(jī)調(diào)速系統(tǒng)的設(shè)計(jì):方案一:串電阻調(diào)速系統(tǒng)。方案二:靜止可控整流器。簡稱V-M系統(tǒng)。方案三:脈寬調(diào)速系統(tǒng)。旋轉(zhuǎn)變流系統(tǒng)由交流發(fā)電機(jī)拖動(dòng)直流電動(dòng)機(jī)實(shí)現(xiàn)變流,由發(fā)電機(jī)給需要調(diào)速的直流電動(dòng)機(jī)供電,調(diào)節(jié)發(fā)電機(jī)的勵(lì)磁電流即可改變其輸出電壓,從而調(diào)節(jié)電動(dòng)機(jī)的轉(zhuǎn)速。改變勵(lì)磁電流的

14、方向則輸出電壓的極性和電動(dòng)機(jī)的轉(zhuǎn)向都隨著改變,所以G-M系統(tǒng)的可逆運(yùn)行是很容易實(shí)現(xiàn)的。該系統(tǒng)需要旋轉(zhuǎn)變流機(jī)組,至少包含兩臺(tái)與調(diào)速電動(dòng)機(jī)容量相當(dāng)?shù)男D(zhuǎn)電機(jī),還要一臺(tái)勵(lì)磁發(fā)電機(jī),設(shè)備多、體積大、費(fèi)用高、效率低、維護(hù)不方便等缺點(diǎn)。且技術(shù)落后,因此擱置不用。V-M系統(tǒng)是當(dāng)今直流調(diào)速系統(tǒng)的主要形式。它可以是單相、三相或更多相數(shù),半波、全波、半控、全控等類型,可實(shí)現(xiàn)平滑調(diào)速。V-M系統(tǒng)的缺點(diǎn)是晶閘管的單向?qū)щ娦?,它不允許電流反向,給系統(tǒng)的可逆運(yùn)行造成困難。它的另一個(gè)缺點(diǎn)是運(yùn)行條件要求高,維護(hù)運(yùn)行麻煩。最后,當(dāng)系統(tǒng)處于低速運(yùn)行時(shí),系統(tǒng)的功率因數(shù)很低,并產(chǎn)生較大的諧波電流危害附近的用電設(shè)備。PWM調(diào)速系統(tǒng):其

15、實(shí)現(xiàn)方式有兩種,一是采用晶閘管的直流斬波器基本原理,將晶閘管處在開關(guān)狀態(tài),當(dāng)晶閘管被觸發(fā)導(dǎo)通時(shí),電源電壓加到電機(jī)上,當(dāng)晶閘管關(guān)斷時(shí),直流電源與電機(jī)斷開,電動(dòng)機(jī)經(jīng)二極管續(xù)流,兩端電壓接近于零,脈沖周期不變,只改變晶閘管的導(dǎo)通時(shí)間,即通過改變脈沖寬度來進(jìn)行直流調(diào)速;二是利用軟件方式實(shí)現(xiàn),采用兩個(gè)定時(shí)器,其中一個(gè)用來控制脈沖頻率,另一個(gè)控制占空比,這種實(shí)現(xiàn)方式快捷且有效。與V-M系統(tǒng)相比,PW蜩速系統(tǒng)有下列優(yōu)點(diǎn):(1)由于PW硼速系統(tǒng)的開關(guān)頻率較高,僅靠電樞電感的濾波作用就可以獲得脈動(dòng)很小的直流電流,電樞電流容易連續(xù),系統(tǒng)的低速運(yùn)行平穩(wěn),調(diào)速范圍較寬,可達(dá)1:10000左右。由于電流波形比V-M系統(tǒng)

16、好,在相同的平均電流下,電動(dòng)機(jī)的損耗和發(fā)熱都比較小。(2)同樣由于開關(guān)頻率高,若與快速響應(yīng)的電機(jī)相配合,系統(tǒng)可以獲得很寬的頻帶,因此快速響應(yīng)性能好,動(dòng)態(tài)抗擾能力強(qiáng)。(3)由于電力電子器件只工作在開關(guān)狀態(tài),主電路損耗較小,裝置效率較高。根據(jù)以上綜合比較,以及本設(shè)計(jì)中受控電機(jī)的容量和直流電機(jī)調(diào)速的發(fā)展方向,本設(shè)計(jì)采用了采用了程序的方法實(shí)現(xiàn)PWM(沖寬度調(diào)試。3硬件系統(tǒng)的設(shè)計(jì)3.1 總體設(shè)計(jì)智能小車采用前輪驅(qū)動(dòng),前輪左右兩邊各用一個(gè)電機(jī)驅(qū)動(dòng),調(diào)制前面兩個(gè)輪子的轉(zhuǎn)速起停從而達(dá)到控制轉(zhuǎn)向的目的,后輪是萬象輪,起支撐的作用。將循跡光電對(duì)管分別裝在車體下的左右。當(dāng)車身下左邊的傳感器檢測(cè)到黑線時(shí),主控芯片控制

17、左輪電機(jī)停止,車向左修正,當(dāng)車身下右邊傳感器檢測(cè)到黑線時(shí),主控芯片控制右輪電機(jī)停止,車向右修正。避障的原理和循線一樣,在車身右邊裝一個(gè)光電對(duì)管,當(dāng)其檢測(cè)到障礙物時(shí),主控芯片給出信號(hào)報(bào)警并控制車子倒退,轉(zhuǎn)向,從而避開障礙物。表3.1元件清單元件數(shù)量元件數(shù)量元件數(shù)量直流電機(jī)2只電阻八集成電路芯片單片機(jī)1塊二極管八電容紅外對(duì)管3只蜂鳴器1只電位器12M晶振P1只杜邦線玩具小車1個(gè)排針3.2 光電傳感檢測(cè)模塊采用四路紅外對(duì)管傳感器,其中兩路置于小車中間,用于循跡檢測(cè),另外兩路用于避障信號(hào)檢測(cè),置于小車兩側(cè)。其工作原理如下:小車循跡原理是小車在畫有黑線的白紙“路面”上行駛,由于黑線和白紙對(duì)光線的反射系數(shù)

18、不同,可根據(jù)接收到的反射光的強(qiáng)弱來判斷“道路”一黑線。筆者在該模塊中利用了簡單、應(yīng)用也比較普遍的檢測(cè)方法一一紅外探測(cè)法。紅外探測(cè)法,即利用紅外線在不同顏色的物理表面具有不同的反射性質(zhì)的特點(diǎn)。在小車行駛過程中不斷地向地面發(fā)射紅外光,當(dāng)紅外光遇到白色地面時(shí)發(fā)生漫發(fā)射,反射光被裝在小車上的接收管接收;如果遇到黑線則紅外光被吸收,則小車上的接收管接收不到信號(hào),再通過LM324作比較器來采集高低電平,從而實(shí)現(xiàn)信號(hào)的檢測(cè)。避障亦是此原理。電路圖如圖,我們將其接于單片機(jī)P3 口。4路傳感器模塊r.Ln二 EL 目我3.3 電源模塊電路設(shè)計(jì)采用7805穩(wěn)壓模塊為系統(tǒng)提供5V的穩(wěn)定電壓,并設(shè)計(jì)有電源指示二極管,

19、用以提示電源是否供電正常。電源指示vcc|(iihGND電裨開關(guān) KlU7VCCVLCVCCvcc7- 4 6 8Hck-r 4X2 wGNDJt ICjND1470uF220uFGNU Tad tiSDHJ17GND電源供電系統(tǒng)3.4 電機(jī)驅(qū)動(dòng)模塊設(shè)計(jì)電機(jī)驅(qū)動(dòng)模塊采用專用驅(qū)動(dòng)器L293D,所用芯片L293屬于H橋集成電路,其輸出電流為1000mA最高電流2A,最高工作電壓36V,可以驅(qū)動(dòng)感性負(fù)載,特別是其輸入端可以與單片機(jī)直接相聯(lián),從而很方便地受單片機(jī)控制。其工作電路如下圖所示,其中EN1、EN2為左右電機(jī)使能端,IN1、IN2、IN3、IN4為電機(jī)正反轉(zhuǎn)引腳端,它們分別與P1口各引腳相連。

20、Oil3GND«|kOT21t_IN27JV1-QMIN1IN4OLTTIOUT4GNDGNPGNDGNDDLT2OUT31N2IN3VCC2EN2U1L293DVCCiT卞14OT411*|bGNDOT310LN23.5主控電路電機(jī)驅(qū)動(dòng)模塊主控電路復(fù)位電路的設(shè)計(jì),采用上拉電復(fù)位,設(shè)計(jì)有按鈕,按下即可實(shí)現(xiàn)復(fù)位。ccGND51單片機(jī)紅M復(fù)位電路時(shí)鐘電路的設(shè)計(jì),采用DS1302時(shí)鐘模塊,接于單片機(jī)P2.0 和 P2.1 口。rCC2P2,17CLKVCC1OSC1P2.06I/ORSTOSC2VSS8;T 32.76KKBl I1302.4 一DS1302時(shí)鐘模塊GND蜂鳴器電路,接于單

21、片機(jī)P2.3口VCCT一FM接到P2.3IOP1,對(duì)應(yīng)該P(yáng)CB網(wǎng)絡(luò)編號(hào)FM報(bào)警器模塊4軟件系統(tǒng)的設(shè)計(jì)4.1主程序的設(shè)計(jì)初始化SP、標(biāo)志位、內(nèi)部RAMA蜂鳴器嘀的一聲啟動(dòng)定時(shí)器T0定時(shí)器初始化初始化電機(jī)顯示初始化i=0i+顯示子程序否判斷左側(cè)是、否有障贈(zèng),停車、報(bào)警、降速、后退判斷右側(cè)是否有礙物是W停車、報(bào)警降速、后退/是否有軌j循跡子程序停車主程序流程圖如主程序流程框圖所示,主程序主包括了系統(tǒng)的初始化,小車的啟動(dòng),和循跡避障動(dòng)作實(shí)現(xiàn)程序。這里需要說明一點(diǎn):之所以將避障程序放在主程序內(nèi)而將循跡作為一子程序這樣設(shè)計(jì),一是為了方便實(shí)現(xiàn)小車在自動(dòng)循跡的基礎(chǔ)上實(shí)現(xiàn)自動(dòng)避障并能夠在避障后自動(dòng)找回軌跡繼續(xù)循

22、跡移動(dòng);二是實(shí)現(xiàn)程序模塊化,以便以后再開發(fā)。具體算法思路是小車啟動(dòng)后,首先判斷軌跡前方有無障礙物。無障礙物時(shí)直接執(zhí)行循跡移動(dòng)。有障礙物時(shí),判斷是那一側(cè)有障礙物,然后根據(jù)傳感器采集的障礙物信息作出指令,比如右側(cè)有障礙物時(shí),先執(zhí)行停止、報(bào)警、降速、后退等指令,其次先左轉(zhuǎn)再直行左轉(zhuǎn)、直行直至繞開障礙物,然后右轉(zhuǎn)、直行再右轉(zhuǎn)、直行直至重新回到軌跡上,循跡移動(dòng)。左側(cè)或者前方有障礙物時(shí)程序算法類似于前者,不同在于執(zhí)行的動(dòng)作順序不同。在程序的最后又補(bǔ)充添加了一紅外遙控控制,以方便人為地控制隨時(shí)停車。詳細(xì)程序設(shè)計(jì)如下:#include<AT89X52.H>#defineucharunsignedc

23、har#defineuintunsignedintsbitIN1=P1A2;定義電機(jī)驅(qū)動(dòng)控制引腳sbitIN2=P1A3;sbitIN3=P1A6;sbitIN4=P1A7;sbitEN1=P1A4;sbitEN2=P1A5;sbitBUZZ=P2A3;sbitDU=P2A6;sbitWE=P2A7;#defineleft_xP3_4#defineright_xP3_3#defineleft_bP3_6定義蜂鳴器接線定義顯示控制引腳傳感器引腳# defineright_bP3_5# defineleft_moto_pwmP1_4# defineright_moto_pwmunsignedint

24、pwmsd;unsignedintcount;unsignedinti;unsignedcharcodetable尸0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71;voiddelay_nms(unsignedintn)延日nnms/PWM信號(hào)端P1_5定義pwm轉(zhuǎn)速變量0,123,4,5,6,7,8,9,A,B,C,D,E,Funsignedinti,j;for(i=0;i<n;i+)for(j=0;j<125;j+)voidmingdi(void)/蜂鳴器嘀的一聲響B(tài)U

25、ZZ=0;delay_nms(50);BUZZ=1;voiddisp(unsignedintj)voidqianjin(void)前進(jìn)voidturnleft(void)左轉(zhuǎn)voidturnright(void)右轉(zhuǎn)voidhoutui(void)后退voidstop(void)停止voidtimer0_Int()interrupt1定時(shí)器中斷voidTimer1_Int()interrupt2voidxunji(void)voidmain(void)P0=0X00;關(guān)數(shù)碼管關(guān)電機(jī)P1=0XF0;B:for(i=0;i<50;i+)delay_nms(1);if(P3_7!=1)goto

26、B;判斷啟動(dòng)開關(guān)是否按卜mingdi();啟動(dòng)小車,鳴笛pwmsd=6;TMOD=0X11;設(shè)置初速度TH0=0Xfc;TL0=0X18;TR0=1;ET0=1;/1ms定時(shí)EA=1;開總中斷TH1=0xff;/0.5ms定時(shí)TL1=0xce;ET1=0;TR1=0;while(1)無限循環(huán)disp(pwmsd);調(diào)顯示if(left_b=1)判斷左面是否有障礙物if(right_b=1)判斷右面是否有障礙物xunji();兩面都沒有障礙物,繼續(xù)循跡移動(dòng)elsestop();右面有障礙物,先停車delay_nms(1000);mingdi();再報(bào)警delay_nms(50);mingdi()

27、;houtui();其次后退delay_nms(500);pwmsd=3;降速do左轉(zhuǎn)、直行、左轉(zhuǎn)、直行一直到?jīng)]有障礙物;turnleft();delay_nms(100);qianjin();delay_nms(500);while(left_b&&right_b=1);do繞開障礙物后,右轉(zhuǎn)、直行、右轉(zhuǎn)、直行直到找到軌道;turnright();delay_nms(100);qianjin();delay_nms(500);while(lef_x=0|right_x=0);xunji();繼續(xù)循跡移動(dòng);else左側(cè)有障礙物;stop();先停車,delay_nms(1000

28、);mingdi();再報(bào)警;delay_nms(50);mingdi();houtui();其次后退;delay_nms(500);pwmsd=3;降速,do右轉(zhuǎn)、直行一直到繞開障礙物,turnright();delay_nms(100);qianjin();delay_nms(500);while(left_b|right_b=1);do繞開障礙物后,左轉(zhuǎn)、直行一直到找到軌跡;turnleft();delay_nms(100);qianjin();delay_nms(500); while(left_x|right_x=0);xunji();繼續(xù)循跡移動(dòng);4.2循跡子程序的設(shè)計(jì)循跡子程序流

29、程圖:開始.)判斷傳感器狀態(tài)L:1; R: 00; R: 1J右轉(zhuǎn)直行循跡子程序流程圖根據(jù)前一節(jié)介紹的紅外對(duì)管循跡原理,設(shè)計(jì)了如上圖所示的循跡算法,首先判斷兩路循跡傳感器的狀態(tài),根據(jù)傳感器狀態(tài)做出相應(yīng)的指令,驅(qū)動(dòng)電機(jī)轉(zhuǎn)動(dòng),以實(shí)現(xiàn)小車循跡移動(dòng)?;驹O(shè)計(jì)如下:當(dāng)左右循跡傳感器狀態(tài)為1、1時(shí),即未偏出軌跡,直行移動(dòng);當(dāng)傳感器狀態(tài)為兩側(cè)均偏出,但是為了保障主程序能夠自我找回軌跡,而不對(duì)其運(yùn)行造成指令干擾,這里就將這一狀態(tài)給屏蔽,不將其視為控制狀態(tài)信息。詳細(xì)程序設(shè)計(jì)如下:0、1時(shí),左側(cè)偏出,微右轉(zhuǎn);當(dāng)傳感器狀態(tài)為1、0時(shí),右側(cè)偏出,微左轉(zhuǎn);當(dāng)傳感器狀態(tài)為0、0時(shí),voidxunji(void)if(le

30、ft_x=1&&right_x=1)qianjin();調(diào)用前進(jìn)函數(shù)delay_nms(20);if(left_x=0&&right_x=1)左邊檢測(cè)到黑線turnright();調(diào)用小車右轉(zhuǎn)函數(shù)delay_nms(20);if(right_x=0&&left_x=1)右邊檢測(cè)到黑線turnleft();調(diào)用小車左轉(zhuǎn)函數(shù)delay_nms(20);4.3 電機(jī)驅(qū)動(dòng)子程序的設(shè)計(jì)電機(jī)動(dòng)作實(shí)現(xiàn),前進(jìn):左電機(jī)往前轉(zhuǎn),右電機(jī)往前轉(zhuǎn);左轉(zhuǎn):左電機(jī)往后轉(zhuǎn),右電機(jī)往前轉(zhuǎn);右轉(zhuǎn):左電機(jī)往前轉(zhuǎn),右電機(jī)往后轉(zhuǎn);后退:左右電機(jī)都往后轉(zhuǎn);停止:電機(jī)使能端為零。具體程序設(shè)計(jì)

31、如下:voidqianjin(void)前進(jìn)IN1=1;IN2=0;IN3=1;IN4=0;voidturnleft(void)左轉(zhuǎn)IN1=0;IN2=1;IN3=1;IN4=0;voidturnright(void)右轉(zhuǎn)IN1=1;IN2=0;IN3=0;IN4=1;voidhoutui(void)后退IN1=0;IN2=1;IN3=0;IN4=1;voidstop(void)/停止EN1=0;EN2=0;-# -4.4 中斷子程序的設(shè)計(jì)用于控制占空比。具體思路是設(shè)有兩個(gè)定時(shí)器中斷T0、T1,用來實(shí)現(xiàn)電機(jī)的PWM調(diào)速,其中定時(shí)器T0用于控制頻率,定時(shí)器T1中斷讓這個(gè)IO 口輸出低電平,這樣改

32、變定時(shí)器T0中斷讓一個(gè)IO口輸出高電平,并在這個(gè)T0中斷中啟動(dòng)定時(shí)器T1,T1T0的初值就可以改變頻率,改變定時(shí)器T1的初值就可以改變占空比。詳見如下流程圖:清零countT0中斷流程圖T1中斷流程圖-29 -根據(jù)上述流程圖設(shè)計(jì)程序如下voidtimer0_Int()interrupt1TH0=0xfc ;TL0=0x18;count=0 ;ET1=1;TR1= 1;left_moto_pwm=1;/定時(shí)1ms清零脈沖計(jì)數(shù)啟動(dòng)定時(shí)器T1電機(jī)使能端置1right_moto_pwm=1;voidTimer1_Int()interrupt2TH1=0xff;定時(shí)0.05msTL1=0xce;coun

33、t+;if(count>=pwmsd)與設(shè)定轉(zhuǎn)速(占空比)比較left_moto_pwm=0;電機(jī)使能端清0right_moto_pwm=0;4.5顯示子程序的設(shè)計(jì)這里只使用一個(gè)數(shù)碼管,用以顯示轉(zhuǎn)速,子程序設(shè)計(jì)如下:unsignedcharcodetable尸0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71;/0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,Fvoiddisp(unsignedintj)DU=1;:P0=tablej;DU=0;WE=1;P0=0xff

34、;WE=0;5制作安裝與調(diào)試5.1小車的制作與安裝采用DXP2004繪制原理圖與PCB板,布線的過程中必須注意焊盤的大小與銅線的寬度。我選取的焊盤內(nèi)徑為0.8mm,外徑2mm;銅線寬1mm。從做板的情況來看基本達(dá)到制作得要求。采用螺絲將循跡板安裝在車頭,主板與電機(jī)驅(qū)動(dòng)安裝在車尾。5.2小車調(diào)試通過改變循跡板滑動(dòng)變阻器器的大小來調(diào)試紅外對(duì)管的靈敏度,通過改變延時(shí)程序來改變速度的大小。下表為小車運(yùn)行的情況:表5.1小車調(diào)試情況小車運(yùn)行次數(shù)成功循跡次數(shù)成功避障次數(shù)1112213324425546總結(jié)整個(gè)系統(tǒng)的設(shè)計(jì)以單片機(jī)為核心,利用了多種傳感器,將軟件和硬件相結(jié)合。本系統(tǒng)能實(shí)現(xiàn)如下功臺(tái)匕目匕:(1)自動(dòng)沿預(yù)設(shè)軌道行駛小車在行駛過程中,能夠自動(dòng)檢測(cè)預(yù)先設(shè)好的軌道,實(shí)現(xiàn)直道和弧形軌

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(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ǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論