電子設(shè)計(jì)大賽智能小車步進(jìn)電機(jī)控制_第1頁
電子設(shè)計(jì)大賽智能小車步進(jìn)電機(jī)控制_第2頁
電子設(shè)計(jì)大賽智能小車步進(jìn)電機(jī)控制_第3頁
電子設(shè)計(jì)大賽智能小車步進(jìn)電機(jī)控制_第4頁
電子設(shè)計(jì)大賽智能小車步進(jìn)電機(jī)控制_第5頁
已閱讀5頁,還剩15頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、第五屆合肥學(xué)院電子設(shè)計(jì)大賽設(shè)計(jì)報(bào)告競賽題目:智能電動(dòng)車(I題) 參賽隊(duì)伍:電子信息與電氣工程系隊(duì)員姓名:翁同玖 嚴(yán)旭東 湯川隊(duì)員學(xué)號(hào): 0 7 0 5 0 7 6 0 1 8 0 7 0 5 0 7 6 0 0 5 0 7 0 5 0 7 6 0 1 7 【摘 要】: 本設(shè)計(jì)以單片機(jī)作為主控芯片,控制兩個(gè)步進(jìn)電機(jī)的正反轉(zhuǎn),實(shí)現(xiàn)了小車的不同方向運(yùn)動(dòng)。利用紅外對管做成的紅外傳感器來檢測路面信息,完成了小車的巡線功能。避障與尋光均采用紅外對管來實(shí)現(xiàn)。采用LCD1602液晶顯示屏來顯示時(shí)間與路程等信息。【關(guān)鍵詞】: 巡線 避障 尋光 顯示 Abstract: This design uses sing

2、le slice of machine as the lord controls chip and control two steps to enter electrical engineering of positive and negative turn, carried out different direction sport of small car.Make use of a red outside to examine a road noodles information to the red unauthorized biography machine that the tub

3、e makes into, completed the cruising of small car line function.Avoid Zhang with look for the light all adopt red outside to tube to carry out.Adopt LCD1602 the LCDs show to hold to show informations, such as time and road.etc.Keyword: Search online Avoid object Search light Show Information 目 錄1.總體

4、概括12.方案的論證與比較12.1 主控芯片的選擇12.2 智能巡線設(shè)備的選擇12.3 顯示設(shè)備的選擇22.4 聲光信號(hào)設(shè)備的選擇23 電路設(shè)計(jì)33.1單元電路設(shè)計(jì)33.1.1 尋光電路的設(shè)計(jì)33.1.2 紅外檢測電路設(shè)計(jì)33.1.3 金屬探測電路的設(shè)計(jì)43.2 電機(jī)驅(qū)動(dòng)電路設(shè)計(jì)54.軟件設(shè)計(jì)74.1主程序流程圖74.2程序清單85.調(diào)試結(jié)果86總結(jié)與體會(huì)87.參考文獻(xiàn):81.總體概括具體的系統(tǒng)方框圖如下所示:圖1 系統(tǒng)框圖2.方案的論證與比較2.1 主控芯片的選擇方案一:采用單個(gè)單片機(jī)作為主控芯片。由于AT89S52具有32個(gè)I/O口,能滿足小車各部分對I/O口的需求,另外只用一個(gè)單片機(jī)可以

5、很好的控制小車。方案二:采用雙單片機(jī)作為主控芯片。利用兩塊AT89S52分別對小車的各部分進(jìn)行監(jiān)測和控制,雖然減輕了單個(gè)單片機(jī)的負(fù)擔(dān),提高了系統(tǒng)的工作效率,但是存在很多的I/O的資源浪費(fèi),并且兩個(gè)單片機(jī)不容易控制,所以不采用該方案。使用方案一2.2 智能巡線設(shè)備的選擇  方案一:采用普通發(fā)光二極管及光敏電阻組成的發(fā)射接收方案。該方案在實(shí)際使用時(shí),容易受到外界光源的干擾,有時(shí)甚至檢測不到。主要是因?yàn)榭梢姽獾姆瓷湫Ч乇淼钠教钩潭?、地表材料的反射情況都有直接關(guān)系。雖然可采取超高亮度發(fā)光二極管降低一定的干擾,但這又增加額外的功率損耗。方案二:采用反射式紅外對管,雖然易受環(huán)境的影響,識(shí)別的

