聲光尋跡小車報(bào)告_第1頁(yè)
聲光尋跡小車報(bào)告_第2頁(yè)
聲光尋跡小車報(bào)告_第3頁(yè)
聲光尋跡小車報(bào)告_第4頁(yè)
聲光尋跡小車報(bào)告_第5頁(yè)
已閱讀5頁(yè),還剩12頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、. . . . 摘要本設(shè)計(jì)采用STC89C52RC單片機(jī)作為智能小車的控制中心,主要包括光源檢測(cè)模塊、電機(jī)驅(qū)動(dòng)模塊、時(shí)間距離顯示模塊、紅外線檢測(cè)模塊、電源裝置等。小車可以實(shí)現(xiàn)尋找光源、顯示小車的行駛時(shí)間和路程。尋光源裝置采用自制的光電傳感器,時(shí)間距離顯示模塊采用自制的反射紅外傳感器和LCD1602。電機(jī)驅(qū)動(dòng)模塊采用L298N電機(jī)驅(qū)動(dòng)芯片來控制直流電機(jī),電源裝置采用單片機(jī)與電機(jī)單獨(dú)供電的方式,避免了電源的相互干擾。關(guān)鍵詞:?jiǎn)纹瑱C(jī),智能小車,PWM脈寬調(diào)制,直流電機(jī)。設(shè)計(jì)任務(wù)與要求在半徑為5米的圓形,在任意地方放置一聲源,要求小車在最短時(shí)間自動(dòng)走到聲源處。實(shí)現(xiàn)此功能的基礎(chǔ)上,在任意地方放置一光源,

2、要求小車在最短時(shí)間自動(dòng)走到光源處。要求:圓形區(qū)域用黑線做標(biāo)記,小車運(yùn)動(dòng)不能超出圓形圍。聲源用頻率為1KHz的正弦波信號(hào)。光源為50瓦的電燈泡。一.方案比較與論證:1.主控系統(tǒng)方案一:采用高性能的嵌入式系統(tǒng),比如ARM可以很好地解決數(shù)據(jù)處理和控制功能,但是ARM價(jià)格昂貴且很少接觸,在短時(shí)間完成困難較大。方案二:采用STC89C52來實(shí)現(xiàn)。C51系列單片機(jī)接觸較多,且其能夠很好地提供我們所需的功能。 考慮到方案的可行性和性價(jià)比,我們采用STC89C52單片機(jī)。2.車體的設(shè)計(jì)方案一:自己制作一個(gè)車體。自制的車體總的來說是比較粗糙的,而且車體的機(jī)械強(qiáng)度不高,車身的重量和平衡都要有精確的測(cè)量。方案二:購(gòu)

3、買車體模型?,F(xiàn)成的車體由于裝配緊湊,使得各種電路的安裝十分方便,且比較美觀。車體是依靠直流電機(jī)與相關(guān)齒輪一起驅(qū)動(dòng),能適應(yīng)題目中小車準(zhǔn)確前進(jìn)、后退、轉(zhuǎn)彎的要求,而且這種電動(dòng)車一般都價(jià)格適中。鑒于以上分析,我們選擇了方案二。3電機(jī)驅(qū)動(dòng)模塊方案一:通過晶體三極管等分立元件搭建H橋。優(yōu)點(diǎn)是價(jià)格便宜,結(jié)構(gòu)簡(jiǎn)單,但由于晶體三極管的承載電流比較小,驅(qū)動(dòng)能力受到限制,且穩(wěn)定性得不到保證。方案二:采用集成芯片。L298N款單片集成的高電壓、高電流、雙路全橋式電機(jī)驅(qū)動(dòng),設(shè)計(jì)用于連接標(biāo)準(zhǔn)TTL邏輯電平,驅(qū)動(dòng)電感負(fù)載(諸如繼電器、線圈、DC和步進(jìn)電機(jī))。L298N供兩個(gè)使能輸入端,可以在不依賴于輸入信號(hào)的情況下,使能

