單片機(jī)原理及應(yīng)用課程設(shè)計--自動尋電動小車_第1頁
已閱讀1頁,還剩15頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、<p><b>  單片機(jī)原理及</b></p><p><b>  應(yīng)用課程設(shè)計</b></p><p>  班 級: </p><p>  姓 名: </p><p>  學(xué) 號: <

2、;/p><p>  指導(dǎo)教師: </p><p>  撰寫日期: </p><p><b>  目錄</b></p><p>  第一章 課程設(shè)計內(nèi)容與要求分析…………………………2</p><p>  1.1課程設(shè)計內(nèi)容……………………………

3、…………………………2</p><p>  1.2課程設(shè)計要求分析…………………………………………………2</p><p>  1.2.1各模塊設(shè)計…………………………………………………………4</p><p>  1.2.2循跡小車原理圖……………………………………………………5</p><p>  第二章 控制系統(tǒng)程序設(shè)計……………………

4、……………6</p><p>  第三章 總結(jié) ………………………………………………12</p><p>  參考文獻(xiàn)……………………………………………………13</p><p>  附錄Ⅰ………………………………………………………14</p><p>  附錄Ⅱ………………………………………………………15</p><p

5、>  第一章 課程設(shè)計內(nèi)容與要求分析</p><p><b>  1.1課程設(shè)計內(nèi)容</b></p><p>  設(shè)計一臺自動尋電動小車。</p><p>  電動車能自動尋跡,按設(shè)定好的軌跡前進(jìn)。</p><p>  尋跡由小車前端左右兩個光電開關(guān)完成,通過調(diào)整RW2和RW4可以改變光電開關(guān)的靈敏度。</p

6、><p>  1.2課程設(shè)計要求分析</p><p>  目前 ,在企業(yè)生產(chǎn)技術(shù)不斷提高、對自動化技術(shù)要求不斷加深的環(huán)境下,智能車輛以及在智能車輛基礎(chǔ)上開發(fā)出來的產(chǎn)品已成為自動化物流運(yùn)輸、柔性生產(chǎn)組織等系統(tǒng)的關(guān)鍵設(shè)備。世界上許多國家都在積極進(jìn)行智能車輛的研究和開發(fā)設(shè)計。移動機(jī)器人是機(jī)器人學(xué)中的一個重要分支,出現(xiàn)于20世紀(jì)06年代。當(dāng)時斯坦福研究院(SRI)的Nils Nilssen和charl

7、es Rosen等人,在1966年至1972年中研制出了取名shakey的自主式移動機(jī)器人,目的是將人工智能技術(shù)應(yīng)用在復(fù)雜環(huán)境下,完成機(jī)器人系統(tǒng)的自主推理、規(guī)劃和控制。從此,移動機(jī)器人從無到有,數(shù)量不斷增多,智能車輛作為移動機(jī)器人的一個重要分支也得到越來越多的關(guān)注。</p><p>  智能小車,是一個集環(huán)境感知、規(guī)劃決策,自動行駛等功能于一體的綜合系統(tǒng),它集中地運(yùn)用了計算機(jī)、傳感、信息、通信、導(dǎo)航及白動控制等技

8、術(shù),是典型的高新技術(shù)綜合體。它具有道路障礙自動識別、自動報警、自動制動、自動保持安全距離、車速和巡航控制等功能。智能車輛的主要特點(diǎn)是在復(fù)雜的道路情況下,能自動地操縱和駕駛車輛繞開障礙物并沿著預(yù)定的道路(軌跡)行進(jìn)。智能車輛在原有車輛系統(tǒng)的基礎(chǔ)上增加了一些智能化技術(shù)設(shè)備:</p><p>  (1)計算機(jī)處理系統(tǒng),主要完成對來自攝像機(jī)所獲取的圖像的預(yù)處理、增強(qiáng)、分析、識別等工作;</p><p&