6、可靠程度不高,但是由于其結(jié)構(gòu)簡單,體積小巧,易于安裝,完全能用多個(gè)該傳感器構(gòu)成高精度的控制輻射網(wǎng)絡(luò)提高識(shí)別的可靠性、準(zhǔn)確性,考慮到實(shí)際應(yīng)用環(huán)境,因此我們采用方案二。2.3 顯示設(shè)備的選擇方案一:采用傳統(tǒng)數(shù)碼管作為顯示設(shè)備。傳統(tǒng)數(shù)碼管具有低能耗、低損耗、低壓、長壽命、耐老化、防曬、防潮、防火、防高(低)溫的特點(diǎn);對外界環(huán)境要求低,易于維護(hù);同時(shí)其精度比較高,精確可靠,操作簡單,程序編寫容易,資源占用少。本設(shè)計(jì)要求顯示的內(nèi)容較多,如果利用傳統(tǒng)數(shù)碼管來顯示,則需要好幾塊數(shù)碼管,這樣占用單片機(jī)很多的I/O口,并且不夠美觀,也不易區(qū)分各塊數(shù)碼管顯示的是什么內(nèi)容。所以,該方案不被采用。方案二:采用液晶顯示

7、屏(LCD)顯示時(shí)間和路程。液晶顯示器具有功耗低、無輻射危險(xiǎn)、平面直角顯示以及影像穩(wěn)定等,可視面積大,畫面效果好,也可以顯示漢字,分辨率高,抗干擾能力強(qiáng),顯示內(nèi)容多等特點(diǎn)。因此,只要用一塊液晶顯示器就可以顯示設(shè)計(jì)要求的全部內(nèi)容。此外,液晶顯示器與單片機(jī)連接電路較簡單,且占用的I/O口較少?;谝陨戏治?,我們采用該方案,用LCD1602進(jìn)行顯示。2.4 聲光信號(hào)設(shè)備的選擇本設(shè)計(jì)要求小車在直道上檢測到金屬時(shí)發(fā)出聲光指示信息,在發(fā)聲方面,我們使用蜂鳴器代替揚(yáng)聲器,因?yàn)閾P(yáng)聲器功耗比較大,體積也較大,而本設(shè)計(jì)對聲音信號(hào)要求不高,所以我們使用功耗與體積都較小的蜂鳴器。在發(fā)光方面,我們選擇普通的發(fā)光二極管。

8、3 電路設(shè)計(jì)3.1單元電路設(shè)計(jì) 尋光電路的設(shè)計(jì)該單元電路主要是實(shí)現(xiàn)小車尋光入庫,考慮到光源是放在車庫里,而且光源離地面有一定的高度,為了使小車能夠精確駛?cè)霂熘?,我們采用三個(gè)光敏傳感器。用金屬支架將三個(gè)光敏傳感器固定在車的中間部分,并使光敏傳感器盡可能與光源保持水平,這三個(gè)傳感器組成一個(gè)120度的扇形,相鄰兩個(gè)之間的角度為60度。其中一路如圖所示:圖2 尋光電路圖其他兩個(gè)電路與此電路相同。接收管未接收到光源發(fā)出的紅外光時(shí),接收管不導(dǎo)通,正向輸入的電壓大于基準(zhǔn)電壓,通過電壓比較器進(jìn)行比較輸出高電平,接收管接收到光源發(fā)出的紅外光后,接收管導(dǎo)通,正向輸入的電壓將會(huì)小于基準(zhǔn)電壓,通過電壓比較器進(jìn)行比較輸

