基于藍(lán)牙耳機(jī)的語音控制玩具小車_第1頁
基于藍(lán)牙耳機(jī)的語音控制玩具小車_第2頁
基于藍(lán)牙耳機(jī)的語音控制玩具小車_第3頁
基于藍(lán)牙耳機(jī)的語音控制玩具小車_第4頁
基于藍(lán)牙耳機(jī)的語音控制玩具小車_第5頁
已閱讀5頁,還剩27頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、目錄摘要.11 引言12 正文.1 2.1 藍(lán)牙技術(shù)的基本原理和特點(diǎn)1 2.2 語音識(shí)別的基本原理.2 2.3 基于藍(lán)牙耳機(jī)的語音智能控制小車.3 2.3.1 系統(tǒng)結(jié)構(gòu)框圖.3 2.3.2 藍(lán)牙耳機(jī)與藍(lán)牙適配器的通訊.42.3.3 語音識(shí)別軟件的設(shè)計(jì).6 2.3.4 USB轉(zhuǎn)PT2262模塊的開發(fā)流程.8 2.3.5 無線接收PT2272、凌陽單片機(jī)放音、彩燈顯示、電機(jī)驅(qū)動(dòng)模塊開發(fā)流程.11 2.3.6 基于藍(lán)牙耳機(jī)的語音智能控制小車實(shí)物圖.133.結(jié)語.14參考文獻(xiàn).15致謝.16附錄一.17附錄二.18附錄三.26基于藍(lán)牙耳機(jī)的語音控制玩具小車摘要:文章介紹了藍(lán)牙技術(shù)的基本原理和特點(diǎn)以及語

2、音識(shí)別的基本原理;重點(diǎn)講述了基于藍(lán)牙耳機(jī)的語音智能控制小車的開發(fā)。關(guān)鍵詞:藍(lán)牙、語音識(shí)別、智能小車1.引言目前,市場(chǎng)上各類玩具小車琳瑯滿目,傳統(tǒng)的玩具小車只能通過手工操作。然而人們總是希望最大限度的解放自己的雙手,如果像科幻電影中那樣需要幫忙時(shí),跟機(jī)器人說一說他就立馬照辦,我們的小車能聽懂人話;那么擁有這樣一款高科技的智能玩具小車將對(duì)兒童不僅是強(qiáng)大的吸引力,更是有利于提高他們的無限想象空間?;谒{(lán)牙耳機(jī)的語音控制玩具小車最大的特點(diǎn)就是 “非常聽話”。玩家只要戴上小巧、時(shí)尚的藍(lán)牙耳機(jī)發(fā)布語音指令就可以控制小車的前進(jìn)、后退、左轉(zhuǎn)、右轉(zhuǎn)等,同時(shí)小車會(huì)發(fā)出絢麗的彩光和清脆悅耳的音樂,使人仿佛進(jìn)入一個(gè)奇

3、妙的科幻世界。本系統(tǒng)的操作非常簡(jiǎn)單,您只需用語言與我們的小車“交流”,就可以讓它非常聽話的接受指揮。當(dāng)前市場(chǎng)上還沒有一種玩具小車可以實(shí)現(xiàn)語音智能控制,基于藍(lán)牙耳機(jī)的語音控制玩具小車的出現(xiàn)必將會(huì)帶來一場(chǎng)玩具市場(chǎng)語音智能化的風(fēng)暴,帶領(lǐng)讓我們進(jìn)入語音控制的科幻世界。有理由相信,在不遠(yuǎn)的將來我們的身邊將充滿各種各樣語音智能控制的玩具、家用電器、汽車、飛行器2.正文2.1 藍(lán)牙技術(shù)的基本原理和特點(diǎn)(1) 藍(lán)牙技術(shù)概述:在家里,計(jì)算機(jī)后面一大堆長(zhǎng)長(zhǎng)短短的線連接著大大小小的外設(shè)打印機(jī)、掃描儀、Modem、音箱、游戲桿等,且還有更多的東西要隨時(shí)連上去,如數(shù)碼相機(jī)要存照片,Mp3播放器要交換文件,掌上電腦要進(jìn)行

4、文件同步等。 此外,高速接入設(shè)備越來越普及,如ISDN、ADSL、Cable Modem。面對(duì)著多部電話、多個(gè)上網(wǎng)設(shè)備,總不能搬著跑來跑去,也不能一下買好幾套接入設(shè)備吧?因此需要無線網(wǎng)絡(luò)標(biāo)準(zhǔn),目前的家庭無線網(wǎng)絡(luò)技術(shù)主要有IEEE802.11、HomeRF和藍(lán)牙三種。 在速度上,IEEE802.11b占優(yōu)勢(shì),它的較快速度可允許人們連接5臺(tái)以上的PC,傳送更大的文件和圖形,并可在整個(gè)家庭網(wǎng)絡(luò)上分發(fā)視頻和聲頻。是一種應(yīng)用于高端的WLAN技術(shù)。因?yàn)镮EEE802.11b提供的高帶寬,是以將數(shù)據(jù)分割為TCP/IP包為代價(jià)的,這樣會(huì)對(duì)“流式媒體”的播放產(chǎn)生不好的影響。HomeRF標(biāo)準(zhǔn)在傳送音樂、聲音以及影