4、或禁用L298N件。L298N輸出電壓高達(dá)46V,輸出電流為2A,具有過溫保護(hù)功能。其輸入端可以與單片機(jī)直接相聯(lián),從而很方便地受單片機(jī)控制。當(dāng)驅(qū)動(dòng)小型直流電機(jī)時(shí),可以直接控制兩路電機(jī),并可以實(shí)現(xiàn)電機(jī)正轉(zhuǎn)與反轉(zhuǎn),實(shí)現(xiàn)此功能只需改變輸入端的邏輯電平。 基于L298N優(yōu)點(diǎn),我們選擇L298N電機(jī)控制芯片。4電機(jī)模塊方案一: 采用步進(jìn)電機(jī)作為該系統(tǒng)的驅(qū)動(dòng)電機(jī)。由于其轉(zhuǎn)過的角度可以精確的定位,可以實(shí)現(xiàn)小車前進(jìn)路程和位置的精確定位。雖然采用步進(jìn)電機(jī)有諸多優(yōu)點(diǎn),步進(jìn)電機(jī)的輸出力矩較低,隨轉(zhuǎn)速的升高而下降,且在較高轉(zhuǎn)速時(shí)會(huì)急劇下降,其轉(zhuǎn)速較低,不適用于小車等有一定速度要求的系統(tǒng)。經(jīng)綜合比較考慮,我們放棄了此方

5、案。方案二:直流電機(jī):直流電機(jī)的控制方法比較簡(jiǎn)單,只需給電機(jī)的兩根控制線加上適當(dāng)?shù)碾妷杭纯墒闺姍C(jī)轉(zhuǎn)動(dòng)起來,電壓越高則電機(jī)轉(zhuǎn)速越高。對(duì)于直流電機(jī)的速度調(diào)節(jié),可以采用改變電壓的方法,也可采用PWM調(diào)速方法。PWM調(diào)速就是使加在直流電機(jī)兩端的電壓為方波形式,通過改變方波的占空比實(shí)現(xiàn)對(duì)電機(jī)轉(zhuǎn)速的調(diào)節(jié)?;谝陨戏治?,我們選擇了方案二,使用直流電機(jī)作為電動(dòng)車的驅(qū)動(dòng)電機(jī)。5. 時(shí)間距離顯示模塊方案一:使用霍爾傳感器獲得脈沖信號(hào)。其機(jī)械結(jié)構(gòu)較為簡(jiǎn)單,只要在轉(zhuǎn)軸的圓周上粘上一粒磁鋼,讓霍爾開關(guān)靠近磁鋼,就有信號(hào)輸出,轉(zhuǎn)軸旋轉(zhuǎn)時(shí),就會(huì)不斷產(chǎn)生脈沖信號(hào)輸出,如果在圓周上粘多粒磁鋼,就可以實(shí)現(xiàn)旋轉(zhuǎn)一周就獲得鎖個(gè)脈沖輸

6、出,測(cè)速精度比較高。但對(duì)于本設(shè)計(jì),由于小車的車輪距離車體較近,不適合安裝霍爾傳感器。方案二:使用自制紅外線傳感器獲得脈沖信號(hào)。此時(shí)需要在小車車輪的側(cè)貼上黑白相隔的線條圓盤,當(dāng)小車車輪旋轉(zhuǎn)時(shí),紅外線傳感器就就會(huì)輸出相應(yīng)的脈沖,旋轉(zhuǎn)一周時(shí),會(huì)產(chǎn)生多個(gè)脈沖,其測(cè)速精度也比較高。對(duì)于顯示部分,我們采用液晶顯示屏。因此我們采用方案二。系統(tǒng)框圖二系統(tǒng)的硬件設(shè)計(jì)與實(shí)現(xiàn)1.單片機(jī)最小系統(tǒng)STC89C52與外圍電路構(gòu)成的單片機(jī)最小系統(tǒng)。2.電機(jī)驅(qū)動(dòng)模塊電機(jī)驅(qū)動(dòng)模塊采用L298N來作為驅(qū)動(dòng)芯片,L298N可以驅(qū)動(dòng)兩個(gè)兩相電機(jī),OUT1,OUT2和OUT3,OUT4之間分別接兩個(gè)直流電機(jī),在電機(jī)端接入了保護(hù)二極管,

