智能小車的聲控、遙控與避障的實(shí)現(xiàn)_第1頁
智能小車的聲控、遙控與避障的實(shí)現(xiàn)_第2頁
智能小車的聲控、遙控與避障的實(shí)現(xiàn)_第3頁
智能小車的聲控、遙控與避障的實(shí)現(xiàn)_第4頁
智能小車的聲控、遙控與避障的實(shí)現(xiàn)_第5頁
已閱讀5頁,還剩17頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、精選優(yōu)質(zhì)文檔-傾情為你奉上 南京航空航天大學(xué)電子信息工程學(xué)院第七期科創(chuàng)基金結(jié)題論文項(xiàng)目名稱: 智能小1車的聲控、遙控與避障的實(shí)現(xiàn) 申 報(bào) 人:谷雨 孟凡君 鞠網(wǎng)扣 范翰陽曹偉晨 周湧 指導(dǎo)老師: 施慧彬 二一一年十二月智能小車的聲控、遙控與避障的實(shí)現(xiàn)研究內(nèi)容提要:智能小車采用語音識(shí)別技術(shù)和,紅外遙控技術(shù),對其行駛狀態(tài)進(jìn)行控制。利用SPCE061A單片機(jī)和智能小車控制電路板,實(shí)現(xiàn)下述功能: 1.可以通過簡單的I/O操作實(shí)現(xiàn)小車的前進(jìn)、后退、左轉(zhuǎn)、右轉(zhuǎn)功能。 2.配合SPCE061A的語音特色,利用系統(tǒng)的語音播放和語音識(shí)別資源,實(shí)現(xiàn)語音控制的功能。 3.可以在行走過程中聲控改變小車運(yùn)動(dòng)狀態(tài)。4.在

2、超出語音控制范圍時(shí)能夠自動(dòng)停車。 5.添加遙控功能,實(shí)現(xiàn)聲控+無線遙控的雙控功能。6.可以探測到障礙物并自主做出躲避。關(guān)鍵詞:語音識(shí)別、語音控制、紅外遙控、自動(dòng)避障研究的目的和意義隨著計(jì)算機(jī)和信息技術(shù)的發(fā)展和應(yīng)用,包括語音控制和無線遙控等自動(dòng)控制原理在科學(xué)和生活各個(gè)方面的運(yùn)用也更加深入和廣泛。本研究主要基于上述原理制作可通過語音和遙控進(jìn)行雙重控制的小車,并且另外安裝各種傳感器,以實(shí)現(xiàn)小車的前后左右運(yùn)行,躲避障礙物等功能為目的。通過對相關(guān)理論技術(shù)的研究和小車的制作,對語音控制和無線遙控原理產(chǎn)生初步的認(rèn)識(shí)和理解,并能夠?qū)⒗碚撝R(shí)運(yùn)用到實(shí)際操控當(dāng)中。對于小車的語音控制,主要采用SPCE061A單片機(jī)

3、,該器件可以實(shí)現(xiàn)語音的存儲(chǔ)和放音。通過研究,可以深入理解該單片機(jī)的工作機(jī)理,學(xué)會(huì)對語音信號的分析和處理,將課堂上所學(xué)概率統(tǒng)計(jì)知識(shí),信號分析知識(shí)等與實(shí)踐操作想結(jié)合,探究如何運(yùn)用該器件對小車進(jìn)行控制并且根據(jù)不同指令實(shí)現(xiàn)各項(xiàng)功能,從而實(shí)現(xiàn)操控的人性化,便捷化和智能化。對于小車的無線控制,主要采用無線電的遙控通過收發(fā)指令實(shí)現(xiàn)。此技術(shù)與我們所學(xué)的信息專業(yè)聯(lián)系更為緊密。通過研究,可以理解無線電的收發(fā)原理, 學(xué)會(huì)對不同電波信號實(shí)現(xiàn)分辨和處理,培養(yǎng)我們把電信號轉(zhuǎn)化為實(shí)際指令的能力。通過具體的制作來鞏固所學(xué)的模電,數(shù)電,信號分析等知識(shí),做到學(xué)以致用。同時(shí),還能夠了解本專業(yè)的應(yīng)用前景,發(fā)展動(dòng)向和不足之處,體會(huì)到信

4、息工程給我們帶來的巨大便利。對于小車的避障功能的實(shí)現(xiàn),可以在小車內(nèi)添加各種傳感器,根據(jù)傳感器傳回的數(shù)據(jù)編寫算法和程序,從而實(shí)現(xiàn)相應(yīng)的功能。這是對于所學(xué)編程知識(shí)的具體應(yīng)用,既可以鞏固課堂上所學(xué)的知識(shí),又能開拓我們的思維,充分發(fā)揮我們的創(chuàng)造性。另外,通過對小車的組裝,還可以學(xué)習(xí)器件組裝,焊接等技術(shù)操作能力,鍛煉我們的動(dòng)手能力,實(shí)驗(yàn)?zāi)芰皥F(tuán)隊(duì)協(xié)作能力??偟膩碚f,語音控制和無線遙控等自動(dòng)控制原理和我們所學(xué)的專業(yè)息息相關(guān)。其應(yīng)用范圍現(xiàn)在已擴(kuò)展到生物、醫(yī)學(xué)、環(huán)境、經(jīng)濟(jì)管理和其它許多社會(huì)生活領(lǐng)域中,成為現(xiàn)代社會(huì)生活中不可缺少的一部分。隨著時(shí)代進(jìn)步和人們生活水平的提高,在人類探知未來,認(rèn)識(shí)和改造自然,建設(shè)高度

