綜合電子課程設計----智能循跡避障小車_第1頁
已閱讀1頁,還剩11頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、<p>  題目名稱: 循跡壁障智能小車設計 </p><p>  組員: </p><p>  班 級: </p><p>  指導老師: </p><p>  日 期: </p><p>&

2、lt;b>  智能循跡避障小車</b></p><p>  摘 要:利用紅外對管檢測黑線與障礙物,并以STC89C52單片機為控制芯片控制電動小汽車的速度及轉(zhuǎn)向,從而實現(xiàn)自動循跡避障的功能。其中小車驅(qū)動由L298N驅(qū)動電路完成,速度由單片機輸出的PWM波控制。</p><p>  關鍵詞:智能小車;STC89C52單片機; L298N; </p><p

3、>  實驗目的:通過設計進一步掌握5別1單片機的應用,特是在嵌入式系統(tǒng)中的應用。進一步學習51單片機在系統(tǒng)中的控制功能,能夠合理設計單片機的外圍電路,并使之與單片機構(gòu)成整個系統(tǒng)。實現(xiàn)控制小車的循跡和蔽障的功能,</p><p><b>  一、方案設計與論證</b></p><p><b>  1.1 主控系統(tǒng)</b></p>

4、<p>  根據(jù)設計要求,我認為此設計屬于多輸入量的復雜程序控制問題。據(jù)此,擬定了以下兩種方案并進行了綜合的比較論證,具體如下:</p><p><b>  方案一:</b></p><p>  選用一片CPLD(如EPM7128LC84-15)作為系統(tǒng)的核心部件,實現(xiàn)控制與處理的功能。CPLD具有速度快、編程容易、資源豐富、開發(fā)周期短等優(yōu)點,可利用VHD

5、L語言進行編寫開發(fā)。但CPLD在控制上較單片機有較大的劣勢。同時,CPLD的處理速度非???,而小車的行進速度不可能太高,那么對系統(tǒng)處理信息的要求也就不會太高,在這一點上,MCU就已經(jīng)可以勝任了。若采用該方案,必將在控制上遇到許許多多不必要增加的難題。為此,我們不采用該種方案,進而提出了第二種設想。</p><p><b>  方案二:</b></p><p>  采用

6、51單片機作為整個系統(tǒng)的核心,用其控制行進中的小車,以實現(xiàn)其既定的性能指標。充分分析我們的系統(tǒng),其關鍵在于實現(xiàn)小車的自動控制,而在這一點上,單片機就顯現(xiàn)出來它的優(yōu)勢——控制簡單、方便、快捷。這樣一來,單片機就可以充分發(fā)揮其資源豐富、有較為強大的控制功能及可位尋址操作功能、價格低廉等優(yōu)點。因此,這種方案是一種較為理想的方案。</p><p>  針對本設計特點——多開關量輸入的復雜程序控制系統(tǒng),需要擅長處理多開關量

7、的標準單片機,而不能用精簡I/O口和程序存儲器的小體積單片機,D/A、A/D功能也不必選用。根據(jù)這些分析,我選定了P89C51RA單片機作為本設計的主控裝置,51單片機具有功能強大的位操作指令,I/O口均可按位尋址,程序空間多達8K,對于本設計也綽綽有余,更可貴的是51單片機價格非常低廉。</p><p>  在綜合考慮了傳感器、兩部電機的驅(qū)動等諸多因素后,我們決定采用一片單片機,充分利用STC89C52單片機的

8、資源。</p><p>  1.2 電機驅(qū)動模塊</p><p><b>  方案一:</b></p><p>  采用繼電器對電動機的開或關進行控制,通過開關的切換對小車的速度進行調(diào)整.此方案的優(yōu)點是電路較為簡單,缺點是繼電器的響應時間慢,易損壞,壽命較短,可靠性不高。</p><p><b>  方案二:&

9、lt;/b></p><p>  采用電阻網(wǎng)絡或數(shù)字電位器調(diào)節(jié)電動機的分壓,從而達到分壓的目的。但電阻網(wǎng)絡只能實現(xiàn)有級調(diào)速,而數(shù)字電阻的元器件價格比較昂貴。更主要的問題在于一般的電動機電阻很小,但電流很大,分壓不僅回降低效率,而且實現(xiàn)很困難。</p><p><b>  方案三:</b></p><p>  采用功率三極管作為功率放大器的