9、gt;  (2)攝像機(jī),用來獲得道路圖像信息;</p><p>  (3)傳感器設(shè)備,車速傳感器用來獲得當(dāng)前車速,障礙物傳感器用來獲得前方、側(cè)方、后方障礙物等信息。</p><p>  智能車輛技術(shù)按功能可分為三層,即智能感知/預(yù)警系統(tǒng)、車輛駕駛系統(tǒng)和全自動操作系統(tǒng)團(tuán)。上一層技術(shù)是下一層技術(shù)的基礎(chǔ)。三個層次具體如下:</p><p>  (1)智能感知系統(tǒng),利用各種

10、傳感器來獲得車輛自身、車輛行駛的周圍環(huán)境及駕駛員本身的狀態(tài)信息,必要時發(fā)出預(yù)警信息。主要包括碰撞預(yù)警系統(tǒng)和駕駛員狀態(tài)監(jiān)控系統(tǒng)。碰撞預(yù)警系統(tǒng)可以給出前方碰撞警告、盲點(diǎn)警告、車道偏離警告、換道/并道警告、十字路口警告、行人檢測與警告、后方碰撞警告等.駕駛員狀態(tài)監(jiān)控系統(tǒng)包括駕駛員打噸警告系統(tǒng)、駕駛員位置占有狀態(tài)監(jiān)測系統(tǒng)等。</p><p>  (2)輔助駕駛系統(tǒng),利用智能感知系統(tǒng)的信息進(jìn)行決策規(guī)劃,給駕駛員提出駕駛建議

11、或部分地代替駕駛員進(jìn)行車輛控制操作。主要包括:巡航控制、車輛跟蹤系統(tǒng)、準(zhǔn)確泊車系統(tǒng)及精確機(jī)動系統(tǒng)。</p><p>  (3)車輛自動駕駛系統(tǒng),這是智能車輛技術(shù)的最高層次,它由車載計算機(jī)全部自動地實(shí)現(xiàn)車輛操作功能。目前,主要發(fā)展用于擁擠交通時低速自動駕駛系統(tǒng)、近距離車輛排隊(duì)駕駛系統(tǒng)等。</p><p>  這種智能小車的主要應(yīng)用領(lǐng)域包括以下幾個方面:</p><p>

12、;  (1)軍事偵察與環(huán)境探測</p><p>  現(xiàn)代戰(zhàn)爭對軍事偵察提出了更高的要求,世界各國普遍重視對軍事偵察的建設(shè),采取各種有效措施預(yù)防敵方的突然襲擊,并廣泛應(yīng)用先進(jìn)科學(xué)技術(shù),不斷研制多用途的偵察器材和探測設(shè)備,在車上裝備攝像機(jī)、安全激光測距儀、夜視裝置和衛(wèi)星全球定位儀等設(shè)備,通過光纜操縱,完成偵察和監(jiān)視敵情、情報收集、目標(biāo)搜索和自主巡邏等任務(wù),進(jìn)一步擴(kuò)大偵察的范圍,提高偵察的時效性和準(zhǔn)確性。</p&

13、gt;<p>  (2)探測危險與排除險情</p><p>  在戰(zhàn)場上或工程中,常常會遇到各種各樣的意外。這時,智能化探測小車就會發(fā)揮很好的作用。戰(zhàn)場上,可以使用智能車輛掃除路邊炸彈、尋找和銷毀地雷。民用方面,可以探測化學(xué)泄漏物質(zhì),可以進(jìn)行地鐵滅火,以及在強(qiáng)烈地震發(fā)生后到廢墟中尋找被埋人員等。</p><p>  (3)安全檢測受損評估</p><p&g

14、t;  在工程建設(shè)領(lǐng)域,可對高速公路自動巡跡,進(jìn)行道路質(zhì)量檢測和破壞分析檢測;對水庫堤壩、海岸護(hù)岸堤、江河大壩進(jìn)行質(zhì)量和安全性檢測。在制造領(lǐng)域,可用于工業(yè)管道中機(jī)械損傷,裂紋等缺陷的探尋,對輸油和輸氣管線的泄漏和破損點(diǎn)的查找和定位等。</p><p><b>  (4)智能家居</b></p><p>  在家庭中,可以用智能小車進(jìn)行家具、遠(yuǎn)程控制家中的家用電器,控制