5、像數(shù)據(jù)方面有優(yōu)勢(shì),不存在犧牲質(zhì)量的問題。 與上面兩種技術(shù)不同,藍(lán)牙技術(shù)具有一整套全新的協(xié)議,可以應(yīng)用于更多的場(chǎng)合。藍(lán)牙技術(shù)中的跳頻更快,在接收或發(fā)送一個(gè)分組數(shù)據(jù)后,即跳至另一頻點(diǎn),因而更加穩(wěn)定,同時(shí)它還具有低功耗、低成本和靈活安全等特點(diǎn)。另外,藍(lán)牙所采用的前向糾錯(cuò)技術(shù)更是限制了較長(zhǎng)距離鏈路的無序噪聲影響,而經(jīng)優(yōu)化的編碼方式可使藍(lán)牙技術(shù)應(yīng)用于各種惡劣的無線環(huán)境。(2) 藍(lán)牙技術(shù)特點(diǎn):雖然現(xiàn)在藍(lán)牙技術(shù)還不能說盡善盡美,但它的優(yōu)勢(shì)已經(jīng)相當(dāng)明顯。有專家認(rèn)為:也許藍(lán)牙技術(shù)才可以真正實(shí)現(xiàn)廉價(jià)的無線網(wǎng)絡(luò)夢(mèng)想。藍(lán)牙將成為一種廉價(jià)、低復(fù)雜度、高可靠性的無線接口技術(shù)。藍(lán)牙技術(shù)中最關(guān)鍵的是低復(fù)雜度,它使得系統(tǒng)的集成

6、度大大提高,從而有利于大幅度降低產(chǎn)品成本,更快進(jìn)入消費(fèi)市場(chǎng)。(3) 正是基于藍(lán)牙技術(shù)的兼容性強(qiáng)、可靠性高、功耗小、支持音頻信號(hào)的特點(diǎn),本系統(tǒng)采用它作為語音無線傳輸?shù)妮d體。圖1 藍(lán)牙協(xié)議棧2.2 語音識(shí)別的基本原理語音技術(shù)相對(duì)其它計(jì)算機(jī)技術(shù)而言,是一門還很年輕的計(jì)算機(jī)技術(shù)。語音技術(shù)研究在很早就有了,在1995年后個(gè)人計(jì)算機(jī)的計(jì)算和處理功能更加強(qiáng)大后逐步開始有一些應(yīng)用。而今天語音技術(shù)在不知不覺中開始逐步走入了我們的生活,比如我們今天使用的中國(guó)移動(dòng)電話客戶服務(wù)系統(tǒng)實(shí)際上就是一個(gè)語音系統(tǒng)在我們生活中的應(yīng)用。語音識(shí)別是處理自然語言到數(shù)據(jù)的轉(zhuǎn)換,語音識(shí)別技術(shù)也可以稱Speech-to-Text的識(shí)別。語音

7、識(shí)別系統(tǒng)的處理過程首先是用戶通過語音輸入設(shè)備(比如麥克風(fēng))輸入語音信號(hào),然后通過語音接收卡(一般為聲卡)接收語音數(shù)據(jù)轉(zhuǎn)化為數(shù)字信號(hào)傳入語音識(shí)別引擎進(jìn)行處理,語音識(shí)別引擎處理完成后交給相關(guān)邏輯程序去處理相關(guān)應(yīng)用。在微軟公司Speech平臺(tái)中語音識(shí)別主要分為兩步完成,第一步是完成語音數(shù)據(jù)到計(jì)算機(jī)數(shù)據(jù)的轉(zhuǎn)換;第二步是需要語義分析關(guān)于計(jì)算機(jī)數(shù)據(jù)中信息的意思。Speech平臺(tái)對(duì)于語義分析使用的是一種XML語言的擴(kuò)展,Semantic Markup Language(SML)(標(biāo)記性語義語言)。本系統(tǒng)的語音識(shí)別技術(shù)是基于Microsoft Speech SDK開發(fā)出來的語音識(shí)別軟件,該軟件很出色的完成了系