5、文明和發(fā)達(dá)社會(huì)的活動(dòng)中,語音控制和無線遙控必將進(jìn)一步發(fā)揮更加重要的作用。作為信息科學(xué)與技術(shù)專業(yè)的學(xué)生,僅僅了解和掌握相關(guān)知識(shí)并不足夠,我們要多思考,多研究,多創(chuàng)新,積極將所學(xué)知識(shí)與實(shí)踐相結(jié)合,通過團(tuán)隊(duì)協(xié)作積極創(chuàng)造,切身體會(huì)該項(xiàng)技術(shù)的帶來的人性化便捷操控及智能性。國內(nèi)外本項(xiàng)目的研究狀況語音識(shí)別技術(shù)的研究開始于二十世紀(jì)五十年代。國外,Bell實(shí)驗(yàn)室的Davis等人首次研制出能識(shí)別十個(gè)英語數(shù)學(xué)的實(shí)驗(yàn)裝置Audry系統(tǒng)。60年代,提出兩大重要研究成果:動(dòng)態(tài)規(guī)劃和線性預(yù)測分析。70年代,線性預(yù)測編碼技術(shù)被Itakura成功應(yīng)用于使語音識(shí)別;Sakoe和Chiba將動(dòng)態(tài)規(guī)劃的思想應(yīng)用到語音識(shí)別并提出動(dòng)態(tài)時(shí)

6、間規(guī)整算法;Linda和Markel也首次解決了矢量量化碼書生成的方法;統(tǒng)計(jì)方法也開始被用來解決語音識(shí)別的關(guān)鍵問題。80年代,Meyers和Rabiner研究出多級動(dòng)態(tài)規(guī)劃語音識(shí)別算法;另一個(gè)重要的發(fā)展是概率統(tǒng)計(jì)方法成為語音識(shí)別研究方法的主流,其顯著特征是HMM模型在語音識(shí)別中的成功應(yīng)用。1988年,美國卡內(nèi)基梅隆大學(xué)用VQ/HMM方法實(shí)現(xiàn)了997詞的非特定人連續(xù)語音識(shí)別系統(tǒng)SPHINX。 而國內(nèi),清華大學(xué)的王作英教授提出了非齊次隱語音識(shí)別的“改進(jìn)隱含馬爾可夫模型” ,可以說是對語音識(shí)別模型算法的一次重大革新。趙力等提出了利用偶數(shù)幀段輸入隱馬爾可夫模型,提高了在噪音環(huán)境下漢語語音識(shí)別系統(tǒng)魯棒性

7、。李凡等提出一種基于BP神經(jīng)網(wǎng)絡(luò)和HMM的混合聲學(xué)模型;何振亞等提出了一種HMM和徑向基函數(shù)神經(jīng)網(wǎng)絡(luò)(RBF)相結(jié)合的語音識(shí)別模型;李晶皎提出的基于HMM和自組織神經(jīng)網(wǎng)絡(luò)模型的混合模型。無線電遙控技術(shù)發(fā)展于本世紀(jì)20年代。當(dāng)時(shí),才剛剛出現(xiàn)無線電遙控的雛形,那時(shí)的人們試圖將遙控技術(shù)應(yīng)用于無人駕駛飛機(jī)和艦船,但由于技術(shù)不夠完善而未能成功。二次世界大戰(zhàn)以后,無線電遙控技術(shù)發(fā)展迅速,并逐漸在軍事、國防、工農(nóng)業(yè)生產(chǎn)以及科學(xué)技術(shù)等方面得到廣泛的應(yīng)用。70年代后期,模型用的無線電遙控設(shè)備也以商品的形式逐漸出現(xiàn)。無線電元件制造技術(shù)在短時(shí)間內(nèi)取得了高速發(fā)展。高密封的半導(dǎo)體晶片,將數(shù)千個(gè)晶體管的功能集中在一個(gè)幾平

8、方厘米的元件板上,標(biāo)志著當(dāng)今無線電技術(shù)的發(fā)展趨勢。其應(yīng)用有:無線遙控自動(dòng)避擾技術(shù);功能更強(qiáng)大的反饋系統(tǒng);用于生產(chǎn)計(jì)劃的管理;無線電控制裝置的自動(dòng)程序化和智能功能。美國發(fā)射的外星生命探測器代表國外無線電遙控技術(shù)的發(fā)展水平,至于國內(nèi),嫦娥二號基本上算是頂端技術(shù)了。項(xiàng)目的創(chuàng)新點(diǎn)1. 配合SPCE061A的語音特色,利用系統(tǒng)的語音播放和語音識(shí)別資源,實(shí)現(xiàn)語音控制的功能,使對車的遙控更加簡潔和人性化2. 具有聲控+無線遙控的雙控制功能,以便當(dāng)語音控制失效或超出語音控制范圍時(shí)時(shí)仍可以對小車進(jìn)行控制、回收3. 可以探測到障礙物并自主做出躲避,提高小車的智能性和安全性研究內(nèi)容、研究方案芯片特性簡介 為了實(shí)現(xiàn)該

9、車的語音控制功能,必須應(yīng)用語音識(shí)別技術(shù),對發(fā)出的語音控制指令進(jìn)行識(shí)別,識(shí)別后發(fā)出與指令對應(yīng)的控制信號,從而使小車做出相應(yīng)的動(dòng)作。語音識(shí)別主要分為“訓(xùn)練”和“識(shí)別”兩個(gè)階段。在訓(xùn)練階段,應(yīng)用單片機(jī)對采集到的語音樣本進(jìn)行分析處理,從中提取出語音特征信息,建立一個(gè)特征模型;在識(shí)別階段,使用單片機(jī)對采集到的語音樣本進(jìn)行類似的分析處理,提取出語音的特征信息,然后將這個(gè)特征信息模型與已有的特征模型進(jìn)行對比,如果二者達(dá)到了一定的匹配度,則輸入的語音被識(shí)別。該語音識(shí)別功能可通過單片機(jī)SPCE061A實(shí)現(xiàn)。SPCE061A是凌陽科技研發(fā)生產(chǎn)的性價(jià)比很高的一款十六位單片機(jī),使用它可以非常方便靈活的實(shí)現(xiàn)語音的錄放,

