版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
1、<p> 超聲波避障小車的設(shè)計書</p><p><b> 立項目的</b></p><p> ?。?)設(shè)計一輛利用超聲波傳感器來實現(xiàn)避障功能的小車,使小車對其運動方向受到的阻礙作出各種躲避障礙的動作。</p><p> ?。?)進一步學(xué)習(xí)單片機原理及其應(yīng)用,了解超聲波傳感器的工作原理。</p><p>&
2、lt;b> 立項意義</b></p><p> 在科學(xué)探索及緊急搶險中經(jīng)常要對一些危險或人類不能直接到達的地域進行探測,這就需要用機器人來完成。而機器人在復(fù)雜地形行進時自動避障是一項必不可少也是最基本的功能。因此,自動避障系統(tǒng)的研發(fā)也就應(yīng)運而生。</p><p> 自動避障小車就是基于這一系統(tǒng)開發(fā)而成的。隨著科技的發(fā)展,對于未知空間和人類所不能直接到達的地域的探索逐
3、步成為熱門,這就使機器人自動避障功能的研發(fā)有了重大意義。</p><p> 通過對自動避障小車的設(shè)計,我們可以將其運用于自動避障小車,以作為地域探索機器人和緊急搶險機器人的運動系統(tǒng),讓機器人在行進中自動避過障礙物。</p><p><b> 設(shè)計要求</b></p><p> ?。?)在車前方?jīng)]有障礙物時,小車沿直線向前走。</p&g
4、t;<p> ?。?)在車前方有障礙物時,小車能避開障礙物,避障方法如下:</p><p> ?、傧认蜃筮呣D(zhuǎn)90度,如果前面沒有障礙物,再沿直線向前走;</p><p> ②如果前面仍有障礙物,則向右轉(zhuǎn)180度,如果前面沒有障礙物,則直線行走;</p><p> ③如果前面仍有障礙物,則向右90度,然后直線行走</p><p&g
5、t;<b> 課題設(shè)計</b></p><p><b> 設(shè)計原理</b></p><p> 該智能車系統(tǒng)可分為四個主要模塊:傳感器避障模塊,單片機主控核心模塊,電機驅(qū)動模塊,USB下載模塊。鑒于電機驅(qū)動模塊、USB下載模塊已經(jīng)由實驗室直接提供了,我們對于傳感器避障模塊和單片機主控核心模塊進行了討論。</p><p>
6、; ?。?)傳感器避障模塊。智能車避障系統(tǒng)中的傳感器一般分為接觸型和非接觸型兩種,接觸型相對比較簡單。這里我們使用了超聲波傳感器進行測量,也即非接觸型傳感器。</p><p> 超聲波是一種振動頻率高于聲波的機械波,由換能晶片在電壓的激勵下發(fā)生震動產(chǎn)生的,在碰到雜質(zhì)獲分界面會產(chǎn)生顯著反射從而形成反射回波,超聲波傳感器就是根據(jù)超聲波在障礙物界面上的反射來判斷檢測物體的存在以及距離的。超聲波頻率高,波長短,繞射現(xiàn)象
7、小,方向性好,再加上信息處理簡單且價格低廉,所以這里我們使用28015-PING-v1.6超聲波傳感器對小車行進前方路況進行探測以及判斷,它能實現(xiàn)從3cm到1.8m距離的測量,從而識別出范圍內(nèi)的障礙物。我們將其作為傳感器避障模塊,利用其返回的數(shù)據(jù),從而實現(xiàn)小車避障的功能。</p><p> 圖2.1.1超聲波傳感器</p><p> ?。?)單片機主控核心模塊。在這次設(shè)計中我們選用已經(jīng)學(xué)
8、過的MCS-51單片機為核心作為控制模塊。MCS-51系列單片機是美國Intel公司于1980年推出的產(chǎn)品,MCS-51系列單片機的影響及其深遠(yuǎn),許多公司都推出了兼容系列單片機,使MCS-51內(nèi)核成為一個8位單片機的標(biāo)準(zhǔn),其典型產(chǎn)品有8031、8051、8751等等。</p><p> (3)電機驅(qū)動模塊。電機驅(qū)動模塊是由兩個伺服電機組成,伺服電機控制原理如下所示:控制電機運動轉(zhuǎn)速的是高電平持續(xù)的時間,當(dāng)高電平
9、持續(xù)時間為1.3ms時,電機順時針全速旋轉(zhuǎn),當(dāng)高電平持續(xù)時間1.7ms時,電機逆時針?biāo)傩D(zhuǎn)。</p><p> 圖2.1.2伺服電機控制時序圖</p><p><b> 2.2設(shè)計內(nèi)容</b></p><p> 系統(tǒng)主要原理是:通過超聲波避障模塊(即感測模塊)實時監(jiān)測路面情況并及時傳輸給單片機。由單片機主控核心模塊根據(jù)感測模塊給予的信息控
10、制小車兩電機轉(zhuǎn)動工作狀態(tài)。電機驅(qū)動模塊驅(qū)動兩電機轉(zhuǎn)動,實現(xiàn)前進或者左、右轉(zhuǎn)。</p><p> 小車的避障流程如下:</p><p> (1)在車前方?jīng)]有障礙物時,小車沿直線向前走。</p><p> ?。?)在車前方有障礙物時,小車能避開障礙物,避障方法如下:</p><p> ?、傧认蜃筮呣D(zhuǎn)90度,如果前面沒有障礙物,再沿直線向前走;
11、</p><p> ?、谌绻懊嫒杂姓系K物,則向右轉(zhuǎn)180度,如果前面沒有障礙物,則沿直線向前行走;</p><p> ③如果前面仍有障礙物,則向右90度,然后直線行走</p><p> 根據(jù)小車的避障流程畫出小車避障程序的程序流程圖如下:</p><p> 根據(jù)程序流程圖編寫單片機控制程序(見附錄)</p><p&
12、gt;<b> 2.3設(shè)計結(jié)果</b></p><p> 組裝出來的避障小車圖2.3.1所示。將編寫好的C語言程序轉(zhuǎn)換成.hex文件,將.hex文件“燒入”單片機中,接通電源,小車向前沿直線行走,把手放在傳感器前,小車立即向左旋轉(zhuǎn)90度;放開手,小車又沿直線向前走。把手一直放在傳感器前面,小車會先向左轉(zhuǎn)90度,再右旋轉(zhuǎn)180度,再接著向右旋轉(zhuǎn)90度,再向左旋轉(zhuǎn)90度,然后一直循環(huán)……通過
13、不同的測試發(fā)現(xiàn)下車完全滿足設(shè)計要求。</p><p><b> 圖2.3.1</b></p><p><b> 結(jié)題報告</b></p><p> 1、課題完成情況介紹</p><p> 將編寫好的C語言程序轉(zhuǎn)換成.hex文件,將.hex文件“燒入”單片機中,接通電源,小車向前沿直線行走,把
14、手放在傳感器前,小車立即向左旋轉(zhuǎn)90度;放開手,小車又沿直線向前走。把手一直放在傳感器前面,小車會先向左轉(zhuǎn)90度,再右旋轉(zhuǎn)180度,再接著向右旋轉(zhuǎn)90度,再向左旋轉(zhuǎn)90度,然后一直循環(huán)……通過不同的測試發(fā)現(xiàn)下車完全滿足設(shè)計要求。</p><p> 2、設(shè)計中發(fā)現(xiàn)的問題及相應(yīng)的解決情況</p><p><b> 2.1、發(fā)現(xiàn)的問題</b></p>&l
15、t;p> ?。?)通電之后,小車不停地旋轉(zhuǎn),旋轉(zhuǎn)次序與設(shè)計的避障旋轉(zhuǎn)次序一致,說明子函數(shù)“getx()”返回的Dis 的值一直小于10.</p><p> ?。?)小車通電之后,小車在避障功能上完全滿足要求,但是前進時,小車卻每行進兩三厘米就停頓一下,然后再行進兩三厘米就停頓。</p><p><b> 2.2、解決情況</b></p><
16、p> (1)出現(xiàn)這個結(jié)果的問題是子函數(shù)“getx()”里面的子函數(shù)delay_nus(1),因為delay_nus(1)的實現(xiàn)的延時時間實際上不是1us,因為delay_nus()函數(shù)里面有這樣的語句“i=i/10”,這樣實際上i就等于0;為了解決這個問題我們重新編寫了一個延時函數(shù)delay_nus1(1),結(jié)果小車正常運行。</p><p> ?。?)出現(xiàn)這個問題的原因是程序每循環(huán)一次時都應(yīng)該初始化Si
17、g口,我們在程序中加上了“delay_nus(20000);Sig=0;” 結(jié)果小車正常運行。</p><p> 3、課程設(shè)計的心得體會</p><p> 通過這次課程設(shè)計,我對單片機的原理和應(yīng)用有了更深的理解。在這次課程設(shè)計中,我重新學(xué)習(xí)了一遍張毅剛老師編寫的教材《單片機原理及應(yīng)用》,將以前學(xué)習(xí)的知識重新看了一遍,加深了我對單片機知識的印象。最重要的是,我知道如何在實際設(shè)計中使用單片
18、機,這個是在課本上學(xué)不來的。</p><p> 在這次課程設(shè)計中我們遇到了很多問題,尤其是在調(diào)試程序的時候,雖然我們嚴(yán)格的按照程序流程圖的邏輯來編寫程序,編譯也沒有出錯,但是把程序“燒入”單片機運行時小車總是不能按照預(yù)想的情況運行,經(jīng)過我們耐心的調(diào)試和修改,以及在胡瑞強老師的耐心指導(dǎo)下,我們最終還是成功了。</p><p><b> 4、參考文獻</b></
19、p><p> 【1】張毅剛.《單片機原理及應(yīng)用》.高等教育出版社。</p><p><b> 附錄</b></p><p> #include <reg51.h></p><p> int dis,ltime,htime,time;//dis代表距離,time代表時間</p><p
20、> sbit SIG=P3^4;//P3^4控制和讀取傳感器IO口狀態(tài)</p><p> sbit left=P1^0;//左輪</p><p> sbit right=P1^1;//右輪</p><p><b> //延時程序</b></p><p> void delay
21、(int i)//用于延時i微秒</p><p><b> {</b></p><p> i=i/10-14;//這里減去14因為通過debug得到精確時間</p><p> while(i--);</p><p><b> }</b></p><p
22、> void delay1(int i)//用于產(chǎn)生脈沖,激發(fā)超聲波</p><p><b> {</b></p><p> while(i--);</p><p><b> }</b></p><p><b> //初始化</b></p>
23、<p> void init()</p><p><b> {</b></p><p> TMOD=0x01;//T0方式1</p><p> TH0=0;TL0=0;//計時器清零</p><p> ET0=1;//定時器0中斷允許</p><
24、;p> EA=1;//總中斷允許</p><p> TR0=0;//定時器0先不開始計時</p><p><b> }</b></p><p><b> //行車程序</b></p><p> void xingjin(int l,int r)//方便
25、下面程序的編寫</p><p><b> {</b></p><p> left=1;//給左輪提供長度為l微秒的脈沖</p><p><b> delay(l);</b></p><p><b> left=0;</b></p><p&
26、gt; right=1; //給右輪提供長度為r微秒的脈沖</p><p><b> delay(r);</b></p><p><b> right=0;</b></p><p> delay(18000);</p><p><b> }</b><
27、/p><p> void left_90()//原地左轉(zhuǎn)90度,兩輪均為順時針</p><p><b> {</b></p><p><b> inti=30;</b></p><p><b> while(i)</b></p><p>
28、<b> {</b></p><p> xingjin(1300,1300);</p><p><b> i--;</b></p><p><b> }</b></p><p><b> }</b></p><p> v
29、oid right_90()//原地右轉(zhuǎn)90度,兩輪均為逆時針</p><p><b> {</b></p><p><b> inti=30;</b></p><p><b> while(i)</b></p><p><b> {</b&
30、gt;</p><p> xingjin(1700,1700);</p><p><b> i--;</b></p><p><b> }</b></p><p><b> }</b></p><p> void right_180()
31、//原地右轉(zhuǎn)180度,兩輪均為逆時針</p><p><b> {</b></p><p><b> inti=60;</b></p><p><b> while(i)</b></p><p><b> {</b></p>&l
32、t;p> xingjin(1700,1700);</p><p><b> i--;</b></p><p><b> }</b></p><p><b> }</b></p><p> void forward()//前行,左輪逆時針,右輪順時針&l
33、t;/p><p><b> {</b></p><p> xingjin(1700,1300);</p><p><b> }</b></p><p><b> //測距子程序</b></p><p> int getx(int a)</p&
34、gt;<p><b> {</b></p><p> TH0=TL0=0;</p><p> if(a)//通過產(chǎn)生一個脈沖,使發(fā)出超聲波</p><p><b> {</b></p><p><b> SIG=0;</b></p&g
35、t;<p><b> SIG=1;</b></p><p> delay1(1); </p><p><b> SIG=0;</b></p><p><b> }</b></p><p> while(SIG);//除噪</p&
36、gt;<p> while(!SIG);//當(dāng)超聲波發(fā)出時低電平結(jié)束</p><p> TR0=1;//定時器0開始計時</p><p> while(SIG);//當(dāng)收到回波或超時時高電平結(jié)束</p><p> TR0=0;//定時器0停止計時</p><p> lti
37、me=TL0;//分別存儲定時器高低位的數(shù)據(jù)</p><p> htime=TH0;//經(jīng)過debug可知每次計時約為1.085us</p><p> time=htime*256+ltime;//將數(shù)據(jù)轉(zhuǎn)化為時間,單位為微秒</p><p> dis=time/(2*29);//將時間轉(zhuǎn)化為距離,單位為厘米</p&g
38、t;<p><b> }</b></p><p><b> //主程序</b></p><p> void main()</p><p><b> {</b></p><p> init();//對定時器進行初始化,為計時測距做準(zhǔn)備</
39、p><p> while(1)//保證小車始終進行下面的判斷</p><p><b> {</b></p><p> getx(1);//獲得小車行進方向的障礙物信息</p><p> if(dis>=10)//若距離大于10cm則繼續(xù)前行,結(jié)束本循環(huán)</p><
40、;p><b> {</b></p><p> forward();</p><p><b> }</b></p><p><b> else</b></p><p><b> {</b></p><p> left
41、_90();//否則左轉(zhuǎn)90度,并進行下一次判斷</p><p><b> getx(1);</b></p><p> if(dis>=10)//若距離大于10cm則繼續(xù)前行,結(jié)束本循環(huán)</p><p><b> {</b></p><p> forward();<
42、/p><p><b> }</b></p><p><b> else</b></p><p><b> {</b></p><p> right_180();//否則右轉(zhuǎn)180度,并進行下一次判斷</p><p><b> getx
43、(1);</b></p><p> if(dis>=10)//若距離大于10cm則繼續(xù)前行,結(jié)束本循環(huán)</p><p><b> {</b></p><p> forward();</p><p><b> }</b></p><p><b
44、> else</b></p><p><b> {</b></p><p> right_90();//否則右轉(zhuǎn)90度,結(jié)束本循環(huán)</p><p><b> }</b></p><p><b> } </b></p><p>
45、;<b> }</b></p><p> delay(20000);//這里考慮到有時會出現(xiàn)運行出錯的現(xiàn)象</p><p> SIG=0;//加入了一個延時與清零的過程</p><p><b> } </b></p><p><b> }</b>
溫馨提示
- 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. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 超聲波避障小車設(shè)計
- 畢業(yè)設(shè)計--智能超聲波避障小車
- 智能超聲波避障小車-畢業(yè)設(shè)計論文
- 單片機課程設(shè)計——超聲波避障小車
- 單片機課程設(shè)計--超聲波避障小車
- 基于51單片機的超聲波避障小車設(shè)計
- 基于51單片機的超聲波避障小車設(shè)計
- 智能超聲波避障小車的設(shè)計與制作-畢業(yè)論文
- 二輪小車倒立擺超聲波避障研究.pdf
- 基于51單片機的超聲波智能避障小車論文
- 基于at89s51超聲波避障智能小車課程設(shè)計
- 基于51單片機的超聲波避障小車設(shè)計-畢業(yè)論文
- 智能超聲波壁障小車畢業(yè)設(shè)計
- 基于at89s52單片機的超聲波避障智能小車設(shè)計
- 畢業(yè)設(shè)計---智能超聲波壁障小車設(shè)計
- 基于超聲波技術(shù)的避障系統(tǒng)設(shè)計【開題報告】
- 基于超聲波技術(shù)的避障系統(tǒng)設(shè)計【文獻綜述】
- 基于超聲波技術(shù)的避障系統(tǒng)設(shè)計【畢業(yè)設(shè)計】
- AGV的超聲波定位與避障研究.pdf
- 基于超聲波的智能輪椅避障的研究.pdf
評論
0/150
提交評論