2023年全國碩士研究生考試考研英語一試題真題(含答案詳解+作文范文)_第1頁
已閱讀1頁,還剩9頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、<p>  超聲波避障小車的設計書</p><p><b>  立項目的</b></p><p>  (1)設計一輛利用超聲波傳感器來實現(xiàn)避障功能的小車,使小車對其運動方向受到的阻礙作出各種躲避障礙的動作。</p><p>  (2)進一步學習單片機原理及其應用,了解超聲波傳感器的工作原理。</p><p>&

2、lt;b>  立項意義</b></p><p>  在科學探索及緊急搶險中經(jīng)常要對一些危險或人類不能直接到達的地域進行探測,這就需要用機器人來完成。而機器人在復雜地形行進時自動避障是一項必不可少也是最基本的功能。因此,自動避障系統(tǒng)的研發(fā)也就應運而生。</p><p>  自動避障小車就是基于這一系統(tǒng)開發(fā)而成的。隨著科技的發(fā)展,對于未知空間和人類所不能直接到達的地域的探索逐

3、步成為熱門,這就使機器人自動避障功能的研發(fā)有了重大意義。</p><p>  通過對自動避障小車的設計,我們可以將其運用于自動避障小車,以作為地域探索機器人和緊急搶險機器人的運動系統(tǒng),讓機器人在行進中自動避過障礙物。</p><p><b>  設計要求</b></p><p>  (1)在車前方?jīng)]有障礙物時,小車沿直線向前走。</p&g

4、t;<p> ?。?)在車前方有障礙物時,小車能避開障礙物,避障方法如下:</p><p>  ①先向左邊轉90度,如果前面沒有障礙物,再沿直線向前走;</p><p> ?、谌绻懊嫒杂姓系K物,則向右轉180度,如果前面沒有障礙物,則直線行走;</p><p> ?、廴绻懊嫒杂姓系K物,則向右90度,然后直線行走</p><p&g

5、t;<b>  課題設計</b></p><p><b>  設計原理</b></p><p>  該智能車系統(tǒng)可分為四個主要模塊:傳感器避障模塊,單片機主控核心模塊,電機驅動模塊,USB下載模塊。鑒于電機驅動模塊、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>  (2)單片機主控核心模塊。在這次設計中我們選用已經(jīng)學

8、過的MCS-51單片機為核心作為控制模塊。MCS-51系列單片機是美國Intel公司于1980年推出的產(chǎn)品,MCS-51系列單片機的影響及其深遠,許多公司都推出了兼容系列單片機,使MCS-51內(nèi)核成為一個8位單片機的標準,其典型產(chǎn)品有8031、8051、8751等等。</p><p> ?。?)電機驅動模塊。電機驅動模塊是由兩個伺服電機組成,伺服電機控制原理如下所示:控制電機運動轉速的是高電平持續(xù)的時間,當高電平

9、持續(xù)時間為1.3ms時,電機順時針全速旋轉,當高電平持續(xù)時間1.7ms時,電機逆時針速旋轉。</p><p>  圖2.1.2伺服電機控制時序圖</p><p><b>  2.2設計內(nèi)容</b></p><p>  系統(tǒng)主要原理是:通過超聲波避障模塊(即感測模塊)實時監(jiān)測路面情況并及時傳輸給單片機。由單片機主控核心模塊根據(jù)感測模塊給予的信息控

10、制小車兩電機轉動工作狀態(tài)。電機驅動模塊驅動兩電機轉動,實現(xiàn)前進或者左、右轉。</p><p>  小車的避障流程如下:</p><p>  (1)在車前方?jīng)]有障礙物時,小車沿直線向前走。</p><p> ?。?)在車前方有障礙物時,小車能避開障礙物,避障方法如下:</p><p> ?、傧认蜃筮呣D90度,如果前面沒有障礙物,再沿直線向前走;

11、</p><p> ?、谌绻懊嫒杂姓系K物,則向右轉180度,如果前面沒有障礙物,則沿直線向前行走;</p><p> ?、廴绻懊嫒杂姓系K物,則向右90度,然后直線行走</p><p>  根據(jù)小車的避障流程畫出小車避障程序的程序流程圖如下:</p><p>  根據(jù)程序流程圖編寫單片機控制程序(見附錄)</p><p&