9、出低電平。單片機(jī)可直接對接收到的信號(hào)進(jìn)行判斷是否檢測到光源,并通過對檢測到的信號(hào)進(jìn)行處理來決定小車的運(yùn)動(dòng)方向。 紅外檢測電路設(shè)計(jì)該設(shè)計(jì)采用紅外對管構(gòu)成的紅外傳感器,具體電路如圖所示:圖3 紅外對管電路我們在小車的前端底部安裝三對相同的紅外對管,用來檢測地面信號(hào),每個(gè)紅外對管都有一個(gè)發(fā)射管和一個(gè)接收管,發(fā)射管發(fā)射紅外線到地面,如果遇到黑線則光信號(hào)會(huì)被吸收,否則會(huì)被反射回來。檢測到黑線接收管不導(dǎo)通,輸出高電平,否則輸出低電平。單片機(jī)根據(jù)接收到的高低電平來決定小車如何行駛。另外在小車的正前端安裝一對紅外對管,用來檢測前方是否有障礙物。探測原理與檢測地面的原理相同,當(dāng)小車前端的紅外對管發(fā)射出的紅外光線

10、被反射回來時(shí),說明前方有障礙物,此時(shí)小車會(huì)進(jìn)行相應(yīng)的反應(yīng)。 金屬探測電路的設(shè)計(jì)此部分電路的功能是檢測軌道上的鋁錢幣,在此我們使用的金屬傳感器是電感接近式開關(guān)。該傳感器由LC高頻振蕩器和放大處理電路組成,利用金屬物體在接近這個(gè)能產(chǎn)生電磁場的振蕩感應(yīng)頭時(shí),使物體內(nèi)部產(chǎn)生渦流。這個(gè)渦流反作用于接近開關(guān),使接近開關(guān)振蕩能力衰減,內(nèi)部電路的參數(shù)發(fā)生變化,由此識(shí)別出有無金屬物體接近,進(jìn)而控制開關(guān)的通或斷。其工作原理圖如下所示:圖4 接近式開關(guān)原理圖當(dāng)小車遇到鋁錢幣時(shí),控制開關(guān)將會(huì)發(fā)生變化,輸出電壓為零伏,否則輸出的是1.12V。由于兩者都屬于低電平,在此我們再次使用電壓比較器,使兩種不同情況下,分別輸出高

11、低電平,并將其傳給單片機(jī)。單片機(jī)根據(jù)接收到的信號(hào)判斷是否有鋁錢幣。3.2 電機(jī)驅(qū)動(dòng)電路設(shè)計(jì)本設(shè)計(jì)使用的步進(jìn)電機(jī)是四項(xiàng)六線式,用L297和L298N驅(qū)動(dòng)芯片驅(qū)動(dòng),其中一個(gè)的驅(qū)動(dòng)電路如圖所示(另外一個(gè)于此相同):圖5 .步進(jìn)電機(jī)驅(qū)動(dòng)電路單片機(jī)AT89S52通過I/O口向L297的17和18腳發(fā)送驅(qū)動(dòng)控制信號(hào),從而控制步進(jìn)電機(jī)的速度及正反轉(zhuǎn)。4.軟件設(shè)計(jì)4.1主程序流程圖4.2程序清單#include"xiaoche.h"#include"lcd1602.h"/unsigned int s=10;/unsignedint s2,i2=1,j2=1,k2=1;u

12、nsigned int jj=0;unsigned int kk=0;unsigned int d5=0;voidDelay(unsignedint t)/延時(shí)1 while(t-);void go(void)/直行cwright=1;cwleft=1;m=2; step_mode=0;void back()/后直行m=2;cwright=0;cwleft=0; step_mode=0;void tleft() /左拐/cwleft=0;/cwright=1;m=0; step_mode=0;voidtleft_1(void) m=4; cwleft=0; cwright=1; step_mo

13、de=0; void tright()/右拐/cwleft=1;/cwright=0; m=1; step_mode=0;voidtright_1(void) m=5; cwleft=1; cwright=0; step_mode=0; void searchline (void) /巡線+金屬探測 unsignedint s=10; unsignedint i,j,k,z;kk=1; while(1) i=s_L; j=s_M; k=s_R;z=js; s=z*8+i*4+j*2+k;switch(s)case 7:shengguang();break;case 5:shengguang()

