超聲波避障小車(共19頁(yè))_第1頁(yè)
超聲波避障小車(共19頁(yè))_第2頁(yè)
超聲波避障小車(共19頁(yè))_第3頁(yè)
超聲波避障小車(共19頁(yè))_第4頁(yè)
超聲波避障小車(共19頁(yè))_第5頁(yè)
已閱讀5頁(yè),還剩19頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、單片機(jī)課程設(shè)計(jì)設(shè)計(jì)(shj)報(bào)告設(shè)計(jì)(shj)課題: 超聲波避障小車(xioch) 專業(yè)班級(jí): 電子信息工程121班 學(xué)生姓名: 范東耀 指導(dǎo)教師: 蔡崗 設(shè)計(jì)時(shí)間: 2015年7月8日 贛南師范學(xué)院科技學(xué)院數(shù)學(xué)與信息科學(xué)系 超聲波避障小車一、設(shè)計(jì)任務(wù)(rn wu)與要求1.設(shè)計(jì)(shj)任務(wù):1、采用(ciyng)超聲波模塊實(shí)現(xiàn)小車自動(dòng)避障功能。2、用LCD1602顯示當(dāng)前的障礙距離。2.擴(kuò)展部分: 測(cè)出當(dāng)前小車的行駛速度,并用LCD1602顯示當(dāng)前速度。二、方案設(shè)計(jì)與論證 1設(shè)計(jì)方案系統(tǒng)采用51單片機(jī)作為核心控制單元用于智能車系統(tǒng)的控制,驅(qū)動(dòng)板則以L289N驅(qū)動(dòng)芯片為核心,應(yīng)用超聲波模塊及

2、光電傳感器和LCD液晶模塊,成功的實(shí)現(xiàn)了小車的避障、測(cè)速和顯示功能這三大功能。在超聲波檢測(cè)到障礙物之后,主控芯片根據(jù)距離值控制電機(jī)的轉(zhuǎn)動(dòng),在與障礙物距離較大的情況下,快速前進(jìn),在與障礙物距離較小但未到達(dá)臨界轉(zhuǎn)彎方向值得時(shí)候,慢速前進(jìn)。在與障礙物距離較近時(shí),小車轉(zhuǎn)彎,在與障礙物很近時(shí),小車后退轉(zhuǎn)彎,來進(jìn)行避障。測(cè)速傳感器為光電測(cè)速傳感器,在單位時(shí)間內(nèi)計(jì)算脈沖的次數(shù),然后再進(jìn)行轉(zhuǎn)換和處理即得到所測(cè)量的速度。通過軟件pwm進(jìn)行調(diào)速。通過LCD1602顯示障礙距離及當(dāng)前的小車行駛速度。2 原理框圖簡(jiǎn)要原理框圖如圖1所示。 圖1 系統(tǒng)原理框圖三、電路設(shè)計(jì)1 電路設(shè)計(jì)(1)超聲波測(cè)距模塊(m kui):超

3、聲波測(cè)距的原理是首先利用單片機(jī)輸出一個(gè)40kHz的觸發(fā)信號(hào),把觸發(fā)信號(hào)通過TRIG管腳輸入(shr)到超聲波測(cè)距模塊,再由超聲波測(cè)距模塊的發(fā)射器向某一方向發(fā)射超聲波,在發(fā)射時(shí)刻的同時(shí)單片機(jī)通過軟件開始計(jì)時(shí),超聲波在空氣中傳播,途中碰到障礙物返回,超聲波測(cè)距模塊的接收器收到反射波后通過產(chǎn)生一個(gè)回應(yīng)信號(hào)并通過ECHO腳反饋給單片機(jī),此時(shí)單片機(jī)就立即停止計(jì)時(shí)。時(shí)序圖如圖1所示。由于超聲波在空氣中的傳播速度為340m/s,根據(jù)(gnj)計(jì)時(shí)器記錄的時(shí)間t,就可以計(jì)算出發(fā)射點(diǎn)距障礙物的距離,即:S=VT/2,通過單片機(jī)來算出距離。超聲波測(cè)距原理圖如圖2所示。圖2 超聲波測(cè)距原理(2)顯示模塊:系統(tǒng)采用L

