智能循跡小車設(shè)計與實現(xiàn)_第1頁
智能循跡小車設(shè)計與實現(xiàn)_第2頁
智能循跡小車設(shè)計與實現(xiàn)_第3頁
智能循跡小車設(shè)計與實現(xiàn)_第4頁
智能循跡小車設(shè)計與實現(xiàn)_第5頁
已閱讀5頁,還剩5頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

智能循跡小車設(shè)計與實現(xiàn)摘要本文介紹的是基于單片機STC89C52控制智能循跡小車的設(shè)計。利用紅外對光管檢測黑線與障礙物,并以STC89C52單片機為控制芯片控制電動小汽車的運動,從而實現(xiàn)自動循跡避障的功能。其中小車的電機由LG9110驅(qū)動,整個系統(tǒng)的電路結(jié)構(gòu)簡單,可靠性高。關(guān)鍵詞STC89C52LG9110紅外對光管循跡小車ThemanufactureofintelligenttrackingcarAbstractThisarticaleintroducesthedesignofintelligenttrackingcarbasedontheSTC89C52singlechipcomputer.Basedinfrareddetectionofblacklinesandtheroadobstacles,anduseaSTC89C52MCUasthecontrollingcoreforthemovement.Aelectronicdrived,whichcanautomatictrackandavoidobstacle,wasdesignedandfabricated.Inwhich,theelectricmachineryofcarisdrivedbytheLG9110.Theelectriccircuitstuctionofwholesystemissimple,andthefunctionisdependable.KeywordsSTC89C52LG9110InfraredemittingdiodeTrackingcar第1章引言隨著微電子技術(shù)的不斷開展,微處理器芯片的集成程度越來越高,單片機已可以在一塊芯片上同時集成CPU、存儲器、定時器/計數(shù)器、并行和串行接口、看門狗、前置放大器、A/D轉(zhuǎn)換器、D/A轉(zhuǎn)換器等多種電路,這就很容易將計算機技術(shù)與測量控制技術(shù)結(jié)合,組成智能化測量控制系統(tǒng)。這種技術(shù)促使機器人技術(shù)也有了突飛猛進的開展。單片機技術(shù)作為自動控制技術(shù)的核心之一,被廣泛應(yīng)用于工業(yè)控制、智能儀器、機電產(chǎn)品、家用電器等領(lǐng)域。隨著微電子技術(shù)的迅速開展,單片機功能也越來越強大,本設(shè)計基于單片機技術(shù)在智能尋跡小車控制系統(tǒng)的設(shè)計中,以STC89C52為核心,用LG9110驅(qū)動兩個減速電機,當產(chǎn)生信號驅(qū)動小車前進時,是通過尋跡模塊里的傳感器管是否尋到黑線產(chǎn)生的電平信號通過傳感器再返回到單片機,單片機根據(jù)程序設(shè)計的要求作出相應(yīng)的判斷送給電機驅(qū)動模塊,讓小車實現(xiàn)前進、左轉(zhuǎn)、右轉(zhuǎn)、停車等根本功能,尋白線時,外部環(huán)境光線的強弱對小車的運動會產(chǎn)生很大的影響,基于此原因,本實驗中的尋跡是指在白色地板上尋黑線。1.1設(shè)計目的1、了解機械部件結(jié)構(gòu)與機械安裝過程;2、掌握電動機齒輪箱內(nèi)部結(jié)構(gòu)及減速原理;3、了解電子元器件的根本形狀及焊接過程;4、掌握電子元器件的焊接步驟與檢測過程;5、了解單片機內(nèi)部結(jié)構(gòu)與程序編制方法;6、了解LED燈驅(qū)動方法,全面掌握流水燈/跑馬燈編程技術(shù);7、了解數(shù)碼管內(nèi)部結(jié)構(gòu),掌握數(shù)碼顯示技術(shù);8、了解鍵盤結(jié)構(gòu)原理,掌握中斷查詢技術(shù);9、了解話筒電路結(jié)構(gòu),掌握話筒輸入技術(shù);10、了解蜂鳴器驅(qū)動技術(shù),全面表達音樂報警功能;11、了解光敏電阻結(jié)構(gòu)原理,充分表達夜間自動照明功能;12、了解紅外發(fā)射與接收技術(shù),有力表達防撞檢測與智能尋跡功能13、了解直流電機驅(qū)動原理,掌握電機驅(qū)動技術(shù);14、認識紅外檢測傳感器,全面掌握紅外遙控編碼解碼技術(shù);15、了解R232通信協(xié)議,掌握串口通信技術(shù)。16、通過本機系統(tǒng)學習,全面掌握智能自動尋跡機器人的控制方法。1.2設(shè)計要求當前的電動小汽車根本上采取的是基于純硬件電路的一種開環(huán)控制方法,或者是直線行使,或者是在遙控下作出前進、后退、轉(zhuǎn)彎、停車等根本功能。但是它們不能實現(xiàn)在某些特殊的場合下,我們需要能夠自動控制的小型設(shè)備先采集到一些有用的信息的功能。本文正是在這種需要之下開發(fā)設(shè)計的一種智能的電動小車的自動控制系統(tǒng)。它以單片機STC89C51為控制核心,附以外圍電路,在畫有黑線的白紙“路面”上行使,由于黑線和白線對光線的反射系數(shù)不同,可根據(jù)接收到的反射光的強弱來判斷“道路”——黑線。判斷信號可通過單片機控制驅(qū)動模塊修正前進方向,以使其保持沿著黑線行進。軌跡探測模塊用2對紅外發(fā)射管。2對各置于軌道外側(cè),當小車脫離軌道時,外面任意一只檢測到黑線后,做出相應(yīng)的轉(zhuǎn)向調(diào)整,直到重新回到軌道。第2章總體方案設(shè)計2.1總體方案的設(shè)計思路該簡易智能小車在畫有黑線的白紙“路面”上行使,不斷地向地面發(fā)射紅外光,利用紅外線在不同顏色的物理外表具有不同的反射性質(zhì)的特點,當紅外光遇到白色地面時發(fā)生漫發(fā)射,反射光被裝在小車上的接收管接收;如果遇到黑線那么紅外光被吸收,那么小車上的接收管接收不到信號。當紅外接收探頭接收到信號后,再將信號送到單片機由單片機內(nèi)部程序來控制電機,由電機完成小車的前進,轉(zhuǎn)向。因此,可根據(jù)接收到的反射光的強弱來判斷“道路”——黑線。2.2總體方案設(shè)計整個路系統(tǒng)分為檢測、控制、驅(qū)動三個模塊。首先利用光電對管對路面信號進行檢測,把檢測到的光信號轉(zhuǎn)化為電信號,送給單片機進行處理,然后單片機輸出相應(yīng)的信號給驅(qū)動芯片驅(qū)動電機轉(zhuǎn)動,從而控制整個小車的運動。系統(tǒng)方案方框圖如下圖:控制小車驅(qū)動電機軟件控制檢測〔黑線〕圖2-2智能小車尋跡系統(tǒng)框控制小車驅(qū)動電機軟件控制檢測〔黑線〕2.2方案一:采用FPGA〔現(xiàn)場可編程門陣列〕作為系統(tǒng)的控制器。FPGA可以實現(xiàn)各種復雜的邏輯功能,規(guī)模大,密度高。但由于本設(shè)計對數(shù)據(jù)處理速度要求不高,F(xiàn)PGA的高速處理的優(yōu)勢得不到充分表達,并且由于其集成度高,使其本錢偏高,同時其芯片引腳較多,實物硬件電路板布線復雜,加重了電路設(shè)計和實際焊接的工作。因此排除該方案。方案一:采用89C51作為控制核心。針對本設(shè)計特點—多開關(guān)量輸入的復雜程序控制系統(tǒng),需要擅長處理多開關(guān)量得單片機,而不能用精簡I/O口和程序存儲的小體積單片機,A/D,D/A功能也不必選用,據(jù)此,我們選用STC89C51單片機,另外,該單片機價格低廉,使用簡單。綜上所述,我們選用方案二。2.2方案一:采用繼電器對電動機的開或關(guān)進行控制,通過開關(guān)的切換對小車的運動進行調(diào)整,此方案的優(yōu)點是電路較為簡單,缺點是繼電器的響應(yīng)速度慢,易損壞,壽命短,可靠性不高。方案二:市面上有專門的雙電機驅(qū)動芯片LG9110,經(jīng)測試性能可以滿足小車的電機控制要求,而且外圍電路比擬簡單,穩(wěn)定性好,驅(qū)動能力強,能夠很好的保證兩電機的同步。因此,采用方案二。2.2方案一:采用攝像頭或探測頭收集畫板上信息。用這種方法,對板面信息處理準確,但是本錢過高,對硬、軟件的要求都非常高,短時間內(nèi)難做出實物來。方案二:使用可見光發(fā)光二級管和光敏二級管組成的發(fā)射-接受模塊。這種方案的缺點在于其他環(huán)境光源會對光敏二級管工作產(chǎn)生很大干擾,一旦外界光亮條件改變,很可能造成誤判和漏判;如采用高亮發(fā)光管可以降低一定的干擾,但會增加額外的功率損耗。方案三:使用反射式紅外二級管和接收管組合發(fā)射-接收器。由于紅外光波長比可見光長,因此受可見光的影響比擬小,同時,紅外對管還具有以下優(yōu)點:質(zhì)量輕,靈敏度高,線性好,接口電路比擬簡單,安裝方便,對于本系統(tǒng)中近距離的檢測,用它作為傳感器將是最理想的。因此,本系統(tǒng)采用方案三2.2方案一:采用直流電機。直流電機使用方便,價格廉價,有優(yōu)良調(diào)速特性,實現(xiàn)方便平滑調(diào)速,調(diào)整范圍廣,有較強過載能力,能承受頻繁的沖擊負載,可頻繁無級快速啟動,制動,反轉(zhuǎn)。方案二:采用步進電機。步進電機的運動精度很高,由其組成的位置控制系統(tǒng)定位準確,穩(wěn)定時間短,一般可采用開環(huán)控制。但控制系統(tǒng)必須由雙環(huán)形脈沖信號,功率驅(qū)動電路等組成方可使用,控制相對復雜。綜上所述,直流電機的電路相對簡單,功能合題意,使用方便,價格廉價,本系統(tǒng)采用直流電機作為動力源。第3章系統(tǒng)硬件設(shè)計3.1系統(tǒng)的硬件組成硬件設(shè)計總體上以STC89C52為核心,輔以必要的外圍電路,完成紅外傳感器對運動軌跡的檢測,信號的處理,電機的轉(zhuǎn)動等功能。系統(tǒng)總框圖如下:3.2單片機模塊此局部是整個小車運行的核心部件,起著控制小車所有運行狀態(tài)的作用。這里選擇了ATMEL公司的STC89C52作為控制核心部件。該單片機要想正常工作,還需有復位電路和晶振電路,此單片機的最小系統(tǒng)圖如下:圖3-23.3電機驅(qū)動模塊LG9110是為控制和驅(qū)動電機設(shè)計的兩通道推挽式功率放大專用集成電路器件,將分立電路集成在單片IC之中,使外圍器件本錢降低,整機可靠性提高。該芯片有兩個TTL/CMOS兼容電平的輸入,具有良好的抗干擾性;兩個輸出端能直接驅(qū)動電機的正反向運動,它具有較大的電流驅(qū)動能力,每通道能通過750~800mA的持續(xù)電流,峰值電流能力可達1.5~2.0A;同時它具有較低的輸出飽和壓降與靜態(tài)電流;內(nèi)置的鉗位二極管能釋放感性負載的反向沖擊電流,使它在驅(qū)動繼電器、直流電機、步進電機或開關(guān)功率管的使用上平安可靠。9110被廣泛應(yīng)用于玩具汽車電機驅(qū)動、自動閥門電機驅(qū)動、電磁門鎖驅(qū)動等電路上。該驅(qū)動芯片LG9110的IA,IB口接單片機,輸出口OA,OB接電機。O口為低電平時,電機正傳。O口為高電平時,電機反轉(zhuǎn)。電機驅(qū)動電動如下列圖3-3:圖3-33.4紅外檢測模塊本單元模塊中,白色管作為發(fā)色管,黑色管作為接管,當白色管發(fā)射一束光,遇到黑線或白色物體反射,黑色管接收到反射光,然后把光信號轉(zhuǎn)化為電信號送給單片機進行處理,控制電機的正反轉(zhuǎn),電路原理圖如下:圖3-43.5聲控模塊話筒的阻值隨接收到聲音信號強度的變化而變化,在電容正端產(chǎn)生變化的電壓信號,經(jīng)電容C5耦合和根本共射極三極管V3的電壓反向存在,通過單片機P0.4引腳采集和處理可實現(xiàn)小車的聲控功能,正常情況下P0.4管腳采集到的是高電平信號,當話筒收到強度足夠的聲音后,三極管導通后P0.4管腳變?yōu)榈碗娖?。原理圖如圖3-5:圖3-53.6報警模塊單片機上電后各管腳默認為高電平,三極管不導通。當需要執(zhí)行報警時,單片機P0.6管腳出現(xiàn)低電平信號,三極管導通驅(qū)動蜂鳴器報警。如圖3-6圖3-63.7串口通信模塊此模塊用于單片機和電腦進行串口通信,但由于計算機串口為RS232電平,高電平為—12V,低電平為+12V,而單片機為TTL電平,高電平為+5V,低電平為0V,因此,計算機與單片機之間通訊時需要加電平轉(zhuǎn)換芯片MAX232.原理圖如下圖3-7第4章系統(tǒng)軟件設(shè)計該系統(tǒng)的軟件程序采用模塊結(jié)構(gòu),由C語言編寫完成,主要由初始化程序,偏道調(diào)整程序、聲光指示程序,讀紅外對光管狀態(tài),顯示程序等模塊組成??偟脑O(shè)計流程圖如下:循跡流程圖:循跡程序:#include<at89x51.h>//包含51單片機相關(guān)的頭文件sbitLeftLed=P2^0;//定義前方左側(cè)指示燈端口sbitRightLed=P0^7;//定義前方右側(cè)指示燈端口sbitLeftIR=P3^5;//定義前方左側(cè)紅外探頭端口sbitRightIR=P3^6;//定義前方右側(cè)紅外探頭端口sbitFontIR=P3^7;//定義前方正前方紅外探頭端口sbitM1A=P0^0;//定義左側(cè)電機驅(qū)動A端sbitM1B=P0^1;//定義左側(cè)電機驅(qū)動B端sbitM2A=P0^2;//定義右側(cè)電機驅(qū)動A端sbitM2B=P0^3;//定義右側(cè)電機驅(qū)動B端sbitB1=P0^4;//定義語音識識別傳感器端口sbitSB1=P0^6;//定義蜂鳴器端口#defineRunShowP1//定義數(shù)據(jù)顯示端口voidDelay()//定義機器人調(diào)轉(zhuǎn)子時間子程序{unsignedintDelayTime=50000;//定義機器人轉(zhuǎn)彎時間變量while(DelayTime--);//機器人轉(zhuǎn)彎循環(huán)SB1=!SB1;//蜂鳴器閃響return;}voidControlCar(unsignedcharConType)//定義電機控制子程序{M1A=0;//將M1電機A端初始化為0M1B=0;//將M1電機B端初始化為0M2A=0;//將M2電機A端初始化為0M2B=0;//將M2電機B端初始化為0switch(ConType)//判斷用戶設(shè)定電機形式{case1://前進//判斷用戶是否選擇形式1{M1A=1;//M1電機正轉(zhuǎn)M2A=1;//M2電機正轉(zhuǎn)break;}case2://后退//判斷用戶是否選擇形式2{M1B=1;//M1電機反轉(zhuǎn)M2B=1;//M2電機反轉(zhuǎn)break;}case3://左轉(zhuǎn)//判斷用戶是否選擇形式3{M2A=1;//M2電機正轉(zhuǎn) break;}case4://右轉(zhuǎn)//判斷用戶是否選擇形式4{M1A=1;//M1電機正轉(zhuǎn)//M2電機反轉(zhuǎn) break;}case8://停止//判斷用戶是否選擇形式8{break;//退出當前選擇}}}voidmain()//主程序入口{bitRunFlag=0;//定義小車運行標志位RunShow=0;//初始化顯示狀態(tài)ControlCar(1);//初始化小車運行狀態(tài)while(1)//程序主循環(huán){Start:LeftLed=LeftIR;//前方左側(cè)指示燈指示出前方左側(cè)紅外探頭狀態(tài)RightLed=RightIR;//前方右側(cè)指示燈指示出前方右側(cè)紅外探頭狀態(tài)if(LeftIR==0)//左側(cè)紅外探頭沒有接收到白色道路信號{ControlCar(4);//左側(cè)沒有信號時,開始向右轉(zhuǎn)一定的角度 Delay();//修改這里進行轉(zhuǎn)彎角度的調(diào)整 Delay();//同上 Delay(); gotoNextRun;}if(RightIR==0){ControlCar(3);//右側(cè)沒有信號時,開始向左轉(zhuǎn)一定的角度 Delay();//修改這里進行轉(zhuǎn)彎角度的調(diào)整 Delay();//同上Delay(); gotoNextRun;}gotoStart;NextRun:ControlCar(1);}}避障流程圖:避障程序:#include<at89x51.h>//包含51單片機相關(guān)的頭文件sbitLeftLed=P2^0;//定義前方左側(cè)指示燈端口sbitRightLed=P0^7;//定義前方右側(cè)指示燈端口sbitLeftIR=P3^5;//定義前方左側(cè)紅外探頭端口sbitRightIR=P3^6;//定義前方右側(cè)紅外探頭端口sbitFontIR=P3^7;//定義前方正前方紅外探頭端口sbitM1A=P0^0;//定義左側(cè)電機驅(qū)動A端sbitM1B=P0^1;//定義左側(cè)電機驅(qū)動B端sbitM2A=P0^2;//定義右側(cè)電機驅(qū)動A端sbitM2B=P0^3;//定義右側(cè)電機驅(qū)動B端sbitB1=P0^4;//定義語音識識別傳感器端口sbitSB1=P0^6;//定義蜂鳴器端口#defineRunShowP1//定義數(shù)據(jù)顯示端口voidDelay()//定義機器人調(diào)轉(zhuǎn)子時間子程序{unsignedintDelayTime=50000;//定義機器人轉(zhuǎn)彎時間變量while(DelayTime--);//機器人轉(zhuǎn)彎循環(huán)SB1=!SB1;//蜂鳴器閃響return;}voidControlCar(unsignedcharConType)//定義電機控制子程序{M1A=0;//將M1電機A端初始化為0M1B=0;//將M1電機B端初始化為0M2A=0;//將M2電機A端初始化為0M2B=0;//將M2電機B端初始化為0switch(ConType)//判斷用戶設(shè)定電機形式{case1://前進//判斷用戶是否選擇形式1{M1A=1;//M1電機正轉(zhuǎn)M2A=1;//M2電機正轉(zhuǎn)break;}case2://后退//判斷用戶是否選擇形式2{M1B=1;//M1電機反轉(zhuǎn)M2B=1;//M2電機反轉(zhuǎn)break;}case3://左轉(zhuǎn)//判斷用戶是否選擇形式3{M1B=1;//M1電機反轉(zhuǎn)M2A=1;//M2電機正轉(zhuǎn) break;}case4://右轉(zhuǎn)//判斷用戶是否選擇形式4{M1A=1;//M1電機正轉(zhuǎn)M2B=1;//M2電機反轉(zhuǎn) break;}case8://停止//判斷用戶是否選擇形式8{break;//退出當前選擇}}}voidmain()//主程序入口{bitRunFlag=0;//定義小車運行標志位RunShow=0;//初始化顯示狀態(tài)ControlCar(1);//初始化小車運行狀態(tài)while(1)//程序主循環(huán){LeftLed=LeftIR;//前方左側(cè)指示燈指示出前方左側(cè)紅外探頭狀態(tài)RightLed=RightIR;//前方右側(cè)指示燈指示出前方右側(cè)紅外探頭狀態(tài)RunShow=FontIR;//數(shù)據(jù)顯示窗口,指示前方紅外探頭狀態(tài)if(FontIR==0||LeftIR==1||//判斷前方,左側(cè),右側(cè)是否有信號輸入RightIR==1){ControlCar(2);//讓小車后退 Delay();//開始小車后退延時子程序 Delay();//決定了小車后退的步數(shù) Delay();//改變它可以改小車后退的距離 Delay();//這里只是一個延時ControlCar(3);//改變小車為左轉(zhuǎn)方向 Delay();//開始小車左轉(zhuǎn)延時子程序 Delay();//改變它可以改變小車旋轉(zhuǎn)的角度 Delay();//同上 Delay();//同上 ControlCar(1);//改變小車為前進運行狀態(tài) SB1=1;

溫馨提示

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

最新文檔

評論

0/150

提交評論