8、統(tǒng)的語音識(shí)別任務(wù),是實(shí)現(xiàn)小車聽從指揮的前提。2.3 基于藍(lán)牙耳機(jī)的語音智能控制小車2.3.1 系統(tǒng)結(jié)構(gòu)框圖:圖2 系統(tǒng)結(jié)構(gòu)框圖本系統(tǒng)是藍(lán)牙耳機(jī)、語音識(shí)別技術(shù)和凌陽單片機(jī)控制的一個(gè)完美結(jié)合。以語音識(shí)別技術(shù)為核心,充分發(fā)揮了藍(lán)牙耳機(jī)小巧、便捷、低功耗的無線語音通訊的特點(diǎn)和凌陽單片機(jī)流水燈控制與語音播放的特色。本系統(tǒng)主要由藍(lán)牙耳機(jī),藍(lán)牙適配器,USB轉(zhuǎn)PT2262發(fā)射模塊電路,PT2272接收模塊電路,主機(jī)語音識(shí)別軟件,語音輸出,小車車體及電機(jī)驅(qū)動(dòng)電路等組成。使用時(shí)把藍(lán)牙適配器、USB轉(zhuǎn)PT2262發(fā)射模塊插入主機(jī)中,撥動(dòng)小車上的開關(guān),運(yùn)行主機(jī)上的語音識(shí)別軟件,玩家?guī)纤{(lán)牙耳機(jī)就可以對(duì)小車發(fā)布語音指

9、令。小車會(huì)聽從指令進(jìn)行動(dòng)作同時(shí)發(fā)出絢麗的彩光和清脆悅耳的音樂?;谒{(lán)牙耳機(jī)的語音控制玩具小車基本原理:玩家佩戴著藍(lán)牙耳機(jī)發(fā)布語音指令,藍(lán)牙適配器接收到語音指令并傳送至主機(jī),主機(jī)上運(yùn)行的語音識(shí)別軟件自動(dòng)對(duì)語音指令進(jìn)行識(shí)別處理,處理結(jié)果通過USB連接線傳給USB轉(zhuǎn)PT2262發(fā)射電路,PT2272接收電路接收到控制指令并傳給電機(jī)驅(qū)動(dòng)電路和小車彩燈與聲音輸出控制電路,電機(jī)驅(qū)動(dòng)電路控制車體上的前后轉(zhuǎn)電機(jī)和左右轉(zhuǎn)電機(jī),彩燈與聲音輸出控制電路控制車體上的彩燈和揚(yáng)聲器,從而控制小車前、后、左、右等動(dòng)作,同時(shí)發(fā)出絢麗的彩光和清脆悅耳的音樂。2.3.2 藍(lán)牙耳機(jī)與藍(lán)牙適配器的通訊:(1) 藍(lán)牙適配器驅(qū)動(dòng)程序的安

10、裝: 藍(lán)牙適配器插入PC機(jī),并將適配器驅(qū)動(dòng)程序光盤插入光驅(qū)。點(diǎn)擊“autorun.exe”運(yùn)行安裝程序。如下圖3界面,點(diǎn)擊“SETUP WINDOWS Bluetooth Driver.根據(jù)安裝向?qū)Ъ纯奢p松完成驅(qū)動(dòng)程序的安裝。圖3藍(lán)牙適配器驅(qū)動(dòng)程序安裝界面(2)藍(lán)牙耳機(jī)與藍(lán)牙適配器的連接: 運(yùn)行藍(lán)牙應(yīng)用程序(1)產(chǎn)生的可運(yùn)行軟件,藍(lán)牙適配器必須插入主機(jī)),點(diǎn)擊查看刷新設(shè)備,長(zhǎng)按藍(lán)牙耳機(jī)中的電源按鈕至藍(lán)燈保持亮的狀態(tài)。此時(shí),PC機(jī)的藍(lán)牙程序搜索到這個(gè)藍(lán)牙耳機(jī)設(shè)備,同時(shí)顯示一個(gè)圖標(biāo)。輸入藍(lán)牙默認(rèn)口令0000點(diǎn)擊確定。這就實(shí)現(xiàn)了藍(lán)牙耳機(jī)和藍(lán)牙適配器的配對(duì),但此時(shí)兩者并沒有正真的連接。在圖標(biāo)上方點(diǎn)擊鼠