7、是為了防止電機(jī)換向時(shí)電流過大燒壞電機(jī)。單片機(jī)的P1.6,P1.7分別接電機(jī)的使能端ENA,ENB;P1.2P1.5分別接IN1IN4用于控制兩電機(jī)的轉(zhuǎn)向。L298N有兩個(gè)電源輸入端,一個(gè)是VSS是芯片的工作電壓,另一個(gè)是VS是電機(jī)的工作電壓,VSS、單片機(jī)與其他模塊的電源和VS是獨(dú)立供電的,這樣可以避免電機(jī)工作時(shí)對(duì)控制電路部分的影響。在電源的輸入端接電容C1、C2、C3、C4來做電源的去耦(旁路)電容。下面是L298N的功能邏輯圖:1298N的邏輯功能ENA(B) INl(IN3) IN2(IN4) 電機(jī)運(yùn)行情況 H H L 正轉(zhuǎn) H L H 反轉(zhuǎn) H 同IN2(IN4) 同INl(IN3)

8、快速停止 L X X 停止 3.液晶顯示屏采用LCD1602顯示小車行駛的時(shí)間和路程。電位器用于調(diào)節(jié)顯示屏的對(duì)比度。4.電源模塊采用兩片L7805穩(wěn)壓芯片產(chǎn)生兩個(gè)5V電壓,分別供給單片機(jī)與其他電路和電機(jī)電源,保證電機(jī)電源和其他電源是獨(dú)立的。5.光源檢測(cè)模塊方案一:在小車前面裝兩個(gè)光電二極管,一左一右。通過不同方向的光照使光敏二極管工作,從而對(duì)小車行駛方向進(jìn)行控制,根據(jù)光敏二極管的特性,只有當(dāng)光達(dá)到一定強(qiáng)度時(shí)才能夠?qū)?,?dǎo)通后光敏二極管將光信號(hào)轉(zhuǎn)化為電信號(hào),電信號(hào)經(jīng)電壓比較器將模擬量轉(zhuǎn)化為數(shù)字量送下單片機(jī),經(jīng)判別I/O口的數(shù)字量,再控制小車。靈敏度還是可以的。 方案二:在小車前面裝上參數(shù)一致的光

9、敏二極管,光敏二極管將光信號(hào)轉(zhuǎn)化為電信號(hào),電信號(hào)經(jīng)電壓比較器將模擬量轉(zhuǎn)化為數(shù)字量送下單片機(jī),單片機(jī)再對(duì)讀入的幾路數(shù)據(jù)進(jìn)行存儲(chǔ),比較,然后發(fā)出命令以外圍進(jìn)行操作方案二硬件很復(fù)雜,但方案一靈敏度還不錯(cuò),故用方案一。硬件電路圖:光敏二極管也叫光電二極管。光敏二極管與半導(dǎo)體二極管在結(jié)構(gòu)上是類似的,其管芯是一個(gè)具有光敏特征的PN結(jié),具有單向?qū)щ娦?,因此工作時(shí)需加上反向電壓。無光照時(shí),有很小的飽和反向漏電流,即暗電流,此時(shí)光敏二極管截止。當(dāng)受到光照時(shí),飽和反向漏電流大大增加,形成光電流,它隨入射光強(qiáng)度的變化而變化。當(dāng)光線照射PN結(jié)時(shí),可以使PN結(jié)中產(chǎn)生電子一空穴對(duì),使少數(shù)載流子的密度增加。這些載流子在反向

10、電壓下漂移,使反向電流增加。因此可以利用光照強(qiáng)弱來改變電路中的電流。我們?cè)俳?jīng)過LM311電壓比較器電路處理后得到高低電平輸出,高低電平再加以軟件加以控制,從而達(dá)到要求。6.紅外線行走距離檢測(cè)模塊方案一:采用TCRT5000自制紅外反射式光電傳感器。TCRT5000的核心部分為紅外光電對(duì)管,紅外光波長(zhǎng)比可見光波長(zhǎng)長(zhǎng),受可見光影響小,紅外系統(tǒng)還具有尺寸小,質(zhì)量輕等優(yōu)點(diǎn)。這種方案簡(jiǎn)單,價(jià)格便宜,靈敏度可調(diào),抗干擾能力比較強(qiáng),而且這個(gè)電路電池供電的壓降較小。 方案二:采用發(fā)光二極管發(fā)光,用光敏二極管接收。但光敏二極管受可見光的影響比較大,穩(wěn)定性差。不適宜用于尋跡。 考慮到可靠性,我們選擇方案一。 硬件

