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

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

1、上海大學2016 2017 學年 秋季 學期研究生課程考試課程名稱: 微機接口技術與數(shù)字控制 課程編號: 09Z077005 論文題目: 基于STC89C52單片機自動避障循跡小車控制系統(tǒng)的設計 研究生姓名: 肖青峰、徐鵬、付高峰 學 號: 16721678 論文評語:成 績: 任課教師: 沈林勇 評閱日期: 基于STC89C52單片機自動避障循跡小車控制系統(tǒng)設計肖青峰、徐鵬、付高峰上海大學 機電工程與自動化學院,上海200072摘要:本設計是基于STC89C52單片機的自動循跡避障小車的控制系統(tǒng)設計。利用紅外對管檢測黑線與障礙物,并以STC89C52單片機為控制芯片控制電動小汽車的速度及轉(zhuǎn)向

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

3、成本,解決絕對人力不能滿足大型物流中心運作的情況,那么我們的倉儲行業(yè)又能向前邁進一個新階。 因此,基于上訴當前倉管配貨工作的任務繁忙,減小倉管員工作量,提高倉儲管理工作效率,我們決定制作一智能避障循跡小車,用于倉庫不同貨架間貨物的自動配送。我們的小車能實現(xiàn)循跡移動,在不同工作點之間穿梭。借助我們的小車,倉管員只需輕松輸入目標代碼,就可以實現(xiàn)將貨物自動送達目標貨架或者將不同貨架的貨物收集到配送點。同時為了避免小車在行進過程中撞擊到人員、貨物或者貨架等障礙物,我們的小車具有自動避障和自動停車功能。2 設計方案的擬定2.1 整體系統(tǒng)設計 該整個系統(tǒng)由控制模塊、光電傳感器檢測模塊、電源模塊、

4、電機及驅(qū)動模塊等子模塊組成。如框圖所示:復位電路電機驅(qū)動模塊電機控制模塊STC89C52單片機循跡檢測模塊兩個光電傳感器障礙物檢測模塊兩個光電傳感器電源模塊7805穩(wěn)壓管時鐘電路2.2 控制模塊設計針對本設計特點多開關量輸入的復雜程序控制系統(tǒng),需要擅長處理多開關量的標準單片機,而不能用精簡I/O口和程序存儲器的小體積單片機,D/A、A/D功能也不必選用。根據(jù)這些分析,我選定了STC89C52單片機作為本設計的主控裝置,52單片機具有功能強大的位操作指令,I/O口均可按位尋址,并具有如下性能優(yōu)點:(1)微處理器 該單片機中有一個8位的微處理器,與通用的微處理器基本相同,同樣包括了運算器和控制器兩

5、大部分,只是增加了面向控制的處理功能,不僅可處理數(shù)據(jù),還可以進行位變量的處理。(2)數(shù)據(jù)存儲器 片內(nèi)為128個字節(jié),片外最多可外擴至64k字節(jié),用來存儲程序在運行期間的工作變量、運算的中間結(jié)果、數(shù)據(jù)暫存和緩沖、標志位等,所以稱為數(shù)據(jù)存儲器。(3)程序存儲器 由于受集成度限制,片內(nèi)只讀存儲器一般容量較小,如果片內(nèi)的只讀存儲器的容量不夠,則需用擴展片外的只讀存儲器,片外最多可外擴至64k字節(jié)。(4)中斷系統(tǒng) 具有5個中斷源,2級中斷優(yōu)先權。(5)定時器/計數(shù)器 片內(nèi)有2個16位的定時器/計數(shù)器,具有四種工作方式。(6)串行口 1個全雙工的串行口,具有四種工作方式。可用來進行串行通訊,擴展并行I/O

6、口,甚至與多個單片機相連構成多機系統(tǒng),從而使單片機的功能更強且應用更廣。(7) P0口、P1口、P2口、P3口 為4個并行8位I/O口。 (8) 特殊功能寄存器 共有21個,用于對片內(nèi)的個功能的部件進行管理、控制、監(jiān)視。實際上是一些控制寄存器和狀態(tài)寄存器,是一個具有特殊功能的RAM區(qū)。 由上可見,STC89C52單片機的硬件結(jié)構具有功能部件種類全,功能強等特點。特別值得一提的是該單片機CPU中的位處理器,它實際上是一個完整的1位微計算機,這個一位微計算機有自己的CPU、位寄存器、I/O口和指令集。1位機在開關決策、邏輯電路仿真、過程控制方面非常有效;而8位機在數(shù)據(jù)采集,運算處理方面有明顯的長處