10、輸出控制直流電機。線性型驅(qū)動的電路結(jié)構(gòu)和原理簡單,加速能力強,采用由達林頓管組成的 H型橋式電路。用單片機控制達林頓管使之工作在占空比可調(diào)的開關狀態(tài)下,精確調(diào)整電動機轉(zhuǎn)速。這種電路由于工作在管子的飽和截止模式下,效率非常高,H型橋式電路保證了簡單的實現(xiàn)轉(zhuǎn)速和方向的控制,電子管的開關速度很快,穩(wěn)定性也極強,是一種廣泛采用的 PWM調(diào)速技術。現(xiàn)市面上有很多此種芯片,我選用了L298N。</p><p>  這種調(diào)速方

11、式有調(diào)速特性優(yōu)良、調(diào)整平滑、調(diào)速范圍廣、過載能力大,能承受頻繁的負載沖擊,還可以實現(xiàn)頻繁的無級快速啟動、制動和反轉(zhuǎn)等優(yōu)點。因此決定采用使用功率三極管作為功率放大器的輸出控制直流電機。</p><p><b>  1.3 循跡模塊</b></p><p><b>  方案一:</b></p><p>  采用簡易光電傳感器結(jié)

12、合外圍電路探測,但實際效果并不理想,對行駛過程中的穩(wěn)定性要求很高,且誤測幾率較大、易受光線環(huán)境和路面介質(zhì)影響。在使用過程極易出現(xiàn)問題,而且容易因為 該部件造成整個系統(tǒng)的不穩(wěn)定。故最終未采用該方案。</p><p><b>  方案二:</b></p><p>  采用兩只紅外對管,分別置于小車車身前軌道的兩側(cè),根據(jù)兩只光電開關接受到白線與黑線的情況來控制小車轉(zhuǎn)向來調(diào)整

13、車向,測試表明,只要合理安裝好兩只光電開關的位置就可以很好的實現(xiàn)循跡的功能。</p><p><b>  方案三:</b></p><p>  采用三只紅外對管,一只置于軌道中間,兩只置于軌道外側(cè),當小車脫離軌道時,即當置于中間的一只光電開關脫離軌道時,等待外面任一只檢測到黑線后,做出相應的轉(zhuǎn)向調(diào)整,直到中間的光電開關重新檢測到黑線(即回到軌道)再恢復正向行駛。現(xiàn)場實

14、測表明,小車在尋跡過程中有一定的左右搖擺不定,雖然可以正確的循跡但其成本與穩(wěn)定性都次與第二種方案。</p><p>  通過比較,我選取第二種方案來實現(xiàn)循跡。</p><p><b>  1.4 避障模塊</b></p><p><b>  方案一:</b></p><p>  采用一只紅外對管置于

15、小車中央。其安裝簡易,也可以檢測到障礙物的存在,但難以確定小車在水平方向上是否會與障礙物相撞,也不易讓小車做出精確的轉(zhuǎn)向反應。</p><p><b>  方案二:</b></p><p>  采用二只紅外對管分別置于小車的前端兩側(cè),方向與小車前進方向平行,對小車與障礙物相對距離和方位能作出較為準確的判別和及時反應。但此方案過于依賴硬件、成本較高、缺乏創(chuàng)造性,而且置于

16、小車左方的紅外對管用到的幾率很小,所以最終未采用。</p><p><b>  方案三:</b></p><p>  采用一只紅外對管置于小車右側(cè)。通過測試此種方案就能很好的實現(xiàn)小車避開障礙物,且充分的利用資源而不浪費。</p><p>  通過比較我們采用方案一。</p><p><b>  1.5電源模塊&

17、lt;/b></p><p><b>  方案一:</b></p><p>  采用實驗室有線電源通過穩(wěn)壓芯片7805供電,其優(yōu)點是可穩(wěn)定的提供5V電壓,但占用資源過大。</p><p><b>  方案二:</b></p><p>  采用4支1.5V電池單電源供電,但6V的電壓太小不能同時

