版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
語音控制小車系統(tǒng)設(shè)計前言根據(jù)摩爾定理,芯片的集成化越來越高,因此計算機處理器的發(fā)展趨勢就是越來越微型化,按鍵鍵盤逐漸會被移動設(shè)計平臺所淘汰,如果一個產(chǎn)品僅僅只有一個0.96寸的OLED那么大,那么外加一個按鍵鍵盤是不方便操作的。這時候語音識別技術(shù)的研發(fā)就顯得愈發(fā)重要,它能夠解決信息技術(shù)中人機進行脫離鍵盤無線操作問題,隨著人工智能技術(shù)和語音處理技術(shù)的發(fā)展,語音識別技術(shù)越來越多的應(yīng)用到智能產(chǎn)品中。國內(nèi)外的科技巨頭們很早就意識到語音識別技術(shù)研發(fā)的重要性,如今已有很多種智能產(chǎn)品中就語音識別的應(yīng)用,這預(yù)示著語音識別技術(shù)有著非常廣泛的應(yīng)用領(lǐng)域和良好的市場前景。語音識別技術(shù)其目的是人與機器能進行自然語言通信,用語言操控電腦。近年來,智能語音產(chǎn)品越來越多的進入人們的生活,家用電器和玩具的操作,不再需要以遙控器的繁多按鍵為控制接口,取而代之的是我們平常說話的模式來驅(qū)使家用電器和玩具動作,天貓精靈、小愛同學(xué)、小度、叮咚等產(chǎn)品不用遙控器,不用走到跟前去按控制鍵,只需要去跟產(chǎn)品對話,就能夠進行人機交互,讓機器能聽會說,這不僅僅能給我們的生活帶來便利,也能增添許多樂趣,這是未來家用電器開發(fā)及應(yīng)用的趨勢。本文設(shè)計了一款語音控制小車系統(tǒng),該設(shè)計通過識別語音控制小車出發(fā)、暫停、后退、轉(zhuǎn)向等運動狀態(tài),娛樂性較高,也是未來智能玩具的一個發(fā)展方向。如今,市場上的機器人種類越來越多樣化,智能聲控小車這種新型玩具備受廣大消費者喜愛。伴隨著微電子技術(shù)的高速發(fā)展,聲控技術(shù)給人們的生活帶來各種各樣的便利,就以語音遙控玩具車為例,要想拓寬此類玩具色市場,就要解決系統(tǒng)的過濾噪聲問題,當(dāng)芯片的抗噪聲性能得到提高,就能提高識別精度,從而準確的識別語音,并進行良好的控制。近年來,百度、谷歌等科技巨頭都投入大量的資金和人力在無人聲控汽車研發(fā)方面,并取得了許多成就,人們希望能夠?qū)⑷说乃枷肱c機器的高性能進行完美配合。但是目前聲控技術(shù)由于抗噪聲性能仍然有很大的提升空間,如何提高語音技術(shù)的時效性和對環(huán)境的適應(yīng)性,以及如何能夠識別多人語音需要進一步探索。1緒論1.1自動語音識別技術(shù)的發(fā)展過程最早對人類語音信號進行識別研究的是美國著名實驗室——AT&T,1950年代,通過跟蹤語音信號中的共振峰進行識別度Audrey系統(tǒng)問世,雖然識別數(shù)量少,但精度高達98%。十幾年后,語音識別技術(shù)取得了突破性進展,這不僅與當(dāng)時計算機技術(shù)的高速發(fā)展密不可分,還與\t"/item/%E8%AF%AD%E9%9F%B3%E8%AF%86%E5%88%AB%E6%8A%80%E6%9C%AF/_blank"線性預(yù)測編碼LinearPredictiveCoding(LPC)和動態(tài)時間規(guī)整DynamicTimeWarp技術(shù)的出現(xiàn)息息相關(guān)。最早的語音識別是用與設(shè)定的語音模板進行匹配比對的方法,所識別的語音信號不僅局限在特定的某個人聲,而且必須是獨立簡短的詞語,所以早期的語音識別技術(shù)是基于LPC和DTW技術(shù)的特定人聲、獨立詞語聲音識別系統(tǒng)。隨著科技的發(fā)展,聲控技術(shù)的應(yīng)用領(lǐng)域越來越廣泛,為了迎合市場需求,詞匯表容量小、特定人聲識別、詞語必須獨立等限制條件需要得到解決。由于初期的聲音識別是進行模塊識別,如果將詞匯表的內(nèi)容擴大就會造成模板在進行建立和匹配選取時由于數(shù)據(jù)繁瑣而產(chǎn)生困難;;在識別多種人聲時,由于人與人之間的不僅聲音特征存在差異,而且每個人在生理、心理不同的狀態(tài)下說出相同的話的發(fā)音也會存在很大的區(qū)別;而且在識別一段較長的語音信號時,很難避免背景噪聲或其他發(fā)聲體的干擾。因此我們需要找到新的識別技術(shù)來代替模塊識別技術(shù)。語音識別技術(shù)中最關(guān)鍵的技術(shù)就是隱馬爾科夫模型HiddenMarkovModel。從Baum提出相關(guān)\t"/item/%E8%AF%AD%E9%9F%B3%E8%AF%86%E5%88%AB%E6%8A%80%E6%9C%AF/_blank"數(shù)學(xué)推理,經(jīng)過Labiner等人的研究,\t"/item/%E8%AF%AD%E9%9F%B3%E8%AF%86%E5%88%AB%E6%8A%80%E6%9C%AF/_blank"卡內(nèi)基梅隆大學(xué)的\t"/item/%E8%AF%AD%E9%9F%B3%E8%AF%86%E5%88%AB%E6%8A%80%E6%9C%AF/_blank"李開復(fù)最終實現(xiàn)了第一個基于隱馬爾科夫模型的非特定人大詞匯量連續(xù)語音識別系統(tǒng)Sphinx。此后嚴格來說語音識別技術(shù)并沒有脫離HMM框架?;谡Z法的語言處理機制也已應(yīng)用于語音識別。上世紀九十年代前期,語音識別技術(shù)在產(chǎn)品中的應(yīng)用成為世界各大科技公司研發(fā)的重點之一。識別的精確率是語音技術(shù)好壞的一個重要評判標(biāo)準,經(jīng)過不懈的努力,這項指標(biāo)在研究中逐步提高。例如IBM公司推出的ViaVoice、微軟的Whisper等。其中IBM于1997年開發(fā)了中文語音識別系統(tǒng),緊接著98年開發(fā)出了viavoice'98語音識別系統(tǒng),可以識別上海話、四川話、閩南話等地方口音。今天,嵌有語音控制的產(chǎn)品多種多樣,IOS系統(tǒng)的Siri、亞馬遜的Alexa和微軟的Cortana都是目前人們所熟知并廣泛應(yīng)用的。這些技術(shù)基本上應(yīng)用于移動電話。以Siri為例,它是人們學(xué)習(xí)和生活的個人助手。通過自然語音輸入,人類可以搜索數(shù)據(jù)、直播、安排行程、提問和回答等,為人們提供快捷方便的服務(wù)。我國從1987年開始加大了在語音識別領(lǐng)域的研發(fā)力度,經(jīng)過科學(xué)家們的努力,語音識別技術(shù)的精確度達到國際先進水平。2002年,我國自主研發(fā)的“天語”中文語音系列產(chǎn)品——PattkASR,能夠應(yīng)用于多種開發(fā)和應(yīng)用平臺,將核心技術(shù)掌握在了自己的手里。目前,百度公司的語音識別應(yīng)用產(chǎn)品走在前列,無論是網(wǎng)頁搜索還是定位導(dǎo)航都可以使用語音輸入,再進一步轉(zhuǎn)化為文字。最近,阿里巴巴達摩院機器智能實驗室的語音識別團隊推出了新一代語音識別模型DFSMN,該模型不僅被谷歌等外國巨頭引用,而且全球語音識別得分為96.04%。此外,該團隊還宣布了這一點:向世界各地的企業(yè)和個人開放DFSMN模型,允許全球開發(fā)人員分享這種力量。1.2課題設(shè)計意義現(xiàn)在大多數(shù)的智能小車的控制都局限于用手動遙控小車來控制其運動狀態(tài),當(dāng)然也有利用攝像頭、光電、電磁等傳感器控制的智能車,但是這類小車對于場地有著一定的要求。對此,本次設(shè)計通過語音信號來控制小車,不僅不需要遙控或按鍵,同時也不需要設(shè)置特定的環(huán)境,做到更加智能化的控制小車,通過LD3320的自動語音識別技術(shù)讓小車根據(jù)語音命令執(zhí)行操作,開發(fā)出全新的控制方式;同時,語音小車的商業(yè)化、產(chǎn)品化也是現(xiàn)代的玩具制造業(yè)的發(fā)展方向之一,隨著時代的發(fā)展,科技的進步,智能電子玩具逐步取代傳統(tǒng)玩具成為玩具市場的主力軍,根據(jù)歐睿信息咨詢公司的統(tǒng)計數(shù)據(jù)顯示,2012到2017年中國玩具及游戲市場的零售總額增加了近三倍,每年增長幅度在20%左右。2017年傳統(tǒng)玩具及游戲市場的零售額744.3億元,僅占玩具市場總銷售量的26.9%;電子玩具及游戲市場的零售額為2,020.7億元,占玩具市場總銷量的73.1%,這充分說明了先進的電子玩具已成為玩具行業(yè)發(fā)展的主流.Voicecar深受兒童群體的喜愛。他們可以擁有自己的機器人,就像卡通英雄一樣。與玩具交流玩耍。在這種情況下,我們專為非特定人聲的語音識別小車這一主題而設(shè)計。通過課題設(shè)計,我了解了許多有關(guān)語音識別技術(shù)方面的知識,也對現(xiàn)如今語音識別技術(shù)的研究程度、發(fā)展趨勢、應(yīng)用領(lǐng)域有了一定的了解,也了解了很多芯片,傳感器的調(diào)試運用,這些知識有別于之前學(xué)過的理論基礎(chǔ)知識,但基礎(chǔ)知識的積累對于此次課題設(shè)計提供了巨大的幫助,通過對理論知識的回顧使我受益匪淺。自動語音識別技術(shù)仍然有很大的領(lǐng)域值得去發(fā)掘探索,不僅僅局限于玩具小車的設(shè)計中,也可以應(yīng)用在更高端,更智能的產(chǎn)品中。因此,這次的語音小車系統(tǒng)課題設(shè)計是非常具有研究意義的。1.3課題設(shè)計方案方案一:采用STC89C52RC微處理器作為主控芯片,LD3320語音模塊采集處理聲音信號,該模塊可以進行模數(shù)轉(zhuǎn)換、還可以外接揚聲器、麥克風(fēng)等,電路精簡,實用方便,具有語音識別、轉(zhuǎn)化、人機交互等功能,系統(tǒng)識別率較高;通過使用7.2V可充電電池作為電源模塊,給L298N電機驅(qū)動模塊供電、L298N輸出5V電壓給主控芯片,為避免碰壁,在車頭加入超聲波避障模塊。STC單片機方案結(jié)構(gòu)如圖1-1所示:圖1-1STC單片機方案框圖方案二:采用凌陽單片機來作為聲控小車的主控芯片,這款開發(fā)板功能非常齊全,自帶語音識別模塊、語音錄放模塊,使用者只需外接一個麥克風(fēng)并對芯片進行語音訓(xùn)練即可,硬件精簡,節(jié)省了電路設(shè)計的時間,方便實用。這個方案的基本結(jié)構(gòu)圖如圖1-2所示:圖1-2凌陽61核心方案框圖方案三:使用STM32F103ZET6單片機作為中央處理器,包括電源提供系統(tǒng),LD3320語音識別模塊,電機驅(qū)動模塊等。通過單片機來實現(xiàn)幾個模塊之間的通信,從而實現(xiàn)整個控制系統(tǒng)的正常工作。其中語音采集處理模塊是LD3320語音處理芯片,該模塊能實現(xiàn)對非特定人聲的采集即可以識別多人語音,當(dāng)有語音信號產(chǎn)生時,語音采集模塊通過咪頭捕捉到后,并在模塊內(nèi)部的識別判斷處理后,通過串口通信的方式將相應(yīng)指令發(fā)送到STM32單片機上,此時STM32單片機從串口讀到指令后經(jīng)過內(nèi)部主程序的邏輯判斷后發(fā)送對應(yīng)的指令來控制電機驅(qū)動的工作狀態(tài),最終通過語音來控制小車行為狀態(tài)。這個方案的設(shè)計如圖1-3所示:圖1-3STM32核心方案框圖由以上方案對比,方案一其性價比較高,但是由于引腳數(shù)目有限,許多功能需要進行擴展,無論對于硬件方面還是軟件方面都會增加負擔(dān),而且51保護能力很差,外部拓展模塊過多會很容易燒壞芯片,所以方案一未被采用;方案二運用的比較的廣泛,看起來也比較簡易,但是其語音識別部分需要進行語音訓(xùn)練,具有識別特定人聲的局限性,考慮到其在軟件上的設(shè)計比較困難并且整個設(shè)計價格較高,因此排除方案二;方案三STM32F103ZET6的引腳很多,當(dāng)外加多個傳感器時GPIO口足夠使用,內(nèi)含72MHz的系統(tǒng)時鐘,運行速度快,功能強大,LD3320芯片識別正確率高達95%,有凌陽單片機不同,無需事先錄制聲音,進行語音訓(xùn)練,而且該模塊功能眾多,集成度較高,是低成本語音芯片的最佳選擇;經(jīng)過多方面研究考慮選擇第三個方案。2語音小車硬件設(shè)計2.1語音小車原理框圖圖2-1語音小車原理框圖本設(shè)計有五個模塊,即為單片機STM32F103ZET6、語音識別模塊LD3320、電機驅(qū)動模塊L298N、超聲波避障模塊和藍牙模塊;在小車的設(shè)計上,使用7.2V可充電電池為整個系統(tǒng)供電,在驅(qū)動小車上,電池輸出電壓直接供給L298N電機驅(qū)動模塊,為小車的四個直流電機提供驅(qū)動電源;同時將L298N輸出的5V電壓給主控芯片供電,測試輸出穩(wěn)定后,專門為整個語音芯片工作;由于STM32核心板上帶有LM1117-3.3V穩(wěn)壓模塊,因此可以直接將5V輸入電壓轉(zhuǎn)化成3.3V輸出電壓給LD模塊、藍牙模塊、超聲波模塊供電;GPIOC中四個輸出口對L298N的四個輸入端口發(fā)出相對應(yīng)的控制信號,實現(xiàn)對直流電機的控制。2.2單片機模塊單片機電路原理如圖2-1所示。圖2-2單片機電路原理圖此聲控智能小車設(shè)計用STM32F103ZET6單片機作為中央控制器,STM32單片機內(nèi)置了Cortex-M3的32位ARM的CPU,可以采用串行下載或者J-LINK下載。輸入/輸出端口足夠該設(shè)計使用,運用了高級定時器TIM8和基本定時器TIM6分別給PWM和超聲波計數(shù),藍牙模塊用到了RXD、TXD通信接口。擴展的IO引腳能夠最大限度地滿足用戶的需求并且多功能的雙向IO口,能夠承受5V的信號,其中GPIO包含了八種模式不同的工作模式,根據(jù)所需要的場景來配置GPIO的不同模式。除此之外,還包含I2C、SPI、串口等幾種可供選擇的通信方式,其中我們也可以通過串口來對單片機進行基礎(chǔ)的調(diào)試。該模塊是系統(tǒng)的控制核心,控制不同模塊之間的通信,當(dāng)語音模塊上報識別到的語音信息時,該模塊會從串口中讀取到相關(guān)的字符指令,并經(jīng)過邏輯判斷分析控制對應(yīng)GPIO口的高低電平來實現(xiàn)小車的行為狀態(tài)。2.3語音識別模塊2.3.1LD3320芯片的工作原理LD芯片工作過程就是提取特征并進行分析,隨后將幾個關(guān)鍵字進行比較,相似度最高的作為結(jié)果發(fā)送到主控芯片。該芯片的檢測結(jié)果和控制系統(tǒng)等操作只需用語音控制,而且關(guān)鍵詞字符串可動態(tài)變化,這大大擴展了開發(fā)應(yīng)用領(lǐng)域。該模塊對語音模擬信號處理的過程如圖2-3所示。圖2-3語音模塊處理過程框圖語音識別功能是將語音與內(nèi)部關(guān)鍵字列表中的單詞進行比較的過程。識別聲音之后,在芯片中分析聲音的特征和聲音的頻譜,通過從關(guān)鍵字列表中進行匹配查找,找到與它最為相似的關(guān)鍵字作為語音識別的結(jié)果。如果需要,可以設(shè)置適當(dāng)?shù)募拇嫫鳎ㄟ^更改內(nèi)部數(shù)據(jù),列表中的相應(yīng)條目將以字符串的形式寫入語音識別芯片??扇菁{的字數(shù)限制為30個,但如果用戶說的話太長,超過8個-words,無疑錯別字、漏字、多字、暫時的停頓都會提高錯誤率。一般來說,如果想要獲得更準確的語音識別結(jié)果,必須盡量簡化條目中關(guān)鍵詞的數(shù)量。這樣識別準確性就相對會提高很多。LD3320語音識別模塊原理圖如圖2-4所示。圖2-4語音芯片原理圖LD3320語音芯片的誕生,來自人們對于語音識別產(chǎn)品的市場需求,考慮到設(shè)計的實用性和便捷性,該模塊可以進行模數(shù)轉(zhuǎn)換、還可以外接揚聲器、麥克風(fēng)等,電路精簡,實用方便,具有語音識別、轉(zhuǎn)化、人機交互等功能,系統(tǒng)識別率較高,此外,指令集可根據(jù)需求在程序中隨時修改。同時,語音用戶界面被添加到市場上的電子產(chǎn)品中,增添了電子產(chǎn)品語音特色。該款芯片的主要功能有:①無需特定人聲識別:不區(qū)分人聲,可以直接進行語音識別,語音識別的準確率可高達95%;②芯片內(nèi)存大:內(nèi)部存儲空間大,不需擴展外部寄存器,從而降低成本;③在芯片內(nèi)置有高精度的D/A與A/D通道:該芯片可以在內(nèi)部自動完成A/D轉(zhuǎn)換,除此之外,在A/D的輸入端只需接上MIC,就可以完成模擬信號的輸入。④高精度識別效果:關(guān)鍵詞列表一次可容納50條,而且可以動態(tài)編輯,所以該芯片應(yīng)用靈活,能重復(fù)使用;在程序中設(shè)置好關(guān)鍵詞列表,然后通過單片機寫入到芯片的寄存器中,經(jīng)過聲音的掃描后,將內(nèi)部匹配相似度最高的結(jié)果發(fā)送給單片機,然后根據(jù)結(jié)果進行下一步控制;⑤功率小,低功耗節(jié)能,3.3V供電;2.3.3語音芯片部分邏輯電路內(nèi)部部分電路邏輯圖如圖2-5所示。圖2-5LD3320內(nèi)部邏輯電路圖該芯片具有低功耗的特點,電源使用3.3v供電,當(dāng)輸出高電平時,輸出電壓為70%的電源電壓,如果輸出低電平,對應(yīng)引腳電壓為電源電壓的30%,在本系統(tǒng)設(shè)計中,STM32F103ZET6核心開發(fā)板板上帶有LM1117-3.3V穩(wěn)壓模塊,可以用開發(fā)板給識別模塊供電。VDD—數(shù)字電路用電源輸入:3.0V-3.3V;VDDIO—數(shù)字電路輸入/輸出用電源輸入:1.65V-VDD;VDDA—模擬電路用電源輸入:3.0V-4.0V;●時鐘是微處理器的核心,外圍電路的時鐘晶振經(jīng)PLL鎖相環(huán)倍頻輸出,倍頻可選擇為2~16倍,產(chǎn)生一定的頻率,最大不超過72MHz共內(nèi)部元件使用。
●不論此時芯片在執(zhí)行什么操作,復(fù)位信號都能還原芯片狀態(tài)。●通過并行的方式和外部主CPU連接;使用P0-P7是數(shù)據(jù)線,一個中斷返回信號,以及讀寫信號,片選信號和A0口?!翊薪涌凇薪涌谕ㄟ^SPI協(xié)議,與中央處理器進行連接通信;MD置1,(SPIS*)置0。數(shù)據(jù)進行串行通信時用到4個管腳:輸出(SDO)、輸入(SDI)、時鐘(SDCK)、片選信號(SCS*)?!窦拇嫫鳌ㄟ^對寄存器的操作來完成芯片的設(shè)置,以及處理一些命令還有傳送接收數(shù)據(jù)等。寄存器讀寫操作有4種方式。并行方式MD接低電平時按照此方式工作。P0~P7傳輸數(shù)據(jù),寫和讀的時序圖如下:圖2-6并行方式寫時序圖2-7并行方式讀時序2.串行SPI方式與并行方式相反,時鐘保持下降沿有效,SDI傳輸指令、地址字節(jié)、數(shù)據(jù)字節(jié),輸出為低電平。MD接高電平,且SPIS*接地時按照此方式工作。寫和讀的時序圖如下:圖2-8SPI方式寫時序?qū)懙臅r候要先給輸入發(fā)送一個“寫”指令(04H),然后給SDI發(fā)送8位寄存器地址,再給SDI發(fā)送8位數(shù)據(jù)。在這個過程中,片選信號必須保持低電平。圖2-9SPI方式讀時序讀的時候要先給SDI發(fā)送一個“讀”指令(05H),然后給SDI發(fā)送8位寄存器地址,再從SDO接受8位數(shù)據(jù)。在這個過程中,片選信號保持低電平。語音芯片的管腳圖和封裝圖如圖2-5和2-6所示。圖2-10LD3320芯片管腳圖圖2-11LD3320芯片封裝圖其對應(yīng)管腳編號定義如表2-1所示。表2-1芯片管腳說明2.4電機驅(qū)動模塊L298N模塊是此次設(shè)計的核心組件。它是一款高壓、大電流、全橋驅(qū)動器,內(nèi)部帶有兩個使能控制端子,不受輸入信號影響時允許或禁止設(shè)備工作。有邏輯電源,輸入運行低電壓電路,連接外部電感電阻,可以進行負反饋。當(dāng)使用L298N模塊驅(qū)動電機時,該芯片可以驅(qū)動2路直流電機,本設(shè)計使用了4個減速直流電機,將同側(cè)的兩個電機進行串聯(lián),就可以實現(xiàn)一個直流電機驅(qū)動模塊4路直流電機。圖2-12電機驅(qū)動模塊實物圖輸出A、輸出B:連接左右兩側(cè)電機,注意反接。12V供電、GND:連接電池。5V輸出:給主控板供電。ENA、ENB:使能端高電平有效。IN1—IN4:IN1、IN2控制通道A側(cè)直流電機,IN3、IN4控制通道B側(cè)直流電機。5V跳線帽:接上跳線帽后板載5V輸出有效。電機驅(qū)動模塊電路原理如圖2-13所示。圖2-13電機驅(qū)動模塊原理圖該芯片輸入工作電壓VSS為5V,VS供給電機工作,ISENA、ISENB是電流反饋腳,在使用小型電機時將它們接在公共端;ENA、ENB是兩個使能端子,PWM信號輸入四個邏輯輸入端;輸出管腳OUT1、OUT2(1通道)和OUT3、OUT4(2通道)分別接直流電機。ENA為高電平時,選擇1通道輸出,ENB為高電平時,選擇2通道輸出,通道1和2連接到兩個直流電動機,這比異步電動機的控制方法簡單。只需將電機的兩根控制線用適當(dāng)?shù)碾妷汗╇娂纯赊D(zhuǎn)動電機,電壓越高,直流電機的轉(zhuǎn)速越快,直流電機的額定功率為0.75W,額定電壓為5V,額定電流為0.15A。在通電的時候,電機本身產(chǎn)生很高的感抗。如果電流突然急劇變化,則會產(chǎn)生較大的反向電流,L298N芯片容易燒毀。為了保護芯片輸出免受過大的反電壓,在芯片周圍增加了8個續(xù)流二極管。當(dāng)控制電機轉(zhuǎn)動時,兩個使能端置高電平,通過改變電壓輸入端的電壓大小,中斷頻率使小車電機進行暫停、出發(fā)、后退、變速、轉(zhuǎn)向等操作,例如當(dāng)IN1、IN3置高電平,IN2、IN4置低電平時兩個直流電機向前旋轉(zhuǎn),控制小車前進,具體的控制信號引腳和電機的邏輯關(guān)系如列表5-2所示。表5-2L298N信號引腳和電機運動狀態(tài)關(guān)系表2.5超聲波避障模塊
HC-SR04超聲波測距模塊發(fā)射的聲波能夠感測到正前方30度400cm范圍內(nèi)物體,精確度較高,誤差大約在3mm以內(nèi);該模塊包括超聲波發(fā)射器、接收器與控制電路。圖2-14超聲波模塊原理圖超聲波工作過程如下圖。當(dāng)Echo反饋到單個芯片微機時,回響信號的脈沖寬度與測量距離成比例,并且MCU立即停止定時。序列圖如圖4所示。距離由單片機計算。即:S=VT/2,V=340m/s。圖2-15超聲波模塊時序圖2.6藍牙模塊藍牙模塊主要用于數(shù)據(jù)傳輸。藍牙端口模塊反映了無線通信功能,本質(zhì)上是應(yīng)用了STM32的串口通信,使得數(shù)據(jù)可以按序列被轉(zhuǎn)移到中央處理器。藍牙通信由兩部分組成,服務(wù)模塊與主機系統(tǒng),服務(wù)模塊與主機之間能進行配對通信,主機系統(tǒng)一般指計算機,手機等高級處理器,當(dāng)然一些藍牙模塊也可以作為主機與另一個藍牙進行通信。本設(shè)計中增加了HC-06模塊控制智能小車,藍牙模塊接收手機的信號指令,在電腦上安裝串口助手,連接上藍牙模塊設(shè)置AT指令集、修改密碼、波特率、詢問版本號和功能置換,在KEY(26分)放棄內(nèi)存之前,HC-06模塊只能記住最后一對從機和從機。藍牙模塊原理圖如圖2-16所示。圖2-16藍牙模塊原理圖3語音小車軟件設(shè)計3.1系統(tǒng)軟件流程圖該系統(tǒng)的軟件結(jié)構(gòu)按系統(tǒng)要求實現(xiàn)前進,后退,左右轉(zhuǎn)向,加速,減速和停止。程序包括微控制器的初始化,語音芯片的復(fù)位,軟件開發(fā)的PWM信號,超聲模塊的動作,藍牙模塊的串行通信,延遲功能,中斷處理功能以及自動語音識別過程。在系統(tǒng)的構(gòu)造中,小車的運動主要由音頻-無線控制和藍牙-無線控制。前者是在語音識別后無線控制汽車的運動。接收無線命令用于執(zhí)行小車設(shè)定的動作,小車的運動狀態(tài)可以通過再次的語音命令序列而改變,操作順序如下:首先,語音識別被初始化,檢查是否每個模塊能夠正常工作、正確地識別出相應(yīng)的關(guān)鍵字,則系統(tǒng)啟動語音識別。后者使用藍牙模塊HC-06進行無線操作,首先對藍牙模塊進行初始化設(shè)置,之后在安卓手機上安裝藍牙助手APP,指令將從手機發(fā)送到HC-06藍牙。發(fā)送到模塊并通過串行通信發(fā)送到串口。單片機識別并判斷是否發(fā)送了相應(yīng)的字符,然后根據(jù)接收到的字符執(zhí)行相應(yīng)的程序。本設(shè)計系統(tǒng)程序總流程如圖3-1所示。圖3-1系統(tǒng)程序流程圖在系統(tǒng)初始化部分,主要有LD3320的初始化、基本定時器和TIM8的初始化、HC-06、SR04的引腳初始化、串口初始化。設(shè)置單片機與LD3320為并行的讀寫方式,提高工作效率,設(shè)置EA為高電平即打開中斷允許控制位,設(shè)置EX0、IE0即外部中斷0請求標(biāo)志位和外部中斷0中斷允許位為高電平,復(fù)位定時器/計數(shù)器TIM8,TIM8四通道分別輸出PWM1/PWM2/PWM3/PWM4,設(shè)置好語音模塊復(fù)位,使內(nèi)部的寄存器回到初始狀態(tài)等。3.2語音識別流程圖LD3320語音識別的操作順序:在語音識別里面使用的是中斷識別的工作方式,在識別之初,對LD模塊進行復(fù)位、命令的初始化和LD模塊自動語音識別(ASR)的初始化,之后等待語音信號的輸入,語音信號進行頻譜分析后與寄存器中的關(guān)鍵詞進行比對,比對成功就發(fā)送無線指令到單片機執(zhí)行相應(yīng)操作,反之就重新進行識別。其執(zhí)行流程圖如圖3-2所示:圖3-2語音識別流程圖3.3LD語音模塊程序設(shè)計首先將LD3320模塊復(fù)位,除對此模塊復(fù)位后,還需要對LD模塊中的寄存器進行初始化以及對ASR功能進行初始化,調(diào)用所需的寄存器;整個語音模塊的識別順序為:1、RunASR()實現(xiàn)一次完整的ASR語音識別流程;2、LD_AsrStart()實現(xiàn)ASR的初始化;3、LD_AsrAddFixed()添加關(guān)鍵詞到寄存器中;4、LD_AsrRun()函數(shù)啟動一次ASR語音識別流程。初始化完成后,每進行一次語音識別就要按照程序設(shè)定的順序流程進行比對。下面為向LD芯片添加關(guān)鍵詞語的程序:uint8LD_AsrAddFixed(){uint8k,flag;uint8nAsrAddLength;#defineDATE_A10/*數(shù)組二維數(shù)值*/#defineDATE_B20/*數(shù)組一維數(shù)值*/uint8codesRecog[DATE_A][DATE_B]={"chufa",\"zanting",\"houtui",\"zuozhuan",\"youzhuan",\"zuopian",\"youpian",};/*添加關(guān)鍵詞,用戶修改*/uint8codepCode[DATE_A]={CODE_CF,\ CODE_HT,\ CODE_ZT,\ CODE_ZZ,\ CODE_YZ,\ CODE_ZP,\ CODE_YP \};/*添加識別碼,用戶修改*/flag=1; for(k=0;k<DATE_A;k++) { if(LD_Check_ASRBusyFlag_b2()==0) { flag=0; break; } LD_WriteReg(0xc1,pCode[k]); LD_WriteReg(0xc3,0); LD_WriteReg(0x08,0x04); LD3320_delay(1); LD_WriteReg(0x08,0x00); LD3320_delay(1); for(nAsrAddLength=0;nAsrAddLength<DATE_B;nAsrAddLength++) { if(sRecog[k][nAsrAddLength]==0) break; LD_WriteReg(0x5,sRecog[k][nAsrAddLength]); } LD_WriteReg(0xb9,nAsrAddLength); LD_WriteReg(0xb2,0xff); LD_WriteReg(0x37,0x04); } returnflag;}3.4PWM模塊設(shè)計脈沖寬度調(diào)制模式可以產(chǎn)生一個由TIM8_ARR寄存器確定頻率,由TIM8_CCR1-TIM8_CCR4寄存器確定占空比的信號,本質(zhì)上是一種周期一定,高低電平占空比可調(diào)的方波。圖3-3PWM占空比邏輯圖PWM波形的分段函數(shù)式表示為:其中:T是單片機中計數(shù)脈沖的基本周期,也就是STM32定時器的計數(shù)頻率的倒數(shù)。N是PWM波的一個周期的計數(shù)脈沖個數(shù),也是STM32的ARR-1的值。n是PWM波一個周期中高電平的計數(shù)脈沖個數(shù),也就是STM32的CCRx的值。VH和VL分別是PWM波的高低電平電壓值,k為諧波次數(shù),t為時間。我們將①式展開成傅里葉級數(shù),得到公式②:從②是可以看出,式中第一個方括號為直流分量,第二項為一次諧波分量,幅度和相位與n有關(guān),PWM輸出頻率為1/(NT),第三項為于大一次的高次諧波分量。式②中的直流分量與n成線性關(guān)系,并隨著n從0到N,直流分量VL到VL+VH之間變化。本課題中PWM的設(shè)計主要是通過對定時計數(shù)器TIM8的設(shè)置來控制小車的速度,程序中設(shè)置TIM8定時器的工作方式主要程序設(shè)計段為:voidTIM8_Configuration(void){ GPIO_InitTypeDefGPIO_InitStructure;TIM_TimeBaseInitTypeDefTIM_TimeBaseStructure;TIM_OCInitTypeDefTIM_OCInitStructure; RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO,ENABLE); RCC_APB2PeriphClockCmd(RCC_APB2Periph_TIM8,ENABLE); RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC,ENABLE);GPIO_InitStructure.GPIO_Pin=GPIO_Pin_6|GPIO_Pin_7|GPIO_Pin_8|GPIO_Pin_9;GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;GPIO_InitStructure.GPIO_Mode=GPIO_Mode_AF_PP;GPIO_Init(GPIOC,&GPIO_InitStructure); TIM_TimeBaseStructure.TIM_Prescaler=0; TIM_TimeBaseStructure.TIM_CounterMode=TIM_CounterMode_Up; TIM_TimeBaseStructure.TIM_Period=PWMPeriod; TIM_TimeBaseStructure.TIM_ClockDivision=0; TIM_TimeBaseStructure.TIM_RepetitionCounter=0; TIM_TimeBaseInit(TIM8,&TIM_TimeBaseStructure); TIM_OCInitStructure.TIM_OCMode=TIM_OCMode_PWM2; TIM_OCInitStructure.TIM_OutputState=TIM_OutputState_Enable; TIM_OCInitStructure.TIM_OutputNState=TIM_OutputNState_Disable; TIM_OCInitStructure.TIM_OCPolarity=TIM_OCPolarity_Low; TIM_OCInitStructure.TIM_OCNPolarity=TIM_OCNPolarity_High; TIM_OCInitStructure.TIM_OCIdleState=TIM_OCIdleState_Set; TIM_OCInitStructure.TIM_OCNIdleState=TIM_OCIdleState_Reset; TIM_OC1Init(TIM8,&TIM_OCInitStructure); TIM_OC2Init(TIM8,&TIM_OCInitStructure); TIM_OC3Init(TIM8,&TIM_OCInitStructure); TIM_OC4Init(TIM8,&TIM_OCInitStructure); TIM8->CCR1=0; TIM8->CCR2=0; TIM8->CCR3=0; TIM8->CCR4=0; TIM_Cmd(TIM8,ENABLE); TIM_CtrlPWMOutputs(TIM8,ENABLE); }在對小車電機進行調(diào)速時,PC6-PC9分別連接IN1-IN4,使用的是軟件PWM調(diào)節(jié)速度的方法。PWM調(diào)速原理非常簡單易懂,就是用開關(guān)的關(guān)斷時間來控制速度,開關(guān)關(guān)斷的頻率是固定的。3.5USB轉(zhuǎn)串口下載器工具在芯片的測試中以及后續(xù)程序的下載都用到這個工具,下載安裝好相關(guān)的驅(qū)動,在這里我所用到的驅(qū)動是usb-serialch340,在下載好兼容的驅(qū)動程序后,開始安裝使用,該工具的結(jié)構(gòu)主要是使用CH340芯片,這塊芯片特點有:①支持RTS、DTR、DSR、RIC、TS、DCD常用的聯(lián)絡(luò)信號;②非常高速的USB設(shè)備接口,其性能完全兼容傳統(tǒng)2.0的USB口,在外圍的元器件上,就只需要電容和時鐘晶振即可;③3.3V和5V的電源供電均可。4.1軟件調(diào)試在程序方面,首先是利用在微雪科技官網(wǎng)上下載的LD3320調(diào)試程序進行測試,該芯片資料非常詳細完整,在硬件電路上將相應(yīng)的引腳連接好,給芯片供電該調(diào)試程序是控制LED燈的亮滅、閃爍,根據(jù)STM32核心板的引腳資料,修改對應(yīng)的LED引腳。根據(jù)硬件的相關(guān)配套資料,在軟件中進行宏定義和相關(guān)變量設(shè)置。如圖4-1所示。圖4-1小車程序宏定義及頭文件通過編譯下載,在開發(fā)板上實現(xiàn)了通過語音控制LED燈亮滅等操作,說明語音模塊能夠正常工作。之后添加PWM例程,調(diào)用定時器,將歷程中的初始化子程序以及電機調(diào)速子程序添加到主程序中,進行編譯調(diào)試。如圖4-2程序圖。圖4-2電機驅(qū)動程序宏定義按照需求編輯程序中的關(guān)鍵詞指令:出發(fā)、后退、停止、左轉(zhuǎn)、右轉(zhuǎn)、左偏、右偏,根據(jù)相應(yīng)的動作命令設(shè)置速度,也就是設(shè)置PWM的輸出頻率,頻率越高,速度越快,程序設(shè)置頻率上限為7000,下限為200,前進時左右四個電機頻率都設(shè)置為4000;如果要執(zhí)行后退操作,就在頻率前加一個負號;如果想讓小車左轉(zhuǎn),就讓左側(cè)頻率為0,電機停轉(zhuǎn),右側(cè)電機給一個適當(dāng)?shù)闹导纯?,右轉(zhuǎn)同理。相關(guān)指令集設(shè)置如圖4-3。圖4-3關(guān)鍵詞設(shè)置小車進行相應(yīng)操作運動時電機的速度設(shè)置如圖4-4。圖4-4電機速度設(shè)置圖在測試程序編譯通過后,打開FlyMcu軟件,選擇芯片型號、搜索串口以及設(shè)置合適的波特率,選擇STMISP勾選前三個選項,左下角選擇列表中第四項,DTR復(fù)位置0,RTS置1進入引腳下載。然后選擇要燒錄的hex文件。使用CH340串口下載器下載到芯片里面,在此具體操作如下圖4-3所示。圖4-5軟件下載圖采用340下載器存在一個缺陷,即斷電會擦除芯片內(nèi)的程序,有時會下不進去程序,需要按一下主控板上的復(fù)位鍵,后期決定采用J-LINK下載器,將BOOT0、BOOT1都置0,并將KEIL5的相關(guān)參數(shù)設(shè)置進行修改。首先電腦和核心板用J-link連接,用梯形接口的數(shù)據(jù)線給開發(fā)板供電;打開編譯軟件,點擊魔術(shù)棒快捷圖標(biāo),如圖4-6所示:圖4-6快捷圖標(biāo)彈出Optionsfortarget‘target1’...對話框,1.選中Utilities標(biāo)簽。2.選中UseTargetDriverforFlashProgramming。3.選擇列表中第三項J-LINK/J-TRACE。4.點擊Settings,進入FlashDownloadSetup界面,如下圖所示:圖4-7J-link燒錄選項設(shè)置其他設(shè)置可按照自己情況設(shè)置,點擊“Add”按鈕,彈出如下添加Flash界面:圖4-8添加Flash界面這里我選擇的是STM32F10xHigh-densityFlash,元件尺寸512K。單擊“Add”后添加完成,這里要注意不能重復(fù)設(shè)置添加,否則下載時會出錯。圖4-9芯片類型選擇到這一步對于J-link下載器
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 物資儲備與應(yīng)急管理的關(guān)系研究
- 現(xiàn)代辦公環(huán)境下的職業(yè)生涯管理
- 未來城市規(guī)劃中的綠色建筑策略
- 消費者行為與網(wǎng)絡(luò)商城的商品價格優(yōu)化
- 電商營銷中的數(shù)據(jù)驅(qū)動策略
- 寵物行業(yè)創(chuàng)業(yè)融資策略考核試卷
- 原油加工新技術(shù)的研發(fā)與工業(yè)化應(yīng)用考核試卷
- 現(xiàn)代種業(yè)技術(shù)對農(nóng)業(yè)辦公效率的提升研究
- 家居裝飾中的北歐風(fēng)格設(shè)計理念考核試卷
- 健身器材行業(yè)企業(yè)戰(zhàn)略重組與并購案例分析考核試卷
- 部編版六年級下冊語文第3單元習(xí)作例文+習(xí)作PPT
- 辦理工傷案件綜合應(yīng)用實務(wù)手冊
- 《現(xiàn)代氣候?qū)W》研究生全套教學(xué)課件
- 玩轉(zhuǎn)數(shù)和形課件
- 護理診斷及護理措施128條護理診斷護理措施
- 情商知識概述課件
- 九年級物理總復(fù)習(xí)教案
- 【64精品】國標(biāo)蘇少版小學(xué)音樂六年級下冊教案全冊
- 汽車座椅骨架的焊接夾具論文說明書
- [重慶]房建和市政工程質(zhì)量常見問題防治要點
- 發(fā)電機組自動控制器
評論
0/150
提交評論