7、。對于本設計該單片機綽綽有余,更可貴的是52單片機價格非常低廉。 STC89C52引腳圖2.3 光電傳感檢測模塊循跡方案設計:方案一:采用攝像頭循跡法:利用攝像頭對賽道提取信息,分有數(shù)字式和模擬式。方案二:紅外對管循跡法:利用黑白色對紅外線的吸收作用不同,其由發(fā)射管和接收管配對組成,發(fā)射管發(fā)射出紅外線,當發(fā)射到黑色軌道時,被黑色軌道所吸收,當發(fā)射到白色跑道外時,會發(fā)射回來,接收管接收到光線信號,產(chǎn)生一電壓信號給單片機,從而實現(xiàn)對軌跡信息的讀取。方案三:激光管循跡法:其循跡原理與紅外對管相同,不同的是其測距比較遠。 綜上所述,又考慮到成本的原因,本次設計采用紅外對管循跡法。采用脈沖調(diào)制的反射式紅

8、外發(fā)射接收器。由于采用帶有交流分量的調(diào)制信號,則可大幅度減少外界的干擾;此外紅外發(fā)射接收管的工作電流取決于平均電流,如果采用占空比小的調(diào)制信號,在平均電流不變的情況下,瞬時電流很大(50100mA)(ST-188允許的最大輸入電流為50mA),則大大提高了信噪比。避障方案設計:方案一:紅外線避障。方案二:超聲波避障。 本次設計本打算利用兩種方案混合使用,但是由于后期制作過程中,超聲波模塊損壞,只能使用紅外線避障。其也是由發(fā)射管和接收管組成,工作原理與循跡的相同,發(fā)射管發(fā)出紅外線,當遇到障礙物時就會反射回來,接收管接收到反射的信號就會產(chǎn)生一電壓信號給單片機,從而實現(xiàn)對障礙物的檢測。 紅外線傳感器

9、模塊實物圖2.4 電源模塊電源模塊,用9V的鋅電源給前、后輪電機供電,然后使用7805穩(wěn)壓管來把高電壓穩(wěn)成5V分別給單片機和電機驅(qū)動芯片供電。 7805電源模塊2.4 電機及電機驅(qū)動模塊 電機方案的選擇:方案一:采用直流電機,優(yōu)點在于硬件電路設計簡單。當外加額定直流電壓時,轉(zhuǎn)速幾乎相等,調(diào)速性能較好,且性價比高。對于小車的行駛,能夠很好的控制。 方案二:采用步進電機,步進電機可以實現(xiàn)精確的轉(zhuǎn)角輸出,只要施加合適的脈沖序列,電機可以按照人們的預定的速度或方向進行連續(xù)的轉(zhuǎn)動,便于控速,但是軟件程序的編寫較直流電機稍顯復雜。表2.1電機性能對比表對比項直流電機步進電機調(diào)速性能較好較差位置控制精度較差

10、好控制難易程度簡單較難價格低中綜合考慮,本智能車決定采用直流電機作為只能車的動力電機。 電機采用直流減速電機,直流減速電機轉(zhuǎn)動力矩大,體積小,重量輕,裝配簡單,使用方便。由于其內(nèi)部由高速電動機提供原始動力,帶動變速(減速)齒輪組,可以產(chǎn)生較大扭力。 可選用減速比為1:74 的直流電機,減速后電機的轉(zhuǎn)速為100r/min。若車輪直徑為6cm,則小車的最大速度可以達到0.314m/s能夠較好的滿足系統(tǒng)的要求。下圖為電機的實物圖 直流減速電機電機驅(qū)動方案的選擇:方案一:采用繼電器對電動機的開或關進行控制,通過開關的切換對小車的速度進行調(diào)整.此方案的優(yōu)點是電路較為簡單,缺點是繼電器