11、電路圖:TCRT5000是一個(gè)紅外發(fā)射管和一個(gè)紅外接收管。當(dāng)發(fā)射管的戲外信號(hào)經(jīng)反射被接收管接收后,接收管的電阻會(huì)發(fā)生變化,在電路上一般以電壓的形式體現(xiàn)出來。TCRT5000電阻的變化取決于接收管所接收的戲外信號(hào)強(qiáng)度,學(xué)表現(xiàn)在反射面的顏色和距離二方面。反射面的顏色我們用黑膠布線和地面做對(duì)比,接收的距離可以通過電位器調(diào)靈敏度。我們?cè)俳?jīng)過LM311電壓比較器電路處理后得到高低電平輸出,高低電平再加以軟件加以控制,從而達(dá)到要求。7.紅外線檢測(cè)模塊黑線就是圍區(qū),小車檢測(cè)到黑線就停止行走,避免小車走出黑圈。原理,電路和紅外線行走距離檢測(cè)模塊是一樣的。但是放在車頭底下左右各一個(gè),這樣更能保證小車不會(huì)走出黑圈

12、。8.避障模塊避障就是當(dāng)小車走到光源處,為了防止小車撞上光源,而設(shè)置的電路模塊讓小車差不多走到的時(shí)候自動(dòng)停止。方案一:用光敏二極管,做一個(gè)和檢測(cè)光源的電路一樣的電路來檢測(cè)是否到過光源處。但是光敏二極管對(duì)光的感應(yīng)太靈敏了,不好調(diào)節(jié)電位器來確定所要設(shè)置的距離。方案二:用光敏電阻,用LM358做一個(gè)比較器電路,由于光敏電阻對(duì)光的感應(yīng)沒有那么靈敏,比較好調(diào)節(jié)要設(shè)置的距離。電路圖如下:光敏電阻又稱光導(dǎo)管,常用的制作材料為硫化鎘,另外還有硒、硫化鋁、硫化鉛和硫化鉍等材料。這些制作材料在一定光強(qiáng)度照射下,其阻值迅速減小的特性。我們?cè)俳?jīng)過LM358電壓比較器電路處理后得到高低電平輸出,高低電平再加以軟件加以控

13、制,從而達(dá)到要求。三.系統(tǒng)軟件設(shè)計(jì)1.程序流程圖:(1)主程序流程圖:(2)中斷程序流程圖:2.軟件程序:/*- 名稱:聲光尋跡小車 編寫:勤 日期:2010.8 修改:無 容:通過標(biāo)準(zhǔn)程序靜態(tài)顯示計(jì)時(shí)時(shí)間與行程;通過光電二極管與紅外二極管控制電機(jī)的PWM輸出改變尋跡小車的方向-*/#include<reg52.h> /包含頭文件,一般情況不需要改動(dòng),頭文件包含特殊功能寄存器的定義#include<stdio.h> /標(biāo)準(zhǔn)輸入輸出#include<intrins.h>/*/* 定義端口 */*/sbit P35 = P35; /行程計(jì)數(shù)輸入sbit STOP

14、 = P30;/光敏電阻sbit RS = P24;/1602控制字sbit RW = P25; sbit E = P26; sbit P10 = P10;/光電1sbit P11 = P11;/光電2sbit PWM1 = P12; /電機(jī)1PWM輸出sbit IN2 = P13;sbit PWM2 = P14;/電機(jī)2PWM輸出sbit IN4 = P15;sbit ENA = P16;/電機(jī)使能sbit ENB = P17;sbit RED1 = P33; /紅外1sbit RED2 = P34; /紅外2#define Data P0 /數(shù)據(jù)端口/*/* 全局變量 */*/char d

