基于STC單片機的智能語音控制小車_第1頁
基于STC單片機的智能語音控制小車_第2頁
基于STC單片機的智能語音控制小車_第3頁
基于STC單片機的智能語音控制小車_第4頁
基于STC單片機的智能語音控制小車_第5頁
已閱讀5頁,還剩10頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、.1基于STC單片機的智能語音控制小車一、實驗目的1.隨著科技的進步和社會的開展,汽車技術(shù)的開展越來越智能化。本次接口實驗設(shè)計就是基于簡單智能化的根底上,采用LD3320語音單元和STC單片機和L298N電機驅(qū)動,開發(fā)出基于語音無線控制與智能避障的小車,實現(xiàn)非特定人聲語音控制小車,以及小車超聲波自動避障行駛的功能,同時液晶顯示出超聲波前方障礙物的距離。2掌握用Altium Designer10軟件繪制原理圖和PCB電路,以及電路板的制作過程包括轉(zhuǎn)印、腐蝕,焊接,下載與調(diào)試,熟練Keil uVision4環(huán)境以及單片機C代碼的編寫、調(diào)試和he*文件的生成并下載到單片機芯片,掌握軟硬聯(lián)調(diào)技巧與方法

2、。3掌握基于LD3320的語音單元的編程、語音處理及與單片機間的通信。二、系統(tǒng)總體方案本次設(shè)計的小車采用STC89C52單片機作為主控芯片,通過LD3320語音單元接單片機控制小車行駛狀態(tài)包括前進、后退、左轉(zhuǎn)、右轉(zhuǎn)及停車;小車行駛過程中遇到障礙物,如果沒有接收到語音信號而超聲波檢測模塊檢測周圍障礙物小于平安距離40cm,小車自動轉(zhuǎn)向,距離通過LCD1602液晶顯示出來;采用L298作為電機驅(qū)動芯片驅(qū)動小車行駛。系統(tǒng)總體框圖如圖2.1:圖2.1 系統(tǒng)總體框圖三、硬件設(shè)計3.1 主控系統(tǒng)本次設(shè)計采用STC89C52單片機作為控制芯片,STC89C52RC是STC公司生產(chǎn)的一種低功耗、高性能CMOS

3、8位微控制器,具有 8K字節(jié)系統(tǒng)可編程Flash存儲器。單片機系統(tǒng)電路圖2:圖3.1 單片機最小系統(tǒng)原理圖復位電路:手動復位,按下復位按鈕,復位腳得到VCC的高電平,單片機復位,按鈕松開后,單片機開場工作。如圖3.21:時鐘電路:在52單片機片有一個高增益的反相放大器,反相放大器的輸入端為*TAL1,輸出端為*TAL2,由該放大器構(gòu)成的振蕩電路和時鐘電路一起構(gòu)成了單片機的部時鐘方式。如圖3.22:1復位電路:2時鐘電路:圖3.2 1復位電路2時鐘電路3.2 超聲波模塊超聲波模塊HC-SR04是小車測距和避障的重要模塊。該模塊可提供2cm-400cm的非接觸式距離感測功能,測距精度可達高到3mm

