基于安卓手機的遙控超聲波避障智能車畢業(yè)設(shè)計-報告_第1頁
基于安卓手機的遙控超聲波避障智能車畢業(yè)設(shè)計-報告_第2頁
基于安卓手機的遙控超聲波避障智能車畢業(yè)設(shè)計-報告_第3頁
基于安卓手機的遙控超聲波避障智能車畢業(yè)設(shè)計-報告_第4頁
基于安卓手機的遙控超聲波避障智能車畢業(yè)設(shè)計-報告_第5頁
已閱讀5頁,還剩50頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

西安郵電大學(xué)畢業(yè)設(shè)計(論文)題目:基于安卓手機的遙控超聲波避障智能車院(系):電子工程學(xué)院專業(yè):電子信息工程班級:電子0901班學(xué)生:導(dǎo)師:職稱:起止時間:2013年3月4日至2013年6月14日目錄TOC\o"1-3"\h\u1510摘要 I21647ABSTRACT II31561引言 III180221.緒論 12251.1智能小車發(fā)展現(xiàn)狀與趨勢1125281.1.1課題背景 1106101.1.2智能小車機器人技術(shù)在國外的研究現(xiàn)狀 2287491.2課題的任務(wù)與意義 2274672.系統(tǒng)設(shè)計方案3106432.1系統(tǒng)功能 3182072.1.1硬件系統(tǒng)功能設(shè)計與工作流程 4293742.1.2智能小車控制程序設(shè)計與工作流程 5314362.1.3安卓軟件功能設(shè)計與工作流程 9150602.2系統(tǒng)結(jié)構(gòu)與資源分配9182572.2.1處理器 9318822.2.2直流調(diào)速設(shè)計 10193292.2.3步進電機驅(qū)動設(shè)計 11221862.2.4超聲波避障設(shè)計 12166882.2.51602液晶顯示設(shè)計 12166492.2.6電源控制設(shè)計 1363852.2.7藍牙無線控制設(shè)計 1325112.2.8安卓平臺設(shè)計 1442563.詳細設(shè)計 16262073.1STC89C52RC芯片的選擇 168353.2電機驅(qū)動模塊 17317783.2.1直流電機驅(qū)動控制 17258763.2.2步進電機驅(qū)動控制 18104943.3超聲波避障模塊 20134863.41602液晶模塊 21205533.5電源控制模塊 23129673.6藍牙無線控制模塊 24226363.7安卓平臺模塊 25315364.系統(tǒng)的安裝與調(diào)試2698824.1系統(tǒng)安裝 26146974.1.1檢查元件的好壞2644234.1.2放置、焊接各元件26108834.2小車整體調(diào)試運行 26182365.結(jié)論與展望 275878致2822662參考文獻2923117附錄1:智能小車車體實物圖 3014217附錄2:智能小車主控制程序 315710附錄3:安卓智能手機控制程序 45摘要本設(shè)計采用STC89C52RC芯片為控制核心,利用安卓手機無線控制小車進入自動運行,手動運行,切換速度模式。自動運行模式實現(xiàn)智能小車行進,避障,切換速度功能;手動運行模式實現(xiàn)手動控制智能小車行進,避障功能。利用電磁繼電器實現(xiàn)動態(tài)控制電動機換速;利用L298芯片驅(qū)動直流電機;利用ULN2003驅(qū)動步進電機;利用US-100超聲波避障;利用1602液晶顯示小車狀態(tài);利用成熟的藍牙耳機接收控制信號。智能小車整體利用藍牙耳機接收智能手機控制信號,實現(xiàn)小車遠程無線遙控功能,可以遠程無線對小車左右轉(zhuǎn)彎,以與前進后退,并利用超聲波傳感器進行避障,利用1602液晶顯示小車行駛狀態(tài)。整個系統(tǒng)的電路模塊化高,結(jié)構(gòu)簡單,可靠性能高。關(guān)鍵詞:STC89C52RC;1602液晶;避障;US-100;L298;藍牙耳機;智能小車ABSTRACTThedesignforthecontrolofSTC89C52RCcorechip,theuseofAndroidphonesradiocontrolcarintoautomaticoperation,manualoperation,theswitchingspeedmode.Automaticoperationmodetoachievesmartcarroad,obstacleavoidance,switchingspeedfunction;manualoperationmodeformanualcontrolsmartcarroad,obstacleavoidancecapabilities.Usingelectromagneticrelaysdynamiccontrolmotorforspeed;usingtheL298chip-drivenDCmotor;useULN2003steppermotordrive;usingtheUS-100ultrasonicobstacleavoidance;usingthe1602LCDcarstatus;useofsophisticatedBluetoothheadsetreceivescontrolsignals.OverallsmartcarusesBluetoothheadsettoreceivesmartphonethecontrolsignal,toachieveremotecontrolcarremotewirelessfeature,youcanturnleftorrightofthecarremotewireless,aswellasforwardandback,andtheuseofultrasonicsensorsforobstacleavoidance,use1602LCDshowingthecarcondition.Thecircuitofthesystemmodular,simplestructure,highreliability.Keywords:STC89C52RC;1602;avoidance;US-100;L298;Bluetoothheadset;smartcar引言本設(shè)計主要體現(xiàn)多功能小車的智能避障模式,設(shè)計中的理論方案、分析方法與特色與創(chuàng)新點等可以為自動運輸機器人、采礦勘探機器人、家用自動清潔機器人等自動半自動機器人的設(shè)計與普與有一定的參考意義。同時小車可以作為玩具的發(fā)展對象,為中國玩具市場技術(shù)含量的缺乏進行一定的彌補,實現(xiàn)經(jīng)濟收益,形成商業(yè)價值。超聲波作為智能車避障的一種重要手段,以其避障實現(xiàn)方便,計算簡單,易于做到實時控制,測量精度也能達到實用的要求,在未來汽車智能化進程中必將得到廣泛應(yīng)用。我國作為一個世界大國,在高科技領(lǐng)域也必須占據(jù)一席之地,未來汽車的智能化是汽車產(chǎn)業(yè)發(fā)展必然的,在這種情況下研究超聲波在智能車避障上的應(yīng)用具有深遠意義,這將對我國未來智能汽車的研究在世界高科技領(lǐng)域占據(jù)領(lǐng)先地位具有重要作用。本智能小車系統(tǒng)最誘人的前景就是可用于未來的智能汽車上了,當(dāng)駕駛員因疏忽或打瞌睡時這樣的智能汽車的設(shè)計就能體現(xiàn)出它的作用。如果汽車偏離車道或距障礙物小于安全距離時,汽車就會發(fā)出警報,提醒駕駛員注意,如果駕駛員沒有與時作出反應(yīng),汽車就會自動減速或??坑诼愤?。隨著計算機、微電子、信總處理與智能控制的快速發(fā)展,機器人技術(shù)也在逐步深入和細化。隨著機器人性能不斷地完善,移動機器人的應(yīng)用圍大為擴展,不僅在工業(yè)、農(nóng)業(yè)、醫(yī)療、服務(wù)等行業(yè)中得到廣泛的應(yīng)用,而且在城市安全、國防和空間探測領(lǐng)域等有害與危險場合得到很好的應(yīng)用。因此,移動機器人技術(shù)已經(jīng)得到世界各國的普遍關(guān)注。移動機器人的研究不僅可以推動科學(xué)技術(shù)的向前發(fā)展,同時其應(yīng)用必將帶來巨大的經(jīng)濟效益和社會效益。1.緒論1.1 智能小車發(fā)展現(xiàn)狀與趨勢1.1.1 課題背景智能移動機器人,是一個集環(huán)境感知、動態(tài)決策與規(guī)劃、行為控制與執(zhí)行等多功能于一體的綜合系統(tǒng)。它集中了傳感器技術(shù)、信息處理、電子工程、計算機工程、自動化控制工程以與人工智能等多學(xué)科的研究成果,代表機電一體化的最高成就,是目前科學(xué)技術(shù)發(fā)展最活躍的領(lǐng)域之一。隨著電子技術(shù)的不斷發(fā)展人們發(fā)明了各式各樣的具有感知,決策,行動和交互能力的機器人,自第一臺工業(yè)機器人誕生以來,機器人的發(fā)展已經(jīng)遍與機械、電子、冶金、交通、宇航、國防等多個領(lǐng)域。近年來機器人的智能水平不斷提高,并且迅速地改變著人們的生活方式,隨著它在人類生活領(lǐng)域中的應(yīng)用不斷擴大,將會給人們的生產(chǎn)生活帶來了巨大的影響。在國外機器人的發(fā)展有如下趨勢。一方面機器人在制造業(yè)應(yīng)用的圍越來越廣闊,其標(biāo)準(zhǔn)化、模塊化、網(wǎng)絡(luò)化和智能化的程度越來越高,功能也越來越強,并向著技術(shù)和裝備成套化的方向發(fā)展;另一方面,機器人向著非制造業(yè)應(yīng)用以與微小型方向發(fā)展,如表演型機器人,服務(wù)機型器人,機器人玩具等。國外研究機構(gòu)正試圖將機器人應(yīng)用于人類活動的各個領(lǐng)域。在我國機器人主要應(yīng)用于工業(yè)制造領(lǐng)域,我國工業(yè)機器人現(xiàn)在的總裝機量約為120000臺,其中國產(chǎn)機器人占有量約為1/3,即40000多臺。與世界機器人總裝機臺數(shù)7500萬臺相比,中國總裝機量僅占萬分之十六。對中國這樣一個擁有13億人口的大國來說,僅在機器人數(shù)量上就和發(fā)達國家有著很明顯的差距。因此大力發(fā)展我國的機器人事業(yè)刻不容緩。智能小車可以理解為機器人的一種特例,它是一種能夠通過編程手段完成特定任務(wù)的小型化機器人。與普遍意義上的機器人相比智能小車制作成本低廉,電路結(jié)構(gòu)簡單,程序調(diào)試方便,具有很強的趣味性,為此其深受廣大機器人愛好者以與高校學(xué)生的喜愛。全國大學(xué)生電子設(shè)計競賽每年都設(shè)有智能小車類的題目,由此可見國家對高校機器人研究工作的重視程度。本題目設(shè)計的是具有自動避障功能的智能小車,其設(shè)計思想與一些日常生活迫切需要的機器人(如測距機器人,搜索機器人,管道探傷機器人)類似。由于采用了超聲波傳感器,它不受光照強弱和能見度的影響,能耗低,靈敏度高,即使在較復(fù)雜的環(huán)境也可以工作。智能小車系統(tǒng)的設(shè)計采用了模塊化的設(shè)計方法,電路結(jié)構(gòu)簡單,調(diào)試方便,有很大的擴展空間,稍加改動便可應(yīng)用于實際生產(chǎn)生活中,也可作為高校學(xué)生以與廣大機器人愛好者學(xué)習(xí)研究使用。1.1.2 該課題當(dāng)前國外的研究現(xiàn)狀機器人技術(shù)是一個國家高技術(shù)實力的一個重要標(biāo)準(zhǔn),它涉與到多個學(xué)科,機械、電工、自動控制、計算機測量、人工智能、傳感技術(shù)等等,是眾多領(lǐng)域的高科技。而移動機器人比賽就是機器人技術(shù)的一個重要研究方向,目前許多國家己經(jīng)把移動機器人比賽作為創(chuàng)新教育的戰(zhàn)略性手段。移動機器人比賽是一種高科技對抗活動,各國專家學(xué)者通過移動機器人競賽,不斷推進了在競賽型移動機器人方面的研究,不斷改進機器人尋址速度和算法研究,試圖讓機器人更接近智能化,它集高科技、娛樂和比賽于一體,引起了各國的廣泛關(guān)注和極大興趣,從而推動了移動機器人研究的熱潮。1.2 課題的任務(wù)與意義本作品主要能實現(xiàn)兩個主要功能,一個是能實現(xiàn)android手機移動終端來遙控智能車。通過安卓客戶端可以對小車進行前后左右遙控以與對手動自動模式切換,還可以切換小車速度。另一個是利用超聲波技術(shù)實現(xiàn)自動壁障功能和智能實時測距。障礙物檢測是智能機器人、智能車輛對周邊環(huán)境感知技術(shù)研究領(lǐng)域中的重要組成部分,以單片機為核心的結(jié)構(gòu)簡單、精度較高、測距較長、可靠性較高的障礙物檢測報警系統(tǒng)對智能移動機器人的研究有很重要的社會意義。2. 系統(tǒng)設(shè)計方案2.1 系統(tǒng)功能本作品主要能實現(xiàn)兩個主要功能,一個是能實現(xiàn)android手機移動終端來遙控智能車。通過安卓客戶端可以對小車進行前后左右遙控以與對手動自動模式切換,還可以切換小車速度。另一個是利用超聲波技術(shù)實現(xiàn)自動壁障功能和智能實時測距。以下是基本功能:小車整體基于智能手機無線控制,實現(xiàn)自動運行,手動運行,切換速度模式;自動模式和手動模式,小車可以左轉(zhuǎn)右轉(zhuǎn),前進倒退,避障,車速可時時變化;切換速度模式,小車可實現(xiàn)變速;步進電機控制US-100超聲波左轉(zhuǎn)右轉(zhuǎn)90度,以避障;小車上有顯示功能,顯示小車的控制狀態(tài)以與與障礙物間的距離;以下是小車整體功能圖,如圖2-1-1所示:圖2-1-1小車整體功能圖2.1.1 硬件系統(tǒng)功能設(shè)計與工作流程2.1.1.1系統(tǒng)結(jié)構(gòu)系統(tǒng)結(jié)構(gòu)框圖如圖2-1-1-1所示:圖2-1-1-1系統(tǒng)結(jié)構(gòu)圖智能小車整體利用藍牙耳機接收智能手機控制信號,該控制信號經(jīng)過LM324信號放大器放大后,交由51控制器處理。實現(xiàn)小車遠程無線遙控功能,可以遠程無線對小車左右轉(zhuǎn)彎,以與前進后退,并利用超聲波傳感器進行避障,利用1602液晶顯示小車行駛狀態(tài)。2.1.1.2電源供電結(jié)構(gòu)電源供電結(jié)構(gòu)如圖2-1-1-2所示:圖2-1-1-2電源供電結(jié)構(gòu)圖電源供電模塊采用2節(jié)18620電池供電,正常情況下輸出7.4v電壓,一方面對其降壓到5v,供單片機,步進電機,超聲波模塊,1602液晶,直流電機用電,另一方面將5v電壓生壓至7v,利用電磁繼電器,實現(xiàn)電機變速功能。2.1.2 智能小車控制程序設(shè)計與工作流程2.1.2.1主程序流程圖主程序?qū)ο到y(tǒng)進行初始化之后,控制器每間隔10ms利用T1進行脈沖計數(shù),在10ms計數(shù)脈沖的個數(shù),以脈沖個數(shù)來判定進行相關(guān)的工作模式,脈沖個數(shù)的不同則會進入相關(guān)的工作模式。如圖2-1-2-1所示:圖2-1-2-1主程序流程圖當(dāng)freqSign為1,則小車進入自動模式,實現(xiàn)自動模式功能;當(dāng)freqSig為2,則小車倒退;當(dāng)freqSig為3,則小車左轉(zhuǎn);當(dāng)freqSig為4,則小車右轉(zhuǎn);當(dāng)freqSig為5,則小車進入切換速度模式,實現(xiàn)切換速度模式功能;當(dāng)freqSig為6,則小車前行;2.1.2.2超聲波模式框圖超聲波自動壁障模塊我們選用市場上現(xiàn)有的超聲波測距模塊檢測小車與障礙物的距離。然后用步進電機轉(zhuǎn)動載動超聲波,檢測左右方向的距離,再通過比較左右距離智能選擇轉(zhuǎn)彎方向。同時,超聲波模塊所測距離還可以用于自動模式下實現(xiàn)自動變速。如圖2-1-2-2所示:圖2-1-2-2超聲波模式框圖在自動模式,小車默認(rèn)前行,此時小車遇到障礙物,控制器將驅(qū)動步進電機控制超聲波傳感器,得到小車距離障礙物的距離,當(dāng)距離大于20cm,小車前行,反之小車停止,然后得到小車左方距離L與右方距離R,如果L大于R,則小車左轉(zhuǎn)90度前行,反之右轉(zhuǎn)90度前行,如果L與R均小于20,則小車旋轉(zhuǎn)180度,離開障礙區(qū),從而完成避障。當(dāng)小車距離障礙物的距離大于40cm,那么小車進入高速前進模式,反之進入低速前進模式,直至選擇其他模式功能,小車狀態(tài)才會從自動模式切換。2.1.3 安卓軟件功能設(shè)計與工作流程主程序?qū)ο到y(tǒng)進行初始化之后,智能手機通過操控界面,發(fā)送給控制器相應(yīng)的手動,變速,自動模式信號,該信號通過位于小車上的藍牙耳機端接收,通過LM324放大器將信號放大至51控制器可以處理的圍??刂平缑嬖O(shè)計如圖2-1-2-2所示。圖2-1-2-2控制界面設(shè)計圖選擇手動控制模式,則小車狀態(tài)進入手動切換模式,可以實現(xiàn)前行,后退,左轉(zhuǎn),右轉(zhuǎn)功能,以驅(qū)動直流電機實現(xiàn)。選擇自動模式功能,則小車狀態(tài)進入自動切換模式,小車默認(rèn)前行,如果遇到障礙物,控制器將驅(qū)動步進電機控制超聲波傳感器,得到小車距離障礙物的距離,從而避障,如果小車距離障礙物的距離大于40cm。那么小車進入高速前進模式。選擇變速功能,則小車進入變速模式,小車的速度實現(xiàn)高速到低速或者低速到高速功能。2.2 系統(tǒng)結(jié)構(gòu)與資源分配2.2.1 處理器本設(shè)計使用了STR89c52rc單片機作為處理器,之所以選用該處理器,是因為其擁有很高的性價比,高可靠,而且擁有很小的體積,使得設(shè)計工作便于開展。STR89C52RC部資源:最高時鐘頻率:0Mhz-80MHzFlash程序存儲器:8KB定時器:3個中斷源:4個2.2.2 直流調(diào)速設(shè)計L298N是ST公司生產(chǎn)的一種高電壓、大電流電機驅(qū)動芯片,采用了15腳封裝。該芯片可以驅(qū)動一臺兩相步進電機或四相步進電機,也可以驅(qū)動兩臺直流電機。L298N主要參數(shù):尺寸:65mmX41mmX28mm主要芯片:L298N、光電耦合器控制信號電壓:4.5V-5.5V驅(qū)動電機電壓:5V-30V最大輸出電流:2A瞬間峰值電流:3A最大輸出功率:25W圖2-2-2L298N部原理圖2.2.3 步進電機驅(qū)動設(shè)計步進電機能夠?qū)㈦娒}沖轉(zhuǎn)化為角位移的部件。當(dāng)步進驅(qū)動器接收到一個脈沖信號,它就驅(qū)動步進電機按設(shè)定的方向轉(zhuǎn)動一個固定的角度(與步進角)。因此使得用戶可以控制脈沖個數(shù)來控制轉(zhuǎn)動的角度,控制脈沖頻率來控制速度或加速度。本設(shè)計使用BYJ系列永遠磁減速28BYJ48型步進電機。28BYJ48主要參數(shù):驅(qū)動電壓:5V-12V驅(qū)動方式:四相八拍減速比:1/64步距角:5.625°/64直流電阻:200Ω±7%(25℃)圖2-2-328BYJ48步進電機圖2.2.4 超聲波避障設(shè)計超聲波測距模塊使用US-100,US-100測度距離精確,擁有超近盲區(qū),能和國外的SRF05,SRF02等超聲波測距模塊相媲美。US-100主要參數(shù):工作電壓:DC2.4V-5.5V感應(yīng)角度:<15度探測距離:2cm-450cmUART模式下串口配置:波特率9600,起始位1位,停止位1位,數(shù)據(jù)位8位,無奇偶校驗,無流控制。圖2-2-4US-100超聲波測距模塊圖2.2.5 1602液晶顯示設(shè)計考慮到實際要求,設(shè)計最多需要顯示32左右個字符,因此選用能夠顯示16列2行的字符型液晶1602,此外1602微功耗,體積小,也是符合設(shè)計要求的。1602主要參數(shù):工作電壓:3.3V-5V對比度:可調(diào)節(jié)字符尺寸:2.95×4.35mm顯示方式:16列2行藍底白字圖2-2-51602實物圖2.2.6 電源控制設(shè)計因為設(shè)計過程中發(fā)現(xiàn)電機會對單片機和放大電路產(chǎn)生影響,因此單片機和放大電路需要獨立供電。設(shè)計使用兩節(jié)18650電池進行供電,通過升壓模塊LM2577對放大電路供電與穩(wěn)壓,通過降壓模塊LM2596對單片機供電與穩(wěn)壓。2.2.7 藍牙無線控制設(shè)計因為重新設(shè)計藍牙驅(qū)動的技術(shù)困難比較大,因此選用現(xiàn)有的穩(wěn)定可靠的藍牙耳機搭配使用。藍牙耳機接收到信號后通過LM324進行放大后供處理器使用。LM324的主要參數(shù):放大器數(shù)目:4個帶寬:1.2MHz針腳數(shù):14工作溫度:0°C-70°C3dB帶寬增益乘積:1.2MHz變化斜率:0.5V/μs最大輸入偏移電壓:7mV運放特點:高增益頻率補償運算圖2-2-7LM324引腳圖2.2.8 安卓平臺設(shè)計安卓程序的開發(fā)使用了Eclipse+AndroidSDK搭建開發(fā)環(huán)境。Eclipse是一個開源的基于JAVA的可擴展開發(fā)平臺,其本身只是一個框架和一組服務(wù),通過插件擴展來構(gòu)件相應(yīng)的開發(fā)環(huán)境。AndroidSDK采用了JAVA語言,所以需要安裝JDK5.0以上版本,通過給Eclipse安裝ADT插件,使得Eclipse和AndroidSDK連接進行程序開發(fā)。圖2-2-8開發(fā)平臺效果圖3.詳細設(shè)計3.1 STC89C52RC芯片的選擇小車芯片的選擇與其重要,它不僅僅是控制系統(tǒng)的核心,也是系統(tǒng)的核心計算原件。它不僅要處理速度快,更需要快速反應(yīng),需要驅(qū)動液晶模塊,電機模塊,超聲模塊,所以小車的主控芯片采用STC89C52RC芯片,STC89C52RC芯片具有高可靠,超低價,低功耗,無法解密的優(yōu)良特性,這樣的的芯片才符合小車的應(yīng)用要求。STC89C52RC工作頻率圍:0~40MHz,相當(dāng)于普通8051的0~80MHz,實際工作頻率可達48MHz。足以完成小車的運作速度要求。通過改變電壓與外部時針的不同,可以改變芯片的處理速度。STC89C52RC可以運行兩種省電模式可以降低功耗分別是:空閑模式與掉電模式。通常STC89C52RC的典型功耗是4mA-7mA,而掉電模式下為<0.1uA,空閑模式下典型功率為2mA。低功率下的STC89C52RC將會變得更有價值,可以使電源使用時間更長,讓小車可以運行更加持久。如圖3-1-1所示是STC89C52RC芯片控制電路:圖3-1-151控制電路STC89C52RC主要功能:使用高密度非易失性存儲器技術(shù)制造,與工業(yè)80C51產(chǎn)品指令和引腳完全兼容。片上Flash允許程序存儲器在系統(tǒng)可編程,亦適于常規(guī)編程器。在單芯片上,擁有靈巧的8位CPU和在線系統(tǒng)可編程Flash,使得STC89C52RC為眾多嵌入式控制應(yīng)用系統(tǒng)提供高靈活、超有效的解決方案。STC89C52RC具有以下標(biāo)準(zhǔn)功能:8k字節(jié)Flash,256字節(jié)RAM,32位I/O口線,看門狗定時器,2個數(shù)據(jù)指針,三個16位定時器/計數(shù)器,一個6向量2級中斷結(jié)構(gòu),全雙工串行口,片晶振與時鐘電路。另外,STC89C52RC可降至0Hz靜態(tài)邏輯操作,支持2種軟件可選擇節(jié)電模式。空閑模式下,CPU停止工作,允許RAM、定時器/計數(shù)器、串口、中斷繼續(xù)工作。掉電保護方式下,RAM容被保存,振蕩器被凍結(jié),單片機一切工作停止,直到下一個中斷或硬件復(fù)位為止。3.2 電機驅(qū)動模塊3.2.1 直流電機驅(qū)動控制單片機的IO輸出電流并不能直接驅(qū)動直流電機,所以需要使用L298N電機驅(qū)動模塊。L298N是ST公司生產(chǎn)的一種高電壓、大電流電機驅(qū)動芯片。該芯片采用15腳封裝。主要特點是:工作電壓高,最高工作電壓可達24V;輸出電流大,瞬間峰值電流可達3A,持續(xù)工作電流為2A;最大功率25W。含兩個H橋的高電壓大電流全橋式驅(qū)動器,可以用來驅(qū)動直流電動機和步進電動機、繼電器線圈等感性負(fù)載;采用標(biāo)準(zhǔn)邏輯電平信號控制;具有兩個使能控制端,在不受輸入信號影響的情況下允許或禁止器件工作有一個邏輯電源輸入端,使部邏輯電路部分在低電壓下工作;可以外接檢測電阻,將變化量反饋給控制電路。使用L298N芯片驅(qū)動電機,該芯片可以驅(qū)動一臺兩相步進電機或四相步進電機,也可以驅(qū)動兩臺直流電機。如圖3-2-1所示:圖3-2-1直流電機驅(qū)動電路VSS與VS分別接入+5V與+12V電壓,給芯片供電并給電機供電,Port1——Port4為單片機控制端,單片機通過對控制端發(fā)送0/1指令來控制L298完成電機的正反轉(zhuǎn)控制,ENA,ENB為PWM輸入端,通過使用PWM進行對電機的調(diào)速控制。OUT1——OUT4為芯片的電機控制端口。表3-2-2是L298N驅(qū)動直流電機控制方式。電機旋轉(zhuǎn)方式控制端IN1控制端IN2控制端IN3控制端IN4輸入PWM信號改變脈寬可調(diào)速調(diào)速端A調(diào)速端BM1正轉(zhuǎn)高低//高/反轉(zhuǎn)低高//高/停止低低//高/M2正轉(zhuǎn)//高低/高反轉(zhuǎn)//低高/高停止低低///高表3-2-2控制方式3.2.2 步進電機驅(qū)動控制步進電機是一種將電脈沖轉(zhuǎn)化為角位移的執(zhí)行機構(gòu)。通俗一點講:當(dāng)步進驅(qū)動器接收到一個脈沖信號,它就驅(qū)動步進電機按設(shè)定的方向轉(zhuǎn)動一個固定的角度(與步進角)??梢酝ㄟ^控制脈沖個來控制角位移量,從而達到準(zhǔn)確定位的目的;同時可以通過控制脈沖頻率來控制電機轉(zhuǎn)動的速度和加速度,從而達到調(diào)速的目的。步進電機的主要特性:1、步進電機必須加驅(qū)動才可以運轉(zhuǎn),驅(qū)動信號必須為脈沖信號,沒有脈沖的時候,步進電機靜止,如果加入適當(dāng)?shù)拿}沖信號,就會以一定的角度(稱為步角)轉(zhuǎn)動。轉(zhuǎn)動的速度和脈沖的頻率成正比。2、28BYJ485V驅(qū)動的4相5線的步進電機,而且是減速步進電機,減速比為1:64,步進角為5.625/64度。如果需要轉(zhuǎn)動1圈,那么需要360/5.625*64=4096個脈沖信號。3、步進電機具有瞬間啟動和急速停止的優(yōu)越特性。4、改變脈沖的順序,可以方便的改變轉(zhuǎn)動的方向。在小車的設(shè)計中,單片機不能夠直接驅(qū)動步進電機,所以增加了ULN2003驅(qū)動電路來驅(qū)動步進電機,驅(qū)動電路如圖3-2-2所示:圖3-2-2ULN2003驅(qū)動電路在單片機的控制過建立數(shù)組調(diào)用端口值對與連接的ULN2003P0——P3口進行賦值。并通過賦值來控制步進電機的正反轉(zhuǎn)。如表3-2-2-1和表3-2-2-2所示:表3-2-2-1步進電機正向旋轉(zhuǎn)表表3-2-2-2步進電機反向旋轉(zhuǎn)表3.3 超聲波避障模塊US-100超聲波測距模塊可實現(xiàn)2cm~4.5m的非接觸測距功能,擁有2.4~5.5V的寬電壓輸入圍,靜態(tài)功耗低于2mA,自帶溫度傳感器對測距結(jié)果進行校正,同時具有GPIO,串口等多種通信方式,帶看門狗,工作穩(wěn)定可靠。模塊實物圖如圖3-3-1所示:圖3-3-1US-100實物圖本模塊共有兩個接口,即模式選擇跳線和5Pin接口。模式選擇跳線接口。模式選擇跳線的間距為2.54mm,當(dāng)插上跳線帽時為UART(串口)模式,拔掉時為電平觸發(fā)模式。小車控制采用UART模式控制。5Pin接口為2.54mm間距的彎排針,如圖3-3-2所示:圖3-3-2Pin接口從左到右依次編號1,2,3,4,5。它們的定義如下:1號Pin:接VCC電源(供電圍2.4V~5.5V)。2號Pin:當(dāng)為UART模式時,接外部電路UART的TX端;當(dāng)為電平觸發(fā)模式時,接外部電路的Trig端。3號Pin:當(dāng)為UART模式時,接外部電路UART的RX端;當(dāng)為電平觸發(fā)模式時,接外部電路的Echo端。4號Pin:接外部電路的地。5號Pin:接外部電路的地。US-100控制方式:在模塊上電前,首先插上模式選擇跳線上的跳線帽,使模塊處于串口觸發(fā)模式。在此模式下只需要在Trig/TX管腳輸入0X55(波特率9600),系統(tǒng)便可發(fā)出8個40KHZ的超聲波脈沖,然后檢測回波信號。當(dāng)檢測到回波信號后,模塊還要進行溫度值的測量,然后根據(jù)當(dāng)前溫度對測距結(jié)果進行校正,將校正后的結(jié)果通過Echo/RX管腳輸出。輸出的距離值共兩個字節(jié),第一個字節(jié)是距離的高8位(HDate),第二個字節(jié)為距離的低8位(LData),單位為毫米。即距離值為(HData*256+LData)mm。3.4 1602液晶模塊YB1602A是一種字符型液晶模塊。共可以顯示2行×16個字符,每個字符是由5×8點陣組成的字符塊集。YB1602A模塊控制方式如圖3-4-1所示:圖圖3-4-1控制電路表3-4-2是YB1602A的接口說明:管腳序電平電平功能描述1VSS0V電源地2VCC5.0V電源輸入3V0-LCD驅(qū)動電壓輸入4RSH/LRS=H,表示DB0-DB7為顯示數(shù)據(jù)RS=L,表示DB0-DB7為指令5R/WH/LR/W=H,數(shù)據(jù)被讀到DB9-DB7R/W=L,數(shù)據(jù)被寫到DB9-DB76EH,H→L使能信號7DB0H/L數(shù)據(jù)線8DB1H/L數(shù)據(jù)線9DB2H/L數(shù)據(jù)線10DB3H/L數(shù)據(jù)線11DB4H/L數(shù)據(jù)線12DB5H/L數(shù)據(jù)線13DB6H/L數(shù)據(jù)線14DB7H/L數(shù)據(jù)線15BLA5.0V背光正極(LEDK﹑BLK)16BLK0V背光負(fù)極(LEDA﹑BLA)表3-4-2YB1602A的接口說明備注:第3腳V0用來調(diào)節(jié)對比度,LCD的驅(qū)動電壓Vop=VDD-V0,YB1602的Vop是4.8V,此時顯示最佳對比度,故在5.0V供電模式下,可以在V0與電源地(0V)之間接一個10K的可調(diào)電位器來調(diào)節(jié)對比度。3.5 電源控制模塊智能小車供電鋰電池輸出7.4v電壓,一路接繼電器,為電機切換供電;另一路通過lm2596s穩(wěn)壓至5v為單片機、步進電機、超聲波模塊、1602顯示屏供電,同時接入繼電器,作為電機驅(qū)動切換供電。由lm2596s穩(wěn)壓得到的5v再由lm2577s升壓至7v為放大電路供電(調(diào)整放大倍數(shù)由8.4v直接為放大電路供電在電機啟動時會造成干擾,升壓電路主要作用是提供穩(wěn)壓)。LM2577電源升壓模塊,如圖3-5-1所示:圖3-5-1LM2577電源升壓模塊LM2596特點:LM2596開關(guān)電壓調(diào)節(jié)器是降壓型電源管理單片集成電路,能夠輸出3A的驅(qū)動電流,同時具有很好的線性和負(fù)載調(diào)節(jié)特性。固定輸出版本有3.3V、5V、12V,可調(diào)版本可以輸出小于37V的各種電壓。該器件部集成頻率補償和固定頻率發(fā)生器,開關(guān)頻率為150KHz,與低頻開關(guān)調(diào)節(jié)器相比較,可以使用更小規(guī)格的濾波元件。由于該器件只需4個外接元件,可以使用通用的標(biāo)準(zhǔn)電感,這更優(yōu)化了LM2596的使用,極簡化了開關(guān)電源電路的設(shè)計。LM2596電源穩(wěn)壓模塊,如圖3-5-2所示:圖3-5-2LM2596電源穩(wěn)壓模塊3.6 藍牙無線控制模塊藍牙技術(shù)是一種無線數(shù)據(jù)與語音通信的開放性全球規(guī),它以低成本的近距離無線連接為基礎(chǔ),為固定與移動設(shè)備通信環(huán)境建立一個特別連接的短程無線電技術(shù)。其實質(zhì)容是要建立通用的無線電空中接口(radioairinterface)與其控制軟件的公開標(biāo)準(zhǔn),使通信和算機進一步結(jié)合,使不同廠家生產(chǎn)的便攜式設(shè)備在沒有電線或電纜相互連接的情況下,能在近距離圍具有互用、相互操作的性能(interoperability)。其程序?qū)懺谝粋€9mm×9mm的微芯片中。