18、給單片機與與電機供電。</p><p>  方案三:采用8支1.5V電池雙電源分別給單片機與電機供電可解決方案二的問題且能讓小車完成其功能。</p><p>  所以,我選擇了方案一來實現(xiàn)供電。</p><p><b>  二、硬件設計</b></p><p><b>  2.1總體設計</b>&l

19、t;/p><p>  智能小車采用前輪驅(qū)動,前輪左右兩邊各用一個電機驅(qū)動,調(diào)制前面兩個輪子的轉(zhuǎn)速起停從而達到控制轉(zhuǎn)向的目的,后輪是萬象輪,起支撐的作用。將循跡光電對管分別裝在車體下的左右。當車身下左邊的傳感器檢測到黑線時,主控芯片控制左輪電機停止,車向左修正,當車身下右邊傳感器檢測到黑線時,主控芯片控制右輪電機停止,車向右修正。</p><p>  避障的原理和循線一樣,在車身中間裝一個光電對

20、管,當其檢測到障礙物時,主控芯片給出信號報警并控制車子倒退,轉(zhuǎn)向,從而避開障礙物。</p><p>  2.1.1主板設計框圖,所需原件清單。</p><p><b>  元件清單</b></p><p><b>  2.2驅(qū)動電路</b></p><p>  電機驅(qū)動一般采用H橋式驅(qū)動電路,L29

21、8N內(nèi)部集成了H橋式驅(qū)動電路,從而可以采用L298N電路來驅(qū)動電機。通過單片機給予L298N電路PWM信號來控制小車的速度,起停。</p><p><b>  電機驅(qū)動電路</b></p><p><b>  三、軟件設計</b></p><p><b>  3.1主程序框圖:</b></p&g

22、t;<p><b>  3.2循跡模塊</b></p><p><b>  循跡框圖:</b></p><p><b>  循跡框圖</b></p><p><b>  3.3避障模塊</b></p><p><b>  避障框圖:

23、</b></p><p><b>  程序:</b></p><p>  #include <reg52.h>//器件配置文件</p><p>  #include <intrins.h></p><p>  unsigned int tt,i,l;</p><

24、;p>  void init();</p><p>  sbit D1=P1^0;</p><p>  sbit D2=P1^1;</p><p>  sbit D3=P1^2;</p><p>  sbit D4=P1^3;</p><p>  sbit D5=P0^7;</p><p>

25、;  sbit D7=P1^4;</p><p>  sbit D8=P1^5;</p><p>  sbit D9=P1^6;</p><p>  sbit D10=P1^7;</p><p>  void delay(unsigned int t)</p><p><b>  {</b><

26、;/p><p>  while(--t);</p><p><b>  }</b></p><p>  void stop()</p><p><b>  {</b></p><p>  D1=1;D2=1;D3=1;D4=1;</p><p><b

27、>  }</b></p><p>  void forward()</p><p><b>  {</b></p><p>  D1=1;D2=1;D3=1;D4=1;</p><p>  delay(40);</p><p>  D1=1;D2=0;D3=1;D4=0;<

28、/p><p>  delay(60);</p><p><b>  }</b></p><p>  void backward()</p><p><b>  {</b></p><p>  D1=0;D2=1;D3=0;D4=1;</p><p><

29、;b>  } </b></p><p>  void turnleft()</p><p><b>  {</b></p><p>  D1=0;D2=1;D3=1;D4=0;</p><p><b>  }</b></p><p>  void turnr