15、室溫等等。對這種小車的研究,將為未來環(huán)境探測術(shù)上的有力支持。</p><p>  本尋跡小車采用鋁合金為車架,STC89C52單片機(jī)為控制核心,加以直流電機(jī)、光電傳感器和電源電路以及其他電路的設(shè)計思路。系統(tǒng)由STC89C52通過I/O口控制小車的前進(jìn)后退以及轉(zhuǎn)向。</p><p>  為了適應(yīng)機(jī)電一體化的發(fā)展在汽車智能化方向的發(fā)展要求,提出簡易智能小車的構(gòu)想,目的在于:通過獨(dú)立設(shè)計并制作一

16、輛具有簡單智能化的簡易小車,獲得項(xiàng)目整體設(shè)計的能力,并掌握多通道多樣化傳感器綜合控制的方法。</p><p>  根據(jù)題目要求,確定如下方案:在現(xiàn)有的玩具電動車的基礎(chǔ)上,加裝光電對管、傳感器,實(shí)現(xiàn)對電動車位置、運(yùn)行狀況的實(shí)時測量,并將測量數(shù)據(jù)傳送至單片機(jī)進(jìn)行處理,然后由單片機(jī)根據(jù)所檢測的各種數(shù)據(jù)實(shí)現(xiàn)對電動車的智能控制。</p><p>  這種方案能實(shí)現(xiàn)對電動車的運(yùn)動狀態(tài)進(jìn)行實(shí)時控制,控制

17、靈活、可靠、精度高,可以滿足對系統(tǒng)的各項(xiàng)要求。</p><p>  整個系統(tǒng)基于普通玩具小車的機(jī)械結(jié)構(gòu),并利用了小車的底盤、前后輪電機(jī)及其自動復(fù)原裝置,能夠平穩(wěn)跟蹤路面黑色軌跡運(yùn)行</p><p>  該智能小車在畫有黑線的白紙 “路面”上行駛,由于黑線和白紙對光線的反射系數(shù)不同,可根據(jù)接收到的反射光的強(qiáng)弱來判斷“道路”—黑線。利用了簡單、應(yīng)用比較普遍的檢測方法—發(fā)光二極管+光敏電阻。&l

18、t;/p><p>  發(fā)光二極管+光敏電阻,即利用光線在不同顏色的物理表面具有不同的反射性質(zhì)的特點(diǎn)。在小車行駛過程中不斷地向地面發(fā)射白光,當(dāng)白光遇到白色地面時發(fā)生漫發(fā)射,反射光被裝在小車上的接收管接收;如果遇到黑線則紅外光被吸收,則小車上的接收管接收不到信號。</p><p>  整個電路系統(tǒng)分為檢測、控制、顯示、驅(qū)動四個模塊。首先利用光電對管對路面信號進(jìn)行檢測,經(jīng)過比較器處理之后,送給軟件控

19、制模塊進(jìn)行實(shí)時控制,然后顯示小車的運(yùn)行狀態(tài),輸出相應(yīng)的信號給驅(qū)動芯片驅(qū)動電機(jī)轉(zhuǎn)動,從而控制整個小車的運(yùn)動。系統(tǒng)方案方框圖如圖所示。</p><p>  圖1-1 智能小車尋跡系統(tǒng)框圖</p><p>  1.2.1各模塊設(shè)計</p><p><b>  1、循跡模塊設(shè)計</b></p><p>  發(fā)光二極管+光敏電阻組