15、ata Time=" "char data journey=" " unsigned chart=0,tencnt=0,oldms=0,olds=0,count1=0,count2=0,PWM1_ON=0,PWM2_ON,CYCLE=50,road1=0;unsigned int s=0,min=0,count_new,count_old=1;/*/* 定時(shí)器0中斷 */*/void timer0() interrupt 1 TH0=(65535-1000)/256; TL0=(65535-1000)%256; cnt+; oldms=cnt; if (

16、RED1|RED2) /紅外信號(hào)判斷 PWM1_ON=0;PWM2_ON=0;ENA=0;ENB=0;TR0=0; else /光電信號(hào)判斷 if (P10&&P11) PWM1_ON=50;PWM2_ON=50; if (P10&&!P11) PWM1_ON=20;PWM2_ON=40; if (!P10&&P11) PWM1_ON=40;PWM2_ON=20;if (!P10&&!P11) PWM1_ON=20;PWM2_ON=40; if (count1=PWM1_ON) /電機(jī)1的PWM輸出 PWM1 = 0; count

17、1+; if (count1 = CYCLE) count1=1;if (PWM1_ON!=0) /如果左右時(shí)間是0 保持原來狀態(tài) PWM1 = 1; if (count2=PWM2_ON)/電機(jī)2的PWM輸出 PWM2 = 0; count2+; if (count2 = CYCLE) count2=1;if (PWM2_ON!=0) /如果左右時(shí)間是0 保持原來狀態(tài) PWM2 = 1; while (cnt=50)/50毫秒計(jì)時(shí) tencnt+; cnt=0;if (P35!=count_old) /脈沖計(jì)數(shù) count_new+;count_old=P35; while (tencnt=

18、20)/20個(gè)50毫秒到,秒加1 s+; tencnt=0; olds=s; while (s=60) /60秒到,分加1 min+; s=0;/*/* 毫秒級(jí)延時(shí) */*/void DelayMs(unsigned char denyms) unsigned char j,newms;for(j=0;j<denyms;) while(newms!=oldms) newms=oldms;j+;/*/* 寫入命令函數(shù) */*/void WriteCommand(unsigned char c) DelayMs(3);/操作前短暫延時(shí),保證信號(hào)穩(wěn)定 E=0; RS=0; RW=0; _nop

19、_(); E=1; Data=c; E=0;/*/* 寫入數(shù)據(jù)函數(shù) */*/void WriteData(unsigned char c) DelayMs(3); /操作前短暫延時(shí),保證信號(hào)穩(wěn)定 E=0; RS=1; RW=0; _nop_(); E=1; Data=c; E=0; RS=0;/*/* 寫入字節(jié)函數(shù) */*/void ShowChar(unsigned char pos,unsigned char c) unsigned char p; if (pos>=0x10) p=pos+0xb0; /是第二行則命令代碼高4位為0xc else p=pos+0x80; /是第二行則

20、命令代碼高4位為0x8 WriteCommand (p);/寫命令 WriteData (c); /寫數(shù)據(jù)/*/* 寫入字符串函數(shù) */*/void ShowString (unsigned char line,char *ptr) unsigned char l,i; l=line<<4; for(i=0;i<16;i+) ShowChar(l+,*(ptr+i);/循環(huán)顯示16個(gè)字符/*/* 初始化函數(shù) */*/void InitLcd() DelayMs(5); WriteCommand(0x38); /display mode WriteCommand(0x38);

21、/display mode WriteCommand(0x38); /display mode WriteCommand(0x06); /顯示光標(biāo)移動(dòng)位置 WriteCommand(0x0c); /顯示開與光標(biāo)設(shè)置 WriteCommand(0x01); /顯示清屏/*/* 主函數(shù) */*/void main(void)unsigned char news=1;ENA=1; /電機(jī)使能置1ENB=1;IN4=0; /PWM一端置0IN2=0;STOP=0;/光敏電阻置0TMOD=0x01; /定時(shí)器初始化TH0=(65535-1000)/256;TL0=(65535-1000)%256;EA=

22、1;ET0=1;TR0=1;InitLcd(); /初始化LCDDelayMs(5); /延時(shí)保證信號(hào)穩(wěn)定while(1) while(news!=olds) sprintf(Time,"time: %d:%d ",min,s); /打印輸出時(shí)間信息ShowString(0,Time);sprintf(journey,"road: %d cm ",2*count_new); /打印輸出行程信息ShowString(1,journey);news=olds;if(STOP) /光敏二極管停止單片機(jī)運(yùn)行TR0=0;PWM1=0;PWM2=0;else TR0=1; 四. 光源尋跡小車元件清單元件名稱數(shù)量元件名稱數(shù)

溫馨提示

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

評(píng)論

0/150

提交評(píng)論