超聲波避障小車的設計書_第1頁
超聲波避障小車的設計書_第2頁
超聲波避障小車的設計書_第3頁
已閱讀5頁,還剩5頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、超聲波避障小車的設計書1.1 立項目的( 1)設計一輛利用超聲波傳感器來實現(xiàn)避障功能的小車, 使小車對其運動方 向受到的阻礙作出各種躲避障礙的動作。(2)進一步學習單片機原理及其應用,了解超聲波傳感器的工作原理。1.2 立項意義 在科學探索及緊急搶險中經常要對一些危險或人類不能直接到達的地域進行 探測,這就需要用機器人來完成。而機器人在復雜地形行進時自動避障是一項必 不可少也是最基本的功能。因此,自動避障系統(tǒng)的研發(fā)也就應運而生。 自動避障小車就是基于這一系統(tǒng)開發(fā)而成的。隨著科技的發(fā)展,對于未知空 間和人類所不能直接到達的地域的探索逐步成為熱門,這就使機器人自動避障功 能的研發(fā)有了重大意義。通過

2、對自動避障小車的設計,我們可以將其運用于自動避障小車,以作為地 域探索機器人和緊急搶險機器人的運動系統(tǒng),讓機器人在行進中自動避過障礙 物。1.3 設計要求 (1)在車前方沒有障礙物時,小車沿直線向前走。 (2)在車前方有障礙物時,小車能避開障礙物,避障方法如下: 先向左邊轉 90 度,如果前面沒有障礙物,再沿直線向前走; 如果前面仍有障礙物, 則向右轉 180 度,如果前面沒有障礙物, 則直線行走; 如果前面仍有障礙物,則向右 90度,然后直線行走2 課題設計2.1 設計原理 該智能車系統(tǒng)可分為四個主要模塊: 傳感器避障模塊, 單片機主控核心模塊, 電機驅動模塊,USB下載模塊。鑒于電機驅動模

3、塊、USB下載模塊已經由實驗室 直接提供了,我們對于傳感器避障模塊和單片機主控核心模塊進行了討論。 (1)傳感器避障模塊。 智能車避障系統(tǒng)中的傳感器一般分為接觸型和非接觸 型兩種,接觸型相對比較簡單。這里我們使用了超聲波傳感器進行測量,也即非 接觸型傳感器。超聲波是一種振動頻率高于聲波的機械波,由換能晶片在電壓的激勵下發(fā)生 震動產生的,在碰到雜質獲分界面會產生顯著反射從而形成反射回波,超聲波傳 感器就是根據(jù)超聲波在障礙物界面上的反射來判斷檢測物體的存在以及距離的。 超聲波頻率高,波長短,繞射現(xiàn)象小,方向性好,再加上信息處理簡單且價格低 廉,所以這里我們使用 28015-PING-v1.6 超聲

4、波傳感器對小車行進前方路況進行 探測以及判斷,它能實現(xiàn)從 3cm到1.8m距離的測量,從而識別出范圍內的障礙 物。我們將其作為傳感器避障模塊,利用其返回的數(shù)據(jù),從而實現(xiàn)小車避障的功P15PH pusP1IPHn 呼 戶曙FT FOP5 EPS 皿P1 PoXJ-口 UDM-nn 口口LJ口 uun 口口口口目 口口口口 口口 口口口口口口口口口口口口口 VdcJ圖超聲波傳感器(2)單片機主控核心模塊。在這次設計中我們選用已經學過的MCS-51單片機為核心作為控制模塊。MCS-51系列單片機是美國Intel公司于1980年推出的產品,MCS-5係列單片機的影響及其深遠,許多公司都推出了兼容系列單

5、片機, 使MCS-51內核成為一個8位單片機的標準,其典型產品有 8031、8051、8751等(3)電機驅動模塊。電機驅動模塊是由兩個伺服電機組成,伺服電機控制原理如下所示:控制電機運動轉速的是高電平持續(xù)的時間,當高電平持續(xù)時間為 1.3ms時,電機順時針全速旋轉,當高電平持續(xù)時間1.7ms時,電機逆時針速旋懷疋以后J機靜止的脈沖 : 一斥列一丄f| pl- U me 20 mg帝5逆時針轉動 20 ma轉。圖伺服電機控制時序圖2.2設計內容系統(tǒng)主要原理是:通過超聲波避障模塊(即感測模塊)實時監(jiān)測路面情況并 及時傳輸給單片機。由單片機主控核心模塊根據(jù)感測模塊給予的信息控制小車兩 電機轉動工作

6、狀態(tài)。電機驅動模塊驅動兩電機轉動,實現(xiàn)前進或者左、右轉。小車的避障流程如下:(1)在車前方沒有障礙物時,小車沿直線向前走。(2)在車前方有障礙物時,小車能避開障礙物,避障方法如下: 先向左邊轉90度,如果前面沒有障礙物,再沿直線向前走; 如果前面仍有障礙物,則向右轉 180度,如果前面沒有障礙物,則沿直線 向前行走; 如果前面仍有障礙物,則向右 90度,然后直線行走根據(jù)小車的避障流程畫出小車避障程序的程序流程圖如下:根據(jù)程序流程圖編寫單片機控制程序(見附錄)2.3設計結果組裝出來的避障小車圖所示。將編寫好的C語言程序轉換成.hex文件, 將.hex文件“燒入”單片機中,接通電源,小車向前沿直線