14、;break;case 2:go();shengguang();break; case 4:tright();shengguang();break; case 6:tright();shengguang();break; case 1:tleft();shengguang();break; case 3:tleft(); shengguang();break;/case 0:go();shengguang();break;case 15:case 13:case 10:go();break; case 12:tright();break; case 14:tright();break; cas

15、e 9:tleft();break; case 11:tleft(); break;case 8:go();break;if(s=0)Stop_0(5); break; /go();shengguang();/if(s=8)break;Display();/if(ii=1)a=d0;/if(ii=2)d2=a;/if(ii=3)d3=a;/if(ii=4)/Stop_0(10);/Display();/stop();shengguang();/Delay1ms(1000);/break; void searchlight () unsignedint s1,i1=1,j1=1,k1=1;uns

16、ignedint s2,i2=0,j2=0,k2=0; while(1) i1=left2 ; j1=forest3; k1=right1;s1=i1*4+j1*2+k1;i2=s_L; j2=s_M; k2=s_R;s2=4*i2+2*j2+k2;switch(s1)case 7:go();break;case 5:go();break;case 2: case 4:tleft();break; case 6:tleft();break; case 1:tright();break; case 3:tright(); break;/case 0:go();break; Display();

17、if(s1=0)break;/go();if(s2=7)break; /金屬探測void shengguang()unsignedint i=0; ii+;dii=a;light=1;alrm=1;for(i=0;i<5;i+) alrm=!alrm;light=!light;Delay(10000);alrm=1;light=1;void init() TMOD=0x11;/T0,T1都使用16位定時(shí)器,不受外部外部引腳電平控制 TH0=0xfc;TL0=0x17; TH1=0x3c; TL1=0xb0;/定時(shí)50ms EA=1; ET0=1; ET1=1; TR0=1; TR1=1;

18、 void time() interrupt 3 using 1 TH1=0x3c; TL1=0xb0; TCount+; if(TCount=20) TCount=0;second+;if(second=90)stop();void Delay1ms(Word n) /延時(shí)2 Word a; for(;n>0;n-) for(a=0;a<120;a+) ;void Stop_0(Word n) /停車1 while(n-) Display(); stop();Delay1ms(500); alrm=!alrm; light=!light;Delay(1000); alrm=1;

19、light=1;voidstop(void) /停車2 m=3; step_mode=0; voidstep()interrupt1 if(!step_mode)step_time=3000;step_mode=1;if(jj)step_time=1800;if(kk)step_time=1500;TH0=(Byte)(65535-step_time)/256);TL0=(Byte)(65535-step_time)%256);if(m=0)moto_clkl=moto_clkl;c+;if(m=1)moto_clkr=moto_clkr;c+;if(m=2)moto_clkl=moto_cl

20、kl;moto_clkr=moto_clkr;c+;if(m=3);if(m=4)moto_clkl=moto_clkl;moto_clkr=moto_clkr;c+;if(m=5)moto_clkl=moto_clkl;moto_clkr=moto_clkr;c+;/if(step_time>1000)step_time-=200;/c+;b+;if(c=37)a+=1;c=0; voidDisplay1() Lcd_Init();Lcd_DisplayString(0,0,"Time:");Lcd_DisplayOneChar(7,0,'s');L

21、cd_DisplayString(9,0,"Num:");Lcd_DisplayString(0,1,"D1 :");Lcd_DisplayString(7,1,"cm"); Lcd_DisplayOneChar(13,0,ii+0x30);Lcd_DisplayOneChar(6,0,second%10+0x30);Lcd_DisplayOneChar(5,0,second/10+0x30);Lcd_DisplayOneChar(4,1,d1/100+0x30);Lcd_DisplayOneChar(5,1,d1%100/10+0x

22、30);Lcd_DisplayOneChar(6,1,d1%10+0x30); voidDisplay2() Lcd_Init();Lcd_DisplayString(0,0,"Time:");Lcd_DisplayOneChar(7,0,'s');Lcd_DisplayString(9,0,"Num:");Lcd_DisplayString(0,1,"D2 :");Lcd_DisplayString(7,1,"cm"); Lcd_DisplayOneChar(13,0,ii+0x30);Lcd_D