10、該芯片擁有8路10位精度的ADC,其中一路為音頻轉(zhuǎn)換通道,并且內(nèi)置有自動(dòng)增益電路。這為實(shí)現(xiàn)語音錄入提供了方便的硬件條件。兩路10位精度的DAC,只需要外接功放(SPY0030A)即可完成語音的播放。借助于SPCE061A的語音特色,我們可以開發(fā)出這款語音控制小車。小車不僅具有前進(jìn)、后退、左轉(zhuǎn)、右轉(zhuǎn)停車等基本功能;同時(shí)配合SPCE061A的語音特色,實(shí)現(xiàn)語音控制功能。SPCE061A特性簡介SPCE061A是凌陽科技研發(fā)生產(chǎn)的性價(jià)比很高的一款十六位單片機(jī),使用它可以非常方便靈活的實(shí)現(xiàn)語音的錄放,該芯片擁有8路10位精度的ADC,其中一路為音頻轉(zhuǎn)換通道,并且內(nèi)置有自動(dòng)增益電路。這為實(shí)現(xiàn)語音錄入提供

11、了方便的硬件條件。兩路10位精度的DAC,只需要外接功放(SPY0030A)即可完成語音的播放。另外凌陽十六位單片機(jī)具有一套易學(xué)易用的指令系統(tǒng)和集成開發(fā)環(huán)境,在此環(huán)境中,它支持標(biāo)準(zhǔn)C語言編程,也支持C語言與匯編語言的互相調(diào)用。另外還提供了語音錄放的庫函數(shù),只要了解庫函數(shù)的使用,就可以很容易的完成語音的錄放、識(shí)別等功能,這些都為軟件開發(fā)提供了方便的條件。SPCE061A特性: 16位nSP微處理器; 工作電壓:內(nèi)核工作電壓VDD為3.0V3.6V(CPU),I/O口工作電壓VDDH為VDD5.5V(I/O); CPU時(shí)鐘:0.32MHz49.152MHz; 內(nèi)置2K字SRAM; 內(nèi)置32K閃存R

12、OM; 可編程音頻處理; 晶體振蕩器; 系統(tǒng)處于備用狀態(tài)下(時(shí)鐘處于停止?fàn)顟B(tài)),耗電小于2A3.6V; 2個(gè)16位可編程定時(shí)器/計(jì)數(shù)器(可自動(dòng)預(yù)置初始計(jì)數(shù)值); 2個(gè)10位DAC(數(shù)-模轉(zhuǎn)換)輸出通道; 32位通用可編程輸入/輸出端口; 14個(gè)中斷源可來自定時(shí)器A / B,時(shí)基,2個(gè)外部時(shí)鐘源輸入,鍵喚醒; 具備觸鍵喚醒的功能; 使用凌陽音頻編碼SACM_S240方式(2.4K位/秒),能容納210秒的語音數(shù)據(jù); 鎖相環(huán)PLL振蕩器提供系統(tǒng)時(shí)鐘信號; 32768Hz實(shí)時(shí)時(shí)鐘; 7通道10位電壓模-數(shù)轉(zhuǎn)換器(ADC)和單通道聲音模-數(shù)轉(zhuǎn)換器; 聲音模-數(shù)轉(zhuǎn)換器輸入通道內(nèi)置麥克風(fēng)放大器和自動(dòng)增益控

13、制(AGC)功能; 具備串行設(shè)備接口; 低電壓復(fù)位(LVR)功和低電壓監(jiān)測(LVD)功能; 內(nèi)置在線仿真板(ICE,In- Circuit Emulator)接口。語音識(shí)別的原理簡介在介紹子程序之前首先介紹一下語音識(shí)別的原理。 語音識(shí)別主要分為“訓(xùn)練”和“識(shí)別”兩個(gè)階段。在訓(xùn)練階段,單片機(jī)對采集到的語音樣本進(jìn)行分析處理,從中提取出語音特征信息,建立一個(gè)特征模型;在識(shí)別階段,單片機(jī)對采集到的語音樣本也進(jìn)行類似的分析處理,提取出語音的特征信息,然后將這個(gè)特征信息模型與已有的特征模型進(jìn)行對比,如果二者達(dá)到了一定的匹配度,則輸入的語音被識(shí)別。硬件實(shí)現(xiàn)方案系統(tǒng)結(jié)構(gòu)框圖如下MIC方向控制器方向電機(jī)KEY濾

14、波SPCE061A驅(qū)動(dòng)控制器驅(qū)動(dòng)電機(jī)功放SPK系統(tǒng)組成主要包括兩部分:SPCE061A精簡開發(fā)板、語音小車控制電路板。圖中的語音輸入部分MIC_ IN、按鍵輸入KEY、聲音輸出部分的功率放大環(huán)節(jié)等已經(jīng)做到了精簡開發(fā)板61板上,為我們使用提供了很大的方便。在電機(jī)的驅(qū)動(dòng)方面,采用全橋驅(qū)動(dòng)技術(shù),利用四個(gè)I/O端口分兩組分別實(shí)現(xiàn)兩個(gè)電機(jī)的正傳、反轉(zhuǎn)和停三態(tài)運(yùn)行。小車的運(yùn)動(dòng)控制采用語音控制和中斷定時(shí)控制相結(jié)合,通過語音觸發(fā)小車動(dòng)作,小車動(dòng)作之后,隨時(shí)可以通過語音指令改變小車的運(yùn)動(dòng)狀態(tài)。在每一次動(dòng)作觸發(fā)的同時(shí)啟動(dòng)定時(shí)器,如果小車由于某些原因不能正常的接收語音指令,則只要定時(shí)時(shí)間到,中斷服務(wù)程序會(huì)發(fā)出指令讓