12、gt;<b>  2.3設計結果</b></p><p>  組裝出來的避障小車圖2.3.1所示。將編寫好的C語言程序轉換成.hex文件,將.hex文件“燒入”單片機中,接通電源,小車向前沿直線行走,把手放在傳感器前,小車立即向左旋轉90度;放開手,小車又沿直線向前走。把手一直放在傳感器前面,小車會先向左轉90度,再右旋轉180度,再接著向右旋轉90度,再向左旋轉90度,然后一直循環(huán)……通過

13、不同的測試發(fā)現(xiàn)下車完全滿足設計要求。</p><p><b>  圖2.3.1</b></p><p><b>  結題報告</b></p><p>  1、課題完成情況介紹</p><p>  將編寫好的C語言程序轉換成.hex文件,將.hex文件“燒入”單片機中,接通電源,小車向前沿直線行走,把

14、手放在傳感器前,小車立即向左旋轉90度;放開手,小車又沿直線向前走。把手一直放在傳感器前面,小車會先向左轉90度,再右旋轉180度,再接著向右旋轉90度,再向左旋轉90度,然后一直循環(huán)……通過不同的測試發(fā)現(xiàn)下車完全滿足設計要求。</p><p>  2、設計中發(fā)現(xiàn)的問題及相應的解決情況</p><p><b>  2.1、發(fā)現(xiàn)的問題</b></p>&l

15、t;p> ?。?)通電之后,小車不停地旋轉,旋轉次序與設計的避障旋轉次序一致,說明子函數(shù)“getx()”返回的Dis 的值一直小于10.</p><p> ?。?)小車通電之后,小車在避障功能上完全滿足要求,但是前進時,小車卻每行進兩三厘米就停頓一下,然后再行進兩三厘米就停頓。</p><p><b>  2.2、解決情況</b></p><

16、p>  (1)出現(xiàn)這個結果的問題是子函數(shù)“getx()”里面的子函數(shù)delay_nus(1),因為delay_nus(1)的實現(xiàn)的延時時間實際上不是1us,因為delay_nus()函數(shù)里面有這樣的語句“i=i/10”,這樣實際上i就等于0;為了解決這個問題我們重新編寫了一個延時函數(shù)delay_nus1(1),結果小車正常運行。</p><p> ?。?)出現(xiàn)這個問題的原因是程序每循環(huán)一次時都應該初始化Si

17、g口,我們在程序中加上了“delay_nus(20000);Sig=0;” 結果小車正常運行。</p><p>  3、課程設計的心得體會</p><p>  通過這次課程設計,我對單片機的原理和應用有了更深的理解。在這次課程設計中,我重新學習了一遍張毅剛老師編寫的教材《單片機原理及應用》,將以前學習的知識重新看了一遍,加深了我對單片機知識的印象。最重要的是,我知道如何在實際設計中使用單片

18、機,這個是在課本上學不來的。</p><p>  在這次課程設計中我們遇到了很多問題,尤其是在調(diào)試程序的時候,雖然我們嚴格的按照程序流程圖的邏輯來編寫程序,編譯也沒有出錯,但是把程序“燒入”單片機運行時小車總是不能按照預想的情況運行,經(jīng)過我們耐心的調(diào)試和修改,以及在胡瑞強老師的耐心指導下,我們最終還是成功了。</p><p><b>  4、參考文獻</b></

19、p><p>  【1】張毅剛.《單片機原理及應用》.高等教育出版社。</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()//原地左轉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()//原地右轉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、//原地右轉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);//當超聲波發(fā)出時低電平結束</p><p>  TR0=1;//定時器0開始計時</p><p>  while(SIG);//當收到回波或超時時高電平結束</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ù)轉化為時間,單位為微秒</p><p>  dis=time/(2*29);//將時間轉化為距離,單位為厘米</p&g

38、t;<p><b>  }</b></p><p><b>  //主程序</b></p><p>  void main()</p><p><b>  {</b></p><p>  init();//對定時器進行初始化,為計時測距做準備</

39、p><p>  while(1)//保證小車始終進行下面的判斷</p><p><b>  {</b></p><p>  getx(1);//獲得小車行進方向的障礙物信息</p><p>  if(dis>=10)//若距離大于10cm則繼續(xù)前行,結束本循環(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();//否則左轉90度,并進行下一次判斷</p><p><b>  getx(1);</b></p><p>  if(dis>=10)//若距離大于10cm則繼續(xù)前行,結束本循環(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();//否則右轉180度,并進行下一次判斷</p><p><b>  getx

43、(1);</b></p><p>  if(dis>=10)//若距離大于10cm則繼續(xù)前行,結束本循環(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();//否則右轉90度,結束本循環(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)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論