11、的響應時間慢,易損壞,壽命較短,可靠性不高。方案二:采用電阻網(wǎng)絡或數(shù)字電位器調(diào)節(jié)電動機的分壓,從而達到分壓的目的。但電阻網(wǎng)絡只能實現(xiàn)有級調(diào)速,而數(shù)字電阻的元器件價格比較昂貴。更主要的問題在于一般的電動機電阻很小,但電流很大,分壓不僅回降低效率,而且實現(xiàn)很困難。方案三:采用功率三極管作為功率放大器的輸出控制直流電機。線性型驅(qū)動的電路結(jié)構和原理簡單,加速能力強,采用由達林頓管組成的 H型橋式電路(如圖2.1)。用單片機控制達林頓管使之工作在占空比可調(diào)的開關狀態(tài)下,精確調(diào)整電動機轉(zhuǎn)速。這種電路由于工作在管子的飽和截止模式下,效率非常高,H型橋式電路保證了簡單的實現(xiàn)轉(zhuǎn)速和方向的控制,電子管的開關速度很

12、快,穩(wěn)定性也極強,是一種廣泛采用的 PWM調(diào)速技術?,F(xiàn)市面上有很多此種芯片,我選用了L293專用驅(qū)動器。所用芯片L293屬于H橋集成電路,其輸出電流為1000mA,最高電流2A,最高工作電壓36V,可以驅(qū)動感性負載,特別是其輸入端可以與單片機直接相聯(lián),從而很方便地受單片機控制。當驅(qū)動小型直流電機時,可以直接控制兩路電機,并可以實現(xiàn)電機正轉(zhuǎn)與反轉(zhuǎn),實現(xiàn)此功能只需改變輸入端的邏輯電平。本模塊具有體積小,控制方便的特點。采用此模塊定會使您的電機控制自如,應對小車題目輕松自如。 L293D電機驅(qū)動模塊電機調(diào)速系統(tǒng)的設計:方案一:串電阻調(diào)速系統(tǒng)。方案二:靜止可控整流器。簡稱V-M系統(tǒng)。 方案三:脈寬調(diào)速

13、系統(tǒng)。 旋轉(zhuǎn)變流系統(tǒng)由交流發(fā)電機拖動直流電動機實現(xiàn)變流,由發(fā)電機給需要調(diào)速的直流電動機供電,調(diào)節(jié)發(fā)電機的勵磁電流即可改變其輸出電壓,從而調(diào)節(jié)電動機的轉(zhuǎn)速。改變勵磁電流的方向則輸出電壓的極性和電動機的轉(zhuǎn)向都隨著改變,所以G-M系統(tǒng)的可逆運行是很容易實現(xiàn)的。該系統(tǒng)需要旋轉(zhuǎn)變流機組,至少包含兩臺與調(diào)速電動機容量相當?shù)男D(zhuǎn)電機,還要一臺勵磁發(fā)電機,設備多、體積大、費用高、效率低、維護不方便等缺點。且技術落后,因此擱置不用。 V-M系統(tǒng)是當今直流調(diào)速系統(tǒng)的主要形式。它可以是單相、三相或更多相數(shù),半波、全波、半控、全控等類型,可實現(xiàn)平滑調(diào)速。V-M系統(tǒng)的缺點是晶閘管的單向?qū)щ娦裕辉试S電流反向,給系統(tǒng)的

14、可逆運行造成困難。它的另一個缺點是運行條件要求高,維護運行麻煩。最后,當系統(tǒng)處于低速運行時,系統(tǒng)的功率因數(shù)很低,并產(chǎn)生較大的諧波電流危害附近的用電設備。 PWM 調(diào)速系統(tǒng):其實現(xiàn)方式有兩種,一是采用晶閘管的直流斬波器基本原理,將晶閘管處在開關狀態(tài),當晶閘管被觸發(fā)導通時,電源電壓加到電機上,當晶閘管關斷時,直流電源與電機斷開,電動機經(jīng)二極管續(xù)流,兩端電壓接近于零,脈沖周期不變,只改變晶閘管的導通時間,即通過改變脈沖寬度來進行直流調(diào)速;二是利用軟件方式實現(xiàn),采用兩個定時器,其中一個用來控制脈沖頻率,另一個控制占空比,這種實現(xiàn)方式快捷且有效。 與V-M系統(tǒng)相比,PWM調(diào)速系統(tǒng)有下列優(yōu)點: (1)由于