20、成光敏探測器,光敏電阻的阻值可以根跟隨周圍環(huán)境光線的變化而變化。當(dāng)光線照射到白線上面時,光線發(fā)射強(qiáng)烈,光線照射到黑線上面時,光線發(fā)射較弱 。因此光敏電阻在白線和黑線上方時,阻值會發(fā)生明顯的變化。將阻值的變化值經(jīng)過比較器就可以輸出高低電平。</p><p><b>  2、控制模塊設(shè)計</b></p><p>  此部分是整個小車運(yùn)行的核心部件,起著控制小車所有的運(yùn)行狀

21、態(tài)作用??刂品椒ê芏啵蟛糠侄疾捎脝纹瑱C(jī)控制。這里選擇了ATMEL公司的AT89C52作為控制芯片,在芯片體積小、集成度高、可靠性好、容量足夠、驅(qū)動能力強(qiáng)、運(yùn)用方便、經(jīng)濟(jì)廉價。</p><p><b>  3、電機(jī)驅(qū)動模塊</b></p><p>  從單片機(jī)輸出信號功率很弱,即使在沒有其它外在負(fù)載是也無法帶動電機(jī),所以在實(shí)際電路中我們加入了電機(jī)驅(qū)動芯片提高輸入電機(jī)信

22、號的功率,從而能夠根據(jù)需要控制電機(jī)轉(zhuǎn)動。</p><p>  1.2.2循跡小車原理圖</p><p>  圖1-2 循跡小車原理圖</p><p>  第二章 控制系統(tǒng)程序設(shè)計</p><p>  #include<reg51.h></p><p>  #include<intrins.h>

23、</p><p>  #define uchar unsigned char</p><p>  #define uint unsigned int</p><p>  sbit IN1=P1^2;</p><p>  sbit IN2=P1^3;</p><p>  sbit IN3=P1^5;</p>

24、<p>  sbit IN4=P1^4;</p><p>  sbit en1=P1^1;</p><p>  sbit en2=P1^6;</p><p>  sbit S1=P1^0;</p><p>  sbit S2=P1^7;</p><p>  void go();</p><

25、;p>  void left();</p><p>  void right();</p><p>  void stop();</p><p>  void delay_ms(uint t); </p><p>  void pwm_init();</p><p>  void qidong();</p&

26、gt;<p><b>  uchar h;</b></p><p>  uint flag1,flag2,pwm1,pwm2;</p><p>  void disp(uint disp_value);</p><p>  void Bcd(uint bcd_value);</p><p>  uchar

27、data led_point[4]={0xef,0xdf,0xbf,0x7f};</p><p>  uchar code LED_Val[] = {0xC0,0xF9,0xA4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x98};</p><p>  uchar data num[4];</p><p><b>  /////////

28、</b></p><p>  void go() //前進(jìn)</p><p><b>  {</b></p><p>  IN1=0; </p><p><b>  IN2=1;</b></p><p><b>  IN3

29、=0;</b></p><p><b>  IN4=1;</b></p><p><b>  }</b></p><p>  ///////////////</p><p>  void left() //向左</p><p><b>  {&l

30、t;/b></p><p><b>  IN1=0;</b></p><p><b>  IN2=1;</b></p><p><b>  IN3=0;</b></p><p><b>  IN4=0;</b></p><p>

31、;<b>  }</b></p><p>  //////////////</p><p>  void right() //向右</p><p><b>  { </b></p><p><b>  IN1=0;</b></p><p><

32、;b>  IN2=0;</b></p><p><b>  IN3=0;</b></p><p><b>  IN4=1;</b></p><p><b>  }</b></p><p>  ///////////////</p><p&g

33、t;  void stop() //停止

34、 </p><p><b>  {</b></p><p>

35、;<b>  IN1=0;</b></p><p><b>  IN2=0;</b></p><p><b>  IN3=0;</b></p><p><b>  IN4=0;</b></p><p><b>  }</b></

36、p><p>  ///////////////////延時函數(shù)///////////////</p><p>  void delay_ms(uint t)</p><p><b>  {</b></p><p><b>  uchar i;</b></p><p>  whil