4、;模塊包括超聲波發(fā)射器、接收器與控制電路。根本工作原理:(1)采用IO口TRIG觸發(fā)測距,給至少10us的高電平信號;(2)模塊自動發(fā)送8個40khz的方波,自動檢測是否有信號返回;(3)有信號返回,通過IO口ECHO輸出一個高電平,高電平持續(xù)的時間就是超聲波從發(fā)射到返回的時間。測試距離=(高電平時間*聲速(340M/S)/2;超聲波時序圖3.3:圖3.3 超聲波時序圖由時序圖說明你只需要提供一個10uS以上脈沖觸發(fā)信號,該模塊部將發(fā)出8個40kHz周期電平并檢測回波。一旦檢測到有回波信號則輸出回響信號。回響信號的脈沖寬度與所測的距離成正比。由此通過發(fā)射信號到收到的回響信號時間間隔可以計算得到

5、距離。公式:uS/58=厘米或者uS/148=英寸;或是:距離=高電平時間*聲速340M/S/2;建議測量周期為60ms以上,以防止發(fā)射信號對回響信號的影響。超聲波電路如圖3.4:圖3.4 超聲波電路3.3 LD3320語音識別單元語音識別作為信息技術(shù)中一種人機接口的關(guān)鍵技術(shù),具有重要的研究意義和廣泛的應用價值。語音識別技術(shù)的應用圍極為廣泛,不僅涉及到日常生活的方方面面,在軍事領(lǐng)域也發(fā)揮著極其重要的作用。它是信息社會朝著智能化和自動化開展的關(guān)鍵技術(shù),使人們對信息的處理和獲取更加便捷,從而提高人們的工作效率。語音識別是將人類的聲音信號轉(zhuǎn)化為文字或者指令的過程。語音識別以語音為研究對象,它是語音信

6、號處理的一個重要研究方向,是模式識別的一個分支。根據(jù)在不同限制條件下的研究任務,產(chǎn)生了不同的研究領(lǐng)域。這些領(lǐng)域包括:根據(jù)對說話人說話方式的要求,可分為孤立字(詞)、連接詞和連續(xù)語音識別系統(tǒng);根據(jù)對說話人的依賴程度,可分為特定人和非特定人語音識別系統(tǒng);根據(jù)詞匯量的大小,可分為小詞匯量、中等詞匯量、大詞匯量以及無限詞匯量語音識別系統(tǒng)。從語音識別模型的角度講,主流的語音識別系統(tǒng)理論是建立在統(tǒng)計模式識別根底之上的。語音識別系統(tǒng)本質(zhì)上是一種多維模式識別系統(tǒng),對于不同的語音識別系統(tǒng),人們所采用的具體識別方法及技術(shù)不同,但其根本原理都是一樣的,即將采集到的語音信號送到特征提取模塊處理,將所得到的語音特征參數(shù)

7、送入模型庫模塊,由聲音模式匹配模塊根據(jù)模型庫對該段語音進展識別,最后得出識別結(jié)果。語音識別系統(tǒng)根本原理框圖如圖3.5所示,其中:預處理模塊濾除原始語音信號中的次要信息及背景噪音等,包括抗混疊濾波、預加重、模數(shù)轉(zhuǎn)換、自動增益控制等處理過程,將語音信號數(shù)字化;特征提取模塊對語音的聲學參數(shù)進展分析后提取出語音特征參數(shù),形成特征矢量序列。圖3.5 語音識別系統(tǒng)框圖3.4 電機驅(qū)動小車輪子驅(qū)動采用直流減速電機,驅(qū)動芯片使用恒壓恒流橋式2A驅(qū)動芯片L298N。L298是ST公司的產(chǎn)品,比較常見的是15腳Multiwatt封裝的L298N,部同樣包含4通道邏輯驅(qū)動電路??梢苑奖愕尿?qū)動兩個直流電機,或一個兩相

8、步進電機。L298N芯片可以驅(qū)動兩個二相電機,也可以驅(qū)動一個四相電機,輸出電壓最高可達50V,可以直接通過電源來調(diào)節(jié)輸出電壓;可以直接用單片機的IO口提供信號;而且電路簡單,使用比較方便。L298N可承受標準TTL邏輯電平信號VSS,VSS可接4.57V電壓。4腳VS接電源電壓,VS電壓圍VIH為2.546V。輸出電流可達2.5A,可驅(qū)動電感性負載。L298驅(qū)動電路如圖3.6:圖3.6 電機驅(qū)動電路L298N電機驅(qū)動邏輯控制表1:ENAIN1IN2運轉(zhuǎn)狀態(tài)0*停頓110正轉(zhuǎn)101反轉(zhuǎn)111停頓100停頓表1 L298N電機驅(qū)動邏輯控制根據(jù)電機驅(qū)動邏輯功能表,通過改變單片機IO口上下電平變化,可

9、以方便實現(xiàn)小車前進、后退、左轉(zhuǎn)、右轉(zhuǎn)、停頓。LCD1602液晶顯示LCD1602是工業(yè)字符型液晶,能夠同時顯示16*02即32個字符。16列2行1602液晶也叫1602字符型液晶它是一種專門用來顯示字母、數(shù)字、符號等的點陣型液晶模塊它有假設(shè)干個5*7或者5*11等點陣字符位組成,每個點陣字符位都可以顯示一個字符。每位之間有一個點距的間隔每行之間也有間隔起到了字符間距和行間距的作用,正因為如此所以他不能顯示圖形。其中RS為存放器選擇端,高位時是數(shù)據(jù)存放器,低位時是指令存放器;RW時讀寫信號線,高位時是讀,低位時是寫;E為使能控制端。超聲波避障的距離顯示采用LCD1602液晶實現(xiàn)。當超聲波檢測到前