11、標(biāo)右鍵連接藍(lán)牙耳機(jī)服務(wù),這時(shí)藍(lán)牙耳機(jī)和適配器已經(jīng)連接完畢。圖4 藍(lán)牙應(yīng)用程序界面圖5藍(lán)牙耳機(jī)與藍(lán)牙適配器的配對(duì)圖6 藍(lán)牙耳機(jī)與藍(lán)牙適配器完成語音連接2.3.3 語音識(shí)別軟件的設(shè)計(jì)(1)軟件結(jié)構(gòu)圖7 語音識(shí)別軟件結(jié)構(gòu)圖軟件運(yùn)行,Main程序載入CmdCtrl.xml文件。當(dāng)藍(lán)牙適配器將語音信號(hào)輸入主機(jī)時(shí),Main程序就獲得了語音資源,同時(shí)調(diào)用SAPI中的函數(shù)庫對(duì)語音信號(hào)進(jìn)行對(duì)比。如果語音信號(hào)與CmdCtrl.xml文件中的元素匹配,那么語音識(shí)別完成,根據(jù)“協(xié)議” 將識(shí)別結(jié)果轉(zhuǎn)換為04的一個(gè)字節(jié)的數(shù)據(jù),例如0代表前進(jìn),1代表后退,2代表左轉(zhuǎn),3代表右轉(zhuǎn),4代表剎車。然后將這個(gè)數(shù)據(jù)通過USB通訊寫入

12、USB轉(zhuǎn)PT2262模塊。(2)XML文件 XML(eXtensible Markup Language)即可擴(kuò)展標(biāo)記語言,它與HTML一樣,都是SGML(Standard Generalized Markup Language,標(biāo)準(zhǔn)通用標(biāo)記語言)。Xml是Internet環(huán)境中跨平臺(tái)的,依賴于內(nèi)容的技術(shù),是當(dāng)前處理結(jié)構(gòu)化文檔信息的有力工具。擴(kuò)展標(biāo)記語言XML是一種簡(jiǎn)單的數(shù)據(jù)存儲(chǔ)語言,使用一系列簡(jiǎn)單的標(biāo)記描述數(shù)據(jù),而這些標(biāo)記可以用方便的方式建立。 在本軟件中XML文件主要用于添加語言素材和語言指令,主程序裝載該文件進(jìn)行語言識(shí)別。具體用法參見SAPI幫助文檔。CmdCtrl.xml源文件參見附錄

13、一。(3)語音識(shí)別軟件程序框圖和部分程序代碼主機(jī)進(jìn)行語言識(shí)別,將識(shí)別結(jié)果顯示在主界面上。然后定義一個(gè)兩字節(jié)的數(shù)據(jù),根據(jù)識(shí)別的結(jié)果對(duì)該數(shù)據(jù)的第二字節(jié)進(jìn)行相應(yīng)的賦值。最后將該數(shù)據(jù)寫入到USB設(shè)備即USB轉(zhuǎn)PT2262模塊圖8 語音識(shí)別軟件程序框圖鑒于篇幅有限,程序源代碼無法提供,語音識(shí)別軟件程序主要代碼詳見附錄二。圖9 語音識(shí)別軟件界面2.3.4 USB轉(zhuǎn)PT2262模塊的開發(fā)流程:(1) 硬件結(jié)構(gòu)圖: 本系統(tǒng)的USB轉(zhuǎn)PT2262模塊是一個(gè)USB設(shè)備,主要由USB模組(含USB接口電路、USB收發(fā)器、USB SIE接口電路),凌陽單片機(jī)(實(shí)現(xiàn)USB協(xié)議),PT2262芯片(實(shí)現(xiàn)無線通訊編碼調(diào)制)

14、,無線發(fā)射模塊組成。 主要原理:主機(jī)的控制指令根據(jù)USB協(xié)議,通過USB線傳送至凌陽單片機(jī),凌陽單片機(jī)獲得控制指令通過I/O線傳送給PT2262編碼,最后經(jīng)無線發(fā)射電路發(fā)送出去。USB模塊的作用是實(shí)現(xiàn)主機(jī)與凌陽單片機(jī)USB通訊的物理層協(xié)議。圖10 USB轉(zhuǎn)PT2262硬件結(jié)構(gòu)圖(2)USB轉(zhuǎn)PT2262的對(duì)象模型: 在USB轉(zhuǎn)PT2262對(duì)象模型中語音識(shí)別軟件是USB通訊的客戶應(yīng)用軟件,PT2262無線通訊是USB通訊實(shí)現(xiàn)的功能。由于底層的USB提供的服務(wù),所以語音識(shí)別軟件與PT2262無線通訊存在著一個(gè)虛擬的連接。圖11. USB轉(zhuǎn)PT2262模塊的對(duì)象模型圖(3) 凌陽單片機(jī)固件程序框圖和