15、小車停下來。語音控制小車為四輪結(jié)構(gòu)。其中前面兩個(gè)方向車輪由前輪電機(jī)控制,在連桿和支點(diǎn)作用下控制前輪左右擺動(dòng),來調(diào)節(jié)小車的前進(jìn)方向。在自然狀態(tài)下,前輪在彈簧作用下保持中間位置。后面兩個(gè)車輪由后輪電機(jī)驅(qū)動(dòng),為整個(gè)小車提供動(dòng)力。小車的行走及轉(zhuǎn)彎原理:直走:前輪在彈簧作用下保持中間狀態(tài),后輪電機(jī)正轉(zhuǎn)小車就會(huì)前進(jìn)。倒車:前輪電機(jī)仍然保持中間狀態(tài),后輪電機(jī)反轉(zhuǎn),小車就會(huì)向后運(yùn)動(dòng)。左轉(zhuǎn):前輪電機(jī)逆時(shí)針旋轉(zhuǎn)(規(guī)定為正轉(zhuǎn)),后輪電機(jī)正轉(zhuǎn),小車就會(huì)在前后輪共同作用下朝左側(cè)前進(jìn)。 右轉(zhuǎn):前輪電機(jī)反轉(zhuǎn),后輪電機(jī)正轉(zhuǎn),小車就是會(huì)在前后輪共同作用下朝右側(cè)前進(jìn)??刂瓢逯饕ǎ航涌陔娐?、電源電路和兩路電機(jī)的驅(qū)動(dòng)電路。接口電

16、路:接口電路負(fù)責(zé)將61板的I/O接口信號傳送給控制電路板,I/O信號主要為控制電機(jī)需要的IOB8IOB11這四路信號,同時(shí)為了方便后續(xù)的開發(fā)和完善,預(yù)留了IOB12IOB15以及IOA8IOA15接口,可以在這些接口上添加一些傳感器。小車的避障原理在小車前段加裝傳感器,接到SPCE061A預(yù)留的接口上。當(dāng)傳感器探測到小車左前方一定范圍內(nèi)出現(xiàn)障礙物時(shí),通過61板將信號傳送給控制電路板,使小車進(jìn)行相應(yīng)的轉(zhuǎn)向、停止、后退等動(dòng)作系統(tǒng)軟件設(shè)計(jì)訓(xùn)練子程序當(dāng)程序檢測到訓(xùn)練標(biāo)志位BS_Flag內(nèi)容為0xffff,就會(huì)要求操作者對它進(jìn)行訓(xùn)練操作,訓(xùn)練操作的過程如圖 6-3所示:訓(xùn)練采用兩次訓(xùn)練獲取結(jié)果的方式,以

17、訓(xùn)練名字為例:小車首先會(huì)提示:給我取個(gè)名字吧,這時(shí)你可以告訴它一個(gè)名字(比如Jack);然后它會(huì)提示:請?jiān)僬f一遍,這時(shí)再次告訴它名字(Jack),如果兩次的聲音差別不大,小車就能夠成功的建立模型,名稱訓(xùn)練成功;如果沒能夠成功的建立模型,小車會(huì)告知失敗的原因并要求重新訓(xùn)練。成功訓(xùn)練名稱后會(huì)給出下一條待訓(xùn)練指令提示音:前進(jìn),參照名稱訓(xùn)練方式訓(xùn)練前進(jìn)指令。依次訓(xùn)練小車的名稱前進(jìn)指令倒車指令左轉(zhuǎn)指令右轉(zhuǎn)指令,全部訓(xùn)練成功子程序返回,訓(xùn)練結(jié)束。動(dòng)作子程序動(dòng)作子程序包括:前進(jìn)、倒車、左拐、右拐、停車子程序; 前進(jìn):由小車的結(jié)構(gòu)原理和驅(qū)動(dòng)電路分析知:只要IOB8為高電平,IOB9,IOB10,IOB11全部