37、e(t--)</p><p><b>  {</b></p><p>  for(i=1;i<125;i++);</p><p><b>  }</b></p><p><b>  } </b></p><p>  ////////////////

38、/////定時器0方式1//////////////</p><p>  void pwm_init()</p><p><b>  {</b></p><p>  TMOD=0x01;</p><p>  TH0=(65526-200)/256;</p><p>  TL0=(65536-200

39、)%256;</p><p><b>  EA=1; </b></p><p><b>  ET0=1;</b></p><p><b>  TR0=1;</b></p><p><b>  en1=1;</b></p><p>&

40、lt;b>  en2=1;</b></p><p><b>  }</b></p><p>  //////////////</p><p>  void T0_Ser() interrupt 1 using 1</p><p><b>  {</b></p><

41、;p>  TH1=(65536-200)/256;</p><p>  TL1=(65536-200)%256; </p><p><b>  flag1++;</b></p><p><b>  flag2++;</b></p><p>  if(flag1<=pwm1)

42、</p><p><b>  {</b></p><p><b>  en1=1;</b></p><p><b>  }</b></p><p>  if(flag1>pwm1)</p><p><b>  {</b><

43、;/p><p><b>  en1=0;</b></p><p><b>  }</b></p><p>  if(flag1==100) </p><p><b>  {</b></p><p><b>  flag1=0;

44、</b></p><p><b>  }</b></p><p>  if(flag2<=pwm2) </p><p><b>  {</b></p><p><b>  en2=1;</b></p><p><b> 

45、 } </b></p><p>  if(flag2>pwm2) </p><p><b>  {</b></p><p><b>  en2=0;</b></p><p><b>  }</b></p><p>  if(fl

46、ag2==100) </p><p><b>  {</b></p><p><b>  flag2=0;</b></p><p><b>  }</b></p><p><b>  }</b></p><p>  //

47、//// 主函數(shù)///////////////</p><p>  void main()</p><p><b>  {</b></p><p>  // pwm_init();</p><p>  // en1=1;</p><p>  // en2=1;</p><

48、p>  // while(1)</p><p><b>  // {</b></p><p>  // disp(h);</p><p>  // delay_ms(500);</p><p>  // qidong();</p><p><b>  // }<

49、;/b></p><p><b>  while(1)</b></p><p><b>  {</b></p><p>  disp(200);</p><p><b>  }</b></p><p><b>  } </b>

50、;</p><p>  //////////////啟動程序//////////////// </p><p>  void qidong()</p><p><b>  {</b></p><p>  if((S1==0)&&(S2==0))</p><p><b> 

51、 {</b></p><p>  while(S1==0&&S2==0);</p><p><b>  {</b></p><p><b>  go(); </b></p><p><b>  }</b></p><p>

52、  delay_ms(700);</p><p><b>  h++;</b></p><p><b>  go();</b></p><p><b>  } </b></p><p>  if((S1==1)&&(S2==1))</p><

53、p><b>  {</b></p><p><b>  go();</b></p><p><b>  if(h==0)</b></p><p><b>  { </b></p><p><b>  go();</b></

54、p><p><b>  pwm1=20;</b></p><p><b>  pwm2=20;</b></p><p><b>  }</b></p><p><b>  if(h==1)</b></p><p><b>  

55、{ </b></p><p><b>  go();</b></p><p><b>  pwm1=90;</b></p><p><b>  pwm2=90;</b></p><p><b>  } </b></p><

56、p><b>  if(h==2)</b></p><p><b>  { </b></p><p><b>  go();</b></p><p><b>  pwm1=20;</b></p><p><b>  pwm2=20;<

57、/b></p><p><b>  }</b></p><p><b>  }</b></p><p>  if(S1==1&&S2==0)</p><p><b>  { </b></p><p><b>  left(

58、);</b></p><p><b>  }</b></p><p>  if(S1==0&&S2==1)</p><p><b>  {</b></p><p><b>  right();</b></p><p><

59、b>  }</b></p><p><b>  if(h==3)</b></p><p><b>  { </b></p><p><b>  stop();</b></p><p><b>  }</b></p>