15、USB通訊主函數(shù): 主機(jī)通過USB線將Senddata數(shù)據(jù)發(fā)送到凌陽單片機(jī),單片機(jī)根據(jù)數(shù)據(jù)的值,對(duì)IOA口寫二進(jìn)制數(shù)據(jù)。IOA口連接了PT2262無線發(fā)射模塊,最終將控制指令發(fā)送出去。圖12 凌陽單片機(jī)固件程序框圖USB轉(zhuǎn)PT2262模塊凌陽單片機(jī)固件源程序詳見附錄三(4)USB模組圖13 USB接口模組結(jié)構(gòu)圖與實(shí)物圖USB接口模組的JP1接口將PDIUSBD12的數(shù)據(jù)線(D0D7)、控制線(INT_N、RESET_N、CS_N、ALE、WR_N、RD_N)、電源線(VCC、GND)引出,方便開發(fā)者使用USB接口模組與各種型號(hào)的MCU連接;PDIUSBD12芯片,用于完成USB接口的所有硬件功

16、能;電容的作用是完成PDIUSBD12芯片的上電復(fù)位;晶振供PDIUSBD12芯片使用;L1L4磁珠起抗干擾作用,保證數(shù)據(jù)傳輸?shù)恼_;USB接口完成設(shè)備之間的連接;指示燈在USB接口模組枚舉成功是點(diǎn)亮,在傳遞數(shù)據(jù)的時(shí)候閃爍;J5是接地,同時(shí)起到固定作用;電源跳線用來改變USB接口模組的供電方式,或者改變外設(shè)的供電方式。圖14 USB模組與凌陽單片機(jī)最小系統(tǒng)板連線示意圖軟件說明(5) USB轉(zhuǎn)PT2262模塊PCB電路圖:圖15 USB轉(zhuǎn)PT2262模塊PCB電路圖2.3.5 無線接收PT2272、凌陽單片機(jī)放音、彩燈顯示、電機(jī)驅(qū)動(dòng)模塊開發(fā)流程:(1)硬件結(jié)構(gòu)圖:圖16 小車硬件結(jié)構(gòu)圖:無線接收

17、模塊電路接收到無線信號(hào)(經(jīng)過PT2262調(diào)制的信號(hào)),經(jīng)過PT2272解調(diào)獲得主機(jī)發(fā)送的控制指令信息,該控制信息是一組四位二進(jìn)制編碼,如0001表示前進(jìn),0010表示后退等。由于PT2272芯片的帶負(fù)載能力有限,如果直接與電機(jī)驅(qū)動(dòng)模塊和凌陽單片機(jī)相連接將使得無線接收距離變短甚至無法接收到PT2262發(fā)射出的信號(hào),所以我們加入了一個(gè)運(yùn)放芯片。(4) 凌陽單片機(jī)放音、彩燈顯示的程序設(shè)計(jì)圖17 凌陽單片機(jī)放音、彩燈顯示的程序框圖控制信號(hào)經(jīng)運(yùn)放輸入凌陽單片機(jī)的IOA口,單片機(jī)的CPU循環(huán)掃描IOA口狀態(tài),判斷出IOA口數(shù)據(jù)。根據(jù)“協(xié)議”0000代表剎車,熄滅所有彩燈;0001代表前進(jìn),放0#音樂及顯示

18、0#彩燈方案;0101代表前進(jìn)+左轉(zhuǎn)、0110代表后退+左轉(zhuǎn)(“協(xié)議”規(guī)定:前左和后左都屬于左轉(zhuǎn),所以放同一種音樂和顯示同一種彩燈方案),放2#音樂及顯示2#彩燈方案.(5) 無線接收PT2272、凌陽單片機(jī)放音、彩燈顯示、電機(jī)驅(qū)動(dòng)模塊PCB電路圖圖18 凌陽單片機(jī)放音程序框圖2.3.6 基于藍(lán)牙耳機(jī)的語音智能控制小車實(shí)物圖:圖19 小車實(shí)物圖3.結(jié)語基于藍(lán)牙耳機(jī)的語音控制玩具小車充分發(fā)揮了藍(lán)牙技術(shù)的通訊兼容性能、可靠性高、功耗小的特點(diǎn),同時(shí)結(jié)合了語音識(shí)別技術(shù),實(shí)現(xiàn)了智能控制的完美效果,它集合語音智能控制、美妙聲樂、炫麗光彩于一身,控制自如,聲樂光彩美輪美奐,是一款極具吸引力的玩具小車!?;?/p>