在android遙控模塊我們采用藍牙技術(shù)來無線傳輸信息,因為對安卓系統(tǒng)藍牙驅(qū)動不是很了解,短期不容易驅(qū)動,所以我們用成熟的藍牙耳機傳送特定頻率的正弦波信號,并且將信號通過lm324進行電壓放大,達到STC89C52RC芯片所需的TTL電平。芯片通過T1計數(shù)器檢測單位時間高電平個數(shù),以便識別所發(fā)出的特定信號后,單片機將進行判斷,從而進行執(zhí)行特定的工作。在準(zhǔn)確性方面我們通過兩次記錄高電平個數(shù),然后比較兩次是否一樣,防止波形失真對信號造成影響以此提高了智能車執(zhí)行命令的準(zhǔn)確性。如圖3-6-1所示,大康牌藍牙耳機:圖3-6-1大康牌藍牙耳機3.7 安卓平臺模塊控制平臺采用安卓平臺,主程序?qū)ο到y(tǒng)進行初始化之后,智能手機連接藍牙耳機后啟動控制程序,通過程序控制小車的行為。安卓端控制程序使用Eclipse搭配AndroidSDK進行開發(fā)。通過安裝ADT插件,使得開發(fā)者能夠可視化開發(fā)安卓應(yīng)用程序,可視化編程是與傳統(tǒng)的編程方式相比而言的,指的是無須編程,僅通過直觀的操作方式即可完成界面的設(shè)計工作。因此對于程序的界面布局,是通過相關(guān)控件的添加和設(shè)置來完成,而真正的控制代碼,則是通過對于相關(guān)控件的操作的響應(yīng)事件來完成的。事件是可以被控件識別的操作,如按下確定按鈕,選擇某個單選按鈕或者復(fù)選框。每一種控件有自己可以識別的事件,如窗體的加載、單擊、雙擊等事件。當(dāng)產(chǎn)生了一個事件,系統(tǒng)將會通過某種途徑調(diào)用類中的有關(guān)處理這個事件的方法或者觸發(fā)控件事件的對象就會調(diào)用該控件所有已注冊的事件處理程序,以達到事件的響應(yīng)和處理。而在該控制程序中,對于用戶的一個具體操作事件會調(diào)用相應(yīng)的處理程序,從而發(fā)射不同的信號,達到與小車通信的目的。4.系統(tǒng)的安裝與調(diào)試4.1 系統(tǒng)安裝4.1.1檢查元件的好壞按電路圖買好元件后首先檢查買回元件的好壞,按各元件的檢測方法分別進行檢測,一定要仔細認(rèn)真。而且要認(rèn)真核對原理圖是否一致,在檢查好后才可上件、焊件,防止出現(xiàn)錯誤焊件后不便改正。4.1.2放置、焊接各元件按原理圖的位置放置各元件,在放置過程中要先放置、焊接較低的元件,后焊較高的和要求較高的元件。特別是容易損壞的元件要后焊,在焊集成芯片時連續(xù)焊接時間不要超過10s,注意芯片的安裝方向。4.2 小車整體調(diào)試運行首先燒入電機控制程序,控制電機正反轉(zhuǎn),停止均正常。說明電機與驅(qū)動電路無誤。然后加入避障子程序,小車運轉(zhuǎn)正常時,調(diào)節(jié)超聲波模塊靈敏度使達到理想效果。接下來加入顯示距離子程序,看顯示模塊正常與否。在調(diào)試程序時,發(fā)現(xiàn)程序邏輯不是太正確,液晶延時較長,比如小車進入自動模式后,如何從循環(huán)中跳出自動模式,另外軟件程序中的延時有的過長、有的過短。與之類似的現(xiàn)象比較多,在此不逐一列舉。特別是步進電機開始沒有加ULN2003驅(qū)動電路,導(dǎo)致步進電機運轉(zhuǎn)不正常,經(jīng)過很長時間調(diào)試之后,才意識到了這個問題。待各個模塊調(diào)試運行好了之后,將整個控制程序燒入,進行硬件軟件整體測試,并觀察小車運行狀態(tài)是否正常。實際調(diào)試之后,發(fā)現(xiàn)程序邏輯在驅(qū)動各個模塊時,出現(xiàn)了問題,因此在不斷的修改控制程序之后,小車的整體狀態(tài)趨于正常,基本實現(xiàn)了所要求的功能。在這個過程中也遇到了比較多的問題,雖然各個模塊測試完整,但是將其組合到一塊,進行整體測試的時候,問題就會暴露出來,因此,在問題出現(xiàn)之后怎樣定位問題,并快速解決就是一個問題。比如,發(fā)現(xiàn)控制程序中默認(rèn)小車在遇到障礙物20cm的時候停止,但是實際測試發(fā)現(xiàn),并不會停止,而是小車前行一段距離之后碰到障礙物才會停下來,之后通過思考發(fā)現(xiàn)是由于液晶顯示距離的時候延時較長,導(dǎo)致整個車體反應(yīng)不太靈敏所致。5.結(jié)論與展望本智能小車電路在硬件上采用了超聲波傳感器來測量小車距前方障礙物的距離,顯示結(jié)果快速,準(zhǔn)確。由于采用雙電源供電使系統(tǒng)的抗干擾性得到加強;電磁繼電器的應(yīng)用解決了電動機驅(qū)動效率和電機速度控制的問題;在軟件上,充分利用了89C52的系統(tǒng)資源,使智能小車完美的實現(xiàn)了障礙檢測、距離測量、速度切換等功能。課題中完成的工作任務(wù)如下:設(shè)計,制作了智能小車的硬件部分。硬件部分包括電機驅(qū)動,無線藍牙控制,LCD液晶顯示,電源接口設(shè)計,超聲波控制。本設(shè)計結(jié)構(gòu)簡單,調(diào)試方便,系統(tǒng)反映快速靈活,硬件電路由可拆卸模塊拼接而成,有很大的擴展空間。經(jīng)驗收測試,該智能小車設(shè)計方案正確、可行,各項指標(biāo)穩(wěn)定。經(jīng)測定,小車在無障礙物情況下勻速行駛速度約為16.2m/min,距障礙物安全距離為20cm,前方有障礙物時左轉(zhuǎn)避障,左右有障礙物時向相反方向避障,若小車前方、左側(cè)、右側(cè)均有障礙物時,小車旋轉(zhuǎn)180度倒車,然后前行。雖然智能小車系統(tǒng)有很多優(yōu)點,但在設(shè)計當(dāng)中也存在著一些不足。如超聲波模塊受溫度的影響比較大,由于時間關(guān)系沒有添加溫度補償措施,所以在使用中需要注意環(huán)境影響。另外小車?yán)靡壕э@示前方距離障礙物距離與小車狀態(tài),與直流電機驅(qū)動之間相互有影響,實際測量發(fā)現(xiàn)液晶顯示延時較長,導(dǎo)航直流電機驅(qū)動控制與超聲波傳感器控制之間不能夠很好的協(xié)調(diào)。小車經(jīng)過測試,運行結(jié)果良好。硬件上沒有錯誤,主要瓶頸在于探測模塊的靈敏度,因為軟件完全靠探測模塊返回的信號作為依據(jù)進行下一步控制的操作,無法確認(rèn)該信號是否準(zhǔn)確,使小車轉(zhuǎn)彎欠準(zhǔn)確與智能。智能小車技術(shù)是一項具有廣泛應(yīng)用前景的技術(shù),在科學(xué)探測,工業(yè)應(yīng)用,軍事偵察領(lǐng)域和圍繞人們?nèi)粘I畹酶鱾€方面都有大量的應(yīng)用需求。本課題的設(shè)計對于智能小車的功能開發(fā)有這重要的意義。致經(jīng)過一學(xué)期的學(xué)習(xí)和忙碌,本次畢業(yè)設(shè)計已經(jīng)接近制作的尾聲,作為一個缺乏實踐本科生的畢業(yè)設(shè)計,由于缺少設(shè)計、動手制作的經(jīng)驗,難免有許多疏漏,會有很多考慮不周全的地方,如果沒有導(dǎo)師長期的督促指導(dǎo)幫助,以與身邊一起努力工作的同學(xué)們的支持,想要完成這個畢業(yè)設(shè)計是很難想象的。在這里最要感的是我的導(dǎo)師琦老師。老師平日里課業(yè)量很大,工作繁重,但在我做畢業(yè)設(shè)計的整段時間,從查閱資料到學(xué)習(xí)相關(guān)專業(yè)知識,到設(shè)計草案的修改和確定,期中檢查,后期詳細設(shè)計方案與思路,裝配草圖,調(diào)試程序,組裝小車等整個過程中都給予了我悉心的指導(dǎo)和幫助。我的設(shè)計較為復(fù)雜煩瑣,但是老師仍然細心地糾正設(shè)計中的錯誤和不當(dāng)之處。除了敬佩老師的專業(yè)知識水平外,他的治學(xué)嚴(yán)謹(jǐn)和科學(xué)研究的精神也是我永遠學(xué)習(xí)的榜樣,并將積極影響我今后的學(xué)習(xí)和工作。通過我們師生的共同努力,本設(shè)計最終調(diào)試成功并順利完成題目所有指標(biāo)。在此我不光要我的畢業(yè)設(shè)計導(dǎo)師,還要在設(shè)計期間給予我?guī)椭膶嶒炇业睦蠋熀屯瑢W(xué)們,感他們?yōu)槲覀兲峁嶒炂鞑暮驼{(diào)試場地。其次要感我的同學(xué)對我無私的幫助,特別是在軟件的使用方面,正因為如此我才能順利的完成設(shè)計,我要感我的母?!]電大學(xué),是母校給我們提供了優(yōu)良的學(xué)習(xí)環(huán)境;另外,我還要感那些曾給我授過課的每一位老師,是你們教會我專業(yè)知識。最后,對在畢業(yè)設(shè)計期間給予我?guī)椭乃欣蠋熀屯瑢W(xué)表示最誠摯地感和最衷心祝福!參考文獻[1]袁東編著《51單片機應(yīng)用開發(fā)實戰(zhàn)手冊》電子工業(yè)[2]宋戈等編著《51單片機開發(fā)例大全》人民郵電[3]雷伏容編著《51單片機常用模塊設(shè)計查詢手冊》清華大學(xué)[4]建領(lǐng)編著《51系列單片機開發(fā)寶典》電子工業(yè)[5]輝雄著《智能電動小車的設(shè)計》電子報,2005-05-15,第(11)期[6]建法著《超聲波測距的電路設(shè)計與單片機編程》師學(xué)院學(xué)報[7]徐瑋著《51單片機實現(xiàn)進步電機控制》電子制作,2006第(11)期[8]鳳然《基于單片機的超聲波測距系統(tǒng)》傳感器世界.2001,第(8)期附錄1:智能小車車體實物圖智能小車正面圖智能小車背面圖附錄2:智能小車主控制程序#include<reg51.h>#include<intrins.H>#defineucharunsignedchar#defineuintunsignedint#defineulongunsignedlonguinttimIrqFlag; //定時器中斷標(biāo)志uintdiffSignd; //為了是更精確的讀取信號,讀取兩個10ms的高電平個數(shù)進行比較,一樣則執(zhí)行不同則繼續(xù)采集信息ulongwaveS=0; //記錄超聲波測量的左右距離,以便進行比較ulongwaveL=0;ulongwaveR=0;ucharstepSpeed; //決定步進電機轉(zhuǎn)動速度uinttime=0;sbitWAVERX=P3^6; //超聲波模塊接口sbitWAVETX=P3^7;sbitlcdrs=P2^0; //lcd1602命令接口sbitlcden=P2^1;#definelcdComP0sbitchange_v=P3^4; //繼電器接口,即變速sbitLeftOne=P2^2; /*電機接口*/sbitLeftTwo=P2^3;sbitRightOne=P2^4;sbitRightTwo=P2^5;sbitcarEnableA=P2^6; /*L298使能端*/sbitcarEnableB=P2^7;/*LCD顯示接口*/ucharcodetable1[8][16]={"","Auto", "back", "turnleft", "--turnright", "-changespeet--", "GO", "--Telecontrol--"}; ucharcodetable2[]="0123456789";ucharcodetable3[4]={0x03,0x06,0x0c,0x09};/*左轉(zhuǎn)表*/ucharcodetable4[4]={0x03,0x09,0x0c,0x06};/*右轉(zhuǎn)表*/ucharsignOne; //記錄兩次采集聲音信號的參數(shù)ucharsignTwo;/**********功能延時1ms**********/voiddelay(uinttime){ uinti,j; time*=10; for(i=time;i>0;i--) for(j=112;j>0;j--) { ; }} /**********功能延時1ms**********/voiddelay1(uinttime){ uinti,j; for(i=time;i>0;i--) for(j=112;j>0;j--) { ; }} /**********電機驅(qū)動模塊***************//** 避障小車初始化,默認(rèn)前行******************/voidinitMotor(void) { LeftOne=1;LeftTwo=0;RightOne=1;RightTwo=0;carEnableA=1;carEnableB=1;}/***避障小車前進**********************/voidcarGo(void) {LeftOne=1;LeftTwo=0;RightOne=1;RightTwo=0;}/*******避障小車停*********************/voidcarStop(void) {LeftOne=0;LeftTwo=0;RightOne=0;RightTwo=0;}/**避障小車左轉(zhuǎn)*******************************/voidcarTurnLeft(void) {LeftOne=0;LeftTwo=1;RightOne=1;RightTwo=0;delay(50);//LeftOne=0;LeftTwo=0;}/**避障小車右轉(zhuǎn)****************************/voidcarTurnRight(void) {LeftOne=1;LeftTwo=0;RightOne=0;RightTwo=1;delay(50);//LeftOne=0;RightTwo=0;}/*避障小車后退************************/voidcarBack(void) {LeftOne=0;LeftTwo=1;RightOne=0;RightTwo=1;}/**********定時器模塊***************//**********定時器初始化程序***************/voidtimerInit(){ EA=1; ET0=1;TMOD=0x51; //T0計時T1計數(shù) TH0=(65536-10000)/256; //T0計時10msTL0=(65536-10000)%256; TL1=0; TH1=0; TR0=1; TR1=1; }/********定時器中斷********/voidtimerInterrupt(void)interrupt1{ TH0=(65536-10000)/256; //定時器重新賦值TL0=(65536-10000)%256; timIrqFlag=1; //中斷標(biāo)志}/***********液晶顯示模塊*************//***********lcd寫指令*************/voidlcdWriteCom(uchar){lcdrs=0; lcdCom=; delay(2); lcden=1; delay(2); lcden=0;}/***********lcd寫數(shù)據(jù)****************/voidlcdWriteData(uchardate){lcdrs=1; lcdCom=date; delay(2); lcden=1; delay(2); lcden=0;}/**********lcd顯示**********/voidlcdShow(){ uchark; lcdWriteCom(0x80+0x00); //第一行顯示 for(k=0;k<15;k++) { lcdWriteData(table1[signTwo][k]); //delay(2); } lcdWriteCom(0x80+0x40); //第二行顯示 lcdWriteData(table2[signTwo]);// delay(2);}/***********lcd初始化*****************/voidlcdInit(){ lcden=0; lcdWriteCom(0x38); lcdWriteCom(0x0f); lcdWriteCom(0x06); lcdWriteCom(0x01);}/************顯示測試距離*************/voidshowDistance(ulongdistance){ uintone,ten,hun; //距離的個,十,百, lcdWriteCom(0x01); /*清屏*/ lcdShow(); one=distance%10; ten=distance%100/10; hun=distance%1000/100; lcdWriteCom(0x80+0x40); lcdWriteData(table2[hun]); //delay(3); lcdWriteData(table2[ten]); //delay(3); lcdWriteData(table2[one]); //delay(3);}/*超聲波模塊*//*計算距離*/voidwaveDistance(void){ time=TH0*256+TL0; TH0=0; TL0=0; waveS=(time*1.7)/100;//計算的單位是CM}voidstepMonLeft(void) //步進電機左轉(zhuǎn){ uinti,j; j=0; for(i=0;i<456;i++) { P1=0x00; P1=table3[j]; j++; if(j>=4) j=0; delay1(stepSpeed); }}voidstepMonRight(void) //步進電機右轉(zhuǎn){ uinti,j; j=0; for(i=0;i<420;i++) { P1=0x00; P1=table4[j]; j++; if(j>=4) j=0; delay1(stepSpeed); }}/**********************啟動模塊***********************/voidsuperWaveInit(void) //啟動模塊{ uchari; WAVETX=1; for(i=0;i<5;i++) //產(chǎn)生大于0.01ms的高電平 { _nop_(); } WAVETX=0; while(!WAVERX); //當(dāng)RX為零時等待 TR0=1; //開啟計數(shù) while(WAVERX); //當(dāng)RX為1計數(shù)并等待 TR0=0; //關(guān)閉計數(shù)waveDistance(); //計算}/*****************超聲波自動模式****************/voidsuperWave(void){ TH0=0; //此時T0用來計時計算距離 TL0=0; do {// carBack(); TH1=0; //把T1高位賦為0,經(jīng)調(diào)試知道當(dāng)外部信號頻率大于7k是,TH1在一次循環(huán)中將增加,在while后邊判斷TH1以便跳出循環(huán)superWaveInit(); delay(1); if(waveS>40) //當(dāng)前方距離大于40cm是繼電器閉合,小車高速模式 change_v=1; else change_v=0; //小于40cm低速模式 if(waveS>20) //距離大于20cm繼續(xù)前行 { carGo(); }else //小車在距離障礙物小于20cm是停車并判斷左右距離{ carStop(); stepMonLeft(); //步進電機左轉(zhuǎn)90度superWaveInit();waveL=waveS; stepMonRight(); stepMonRight(); //右轉(zhuǎn)90 superWaveInit(); waveR=waveS; stepMonLeft(); //回到原位置 if(waveL<20&&waveR<20) //如果左右距離都小于設(shè)定值小車旋轉(zhuǎn)180返回 { carTurnLeft(); carTurnLeft(); carStop();} else { //判斷左右距離選擇最佳路徑 if(waveL>waveR) { carTurnLeft(); carStop(); } else { carTurnRight(); carStop(); } }} // showDistance(waveS); //實時顯示前方障礙物的距離}while(TH1<4); //當(dāng)外部輸入大于7k頻率信號跳出循環(huán),進入遙控模式} /************主程序**********/voidmain(void){change_v=0;stepSpeed=4; diffSignd=1;//芯片通過T1計數(shù)器檢測單位時間高電平個數(shù),以便識別所發(fā)出的特定信號。 timIrqFlag=1; lcdInit(); //lcd初始化 timerInit(); //定時器初始化 initMotor();//電機初始化 while(1) { if(timIrqFlag==1) //定時器中斷 { TR0=0; timIrqFlag=0; ++diffSignd; if(diffSignd%2==0) //檢測兩次信號 signOne=TL1/10; else signTwo=TL1/10; if(signTwo!=0&&signOne==signTwo) //判斷兩次記錄的信號是否相等 { switch(signTwo) //switch選擇各種指令 { case0x06:carGo();break; case0x02:carBack();break; case0x03:carTurnLeft();break; case0x04:carTurnRight();break; case0x05:change_v=~change_v;break; case0x01:superWave();break; default:break; } lcdShow(); //顯示手機中斷輸入的各個指令 diffSignd=1; carStop(); } elseif(diffSignd%2!=0) { signOne=0; signTwo=0; } TL1=0; TR0=1; } }}附錄3:安卓智能手機控制程序publicclassMainActivityextendsActivity{ privatestaticintmodelFlag=0; privateButtonup;// privateButtondown; privateButtonleft; privateButtonright; privateButtonpause; privateButtonmodel; privateMediaPlayermediaPlayerUp; privateMediaPlayermediaPlayerDown; privateMediaPlayermediaPlayerLeft; privateMediaPlayermediaPlayerRight; privateMediaPlayermediaPlayerPause; privateMediaPlayermediaPlayerRemote; privateMediaPlayermediaPlayerAuto;// booleanflag=true; Override publicvoidonCreate(BundlesavedInstanceState){ super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); this.up=(Button)findViewById(R.id.up); this.down=(Button)findViewById(R.id.down); this.left=(Button)findViewById(R.id.left); this.right=(Button)findViewById(R.id.right); this.pause=(Button)findViewById(R.id.pause); this.model=(Button)findViewById(R.id.model); model.setText("手動\n模式"); mediaPlayerUp=MediaPlayer.create(getApplicationContext(),R.raw.up); mediaPlayerDown=MediaPlayer.create(getApplicationContext(), R.raw.down); mediaPlayerLeft=MediaPlayer.create(getApplicationContext(), R.raw.left); mediaPlayerRight=MediaPlayer.create(getApplicationContext(), R.raw.right); mediaPlayerPause=MediaPlayer.create(getApplicationContext(), R.raw.pause); mediaPlayerAuto=MediaPlayer.create(getApplicationContext(), R.raw.remote); mediaPlayerRemote=MediaPlayer.create(getApplicationContext(), R.raw.remote); try{ mediaPlayerUp.prepare(); mediaPlayerDown.prepare(); mediaPlayerLeft.prepare(); mediaPlayerRight.prepare(); mediaPlayerPause.prepare(); mediaPlayerAuto.prepare(); mediaPlayerRemote.prepare(); }catch(Exceptione){ e.printStackTrace(); } this.pause.setOnClickListener(newButtonListener()); this.model.setOnClickListener(newButtonListener()); this.up.setOnTouchListener(newOnTouchListener(){ publicbooleanonTouch(Viewv,MotionEventevent){ MyThreadmyThread=newMyThread(); switch(v.getId()){ caseR.id.up: if(event.getAction()==KeyEvent.ACTION_DOWN){ flag=true; myThread.start(); break; } if(event.getAction()==KeyEvent.ACTION_UP){ fla

溫馨提示

  • 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論