23、isplayOneChar(6,0,second%10+0x30);Lcd_DisplayOneChar(5,0,second/10+0x30);Lcd_DisplayOneChar(4,1,d2/100+0x30);Lcd_DisplayOneChar(5,1,d2%100/10+0x30);Lcd_DisplayOneChar(6,1,d2%10+0x30); voidDisplay3() Lcd_Init();Lcd_DisplayString(0,0,"Time:");Lcd_DisplayOneChar(7,0,'s');Lcd_DisplaySt

24、ring(9,0,"Num:");Lcd_DisplayString(0,1,"D3 :");Lcd_DisplayString(7,1,"cm"); Lcd_DisplayOneChar(13,0,ii+0x30);Lcd_DisplayOneChar(6,0,second%10+0x30);Lcd_DisplayOneChar(5,0,second/10+0x30);Lcd_DisplayOneChar(4,1,d3/100+0x30);Lcd_DisplayOneChar(5,1,d3%100/10+0x30);Lcd_Disp

25、layOneChar(6,1,d3%10+0x30); voidDisplay4() Lcd_Init();Lcd_DisplayString(0,0," Over! Thank you!"); voidDisplay() /init();Lcd_DisplayOneChar(13,0,ii+0x30);Lcd_DisplayOneChar(6,0,second%10+0x30);Lcd_DisplayOneChar(5,0,second/10+0x30);Lcd_DisplayOneChar(4,1,a/100+0x30);Lcd_DisplayOneChar(5,1,a

26、%100/10+0x30);Lcd_DisplayOneChar(6,1,a%10+0x30); main()/unsignedint s2,i2=1,j2=1,k2=1;/step_intset();Lcd_Init();Lcd_DisplayString(0,0,"Time:");Lcd_DisplayOneChar(7,0,'s');Lcd_DisplayString(9,0,"Num:");Lcd_DisplayString(0,1,"Dis:");Lcd_DisplayString(7,1,"cm&

27、quot;);/unsignedint s2=1,i2=1,j2=1,k2=1; init();searchline();go();Display();kk=0;while(forest);jj=1;stop();Display();Delay1ms(500);back();Display();Delay1ms(60);tleft_1();Display();Delay1ms(390); stop();Display(); Delay1ms(200);go();Display();Delay1ms(2000);tright_1();Display();Delay1ms(370);go();Di

28、splay();Delay1ms(1000);go();Display(); /Delay1ms(2000);/ Delay1ms(1500);while(!forest);go();Display();while(forest);/stop();Display();/Delay1ms(300);tright_1();Display();Delay1ms(360);jj=0;/go();Display();/Delay1ms(100); go();Display();while(right);jj=1;stop();Delay1ms(500);go();Display();Delay1ms(9

29、00);tleft_1();Display(); Delay1ms(390);go();Display();Delay1ms(1000);/tleft_1();Display();/Delay1ms(340);/go();Display();/Delay1ms(300);searchlight ();/go();/ i2=s_L; /j2=s_M; /k2=s_R;/s2=4*i2+2*j2+k2;/while (s2=7);/jj=0;/stop();Display();/Delay1ms(1000); /go();Display(); /if(s2=7) / stop();Display(); Delay1ms(100); back(); Display();Delay1ms(1000); tleft_1();Display(); Delay1ms(750); back(); Display(); Delay1ms(2200); / /go();Display(); /Delay1ms(200); /stop();Display(); EA=0; Delay1ms(1000); Display1();Delay1ms(3000);Display2();Delay1ms(3000);Display3();Delay1ms(3000); Display

溫馨提示

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

評論

0/150

提交評論