4、CD1602顯示,它不僅節(jié)省了單片機(jī)的資源,相比較數(shù)碼管液晶顯示更加直觀、節(jié)能,同時(shí)可以直接顯示字母、數(shù)字、符號(hào)等,具有靈活易操作的特性。故采用LCD顯示。引腳功能(gngnng)說明:LCD1602采用標(biāo)準(zhǔn)(biozhn)的16腳(帶背光)接口,各引腳接口說明如表1所示:表1 LCD1602引腳說明(shumng)編號(hào)符號(hào)引腳說明編號(hào)符號(hào)引腳說明1VSS電源地9D2數(shù)據(jù)2VDD電源正極10D3數(shù)據(jù)3VL液晶顯示偏壓11D4數(shù)據(jù)4RS數(shù)據(jù)/命令選擇12D5數(shù)據(jù)5R/W讀/寫選擇13D6數(shù)據(jù)6E使能信號(hào)14D7數(shù)據(jù)7D0數(shù)據(jù)15BLA背光源正極8D1數(shù)據(jù)16BLK背光源負(fù)極(3)電機(jī)驅(qū)動(dòng)模塊:本

5、系統(tǒng)采用由雙極性管組成的H橋電路(L298N)。用單片機(jī)控制晶體管使之工作在占空比可調(diào)的開關(guān)狀態(tài),精確調(diào)整電機(jī)轉(zhuǎn)速。這種電路由于工作在管子的飽和截止模式下,則效率非常高;H橋電路保證了可以簡(jiǎn)單地實(shí)現(xiàn)轉(zhuǎn)速和方向的控制,電子開關(guān)的速度很快,穩(wěn)定性也很高。而且它有更強(qiáng)的驅(qū)動(dòng)能力。L298N有過電流保護(hù)功能,當(dāng)出現(xiàn)電機(jī)卡死時(shí),可以保護(hù)電路和電機(jī)等。 驅(qū)動(dòng)電機(jī)的運(yùn)行,I/O端口狀態(tài)與電機(jī)制動(dòng)對(duì)照表,如下表2所示。表2 I/O端口狀態(tài)與電機(jī)制動(dòng)對(duì)照表IN1IN2IN3IN4EN1EN2轉(zhuǎn)速101011正轉(zhuǎn)010111反轉(zhuǎn)111111停止000011停止XXXX00停止(4)光耦傳感器光耦傳感器原理是傳感器

6、開孔圓盤(yun pn)的轉(zhuǎn)軸與減速電機(jī)轉(zhuǎn)軸相連,光源的光通過開孔盤的孔和縫隙反射到光敏元件上,開孔盤旋轉(zhuǎn)體轉(zhuǎn)一周,光敏元件上照到光的次數(shù)等于盤上的開孔數(shù),從而測(cè)出旋轉(zhuǎn)體旋轉(zhuǎn)速度。靈敏度較高,但容易受外界光源的影響。雖然光電傳感器受外界光源影響很大,但是它使用方便、安裝簡(jiǎn)單,還有本設(shè)計(jì)要求的準(zhǔn)確度不是很高,因此就選擇了光耦測(cè)速傳感器。光耦測(cè)速傳感器的原理圖如圖3所示。圖3 光耦測(cè)速傳感器原理圖2 主要(zhyo)性能參數(shù)計(jì)算當(dāng)單片機(jī)的給一個(gè)20us的觸發(fā)信號(hào)給超聲波模塊時(shí),TRIG由低電平轉(zhuǎn)換為高電平,TRIG=1,單片機(jī)開時(shí)計(jì)時(shí),開啟中斷,并記錄時(shí)間為T1,接收換能器等待接收回波,ECHO持