19、藍(lán)牙耳機(jī)的語音控制玩具小車是一個(gè)涉及了藍(lán)牙通訊,USB通訊,無線電通信,單片機(jī)控制,語言識(shí)別編程,電機(jī)驅(qū)動(dòng)電路等的綜合系統(tǒng)。上述多項(xiàng)電路和軟件具有相當(dāng)?shù)奶魬?zhàn)性。在完成基于藍(lán)牙耳機(jī)的語音控制玩具小車的過程中,我得到了很多啟發(fā),也深刻體會(huì)和理解了團(tuán)隊(duì)精神的重要性,同時(shí)也注意到本系統(tǒng)還有許多要改進(jìn)的空間。例如,將語音識(shí)別技術(shù)運(yùn)用于家居系統(tǒng),實(shí)現(xiàn)語音智能控制家居等。語音智能控制家居模擬板是一個(gè)模擬語音控制家用電器的模擬軟件。通過對(duì)藍(lán)牙耳機(jī)輸入語音指令可以對(duì)燈、電飯煲、洗衣機(jī)、留言機(jī)進(jìn)行控制。原理與基于藍(lán)牙耳機(jī)的語音控制玩具小車類似,我們只需用語音就可以同家用電器“交流”。圖20 語音控制智能家居模擬板

20、程序運(yùn)行界面參考文獻(xiàn)1. 莊奕琪著,藍(lán)牙-夢(mèng)想與現(xiàn)實(shí),北京:機(jī)械工業(yè)出版社,20022. 錢鴻志著,藍(lán)牙技術(shù)原理,開發(fā)與應(yīng)用,北京:北京航空航天大學(xué)出版社,20063. 彭宣戈著,16位單片機(jī)原理及應(yīng)用,北京:北京航空航天大學(xué)出版社,20064. 羅亞菲著,凌陽16位單片機(jī)應(yīng)用基礎(chǔ),北京:北京航空航天大學(xué)出版社,20055. 康華光等.電子技術(shù)基礎(chǔ)模擬部分(第四版).高等教育出版社.19986康華光等.電子技術(shù)基礎(chǔ)數(shù)字部分(第四版).高等教育出版社.19987. 江思敏, 陳明編著Protel電路設(shè)計(jì)教程M北京: 清華大學(xué)出版社, 20068. 余家春,Protel 99 SE電路設(shè)計(jì)使用教程

21、M北京:中國(guó)鐵路出版社, 20049. 張友德等.單片微型機(jī)原理、應(yīng)用與實(shí)驗(yàn)M.上海:復(fù)旦大學(xué)出版社,200210.陳繼輝等譯. C語言嵌入式系統(tǒng)開發(fā)M 北京: 中國(guó)電力出版社, 200311.Microsoft® Speech SDK 5.1 sapi.chm致 謝在論文完成之際,我要特別感謝我的指導(dǎo)老師程?hào)|方老師的熱情關(guān)懷和悉心指導(dǎo)。在整個(gè)系統(tǒng)的設(shè)計(jì)、開發(fā)過程中,程老師傾注了大量的心血和汗水,無論是在系統(tǒng)構(gòu)思和資料收集方面,還是在研究方法方面,我都得到了程老師悉心細(xì)致的教誨和無私的幫助,特別是他嚴(yán)謹(jǐn)?shù)闹螌W(xué)精神使我終生受益,在此表示真誠地感謝和深深的謝意。整個(gè)系統(tǒng)的順利完成,也得到

22、了許多同學(xué)的寶貴意見,感謝所有關(guān)心、支持、幫助過我的良師益友。在此,還要感謝學(xué)校舉辦的三小制作大賽,它給了我們一個(gè)展現(xiàn)自己創(chuàng)意的舞臺(tái),讓我們有機(jī)會(huì)把理論運(yùn)用于實(shí)際,極大地提高了實(shí)踐動(dòng)手能力。同時(shí)獲得了豐富的理論知識(shí)和綜合運(yùn)用所學(xué)知識(shí),發(fā)現(xiàn),提出,分析和解決問題的能力。從三小競(jìng)賽中獲得的寶貴經(jīng)驗(yàn),使我受益匪淺。 最后,向在百忙中抽出時(shí)間對(duì)本文進(jìn)行評(píng)審并提出寶貴意見的各位專家表示衷心地感謝!附錄一. CmdCtrl.xml 源文件<?xml version="1.0"?><GRAMMAR LANGID = "804"><DEFI

23、NE><ID NAME = "CMD" VAL="10"/><ID NAME = "CMDOPEN" VAL="101"/><ID NAME = "CMDCOMPUTER" VAL="1011"/><ID NAME = "CMDYOUXI" VAL="10111"/><ID NAME = "CMDTINGZHI" VAL="101111"

24、/></DEFINE><RULE NAME ="COMMAND" ID = "CMD" TOPLEVEL = "ACTIVE"><L><P>前進(jìn) </P></L></RULE><RULE NAME ="COMMANDOPEN" ID = "CMDOPEN" TOPLEVEL = "ACTIVE"><L><P>后退</P></L>