10、方障礙物在平安距離40cm,單片機驅(qū)使小車自動轉(zhuǎn)彎,并將超聲波測得的障礙物的距離送到液晶并顯示出來。液晶與單片機的電路圖如圖3.7:圖3.7 液晶電路圖3.6 電源與穩(wěn)壓電路由于小車電機的驅(qū)動電壓一般選擇8V,單片機的電壓為5V,要實現(xiàn)小車供電和續(xù)航,采用18650大容量可充電鋰電池,鋰電池可提供12V供電,為了不影響驅(qū)動電機的供電電源和單片機供電電源產(chǎn)生信號干擾,設(shè)計中參加了可調(diào)降壓模塊,使12V18650鋰電池電壓調(diào)至8V后供給直流減速電機,使12V18650鋰電池經(jīng)7805穩(wěn)壓至5V后供給STC單片機、L298N電機驅(qū)動芯片、基于LD3320的語音單元和超聲波等使用,L7805的穩(wěn)壓和電

11、源電路如圖3.8:圖3.8 L7805穩(wěn)壓和電源電路3.7 系統(tǒng)整體原理圖與PCB主控圖系統(tǒng)整體原理圖與PCB主控圖如圖3.9:系統(tǒng)整體原理圖2PCB主控圖圖3.9 1系統(tǒng)整體原理圖2PCB主控圖四、軟件設(shè)計4.1 系統(tǒng)總體軟件設(shè)計軟件設(shè)計局局部為兩大類,一類是語音芯片應用程序的開發(fā)設(shè)計,另一類是單片機下位機的程序編寫。小車操作流程是:1,按下開關(guān)給單片機和驅(qū)動電路供電,系統(tǒng)初始化,語音啟動小車;3,通過語音控制小車前進、左轉(zhuǎn)、右轉(zhuǎn)、后退、停頓;4,行駛過程如遇障礙物,小車自動轉(zhuǎn)彎避障,同時實時顯示障礙物與車的距離。小車操作流程如以下圖4.1:圖4.1 小車操作流程圖4.2 語音識別開發(fā)圖4.

12、2 語音編程界面語音單元測試語音單元測試主要是語音識別參數(shù)進展測試,測試參數(shù)有麥克風靈敏度設(shè)置,語音端點檢測,語音信號起始確認時間,語音信號完畢時間,語音信號最長持續(xù)時間。參數(shù)測試主要是麥克風靈敏度和語音端點檢測。通過控制變量法,在保持麥克風靈敏度一定的前提下,調(diào)節(jié)端點檢測,來觀察揚聲器音頻輸出的準確性,反之,保持端點檢測值至一定的前提下,調(diào)節(jié)麥克風靈敏度,以此來找到使語音準確輸出的最優(yōu)麥克風靈敏度參數(shù)和語音端點檢測值,以保證語音輸出的準確性。誤差分析:本次作品的相對誤差如表2,造成相對誤差可從以下幾方面分析。其中,環(huán)境噪聲是造成誤差最重要的因素,在做系統(tǒng)測試時,并沒有做到在低分貝理想環(huán)境下進

13、展測試。其次,本次作品是使用了麥克風,所以,麥克風的靈敏度不高也會造成誤差。在語音識別模塊,語音斷點檢測和語音信息相似度也會造成誤差。本次作品電源設(shè)計設(shè)置的語音信息相差太近,會對識別造成難度。最后,說話距離的遠近也會造成誤差,做測試時并不是每一次都在最正確距離圍測試,所以會有誤差。語速慢速中速較快聲音dB601206012060120距離m3.852.653.152.252.751.95測試次數(shù)40正確識別次數(shù)373535312927正確率92.5%87.5%87.5%77.5%72.5%67.5%表2 語音模塊誤差測試4.3 單片機下位機軟件設(shè)計單片機下位機軟件設(shè)計采用模塊化構(gòu)造,由主程序定

14、時子程序、定時器中斷子程序、電機驅(qū)動子程序串口中斷子程序、顯示子程序超聲波避障子程序算法子程序構(gòu)成。其中:避障中斷效勞子程序完成對超聲波探測器產(chǎn)生的外部中斷進展處理,如果超出預定的危險距離就進展避障。遙控中斷效勞子程序完成對遙控信號產(chǎn)生的串口中斷進展處理,對不同的遙控信號產(chǎn)生相應的控制信號。超聲波程序設(shè)計流程圖4.3:圖4.3 超聲波程序流程圖語音串口通信:由于語音單元和單片機通信的方式是串口,為了小車能迅速響應語音單元發(fā)送來的信號,單片機使用串口中斷的方式,在中斷函數(shù)里面主要就是處理中斷接收到的數(shù)據(jù),并控制電機的轉(zhuǎn)向,處理函數(shù)見附錄二。五、個人總結(jié)本次設(shè)計是智能語音控制小車兼有避障功能,主控