15、PWM調(diào)速系統(tǒng)的開關頻率較高,僅靠電樞電感的濾波作用就可以獲得脈動很小的直流電流,電樞電流容易連續(xù),系統(tǒng)的低速運行平穩(wěn),調(diào)速范圍較寬,可達1:10000左右。由于電流波形比V-M系統(tǒng)好,在相同的平均電流下,電動機的損耗和發(fā)熱都比較小。(2)同樣由于開關頻率高,若與快速響應的電機相配合,系統(tǒng)可以獲得很寬的頻帶,因此快速響應性能好,動態(tài)抗擾能力強。(3)由于電力電子器件只工作在開關狀態(tài),主電路損耗較小,裝置效率較高。 根據(jù)以上綜合比較,以及本設計中受控電機的容量和直流電機調(diào)速的發(fā)展方向,本設計采用了采用了程序的方法實現(xiàn)PWM脈沖寬度調(diào)試。 3 硬件系統(tǒng)的設計3.1 總體設計智能小車采用前輪驅(qū)動,前

16、輪左右兩邊各用一個電機驅(qū)動,調(diào)制前面兩個輪子的轉(zhuǎn)速起停從而達到控制轉(zhuǎn)向的目的,后輪是萬象輪,起支撐的作用。將循跡光電對管分別裝在車體下的左右。當車身下左邊的傳感器檢測到黑線時,主控芯片控制左輪電機停止,車向左修正,當車身下右邊傳感器檢測到黑線時,主控芯片控制右輪電機停止,車向右修正。避障的原理和循線一樣,在車身右邊裝一個光電對管,當其檢測到障礙物時,主控芯片給出信號報警并控制車子倒退,轉(zhuǎn)向,從而避開障礙物。表3.1 元件清單元件數(shù)量元件數(shù)量元件數(shù)量直流電機2只電阻若干集成電路芯片若干單片機1 塊二極管若干電容若干紅外對管3只蜂鳴器1只電位器若干12M晶振1只杜邦線若干玩具小車1個排針若干3.2

17、 光電傳感檢測模塊采用四路紅外對管傳感器,其中兩路置于小車中間,用于循跡檢測,另外兩路用于避障信號檢測,置于小車兩側(cè)。其工作原理如下:小車循跡原理是小車在畫有黑線的白紙 “路面”上行駛,由于黑線和白紙對光線的反射系數(shù)不同,可根據(jù)接收到的反射光的強弱來判斷“道路”黑線。筆者在該模塊中利用了簡單、應用也比較普遍的檢測方法紅外探測法。紅外探測法,即利用紅外線在不同顏色的物理表面具有不同的反射性質(zhì)的特點。在小車行駛過程中不斷地向地面發(fā)射紅外光,當紅外光遇到白色地面時發(fā)生漫發(fā)射,反射光被裝在小車上的接收管接收;如果遇到黑線則紅外光被吸收,則小車上的接收管接收不到信號,再通過LM324作比較器來采集高低電

18、平,從而實現(xiàn)信號的檢測。避障亦是此原理。電路圖如圖,我們將其接于單片機P3口。 3.3 電源模塊電路設計采用7805穩(wěn)壓模塊為系統(tǒng)提供5V的穩(wěn)定電壓,并設計有電源指示二極管,用以提示電源是否供電正常。3.4 電機驅(qū)動模塊設計電機驅(qū)動模塊采用專用驅(qū)動器L293D,所用芯片L293屬于H橋集成電路,其輸出電流為1000mA,最高電流2A,最高工作電壓36V,可以驅(qū)動感性負載,特別是其輸入端可以與單片機直接相聯(lián),從而很方便地受單片機控制。其工作電路如下圖所示,其中EN1、EN2為左右電機使能端,IN1、IN2、IN3、IN4為電機正反轉(zhuǎn)引腳端,它們分別與P1口各引腳相連。3.5 主控電路主控電路復位