7、續(xù)(chx)為高電平的時(shí)間為發(fā)射時(shí)間。換能器接收回波將超聲波轉(zhuǎn)換為電信號(hào),送至單片機(jī),記錄時(shí)間為T2。超聲波發(fā)射的時(shí)間為:T2-T1,C為聲速,計(jì)算發(fā)射距離為: L = (T2-T1)*C/2 。速度的計(jì)算是通過小車輪胎(lnti)的周長(zhǎng)除以測(cè)碼盤轉(zhuǎn)過孔的個(gè)數(shù),得出一個(gè)碼盤孔對(duì)應(yīng)的長(zhǎng)度為1CM,通過定時(shí)器取1秒時(shí)間(shjin),1秒轉(zhuǎn)過的碼盤孔個(gè)數(shù)就是速度。3程序(chngx)流程圖本設(shè)計(jì)系統(tǒng)軟件由主程序定時(shí)子程序、電機(jī)驅(qū)動(dòng)子程序中斷子程序、顯示子程序算法子程序構(gòu)成。主程序流程圖如圖4所示。定時(shí)器計(jì)數(shù)器初始化測(cè)當(dāng)前速度驅(qū)動(dòng)電機(jī)轉(zhuǎn)向計(jì)算障礙距離打開中斷允許液晶顯示初始化定時(shí)器計(jì)數(shù)器初始化開始啟

8、動(dòng)超聲波模塊收到回波信號(hào)圖4主程序流程圖四、電路(dinl)制作及調(diào)試1 實(shí)物圖通過以上(yshng)步驟,制作出實(shí)物圖。正面圖如圖5所示,反面圖如圖6所示。圖5 實(shí)物圖正面(zhngmin)圖6 實(shí)物圖反面2 電路調(diào)試測(cè)試在小車的調(diào)試的過程中,碰到的最大的問題就是程序有時(shí)會(huì)跑飛,起初我覺得出現(xiàn)問題的原因是有以下三點(diǎn),第一,程序的編寫過于繁雜,數(shù)據(jù)處理和邏輯判斷太多,芯片處理不過來,第二,數(shù)據(jù)經(jīng)過處理后,傳送出去未來得及經(jīng)過處理就已經(jīng)改變了值,導(dǎo)致芯片來不及處理而跑飛,第三,數(shù)據(jù)的類型沒有定義(dngy)好,導(dǎo)致數(shù)據(jù)的值超過定義的類型的極限。經(jīng)過幾天的程序調(diào)試,我簡(jiǎn)化了程序的編寫,在重要數(shù)據(jù)的

9、傳送過程中加入了延時(shí)函數(shù),保證數(shù)據(jù)有充足的傳送時(shí)間,并把各種參數(shù)定義的類型檢查了幾遍,結(jié)果并沒有解決程序跑飛的問題。最后我發(fā)現(xiàn)問題出在電源上,由于小車負(fù)載較多,電源帶載能力有限,導(dǎo)致芯片受到干擾而跑飛,我將耗電能力較強(qiáng)的直流電機(jī)的電源斷開,電源只給芯片和其他模塊供電,程序能夠良好的運(yùn)行。最后我通過在程序中加入“看門狗”的程序,判斷程序是否跑飛,若程序跑飛,將軟件復(fù)位(f wi)。能有效的解決程序跑飛的問題。在做測(cè)速模塊時(shí),發(fā)現(xiàn)單片機(jī)的資源不夠用,單片機(jī)只有兩個(gè)定時(shí)器,我在做超聲波測(cè)距時(shí)已經(jīng)用了一個(gè)定時(shí)器的計(jì)數(shù)模式做測(cè)距,小車的PWM調(diào)速用了一個(gè)定時(shí)器。而做測(cè)速還需要兩個(gè)定時(shí)器,一個(gè)定時(shí)器做計(jì)數(shù)