18、為低電平即可實(shí)現(xiàn)小車的前進(jìn)。前進(jìn)子程序包括語音提示、置端口數(shù)據(jù)、啟動(dòng)定時(shí)器操作,左轉(zhuǎn):由小車的結(jié)構(gòu)原理分析和驅(qū)動(dòng)電路分析知:小車左轉(zhuǎn)需要兩個(gè)條件:1.前輪左偏2.后輪前進(jìn),這時(shí)對應(yīng)的I/O狀態(tài)為:IOB8、IOB10為高電平,IOB9、IOB11為低電平。左轉(zhuǎn)子程序包括語音提示、置端口數(shù)據(jù)、啟動(dòng)定時(shí)器操作右轉(zhuǎn):由小車的結(jié)構(gòu)原理分析和驅(qū)動(dòng)電路分析知:小車右轉(zhuǎn)需要兩個(gè)條件:1.前輪右偏2.后輪前進(jìn),這時(shí)對應(yīng)的I/O狀態(tài)為:IOB8、IOB11為高電平,IOB9、IOB10為低電平。右轉(zhuǎn)子程序包括語音提示、置端口數(shù)據(jù)、啟動(dòng)定時(shí)器操作中斷子程序雖然已經(jīng)有了前進(jìn)、后退以及停車(通過直接呼叫小車的名字使其

19、停車)等語音控制指令,但是考慮環(huán)境的干擾因素,小車運(yùn)行時(shí)的噪音影響和有效距離的限制,小車運(yùn)行后可能接收不到語音指令而一直運(yùn)行。為了防止出現(xiàn)這種情況,加入了時(shí)間控制,在啟動(dòng)小車運(yùn)行的同時(shí)啟動(dòng)定時(shí)器,定時(shí)器時(shí)間到停止小車的運(yùn)行,該定時(shí)器借助于2Hz時(shí)基中斷完成,圖 6-5所示為該程序的流程圖??梢栽诔绦蛑行薷膗iTimeset參數(shù)來控制運(yùn)行時(shí)間,當(dāng)uiTimeset=2時(shí),運(yùn)行時(shí)間為1s,以此類推。語音識(shí)別小車的主程序流程如圖所示,分為四大部分:初始化部分、訓(xùn)練部分、識(shí)別部分、重訓(xùn)操作。初始化部分:初始化操作將IOB8IOB11設(shè)置為輸出端,用以控制電機(jī)。必要時(shí)還要有對應(yīng)的輸入端設(shè)置和PWM端口設(shè)

20、置等。訓(xùn)練部分:訓(xùn)練部分完成的工作就是建立語音模型。程序一開始判斷小車是否被訓(xùn)練過,如果沒有訓(xùn)練過則要求對其進(jìn)行訓(xùn)練,并且會(huì)在訓(xùn)練成功之后將訓(xùn)練的模型存儲(chǔ)到Flash,在以后使用時(shí)不需要重新訓(xùn)練;如果已經(jīng)訓(xùn)練過會(huì)把存儲(chǔ)在Flash中的模型調(diào)出來裝載到辨識(shí)器中。識(shí)別部分:在識(shí)別環(huán)節(jié)當(dāng)中,如果辨識(shí)結(jié)果是名字,停止當(dāng)前的動(dòng)作并進(jìn)入待命狀態(tài),然后等待動(dòng)作命令。如果辨識(shí)結(jié)果為動(dòng)作指令小車會(huì)語音告知相應(yīng)動(dòng)作并執(zhí)行該動(dòng)作,在運(yùn)動(dòng)過程中可以通過呼叫小車的名字使小車停下來。重訓(xùn)操作:考慮到有重新訓(xùn)練的需求,設(shè)置了重新訓(xùn)練的按鍵(61板的KEY3),循環(huán)掃描該按鍵,一旦檢測到此鍵按下,則將擦除訓(xùn)練標(biāo)志位(0xe0

21、00單元),并等待復(fù)位。復(fù)位后,程序重新執(zhí)行,當(dāng)檢測到訓(xùn)練標(biāo)志位為0xffff時(shí)會(huì)要求重新對其進(jìn)行訓(xùn)練。開始系統(tǒng)的總體程序流程圖等待復(fù)位區(qū)清除型存儲(chǔ)區(qū)重新訓(xùn)練進(jìn)入識(shí)別模式保存訓(xùn)練結(jié)果訓(xùn)練小車已經(jīng)訓(xùn)練過初始化裝載語音模型語音識(shí)別與執(zhí)行紅外遙控的實(shí)現(xiàn) 紅外線又稱紅外光波,在電磁波譜中,光波的波長范圍為0.01um1000um。根據(jù)波長的不同可分為可見光和不可見光,波長為0.38um0.76um的光波可為可見光,依次為紅、橙、黃、綠、青、藍(lán)、紫七種顏色。光波為0.01um0.38um的光波為紫外光(線),波長為0.76um1000um的光波為紅外光(線)。紅外光按波長范圍分為近紅外、中紅外、遠(yuǎn)紅外、

22、極紅外4類。紅外線遙控是利用近紅外光傳送遙控指令的,波長為0.76um1.5um。用近紅外作為遙控光源,是因?yàn)槟壳凹t外發(fā)射器件(紅外發(fā)光管)與紅外接收器件(光敏二極管、三極管及光電池)的發(fā)光與受光峰值波長一般為0.8um0.94um,在近紅外光波段內(nèi),二者的光譜正好重合,能夠很好地匹配,可以獲得較高的傳輸效率及較高的可靠性。編輯本段紅外遙控的基本原理 紅外遙控的發(fā)射電路是采用紅外發(fā)光二極管來發(fā)出經(jīng)過調(diào)制的紅外光波;紅外接收電路由紅外接收二極管、三極管或硅光電池組成,它們將紅外發(fā)射器發(fā)射的紅外光轉(zhuǎn)換為相應(yīng)的電信號,再送后置放大器。 發(fā)射機(jī)一般由指令鍵(或操作桿)、指令編碼系統(tǒng)、調(diào)制電路、驅(qū)動(dòng)電路

23、、發(fā)射電路等幾部分組成。當(dāng)按下指令鍵或推動(dòng)操作桿時(shí),指令編碼電路產(chǎn)生所需的指令編碼信號,指令編碼信號對載波進(jìn)行調(diào)制,再由驅(qū)動(dòng)電路進(jìn)行功率放大后由發(fā)射電路向外發(fā)射經(jīng)調(diào)制定的指令編碼信號。 接收電路一般由接收電路、放大電路、調(diào)制電路、指令譯碼電路、驅(qū)動(dòng)電路、執(zhí)行電路(機(jī)構(gòu))等幾部分組成。接收電路將發(fā)射器發(fā)出的已調(diào)制的編碼指令信號接收下來,并進(jìn)行放大后送解調(diào)電路,解調(diào)電路將已調(diào)制的指令編碼信號解調(diào)出來,即還原為編碼信號。指令譯碼器將編碼指令信號進(jìn)行譯碼,最后由驅(qū)動(dòng)電路來驅(qū)動(dòng)執(zhí)行電路實(shí)現(xiàn)各種指令的操作控制(機(jī)構(gòu))。 由于紅外線遙控不具有像無線電遙控那樣穿過障礙物去控制被控對象的能力,所以,在設(shè)計(jì)家用電