19、電路的設計,采用上拉電復位,設計有按鈕,按下即可實現(xiàn)復位。 復位電路時鐘電路的設計,采用DS1302時鐘模塊,接于單片機P2.0和P2.1口。 蜂鳴器電路,接于單片機P2.3口 4 軟件系統(tǒng)的設計4.1 A主程序的設計開始 蜂鳴器嘀的一聲初始化SP、標志位、內(nèi)部RAM啟動定時器T0定時器初始化初始化電機 顯示初始化顯示子程序LOOPi=0 是否啟動小車 否i<50 否 是 判斷左側(cè)是否有障礙物 否判斷右側(cè)是否有障礙物判斷P3.7是否按下 是 是 停車、報警、降速、后退 否 是 停車、報警降速、后退 是 是 右轉(zhuǎn)、直行i+ 左轉(zhuǎn)、直行 判斷是否有障礙物判斷是否有障礙物 是 是A 否左轉(zhuǎn)、直

20、行 否右轉(zhuǎn)、直行 否 是否有軌跡 否 否是否有軌跡 是B 是 B 循跡子程序 是否有停車信號 否LOOP 停車 是 主程序流程圖如主程序流程框圖所示,主程序主包括了系統(tǒng)的初始化,小車的啟動,和循跡避障動作實現(xiàn)程序。這里需要說明一點:之所以將避障程序放在主程序內(nèi)而將循跡作為一子程序這樣設計,一是為了方便實現(xiàn)小車在自動循跡的基礎上實現(xiàn)自動避障并能夠在避障后自動找回軌跡繼續(xù)循跡移動;二是實現(xiàn)程序模塊化,以便以后再開發(fā)。具體算法思路是小車啟動后,首先判斷軌跡前方有無障礙物。無障礙物時直接執(zhí)行循跡移動。有障礙物時,判斷是那一側(cè)有障礙物,然后根據(jù)傳感器采集的障礙物信息作出指令,比如右側(cè)有障礙物時,先執(zhí)行停

21、止、報警、降速、后退等指令,其次先左轉(zhuǎn)再直行···左轉(zhuǎn)、直行直至繞開障礙物,然后右轉(zhuǎn)、直行再右轉(zhuǎn)、直行直至重新回到軌跡上,循跡移動。左側(cè)或者前方有障礙物時程序算法類似于前者,不同在于執(zhí)行的動作順序不同。在程序的最后又補充添加了一紅外遙控控制,以方便人為地控制隨時停車。詳細程序設計如下:#include<AT89X52.H>#define uchar unsigned char#define uint unsigned intsbit IN1=P12; /定義電機驅(qū)動控制引腳sbit IN2=P13;sbit IN3=P16;sbit IN4=P17;s

22、bit EN1=P14;sbit EN2=P15;sbit BUZZ=P23; /定義蜂鳴器接線sbit DU=P26 ; /定義顯示控制引腳sbit WE=P27;#define left_x P3_4 /傳感器引腳 #define right_x P3_3 #define left_b P3_6#define right_b P3_5#define left_moto_pwm P1_4 /PWM信號端#define right_moto_pwm P1_5unsigned int pwmsd; /定義pwm轉(zhuǎn)速變量unsigned int count;unsigned int i;unsig

23、ned char code table=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,Fvoid delay_nms(unsigned int n) /延時n ms unsigned int i,j; for(i=0;i<n;i+) for(j=0;j<125;j+) void mingdi(void) / 蜂鳴器嘀的一聲響 BUZZ=0; delay_nms(50); BUZZ=1;void disp(

24、unsigned int j)void qianjin(void) /前進void turnleft(void) /左轉(zhuǎn)void turnright(void) /右轉(zhuǎn)void houtui(void) /后退void stop(void) /停止void timer0_Int()interrupt 1 /定時器中斷void Timer1_Int() interrupt 2void xunji(void)void main(void) P0=0X00; /關數(shù)碼管 P1=0XF0; /關電機 B: for(i=0;i<50;i+) /判斷啟動開關是否按下 delay_nms(1); if

25、(P3_7!=1) goto B; mingdi(); /啟動小車,鳴笛 pwmsd=6; /設置初速度 TMOD=0X11; TH0= 0Xfc; /1ms定時 TL0= 0X18; TR0= 1; ET0= 1; EA = 1; /開總中斷 TH1=0xff; /0.5ms定時 TL1=0xce; ET1=0; TR1= 0; while(1) /無限循環(huán) disp(pwmsd) ; /調(diào)顯示 if(left_b=1) /判斷左面是否有障礙物 if(right_b=1) /判斷右面是否有障礙物 xunji(); /兩面都沒有障礙物,繼續(xù)循跡移動 else stop(); /右面有障礙物,先