15、制芯片采用STC89C52單片機,開發(fā)LD3320語音芯片,成功實現(xiàn)了語音控制小車和小車的自動避障的功能。設(shè)計容包括小車硬件、軟件、LD3320語音單元編程、調(diào)試等。在此期間主要完成的工作包括以下幾個方面:1設(shè)計初期收集電機驅(qū)動、單片機等相關(guān)資料,對智能小車的實現(xiàn)原理有比較清晰的了解。2確定系統(tǒng)框圖,對電源模塊、單片機最小系統(tǒng)模塊、LD3320語音單元和電機及其驅(qū)動電路模塊等的實施方案進展比較,確定最終的智能小車控制的設(shè)計方案。3根據(jù)智能小車控制的設(shè)計方案畫原理圖、PCB圖,轉(zhuǎn)印PCB圖,手工制作PCB板。4根據(jù)設(shè)計電路,購置元器件,焊接電路,完成硬件組裝和調(diào)試。5根據(jù)系統(tǒng)要實現(xiàn)前進、后退、左

16、轉(zhuǎn)、右轉(zhuǎn)、停車、避障等功能編寫出小車端的軟件程序。6軟硬件分別調(diào)試通過后進展整體聯(lián)合調(diào)試,并查找該系統(tǒng)存在的缺陷,并逐步完善。8最終小車能夠?qū)崿F(xiàn)前進、后退、左轉(zhuǎn)、右轉(zhuǎn)、避障等功能,到達設(shè)計的根本要求。通過此次實驗設(shè)計,使我對單片機編程和設(shè)計都有了進一步的了解,對軟硬件的應用更加熟悉,在電路設(shè)計、PCB制板等方面都有所加強。軟件設(shè)計方面,語音單元的可視化編程,在可視化編程設(shè)計方面也還有許多問題需要解決,這些都是自己以后要努力學習的地方。小車雖然根本功能實現(xiàn),但仍存在一些問題,避障的穩(wěn)定性并不高,仍需要不斷完善。六、致首先要感*教師給了我們這樣一個動手實踐的時機,讓我們有時機可以針對自己的興趣進展

17、一些自主課外動手實踐。本實驗設(shè)計是在*教師的指導下和*同學的幫助下修改完成的。在設(shè)計過程中,*教師給予了悉心的指導,最重要的是給我們提供了解決問題的思路和方法,在此,我對*教師的細心幫助和指導表示最真摯的感!同時感所有幫助過我的教師和同學們!參考文獻:郭天祥,新概念51單片機C語言教程.:電子工程,2021.1:98-103符強,任風華.基于手機藍牙的遙控小車的設(shè)計J.*電子科技大學信息與通信學院;*電子科技大學電子工程與自動化學院,2021.譚思良等。VisualC+串口通信工程開發(fā)實例導航M.人民郵電.203宋戈,黃鶴松,員玉良,海峰.51單片機應用開發(fā)例大全.:人民郵電,2021池保忠.

18、 基于單片機的電動車控制系統(tǒng)設(shè)計J.機械與電子,2021,(4):51-53.王曉侃全衛(wèi)基于單片機控制的多功能電動車自行車智能保護儀的設(shè)計與實現(xiàn)電子設(shè)計工程2005,7,107-110.王立欣,靳剛,程樹康.混合電動車用PWM整流器控制方法的研究J.電機與控制學報, 2005, 9(2): 199-202.洪波基于單片機的電動車控制系統(tǒng)設(shè)計J.中國新技術(shù)新產(chǎn)品,2021,3上:21-22附錄:附錄一主控板和小車整體實物圖:附錄二單片機程序:.1*include reg52.h*include /*宏定義*/*define uchar unsigned char/宏定義無符號字符型*define

19、 uint unsignedint/宏定義無符號整型*define LCD_Data P0*define Busy 0*80 /檢測LCD狀態(tài)字中的Busy標識/*IO引腳定義*/sbit LCD_E =P27;sbit LCD_RW=P26;sbit LCD_RS=P25;/定義引腳sbit R* =P16;/模塊超聲波模塊ECH0 接 P13sbit T* =P17;/超聲波模塊Trig 接 P14sbit IN1=P10;sbit IN2=P11;sbit IN3=P12;sbit IN4=P13;sbit EN1=P14;sbit EN2=P15;unsigned char code

20、net = ZTAI JLCM ;unsigned char code forward = ford ;unsigned char code back = back ;unsigned char code left = left ;unsigned char code right = righ ;unsigned char code stop = stop ;unsigned char code Clef = Clef ;unsignedint time=0;unsigned long S=0;bit flag =0,flagg=0;unsigned char l_disbuff4= 0,0,