60、<p><b>  }</b></p><p>  /////////////數(shù)據(jù)分離////////////////////</p><p>  void Bcd(uint bcd_value)</p><p><b>  {</b></p><p><b>  num[0]=

61、0;</b></p><p>  num[1]=(bcd_value%1000)/100;</p><p>  num[2]=((bcd_value%1000)%100)/10;</p><p>  num[3]=((bcd_value%1000)%100)%10;</p><p><b>  }</b>&l

62、t;/p><p>  ////////////////顯示函數(shù)//////////////////</p><p>  void disp(uint disp_value)</p><p><b>  {</b></p><p><b>  uchar i;</b></p><p&g

63、t;  Bcd(disp_value);</p><p>  for(i=0;i<4;i++)</p><p><b>  {</b></p><p>  P1=led_point[i];</p><p>  SBUF=LED_Val[num[i]];</p><p>  delay_ms(

64、5);</p><p><b>  P1=0XFF;</b></p><p><b>  }</b></p><p><b>  第三章 總結(jié)</b></p><p>  小車能夠較好的完成實(shí)驗(yàn)的基本要求,尋跡誤差較小。通過這次設(shè)計,我們熟練掌握了DXP、KeiL51等軟件的使

65、用方法,并了解了更多關(guān)于單片機(jī)的知識。</p><p>  本系統(tǒng)基本能夠滿足設(shè)計要求,能夠較快較平穩(wěn)的使小車沿引導(dǎo)線行駛,但由于經(jīng)驗(yàn)?zāi)芰τ邢?,該系統(tǒng)還存在著許多不盡人意的地方有待于進(jìn)一步的完善與改進(jìn)。</p><p>  此方案選擇的器件比較簡單,實(shí)際中也很容易實(shí)現(xiàn)。經(jīng)過多次測試,結(jié)果表明在一定的弧度范圍內(nèi),小車能夠沿著黑線軌跡行進(jìn),達(dá)到了預(yù)期的目標(biāo)。不足之處,由于小車采用直流電機(jī),其速

66、度控制不夠精確和穩(wěn)定,導(dǎo)致小車循跡時行走不是很流暢;其次,由于車身比較重,導(dǎo)致小車拐彎時候比較吃力,有時候會卡死不動。</p><p>  通過兩周的努力,即將完成設(shè)計,當(dāng)然由于本組精力和時間有限,本設(shè)計中或多或少會存在一些缺點(diǎn),所設(shè)計的軟硬件難免會存在一些不足,剛開始選擇這個項(xiàng)目的時候其實(shí)是抱著好奇的心里,真的開始做了才發(fā)現(xiàn)困難重重。首先是DXP畫圖軟件不熟悉,接下來是小車硬件的連接,最后是編程。雖然整個過程很

67、堅辛,但我收獲了更多。我學(xué)會了使用DXP繪圖軟件,學(xué)會了再難也要做下去,學(xué)會了向周圍優(yōu)秀的同學(xué)積極地學(xué)習(xí)。</p><p><b>  總結(jié)人: </b></p><p><b>  2015.6.14</b></p><p><b>  參考文獻(xiàn)</b></p><p>  

68、[1]李廣弟,朱月秀,王秀山編著.單片機(jī)基礎(chǔ). 北京:北京航空航天大學(xué)出版社,2001</p><p>  [2] 何立民編著.MCS-51系列單片機(jī)應(yīng)用系統(tǒng)設(shè)計系統(tǒng)配置與接口技術(shù).北京:北京航空航天大學(xué)出版社,1999</p><p>  [3] 蔡美琴等編著.MCS-51 單片機(jī)系統(tǒng)及應(yīng)用.北京:高等教育出版社.1992</p><p>  附錄Ⅰ DXP練習(xí)圖

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論