24、器的紅外線遙控器時(shí),不必要像無線電遙控器那樣,每套(發(fā)射器和接收器)要有不同的遙控頻率或編碼(否則,就會(huì)隔墻控制或干擾鄰居的家用電器),所以同類產(chǎn)品的紅外線遙控器,可以有相同的遙控頻率或編碼,而不會(huì)出現(xiàn)遙控信號“串門”的情況。這對于大批量生產(chǎn)以及在家用電器上普及紅外線遙控提供了極大的方便。由于紅外線為不可見光,因此對環(huán)境影響很小,再由紅外光波動(dòng)波長遠(yuǎn)小于無線電波的波長,所以紅外線遙控不會(huì)影響其他家用電器,也不會(huì)影響臨近的無線電設(shè)備。多路控制的紅外遙控系統(tǒng) 多路控制的紅外發(fā)射部分一般有許多按鍵,代表不同的控制功能。當(dāng)發(fā)射端按下某一按鍵時(shí),相應(yīng)地在接收端有不同的輸出狀態(tài)。接收端的輸出狀態(tài)

25、大致可分為脈沖、電平、自鎖、互鎖、數(shù)據(jù)五種形式。“數(shù)據(jù)”輸出是指把一些發(fā)射鍵編上號碼,利用接收端的幾個(gè)輸出形成一個(gè)二進(jìn)制數(shù),來代表不同的按鍵輸入。 按鍵編碼對應(yīng)按鍵:2(000)8(001)4(010)6(011)5(100)由于對430單片機(jī)的紅外控制實(shí)現(xiàn)比較熟悉,所以,本項(xiàng)目采用了M430單片機(jī)實(shí)現(xiàn)紅外遙控功能。以下是用紅外控制的程序: 專心-專注-專業(yè)#include <msp430x26x.h>#include "TFT9325Driver.h"unsigned data2,add=0,cnt=0,sign=1;char Ir_Buf4;char * n

26、um;unsigned char Operation,succeed_flag;double length;int action;/US100_TX/ #define US100_TX_1 P1OUT |=BIT0;#define US100_TX_0 P1OUT &=BIT0;/US100_RX/#define US100_RX_IN (P1IN&BIT1)void clk_init() WDTCTL=WDTPW+WDTHOLD; BCSCTL1 &= XT2OFF; / XT2on BCSCTL2 |= SELM1 + SELS; / MCLK為8M unsigne

27、d int delay; for(delay=5000;delay>0;delay-); IFG1 &=OFIFG;void io_init() P1SEL|=0X04; /P1.2 timerA0捕獲輸入口 紅外信號輸入口 P1DIR&=0x04; /輸入方向 P1OUT|=0X04; /上拉電阻 / P1DIR|=BIT1; /數(shù)字IO口 P1DIR|=BIT0; /TX輸出 P1DIR&=BIT1; /RX輸入 P1SEL |=BIT1; P1OUT &=BIT0; /TX輸出0void DelayUS() unsigned char i=0; fo

28、r(i=0;i<254;i+);void DelayMs() unsigned int i=0; for(i=0;i<8000;i+);void timerA_init() TACTL=TASSEL_2+ID_3+MC_2; /選擇子系統(tǒng)時(shí)鐘SMCLK 8分頻到1MHZ 增計(jì)數(shù)模式 / TACCTL0|=CCIE; /中斷允許 CCR0=15000; TACCTL1=CAP+SCS+CM_3+CCIE; /TA1捕獲功能 同步捕獲 上升,下降沿均捕獲 TA1比較捕獲中斷允許void sysinit() /系統(tǒng)初始化 clk_init(); io_init(); timerA_ini

29、t(); ILI9325_Initial(); ClearScreen(0xf800);void US100() US100_TX_1; DelayUS(); US100_TX_0;void main() WDTCTL = WDTPW + WDTHOLD; sysinit(); P2DIR=0XFF; _EINT(); /打開全局中斷控制 while(1) switch (action) case 0x11: /前進(jìn) P2OUT |=BIT2; P2OUT &=(BIT0+BIT1); break; case 0X19: /后退 P2OUT |=BIT2+BIT0; P2OUT &am

30、p;=BIT1; break; case 0x14: /左拐 P2OUT |=BIT1+BIT2; P2OUT &=BIT0; break; case 0x16: /右拐 P2OUT |=BIT1+BIT2+BIT0; break; case 0x15: P2OUT=0X00; defualt: P2OUT=0x00; #pragma vector=TIMERA1_VECTOR /TA1捕獲中斷函數(shù) 用于接收處理紅外線信號_interrupt void timerA1() unsigned char i=0; switch(TAIV) case 2 : TAR=0X0000; if(P

31、1IN&BIT2) /上升沿捕獲 data0=CCR1; /data0保存的是接收信號為低電平時(shí)的計(jì)數(shù)周期數(shù) (下降沿開始計(jì)數(shù),上升沿時(shí)讀取計(jì)數(shù)值) if(add) /紅外線引導(dǎo)碼已確定,開始接收數(shù)據(jù) if(data0<200|data0>800) /判斷接收的的低電平時(shí)長是否符合紅外線特性 1(真) 不符合 0(假) 符合 add=0; /不符合,使引導(dǎo)失效 else data1=CCR1; if(data0<9500&&data0>8500)&&(data1<5000&&data1>4000) /判