30、ight()</p><p><b>  {</b></p><p>  D1=1;D2=0;D3=0;D4=1;</p><p><b>  }</b></p><p>  void bizhang()</p><p><b>  {</b></

31、p><p>  while(D5==0)</p><p><b>  {</b></p><p>  backward();</p><p>  delay(65535);</p><p>  turnleft();</p><p>  delay(65535);</p&

32、gt;<p><b>  }</b></p><p><b>  }</b></p><p>  void xjbzwx()</p><p><b>  {</b></p><p>  while(D8==0&&D9==0&&D7

33、==0&&D10==0)</p><p><b>  {</b></p><p>  bizhang();</p><p>  forward();</p><p><b>  }</b></p><p>  if(D8==1&&D9==1&a

34、mp;&D7==1&&D10==1)</p><p><b>  {</b></p><p>  bizhang();</p><p><b>  stop();</b></p><p><b>  }</b></p><p> 

35、 if(D7==1&&D8==0&&D9==0&&D10==0)</p><p><b>  {</b></p><p>  bizhang();</p><p>  for(i=400;i>0;i--)</p><p><b>  {</b>&

36、lt;/p><p>  turnleft();</p><p><b>  } </b></p><p><b>  }</b></p><p>  if(D7==0&&D8==0&&D9==0&&D10==1)</p><p>

37、;<b>  {</b></p><p>  bizhang();</p><p>  for(i=400;i>0;i--)</p><p><b>  {</b></p><p>  turnright();</p><p><b>  }</b>

38、;</p><p><b>  }</b></p><p>  if(D7==0&&D8==1&&D9==0&&D10==0)</p><p><b>  {</b></p><p>  bizhang();</p><p> 

39、 for(i=100;i>0;i--)</p><p><b>  {</b></p><p>  turnleft();</p><p><b>  } </b></p><p><b>  }</b></p><p>  if(D7==0&

40、amp;&D8==0&&D9==1&&D10==0)</p><p><b>  {</b></p><p>  bizhang();</p><p>  for(i=100;i>0;i--)</p><p><b>  {</b></p>

41、<p>  turnright();</p><p><b>  }</b></p><p><b>  }</b></p><p>  if((D7==1||D8==1)&&(D9==0&&D10==0))</p><p><b>  {<

42、;/b></p><p>  bizhang();</p><p>  for(i=100;i>0;i--)</p><p><b>  {</b></p><p>  turnleft();</p><p><b>  }</b></p>&l

43、t;p><b>  }</b></p><p>  if((D7==0&&D8==0)&&(D9==1||D10==1))</p><p><b>  {</b></p><p>  bizhang();</p><p>  for(i=100;i>0;i

44、--)</p><p><b>  {</b></p><p>  turnright();</p><p><b>  }</b></p><p><b>  }</b></p><p><b>  }</b></p>

45、<p>  void main(void)</p><p><b>  {</b></p><p><b>  while(1)</b></p><p><b>  {</b></p><p><b>  xjbzwx();</b></

46、p><p><b>  } </b></p><p><b>  }</b></p><p><b>  四、結(jié)束語</b></p><p>  通過很多天的準備,終于在老師和同學的幫助下,初步完成了對循跡蔽障小車的制作。在這個過程中,我們又進一步學習了單片機及其外圍模塊的

47、原理和應用。對電路的焊接和器件的組合,加強了我們實驗上的動手能力,尤其是小車模塊的安裝,電機的去驅(qū)動等等,都讓我們學到了很多東西。軟件方面,多個程序的組合以及中斷定時的應用,讓我們對C51語言的學習有了更多的體會。在這個過程中,也遇到了很多的困難的和挫折,雖然這個循跡壁障小車看起來很簡單,但是我們在實現(xiàn)的過程中總屢屢失敗。開始時對個模塊的安裝及連接,這個過程還算順利,在后面的循跡調(diào)試時就有很多問題了,首先在軟件上,我們結(jié)合硬件,不斷的調(diào)

48、試程序,讓其實現(xiàn)該循跡功能,這個過程花費了我們很多的時間,因為小車循跡時總往往不如人愿,一直不能沿著黑線跑,總沖出線外,所以調(diào)試有點困難。但是這個不單單是軟件的問題,在循跡模塊安裝的位置也對其循跡的準確度有很大的影響,在我們的調(diào)試過程中發(fā)現(xiàn),同樣的程序,左右循跡的程序都一樣的,但是在實現(xiàn)過程中發(fā)現(xiàn)小車有時能成功循跡,有時卻不行,或者一邊循跡靈敏,另一邊卻不靈敏的情況,經(jīng)過多次的探尋,發(fā)現(xiàn)是循跡模塊安裝的位置以及其自身靈敏度有關,<

49、/p><p><b>  參考文獻</b></p><p>  [1]郭惠,吳迅.單片機C語言程序設計完全自學手冊[M].電子工業(yè)出版社,2008.10:1-200.</p><p>  [2]王東鋒,王會良,董冠強. 單片機C語言應用100例[M]. 電子工業(yè)出版社,2009.3:145-300.</p><p>  [3

溫馨提示

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

評論

0/150

提交評論