10、,計(jì)碼盤轉(zhuǎn)的圈數(shù),一個(gè)定時(shí)器定1秒的時(shí)間,從而可以算出當(dāng)前的小車速度。我通過(tnggu)學(xué)習(xí),了解了定時(shí)器復(fù)用,可以從PWM中的1MS定時(shí)做處理,取出1S的時(shí)間,用外部中斷計(jì)碼盤的圈數(shù),再通過數(shù)據(jù)處理,可以得出小車的速度。 3 元件清單元件清單如表3所示。表3 元件清單器件型號(hào)數(shù)量單價(jià)合計(jì)電阻10K 1M 1k各2個(gè)0.10.6電容0.1u 10u各1個(gè)0.30.6三極管90132個(gè)0.20.4超聲波模塊HC-SR041個(gè)3.83.8液晶顯示屏LCD16021個(gè)5.15.1電機(jī)驅(qū)動(dòng)模塊L298N1個(gè)88測(cè)速傳感器光耦窄槽版2個(gè)3.63.6單片機(jī)89C521個(gè)3.63.6底盤輪胎電機(jī)1個(gè)28.

11、528.5合計(jì)1754.2元五 參考文獻(xiàn) 1潘永雄.沙河.電子線路CAD實(shí)用教程(第四版)M.西安電子科技大學(xué)出版社,2012.2高吉祥(jxing).電子技術(shù)基礎(chǔ)實(shí)驗(yàn)(shyn)與課程設(shè)計(jì)(第二版)M.電子工業(yè)出版社,2005. 3王港元(n yun).電子設(shè)計(jì)制作基礎(chǔ)M.江西科學(xué)技術(shù)出版社,2011. 4彭介華.電子技術(shù)課程設(shè)計(jì)指導(dǎo)M.高等教育出版社,2009.5陳伯時(shí).電力拖動(dòng)自動(dòng)控制系統(tǒng)M.機(jī)械工業(yè)出版社,2012. 贛南師范學(xué)院科技(kj)學(xué)院2014-2015學(xué)年第二(d r)學(xué)期期末考試單片機(jī)課程設(shè)計(jì)成績(jī)(chngj)評(píng)定表專業(yè): 電子信息工程 班級(jí): 121班 學(xué)號(hào): 1220

12、085110 姓名: 范東耀 課題名稱超聲波避障小車設(shè)計(jì)任務(wù)與要求1.設(shè)計(jì)任務(wù):1、采用超聲波模塊實(shí)現(xiàn)小車自動(dòng)避障功能。2、用LCD1602顯示當(dāng)前的障礙距離。2.擴(kuò)展部分: 測(cè)出當(dāng)前小車的行駛速度,并用LCD1602顯示當(dāng)前速度。評(píng)分標(biāo)準(zhǔn)基本功能(50)焊接制作(10)程序設(shè)計(jì)(10)擴(kuò)展功能(20)個(gè)人發(fā)揮(10)總分(100)指導(dǎo)老師時(shí)間: 年 月 日#include #include #define uchar8 unsigned char#define uint16 unsigned int#define pwm_left 70 /設(shè)置(shzh)左右兩邊的PWM都為45sfr WD

13、T_CONTR = 0 xE1; /用sfr定義看門狗特殊(tsh)功能寄存器#define RX P3_1 /收#define TX P3_0 /發(fā)#define LCM_RW P2_5 /定義(dngy)LCD引腳#define LCM_RS P2_6#define LCM_E P2_7#define LCM_Data P0#define Busy 0 x80 /0124用于檢測(cè)LCM狀態(tài)字中的Busy標(biāo)識(shí)sbit tracking_right1 = P1 4; /右邊電機(jī)sbit tracking_right2 = P1 5;sbit tracking_left1 = P1 2;/左邊電

14、機(jī)sbit tracking_left2 = P1 3;sbit pwm2 = P1 7;uint16 count1=0,count2=0,F=0;uint16 tmp=0;void LCMInit(void);void DisplayOneChar(unsigned char X, unsigned char Y, unsigned char DData);void DisplayListChar(unsigned char X, unsigned char Y, unsigned char code *DData);void Delay5Ms(void);void Delay400Ms(v

15、oid);void Decode(unsigned char ScanCode);void WriteDataLCM(unsigned char WDLCM);void WriteCommandLCM(unsigned char WCLCM,BuysC);unsigned char ReadDataLCM(void);unsigned char ReadStatusLCM(void);unsigned char code email =juli;unsigned char code ASCII20 =0,1,2,3,4,5,6,7,8,9,.,-,M,m,/,s,S,=,V,c;unsigne