32、斷捕獲到的信號是否為紅外線的引導(dǎo)碼(9ms低電平)及其結(jié)果碼(4.5ms高電平) add=1; /確認(rèn)接收信號為引導(dǎo)碼 else if(add) if(data1<200|data1>2000) /判斷接收的的高電平時(shí)長是否符合紅外線特性 1(真) 不符合 0(假) 符合 add=0; /不符合,使引導(dǎo)失效 else /200=<data1<=2000 接收到的電平信號符合線外線的特性 i=(add-1)/8; Ir_Bufi>>=1; if(data1>1120) /判斷接收到的電平信號表示的是高電平,還是低電平 Ir_Bufi|=0x80; /存放

33、接收到的信號 Ir_Buf2為鍵碼值,Ir_Buf3為鍵碼反值,Ir_Buf1&Ir_Buf0共16位為用戶識(shí)別碼 if(add>=32) /一組紅外信號接收完成 add=0; /引導(dǎo)失效 *num=Ir_Buf2+'0' action=Ir_Buf2; LCD_PutString(40,60,num,0x0000,0xff00); else add+; break; case 4 : _NOP();break; case 10: _NOP();break; TACCTL1&=COV;避障實(shí)現(xiàn)方案使用光電開關(guān)進(jìn)行障礙物信息采集本方案采用ESF-DS10C4

34、光電開關(guān)進(jìn)行障礙物信息采集該光電開關(guān)具有以下優(yōu)點(diǎn):1:靈敏度高,頻率響應(yīng)快,重復(fù)定位精度高,瞬變過程短,輸出功率大,急電特性好,工作穩(wěn)定可靠,使用壽命長等優(yōu)點(diǎn)。 2:紅色LED顯示可以檢查傳感器的狀態(tài)。 3:經(jīng)濟(jì)并且簡單的操作。 4:運(yùn)用廣泛,可替換小型開關(guān)和限位開關(guān)。 基本參數(shù): 1.電源電壓:直流10-30VDC、交流90-250VAC 2.檢測距離:10cm 3.輸出電流:300mA 4.輸出模式:NPN常開、NPN常閉、PNP常開、PNP常閉、二線常開、二線常閉、交流常開、交流常閉。由于我們的小車平均制動(dòng)距離不超過10cm,所以該開光的探測距離符合要求。光電開關(guān)發(fā)射出的紅外線在經(jīng)障礙物

35、漫反射后會(huì)由光電開關(guān)再接收到,這會(huì)引 起光電開關(guān)傳回的電平的變化.若前方有障礙物,則光電開關(guān)傳回高電平;若前 方無障礙物,則光電開關(guān)傳回的是低電平.有電平的變化可以實(shí)現(xiàn)對前方障礙物的探測。在小車前方安裝了3個(gè)光電開關(guān),分別位于車頭的左中右,當(dāng)探測到前方有障礙物時(shí),光電開關(guān)傳回的電平會(huì)有變化,根據(jù)三個(gè)開關(guān)的不同電平值,設(shè)計(jì)了如下7種反映動(dòng)作:發(fā)現(xiàn)前方有小障礙(010):后退并右轉(zhuǎn); 發(fā)現(xiàn)右方有小障礙(100):前進(jìn)并左轉(zhuǎn);發(fā)現(xiàn)左方有小障礙(001):前進(jìn)并右轉(zhuǎn); 發(fā)現(xiàn)前方有大障礙(111):較大的后退并右轉(zhuǎn); 發(fā)現(xiàn)右方有大障礙(110):后退并右轉(zhuǎn); 發(fā)現(xiàn)左方有大障礙(011):后退并左轉(zhuǎn); 發(fā)

36、現(xiàn)兩邊有障礙但中間無障礙(101):較大的后退并右轉(zhuǎn)。但是在實(shí)際測試時(shí)發(fā)現(xiàn),該方案實(shí)現(xiàn)難度較大,當(dāng)發(fā)現(xiàn)前方有小障礙物時(shí)仍然探測為大障礙物,并且左右也不是很準(zhǔn)確。于是修改方案為:探測到有高電平,后退,左轉(zhuǎn),以避開障礙物。但是在實(shí)測中還是發(fā)現(xiàn)存在問題,有時(shí)不能探測到障礙物,且無法和語音功能同時(shí)實(shí)現(xiàn),可能是由于程序編寫還存在問題,目前還在對程序進(jìn)行改進(jìn)。程序見附錄。目前成果:小車能夠?qū)崿F(xiàn)語音識(shí)別功能,對于相應(yīng)的前進(jìn),左拐,右拐,后退,能夠做出相應(yīng)的正確動(dòng)作,在語音控制的同時(shí),也能夠通過紅外遙控對小車進(jìn)行前后左右的控制。避障功能的程序編好,通過傳感器實(shí)現(xiàn),但是實(shí)現(xiàn)還存在問題,還在尋找問題和改進(jìn)中。經(jīng)過