25、</RULE><RULE NAME ="COMMANDCOMPUTER" ID = "CMDCOMPUTER" TOPLEVEL = "ACTIVE"><L><P>左轉(zhuǎn)</P></L></RULE><RULE NAME ="COMMANDYOUXI" ID = "CMDYOUXI" TOPLEVEL = "ACTIVE"><L><P>右轉(zhuǎn)</P>

26、</L></RULE><RULE NAME ="COMMANDTINGZHI" ID = "CMDTINGZHI" TOPLEVEL = "ACTIVE"><L><P>剎車</P></L></RULE></GRAMMAR>附錄二. 語音識(shí)別軟件程序主要代碼Void CMainDlg:OnRecoEvent(WPARAM wParam, LPARAM lParam)USES_CONVERSION;CSpEvent event;HR

27、ESULT hr = S_OK;if(m_SREngine.m_cpRecoContext)while(event.GetFrom(m_SREngine.m_cpRecoContext) = S_OK)/Get the IDswitch(event.eEventId)case SPEI_FALSE_RECOGNITION:break;case SPEI_HYPOTHESIS:case SPEI_RECOGNITION: CComPtr <ISpRecoResult> cpResult; CSpDynamicString dstrText; CString strResult; cp

28、Result = event.RecoResult(); cpResult ->GetText(SP_GETWHOLEPHRASE, SP_GETWHOLEPHRASE, TRUE, &dstrText, NULL); strResult = W2T(dstrText); if(strResult = CString("前進(jìn)") /判斷識(shí)別結(jié)果是否是“前進(jìn)” m_RecieveData="前進(jìn)" /主界面顯示“前進(jìn)” UpdateData(FALSE); Qianjin(); /調(diào)用“前進(jìn)”處理函數(shù) else if(strResult =

29、CString("后退") ) /判斷識(shí)別結(jié)果是否是“后退” m_RecieveData="后退" /主界面顯示“后退” UpdateData(FALSE); Houtui(); /調(diào)用“后退”處理函數(shù) else if(strResult = CString("左轉(zhuǎn)") ) /判斷識(shí)別結(jié)果是否是“左轉(zhuǎn)” m_RecieveData="左轉(zhuǎn)" /主界面顯示“左轉(zhuǎn)” UpdateData(FALSE); Zuozhuan(); /調(diào)用“左轉(zhuǎn)”處理函數(shù) else if(strResult = CString("

30、右轉(zhuǎn)") ) /判斷識(shí)別結(jié)果是否是“右轉(zhuǎn)” m_RecieveData="右轉(zhuǎn)" /主界面顯示“右轉(zhuǎn)” UpdateData(FALSE); Youzhuan(); /調(diào)用“右轉(zhuǎn)”處理函數(shù) else if(strResult = CString("剎車") ) /判斷識(shí)別結(jié)果是否是“剎車” m_RecieveData="剎車" /主界面顯示“剎車” UpdateData(FALSE); Ting(); /調(diào)用“剎車”處理函數(shù) cpResult.Release(); break;default:break; BOOL CMai

31、nDlg:OnInitDialog() CDialog:OnInitDialog();/ TODO: Add extra initialization hereHRESULT hr = m_SREngine.InitializeSapi(this->GetSafeHwnd(), WM_RECOEVENT);if(FAILED(hr)return FALSE;hr = m_SREngine.LoadCmdFromFile("CmdCtrl.xml");if(FAILED(hr)/:MessageBox(NULL, "HERE","OK&qu

32、ot;,MB_OK);return FALSE;hr = m_SREngine.SetRuleState(NULL, NULL, TRUE);if(FAILED(hr)return FALSE;return TRUE; / return TRUE unless you set the focus to a control / EXCEPTION: OCX Property Pages should return FALSEvoid CMainDlg:OnCloseusbButton() /關(guān)閉USB外設(shè)/ TODO: Add your control notification handler

33、code here bFlag = 0;CloseIfOpen();void CMainDlg:OnConnecttestButton() /連接測(cè)試/ TODO: Add your control notification handler code hereCString show,tmp;char Recievedata1;char Senddata2;int i;ULONG nRead,nWrite;if(bFlag)Senddata0=ID0;Write, Senddata, 2, &nWrite, NULL);for(i=0;i<50000;i+);Recievedat

34、a0=0x0;Read, Recievedata, 1, &nRead, NULL);if(Recievedata0=ID0)show="ID0="tmp.Format("%x",Recievedata0); show+=tmp;show+=' ' m_RecieveData=show; UpdateData(FALSE); AfxMessageBox("USB外設(shè)連接成功n");/Sendlow();elseAfxMessageBox("請(qǐng)先打開USB外設(shè)n");void CMainDlg

35、:OnOpenusbButton() /打開USB外設(shè)/ TODO: Add your control notification handler code herechar *"PIPE02"char *"PIPE03"char *"PIPE01"bFlag = 1;hDeviceReadEp2=open_);/open endpoint2inhDeviceWriteEp2=open_);/open endpoint2outhDeviceWriteEp1=open_);if (hDeviceReadEp2 = INVALID_HAND

36、LE_VALUE|hDeviceWriteEp2 = INVALID_HANDLE_VALUE | hDeviceWriteEp1 = INVALID_HANDLE_VALUE)/AfxMessageBox("ERROR opening device: (%0d) returned from CreateFilen", GetLastError();AfxMessageBox("ERROR open EndPoint: returned from open_Filen");elseAfxMessageBox("Device found, End

37、Point2 open .n");void CMainDlg:CloseIfOpen(void)if (hDeviceReadEp2 != INVALID_HANDLE_VALUE)if (!CloseHandle(hDeviceReadEp2)AfxMessageBox("ERROR: CloseHandle1 returns: %ld n", GetLastError(); hDeviceReadEp2 = INVALID_HANDLE_VALUE;if (hDeviceWriteEp2 != INVALID_HANDLE_VALUE)if (!CloseHa

38、ndle(hDeviceWriteEp2)AfxMessageBox("ERROR: CloseHandle1 returns: %ld n", GetLastError(); hDeviceWriteEp2 = INVALID_HANDLE_VALUE;if (hDeviceWriteEp1 != INVALID_HANDLE_VALUE)if (!CloseHandle(hDeviceWriteEp1)AfxMessageBox("ERROR: CloseHandle1 returns: %ld n", GetLastError(); hDevice

39、WriteEp2 = INVALID_HANDLE_VALUE;AfxMessageBox("CloseHandle successn")void CMainDlg:Qianjin(void) /前進(jìn)函數(shù)char Senddata2; /定義兩個(gè)字節(jié)的數(shù)據(jù)ULONG nWrite;if(bFlag) /判斷USB的通訊狀態(tài)Senddata0=ID1; /標(biāo)志字節(jié)Senddata1=0; /控制指令“前進(jìn)”Write, Senddata, 2, &nWrite, NULL); /將控制指令寫入U(xiǎn)SB設(shè)備elseAfxMessageBox("請(qǐng)先打開USB外設(shè)

40、n"); /如果USB外設(shè)沒有連接,提示錯(cuò)誤void CMainDlg:Houtui(void) /后退函數(shù)char Senddata2;ULONG nWrite;if(bFlag)Senddata0=ID1;Senddata1=1;Write, Senddata, 2, &nWrite, NULL);elseAfxMessageBox("請(qǐng)先打開USB外設(shè)n");void CMainDlg:Zuozhuan(void) /左轉(zhuǎn)函數(shù)char Senddata2;ULONG nWrite;if(bFlag)Senddata0=ID1;Senddata1=2;

41、Write, Senddata, 2, &nWrite, NULL);elseAfxMessageBox("請(qǐng)先打開USB外設(shè)n");void CMainDlg:Youzhuan(void) /右轉(zhuǎn)函數(shù)char Senddata2;ULONG nWrite;if(bFlag)Senddata0=ID1;Senddata1=3;Write, Senddata, 2, &nWrite, NULL);elseAfxMessageBox("請(qǐng)先打開USB外設(shè)n");void CMainDlg:Ting(void) /剎車函數(shù)char Sendda

42、ta2;ULONG nWrite;if(bFlag)Senddata0=ID1;Senddata1=4;Write, Senddata, 2, &nWrite, NULL);elseAfxMessageBox("請(qǐng)先打開USB外設(shè)n");附錄三. USB轉(zhuǎn)PT2262模塊凌陽單片機(jī)固件源程序main()unsigned int uiSendDataFlag=0;unsigned int uiReadEp2DataLength=0;unsigned int aIdFlag2; int foreward=0; int backward=0; F_System_Initi

43、al();F_Reconnect_USB(); /PDIUSBD12芯片的軟連接F_Interrupt_On(); while(1) if (bEPPflags.bits.bus_reset) /總線復(fù)位處理 bEPPflags.bits.bus_reset = 0;/清標(biāo)志 if (bEPPflags.bits.suspend)/總線掛起處理 bEPPflags.bits.suspend= 0;/清標(biāo)志 if (bEPPflags.bits.setup_packet)/協(xié)議處理bEPPflags.bits.setup_packet = 0;/清標(biāo)志F_Control_Handler();if(bEPPflags.bits.Ep1_ReceiveDataFlag=1)bEPPflags.bits.Ep1_ReceiveD

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(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ǔ)空間,僅對(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)論