7、行走,把手放在傳感器 前,小車立即向左旋轉90度;放開手,小車又沿直線向前走。把手一直放在傳感器 前面,小車會先向左轉90度,再右旋轉180度,再接著向右旋轉90度,再向左旋轉 90度,然后一直循環(huán)通過不同的測試發(fā)現(xiàn)下車完全滿足設計要求。圖 結題報告1、課題完成情況介紹將編寫好的C語言程序轉換成.hex文件,將.hex文件“燒入”單片機中,接通電源, 小車向前沿直線行走,把手放在傳感器前,小車立即向左旋轉 90 度;放開手,小車又沿 直線向前走。把手一直放在傳感器前面,小車會先向左轉 90 度,再右旋轉 180 度,再接 著向右旋轉90度,再向左旋轉90度,然后一直循環(huán)通過不同的測試發(fā)現(xiàn)下車完

8、全 滿足設計要求。2、設計中發(fā)現(xiàn)的問題及相應的解決情況2.1 、發(fā)現(xiàn)的問題(1)通電之后,小車不停地旋轉,旋轉次序與設計的避障旋轉次序一致,說明子函 數(shù)“getx ()”返回的Dis的值一直小于10.( 2)小車通電之后,小車在避障功能上完全滿足要求,但是前進時,小車卻每行進 兩三厘米就停頓一下,然后再行進兩三厘米就停頓。2.2 、解決情況(1) 出現(xiàn)這個結果的問題是子函數(shù)“ getx ()”里面的子函數(shù) delay_nus,因為 delay_nus的實現(xiàn)的延時時間實際上不是 1us,因為delay_nus()函數(shù)里面有這樣的語 句“ i=i/10 ”,這樣實際上i就等于0;為了解決這個問題我

9、們重新編寫了一個延時函數(shù) delay_nus1(1) ,結果小車正常運行。(2) 出現(xiàn)這個問題的原因是程序每循環(huán)一次時都應該初始化Sig 口,我們在程序中加上了“ delay_nus(20000);Sig=0;” 結果小車正常運行。3、課程設計的心得體會通過這次課程設計,我對單片機的原理和應用有了更深的理解。在這次課程設計中, 我重新學習了一遍張毅剛老師編寫的教材單片機原理及應用 ,將以前學習的知識重新 看了一遍,加深了我對單片機知識的印象。最重要的是,我知道如何在實際設計中使用 單片機,這個是在課本上學不來的。在這次課程設計中我們遇到了很多問題,尤其是在調試程序的時候,雖然我們嚴格的 按照程

10、序流程圖的邏輯來編寫程序,編譯也沒有出錯,但是把程序“燒入”單片機運行 時小車總是不能按照預想的情況運行,經過我們耐心的調試和修改,以及在胡瑞強老師 的耐心指導下,我們最終還是成功了。4、參考文獻【1】張毅剛.單片機原理及應用 .高等教育出版社。附錄#include int dis,ltime,htime,time;sbit SIG=P3A4;sbit left=P1A0;sbit right=P1A1;/ 延時程序 void delay(int i) i=i/10-14;while(i-);void delay1(int i)while(i-);/dis 代表距離, time 代表時間 /P

11、3A4 控制和讀取傳感器 IO 口狀態(tài) / 左輪/ 右輪/ 用于延時 i 微秒/這里減去14因為通過debug得到精確時間/ 用于產生脈沖,激發(fā)超聲波/T0 方式 1/ 計時器清零/ 定時器 0 中斷允許/ 總中斷允許/ 定時器 0先不開始計時/ 初始化void init()TMOD=0x01;TH0=0;TL0=0;ET0=1;EA=1;TR0=0;/ 行車程序 void xingjin(int l,int r) left=1;delay(l);left=0;right=1;delay(r);right=0; delay(18000);/ 方便下面程序的編寫/ 給左輪提供長度為l 微秒的脈沖

12、/ 給右輪提供長度為r 微秒的脈沖void left_90()int i=30; while(i)/ 原地左轉 90 度,兩輪均為順時針xingjin(1300,1300);i-;void right_90()int i=30;while(i)xingjin(1700,1700);i-;void right_180()int i=60;while(i)xingjin(1700,1700);i-;void forward()xingjin(1700,1300);/ 測距子程序int getx(int a)TH0=TL0=0;if(a)SIG=0;SIG=1; delay1(1);SIG=0;wh

13、ile(SIG);while(!SIG);TR0=1;/ 原地右轉 90 度,兩輪均為逆時針/ 原地右轉 180 度,兩輪均為逆時針/ 前行,左輪逆時針,右輪順時針/ 通過產生一個脈沖,使發(fā)出超聲波/ 除噪/ 當超聲波發(fā)出時低電平結束 / 定時器 0 開始計時while(SIG);TR0=0;ltime=TL0;htime=TH0; time=htime*256+ltime; dis=time/(2*29);/ 主程序void main()init();while(1)getx(1);if(dis=10)forward();elseleft_90(); getx(1); if(dis=10)forward();elseright_180(); getx(1); if(dis=10) forward();elseright_90(); delay(20000);SIG=0;/ 當收到回波或超時時高電平結束/ 定時器 0 停止計時/ 分別存儲定時器高低位的數(shù)據(jù)/ 經過 debug 可知每次計時約為 1.085us/ 將數(shù)據(jù)轉化為時間,單位為微秒/ 將時間轉化

溫馨提示

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

評論

0/150

提交評論