37、近一年的設(shè)計(jì),終于完成了小車的方案設(shè)計(jì)和程序編寫,在設(shè)計(jì)的過程中,我們克服了許多困難,通過參考前人的經(jīng)驗(yàn),完成了小車的整體方案設(shè)計(jì),期間出現(xiàn)很多錯(cuò)誤,都被及的發(fā)現(xiàn)并改正,從中體會(huì)到前期的準(zhǔn)備和查資料是非常的重要,是設(shè)計(jì)的順利完的保證。 編程是智能小車的工作的核心,是設(shè)計(jì)的重點(diǎn),通過對小車設(shè)計(jì)條件的理解和 推敲,編寫出來了相應(yīng)的程序,并實(shí)現(xiàn)了部份功能。 通過本次科創(chuàng),不僅使我學(xué)到了更多的知識(shí),也使我學(xué)會(huì)了如何更好地處理遇到的問題,雖然小車的避障功能還沒有完全實(shí)現(xiàn),但還是受益匪淺。同時(shí)還鍛煉了今后工作遇到相類似問題時(shí),發(fā)現(xiàn)問題和解決問題的 能力。另外,還提高了自身理論知識(shí)和實(shí)踐相聯(lián)系的能力。參考文

38、獻(xiàn):1 閆三鋒.基于單片機(jī)語音識(shí)別系統(tǒng)設(shè)計(jì)D.西北工業(yè)大學(xué).2004年 2 劉毅敏 黃沛.基于凌陽單片機(jī)SPCE061A的信號測試系統(tǒng)的設(shè)計(jì).武漢工程職業(yè)技術(shù)學(xué)院學(xué)報(bào).2005年第02期 3 趙春紅 楊勇.基于單片機(jī)和無線電遙控技術(shù)的密碼鎖設(shè)計(jì).測控技術(shù).2005年 第09期4 趙震初.無線電技術(shù)基礎(chǔ).北京理工大學(xué)出社.2003年5 王君 凌振寶.傳感器原理及應(yīng)用.吉林大學(xué).2002年6 趙繼文.傳感器與應(yīng)用電路設(shè)計(jì)M.北京:化學(xué)工業(yè)出版社.2001年附錄:語音控制功能與避障程序/ 工程名稱: Car_Demo/ 功能描述: 實(shí)現(xiàn)小車的語音控制/ 涉及的庫: CMacro1016.lib/ b

39、srv222SDL.lib/ sacmv26e.lib/ 組成文件: main.c/ Flash.asm, hardware.asm,ISR.asm / hardware.h,s480.h, hardware.inc/ 硬件連接: IOA0-KEY1/ IOA1-KEY2/ IOA2-KEY3/ IOB7-前進(jìn)/ IOB6-倒車/ IOB5-左拐/ IOB4-右拐/ IOB2-避障檢測/ 維護(hù)記錄: 2005-12-12 v1.0/=#include "s480.h"#include "bsrsd.h"#define P_IOA_Data (volati

40、le unsigned int *)0x7000 #define P_IOA_Dir (volatile unsigned int *)0x7002#define P_IOA_Attrib (volatile unsigned int *)0x7003#define P_IOB_Data (volatile unsigned int *)0x7005 #define P_IOB_Dir (volatile unsigned int *)0x7007 #define P_IOB_Attrib (volatile unsigned int *)0x7008 #define P_TimerA_Dat

41、a (volatile unsigned int *)0x700A #define P_TimerA_Ctrl (volatile unsigned int *)0x700B #define P_TimerB_Data (volatile unsigned int *)0x700C #define P_TimerB_Ctrl (volatile unsigned int *)0x700D #define P_Watchdog_Clear (volatile unsigned int *)0x7012 #define P_INT_Mask (volatile unsigned int *)0x7

42、02D #define P_INT_Clear (volatile unsigned int *)0x7011 #define P_INT_Ctrl (volatile unsigned int *)0x7011#define NAME_ID 0x100#define COMMAND_GO_ID 0x101#define COMMAND_BACK_ID 0x102#define COMMAND_LEFT_ID 0x103#define COMMAND_RIGHT_ID 0x104#define S_NAME 0 /給我取個(gè)名字吧#define S_ACT1 1 /前進(jìn)#define S_ACT

43、2 2 /倒車,請注意#define S_ACT3 3 /左拐#define S_ACT4 4 /右拐 #define S_RDY 5 /Yeah#define S_AGAIN 6/請?jiān)僬f一遍#define S_NOVOICE 7 /沒有聽到任何聲音#define S_CMDDIFF 8 /說什么暗語呀#define S_NOISY 8 /說什么暗語呀#define S_START 9/準(zhǔn)備就緒,開始辨識(shí) #define S_GJG 10/拐就拐#define S_DCZY 11 /倒車,請注意extern unsigned int BSR_SDModel100; /外部變量BSR_SDMod

44、el100,辨識(shí)器自帶extern void F_FlashWrite1Word(unsigned int addr,unsigned int Value);extern void F_FlashErase(unsigned int sector);unsigned int uiTimeset = 3; /運(yùn)行時(shí)間定時(shí),調(diào)整該參數(shù)控制運(yùn)行時(shí)間unsigned int uiTimecont; /運(yùn)行時(shí)間計(jì)時(shí)/=/ 語法格式: void Delay();/ 實(shí)現(xiàn)功能: 延時(shí)/ 參數(shù): 無/ 返回值: 無/=void Delay() unsigned int i; for(i=0;i<0x3F

45、ff;i+) *P_Watchdog_Clear=0x0001; /=/ 語法格式: void PlaySnd(unsigned SndIndex,unsigned DAC_Channel);/ 實(shí)現(xiàn)功能: 語音播放函數(shù)/ 參數(shù): SndIndex-播放語音資源索引號/ DAC_Channel-播放聲道選擇/ 返回值: 無/=void PlaySnd(unsigned SndIndex,unsigned DAC_Channel) BSR_StopRecognizer(); /停止識(shí)別器 SACM_S480_Initial(1); /初始化為自動(dòng)播放 SACM_S480_Play(SndIndex, DAC_Channel, 3); /開始播放一段語音 whil

溫馨提示

  • 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

提交評論