16、d char code A = sudu;static unsigned char DisNum = 0; /顯示用指針 unsigned int time=0; unsigned long S=0; bit flag =0; unsigned char disbuff4 = 0,0,0,0,; /超聲波距離值賦值進(jìn)來 unsigned char disbuffsudu4= 1,2,3,4,;/速度值賦值進(jìn)來void delayms(uint16 c)uint16 a,b;for(a=0;ac;a+)for(b=0;b113;b+);void turn_left() /左轉(zhuǎn)(zu zhun)函

17、數(shù)tracking_right1 = 1;tracking_right2 = 0;tracking_left1 = 0;tracking_left2 = 0;void big_left() /大左轉(zhuǎn)(zu zhun)函數(shù)tracking_right1 = 1;tracking_right2 = 0;tracking_left1 = 0;tracking_left2 = 1;void turn_right() /右轉(zhuǎn)函數(shù)(hnsh)tracking_right1 = 0;tracking_right2 = 0;tracking_left1 = 1;tracking_left2 = 0;void

18、go_straight() /直走函數(shù)tracking_right1 = 1;tracking_right2 = 0;tracking_left1 = 1;tracking_left2 = 0;void right_back()/右后退函數(shù)tracking_right1 = 0;tracking_right2 = 1;tracking_left1 = 0;tracking_left2 = 0;void left_back()/左后退函數(shù)tracking_right1 = 0;tracking_right2 = 0;tracking_left1 = 0;tracking_left2 = 1;vo

19、id tracking(S) /避障函數(shù)(hnsh) if(S15)&(S30) turn_right(); delayms(10); else go_straight();delayms(10);void Timer1Init(void) /pwmTMOD &= 0 x0F;/設(shè)置(shzh)定時(shí)器模式TMOD |= 0 x10;/設(shè)置(shzh)定時(shí)器模式TL1 = 0 x66;/設(shè)置定時(shí)初值TH1 = 0 xFC;/設(shè)置定時(shí)初值 ,定時(shí)1MSTF1 = 0;/清除TF0標(biāo)志TR1 = 1;/定時(shí)器0開始計(jì)時(shí)EA=1;/開總中斷 ET1=1;/開定時(shí)器1中斷void serve_T1()

20、interrupt 3 /pwm TL1 = 0 x66;/設(shè)置定時(shí)初值TH1 = 0 xFC;/設(shè)置定時(shí)初值count1+;if(+count2=(pwm_left) pwm2=1; else if(count20 x19) /若到達(dá)字串尾則退出if (X =900)|flag=1) /超出(choch)測(cè)量范圍顯示“-” flag=0; DisplayOneChar(9, 0, ASCII11); DisplayOneChar(10, 0, ASCII10);/顯示(xinsh)點(diǎn) DisplayOneChar(11, 0, ASCII11); DisplayOneChar(12, 0,

21、ASCII11); DisplayOneChar(13, 0, ASCII12);/顯示M else disbuff0=S%1000/100;/先對(duì)1000取余,再對(duì)100取整 disbuff1=S%1000%100/10; disbuff2=S%1000%10%10; DisplayOneChar(9, 0, ASCIIdisbuff0); DisplayOneChar(10, 0, ASCII10);/顯示點(diǎn) DisplayOneChar(11, 0, ASCIIdisbuff1); DisplayOneChar(12, 0, ASCIIdisbuff2); DisplayOneChar(13, 0, ASCII12);/顯示M void zd0() interrupt 1 /T0中斷用來計(jì)數(shù)器溢出,超過測(cè)距范圍 flag=1; /中斷溢出標(biāo)志 void StartModule() /啟動(dòng)模塊 TX=1; /啟動(dòng)一次模塊 _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_()

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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)論