26、停車 delay_nms(1000); mingdi(); /再報警 delay_nms(50); mingdi(); 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)、直行··· /直到找到軌道; turnrigh

27、t(); delay_nms(100); qianjin(); delay_nms(500); while(left_x=0|right_x=0); xunji(); /繼續(xù)循跡移動; else /左側(cè)有障礙物; stop(); /先停車, delay_nms(1000); mingdi(); /再報警; delay_nms(50); mingdi(); houtui(); /其次后退; delay_nms(500); pwmsd=3; /降速, do /右轉(zhuǎn)、直行···直到繞開障礙物, turnright(); delay_nms(100); qianjin()

28、; 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ù)循跡移動; 4.2 循跡子程序的設計循跡子程序流程圖:開始判斷傳感器狀態(tài)L:1;R:0L:1;R:1L:0;R:1左轉(zhuǎn)右轉(zhuǎn)直行循跡子程序流程圖 根據(jù)前一節(jié)介紹的紅外對管循跡原理,設計了如上圖所示的循跡算法,首先判斷兩路循跡傳感器的狀態(tài),根據(jù)傳感

29、器狀態(tài)做出相應的指令,驅(qū)動電機轉(zhuǎn)動,以實現(xiàn)小車循跡移動?;驹O計如下:當左右循跡傳感器狀態(tài)為1、1時,即未偏出軌跡,直行移動;當傳感器狀態(tài)為 0、 1時,左側(cè)偏出,微右轉(zhuǎn);當傳感器狀態(tài)為1、0時,右側(cè)偏出,微左轉(zhuǎn);當傳感器狀態(tài)為0、 0時,兩側(cè)均偏出,但是為了保障主程序能夠自我找回軌跡,而不對其運行造成指令干擾,這里就將這一狀態(tài)給屏蔽,不將其視為控制狀態(tài)信息。詳細程序設計如下:void xunji(void) if(left_x=1&&right_x=1) qianjin(); /調(diào)用前進函數(shù)delay_nms(20); if(left_x=0&&right_x

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

31、void) /左轉(zhuǎn) IN1=0; IN2=1; IN3=1; IN4=0;void turnright(void) /右轉(zhuǎn) IN1=1; IN2=0; IN3=0; IN4=1;void houtui(void) /后退 IN1=0; IN2=1; IN3=0; IN4=1;void stop(void) /停止 EN1=0; EN2=0;4.4 中斷子程序的設計 設有兩個定時器中斷T0、T1,用來實現(xiàn)電機的PWM調(diào)速,其中定時器T0用于控制頻率,定時器T1用于控制占空比。具體思路是T0中斷讓一個IO口輸出高電平,并在這個T0中斷中啟動定時器T1,T1中斷讓這個IO口輸出低電平,這樣改變定時器

32、T0的初值就可以改變頻率,改變定時器T1的初值就可以改變占空比。詳見如下流程圖:開始開始 T1重置初值T0重置初值清零countcount+count<number啟動定時器T1 是 PWM=0PWM=1 否返回返回 T0中斷流程圖 T1中斷流程圖根據(jù)上述流程圖設計程序如下 void timer0_Int()interrupt 1 TH0=0xfc ; / 定時1ms TL0=0x18; count=0 ; /清零脈沖計數(shù) ET1=1; /啟動定時器T1 TR1= 1; left_moto_pwm=1;/電機使能端置1 right_moto_pwm=1; void Timer1_Int(

33、) interrupt 2 TH1=0xff; /定時0.05ms TL1=0xce; count+; if(count>=pwmsd) /與設定轉(zhuǎn)速(占空比)比較 left_moto_pwm=0; /電機使能端清0 right_moto_pwm=0; 4.5 顯示子程序的設計 這里只使用一個數(shù)碼管,用以顯示轉(zhuǎn)速,子程序設計如下:unsigned char code table=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,

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

溫馨提示

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

評論

0/150

提交評論