21、0,0,;/顯示緩沖uchar date;ucharrec,startmove=0;uchar*,speed=100,speed2;uchar ii;ucharsudu;uintmm,mmm;void delayms(unsigned int timer) /毫秒延時int*,y;for(*=timer;*0;*-)for(y=120;y0;y-);/*讀狀態(tài)*/unsigned char ReadStatusLCD(void)LCD_Data = 0*FF; LCD_RS = 0;LCD_RW = 1;LCD_E = 0;LCD_E = 0;LCD_E = 1;while (LCD_Data

22、& Busy); /檢測忙信號return(LCD_Data);/*寫數(shù)據(jù)*/voidWriteDataLCD(unsigned char WDLCD)ReadStatusLCD(); /檢測忙LCD_Data = WDLCD;LCD_RS = 1;LCD_RW = 0;LCD_E = 0; /假設(shè)晶振速度太高可以在這后加小的延時LCD_E = 0; /延時LCD_E = 1;/*寫指令*/voidWritemandLCD(unsigned char WCLCD,BuysC) /BuysC為0時忽略忙檢測if (BuysC) ReadStatusLCD(); /根據(jù)需要檢測忙LCD_Data

23、= WCLCD;LCD_RS = 0;LCD_RW = 0; LCD_E = 0;LCD_E = 0;LCD_E = 1; /*初始化*/voidLCDInit(void)LCD_Data = 0;WritemandLCD(0*38,0); /三次模式設(shè)置,不檢測忙信號delayms(5); WritemandLCD(0*38,0);delayms(5);WritemandLCD(0*38,0);delayms(5);WritemandLCD(0*38,1); /顯示模式設(shè)置,開場要求每次檢測忙信號WritemandLCD(0*08,1); /關(guān)閉顯示W(wǎng)ritemandLCD(0*01,1);

24、 /顯示清屏WritemandLCD(0*06,1); /顯示光標移動設(shè)置WritemandLCD(0*0C,1); /顯示開及光標設(shè)置/*按指定位置顯示一個字符*/void DisplayOneChar(unsigned char *, unsigned char Y, unsigned char DData)Y &= 0*1;* &= 0*F; /限制*不能大于15,Y不能大于1if (Y) * |= 0*40; /當要顯示第二行時地址碼+0*40;* |= 0*80; /算出指令碼WritemandLCD(*, 0); /這里不檢測忙信號,發(fā)送地址碼WriteDataLCD(DData)

25、;/*按指定位置顯示一串字符*/void DisplayListChar(unsigned char *, unsigned char Y, unsigned char code *DData)unsigned char ListLength;ListLength = 0;Y &= 0*1;* &= 0*F; /限制*不大于15,Y不大于1while (DDataListLength=0*20) /假設(shè)到達字串尾則退出if (* =100)|flag=1) /超出測量圍顯示“- flag=0;DisplayOneChar(7, 1,-);DisplayOneChar(8, 1,.);Displ

26、ayOneChar(9, 1,-);DisplayOneChar(10, 1,-);DisplayOneChar(11, 1,m); else l_disbuff0=S%1000/100+0*30;/加上0*30是將數(shù)字轉(zhuǎn)為ASCII碼l_disbuff1=S%1000%100/10+0*30;l_disbuff2=S%1000%10 %10+0*30;DisplayOneChar(7, 1,l_disbuff0);DisplayOneChar(8, 1,.);DisplayOneChar(9, 1,l_disbuff1);DisplayOneChar(10, 1,l_disbuff2);Di

27、splayOneChar(11, 1,m); if(S40|flag=1)&(startmove=1|startmove=2) IN1=1;IN2=0; IN3=1;IN4=0;delayms(5);EN1=1;EN2=1; delayms(50); IN1=0;IN2=0;IN3=0;IN4=1;delayms(10);EN1=1;EN2=1;DisplayListChar(1, 1,Clef);delayms(800); IN1=0;IN2=1;IN3=0;IN4=1;delayms(10);EN1=1;EN2=1;void StartModule() /啟動模塊 T*=1; /啟動一次模

28、塊 _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); T*=0;void main()delayms(400); /啟動等待,等LCD講入工作狀態(tài)LCDInit();/初始化delayms(5); /延時片刻(DisplayListChar(0, 0,net);TMOD=0*21;/設(shè)T0為方式1 11.0592M晶振TH1=0*fd;TL1=0*fd;SCON=0*50;/串口的工作方式,設(shè)置為方式1TR1=1;/翻開定時器ES=1; /翻開串口中斷TH0=0;TL0=0; ET0=1; /允許T0中斷EA=1;/開啟總中斷while(1)StartModule();while(!R

溫馨提示

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

評論

0/150

提交評論