版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
基于STM32位主控制器的一款實用語音識別的智能分類垃圾桶設計目錄TOC\o"1-3"\h\u6447基于STM32位主控制器的一款實用語音識別的智能分類垃圾桶設計 121003引言 124283第1章緒論 2167581.1研究背景 2125351.2國內(nèi)外研究現(xiàn)狀及存在問題 3177071.3研究內(nèi)容 498121.4本章小結 46072第2章系統(tǒng)方案設計 5313302.1系統(tǒng)整體設計 534802.2主控制器方案 5172272.3語音識別方案 6126392.4舵機控制方案 7250942.5本章總結 89755第3章系統(tǒng)電路設計 9173263.1單片機最小系統(tǒng) 9106733.2外圍電路設計 1117633.2.1語音識別電路 1180113.2.2舵機控制電路 14279153.3本章小結 142577第4章系統(tǒng)軟件設計 15324174.1軟件整體設計 15252764.2語音識別軟件設計 15171434.2.1語音識別程序流程設計 16181284.2.2語音識別功能核心程序 16120574.3舵機控制軟件設計 17139404.3.1舵機控制流程設計 18196324.3.2舵機控制功能核心程序 18248554.4本章小結 195278第5章系統(tǒng)測試與分析 20240655.1實物組裝 20118085.2軟件調(diào)試 21287665.3語音識別模塊上電測試與分析 21111395.4舵機驅(qū)動模塊上電調(diào)試與分析 23264705.5本章小結 2421243結論 25引言最近幾十年,人們的生活質(zhì)量逐漸被提高,但是生活垃圾卻逐漸在增多,垃圾處理工作變得越來越繁重,所以垃圾分類現(xiàn)已成為一個非常熱門的話題。目前,在一些大的城市已經(jīng)有了一些垃圾分類的措施,但是通過調(diào)查我發(fā)現(xiàn)已有的這些措施并沒有在很大程度上的減輕后期垃圾分類工作。原因有幾點,一是很多人沒有垃圾分類的觀念,為了省事他們往往會把所有的垃圾放在一個垃圾袋里,等到垃圾袋滿了直接丟棄。二是大多數(shù)人根本不知道垃圾分為哪幾類都包括什么,所以即使他們丟垃圾是想過要進行垃圾分類,分的也可能是錯的。三是只在社區(qū)或者公共場合配備垃圾分類的設備,并不能從根本上解決后期垃圾分類的繁重工作,因為人們的首次處理垃圾是在家里,要想從根本上減少垃圾分類的成本還應該從垃圾的首次處理著手。針對以上幾點,本文提出基于語音識別的智能分類垃圾桶作為補救措施。之所以選用語音識別是因為它有三大優(yōu)勢。其一是聲音輸入設備造價便宜而且設計不到用戶的隱私,可以方便推廣。其二是既然垃圾分類要著手與垃圾的初次處理,那么操作這種設備的還有老人和小孩,所以智能垃圾桶不能設計的特別繁瑣,本文設計的垃圾桶不僅省事而且便捷,因為用戶只需講出垃圾的名字,所對應的垃圾桶便會自動打開。完全解決了老人和小孩的使用問題。其三是語音識別器件很小不用考慮空間問題。第1章緒論1.1研究背景最近這些年,我們的生活越來越好,水平也越來越高,然而每個人每天扔出的垃圾也越來越多。這種現(xiàn)象的出現(xiàn)使垃圾處理工作變得越來越困難,只靠人力進行分揀變得越來越不現(xiàn)實。伴隨著這種現(xiàn)象的出現(xiàn),以及國內(nèi)外一些新興行業(yè)的發(fā)展,垃圾智能分類這一新興事物也逐漸映入人們的眼瞼,并在有心人的經(jīng)營下,發(fā)展成為一個行業(yè)。垃圾分類給大家?guī)淼闹T多好處的同時也在世界上很多國家發(fā)展成為先進的潮流。垃圾智能分類系統(tǒng)對于加快垃圾分類速度有極大的幫助,不僅如此,它還提升垃圾的轉(zhuǎn)運速率。另外,垃圾被細分之后,不但減輕了垃圾的后期處理工作,還加快了垃圾處理的整個進程。翻閱了相關資料,可以發(fā)現(xiàn)一般重視垃圾分類的國家,都比較重視對居民垃圾分類意識的培養(yǎng)。然而在一些經(jīng)濟教育比較落后的國家,人們就沒有垃圾分類的意識,對于這些國家來說,垃圾分類工作仍有很長的路要走REF_Ref27174\w\h[1]REF_Ref25587\n\h。目前,在一些企業(yè)、社區(qū)以及市場上已經(jīng)存在了很多智能垃圾分類設備,但是很多產(chǎn)品設備都是為了迎合企業(yè)的利益,只對部分垃圾進行分類,并不能囊括我們生活中的所有垃圾,這中垃圾桶投入應用之后,垃圾分類工作并沒有從根本上減輕。同時由于一些設備過于先進,很多普通市民礙于不會操作設備只能將垃圾隨便丟棄,這樣一來,不僅不能解決垃圾分類的問題,還污染了環(huán)境,影響了整個城市的形象。針對以上問題,本文提出了一種操作簡單、便于實施的系統(tǒng),該系統(tǒng)就是基于語音識別的智能垃圾分類系統(tǒng),它由STM32單片機控制,利用語音模塊采集用戶的語音,識別判斷后打開對應垃圾桶桶蓋的之中設計。這款垃圾桶雖然成本很低但是非常使用,而且操作簡單,適用于所有人群,在技術的幫助下,可以隨時增加垃圾類別。本設計最大的優(yōu)點是它可以裝在家里,從垃圾產(chǎn)生的時候就進行分類,從根本上減輕垃圾分類工作。1.2國內(nèi)外研究現(xiàn)狀及存在問題垃圾分類這一概念是在社會經(jīng)濟和人們生活水平提高的同時被提出來的,城市生活垃圾成分復雜,這與當?shù)鼐用竦纳盍晳T和經(jīng)濟發(fā)展水平有著密切的關系REF_Ref27324\w\h[2]。目前,在我國垃圾分類已被納入法律程序并且我國還對其進行了立法,并且在各省市進行了實施。垃圾分類剛開始的階段是由居委會提供分類垃圾桶,然后小販將分類后的垃圾清運走。由于這個工作工程過于繁瑣,所以混仍的方式被淘汰,取之而來的是垃圾的分類投放,垃圾分類投放后由國家的環(huán)保衛(wèi)生部門進行分類清理運送和分揀回收。但是剛剛發(fā)展起來的垃圾分類只將垃圾分為了有機、無機和棄土三類垃圾。雖然改變垃圾分類的方式,可以使后期的垃圾處理工作更加方便成本更低,但是垃圾資源化的問題依然不能得到解決,想要從根本上解決垃圾問題,采取的分類方式非常重要。作為垃圾處理最關鍵的環(huán)節(jié),垃圾分類的智能化研究在我國仍處于初級階段,由于這一環(huán)節(jié)的研發(fā)集資比較困難而且研發(fā)難度有很大,所以這一環(huán)節(jié)的工作我們還是基本依靠人力,機器輔助方面比較少。但是大量的人力資源投入到垃圾分揀之一環(huán)節(jié)不僅大大提升了成本而且對員工來說這一環(huán)節(jié)的工作危險性極高。雖然國內(nèi)也有一些科研機構對垃圾的智能分類進行了研究和探索,但其分揀的主要是經(jīng)濟效益比較高的可回收垃圾,因此這種智能垃圾桶的實用性和性價比并不高,目前國內(nèi)外各大垃圾處理廠依舊是依靠人力來進行分揀。從應用性和實用性兩個方面來說,垃圾分類特別是是垃圾分揀這一環(huán)節(jié)需要結合更先進的技術。垃圾分類是沒有國界之分的,而且國外對于垃圾分類的重視并不亞于我們國家。其中日本,德國,新西蘭等國家在垃圾分類方面處于領先地位REF_Ref27507\w\h[3]。下面簡單介紹一下這幾個國家在垃圾分類方面所采取的舉措。在德國,他們將垃圾分類寫在了法律中,重立法更重執(zhí)法。這個國家擁有一套完整的垃圾分類制度,而且做的很詳細,細致到扔玻璃都要根據(jù)顏色進行分類。日本國家才是真正的動真格,他們?nèi)永且召M的,因為日本自然資源較少,所以資源需要更合理的利用。在大環(huán)境的影響下,國家只能利用罰錢的手段來減少垃圾的產(chǎn)量。迄今為止,日本已經(jīng)有70%的城市采取此舉,這也是日本在垃圾分類方面占據(jù)世界前列的原因。不過隨著大數(shù)據(jù),人工智能以及物聯(lián)網(wǎng)時代的到來,垃圾分類只會變得更加智能,智能垃圾分類的必要性和緊迫性讓世界各國都開始重視智能化與垃圾分類的結合。像芬蘭的吃不飽垃圾桶,芬蘭人在垃圾桶上加上了真空管道,這樣一來就可以把垃圾桶和垃圾站直接聯(lián)系在一起,很大程度上節(jié)約了垃圾分類行業(yè)的人力物力資源。再者像西班牙的垃圾分類機器人,他們將垃圾分為了有機、塑料金屬、紙質(zhì)和玻璃四種類型,機器人可以根據(jù)這幾種垃圾的屬性把垃圾分離開來,放到各自的垃圾桶里。從以上現(xiàn)象可以看出,在垃圾分類這件事上各國都很重視,甚至會用法律或者資金來強制性的要求公民必須進行垃圾分類,并且國外的一些國家將智能化和垃圾分類結合的很好,非常值得我們學習。1.3研究內(nèi)容毫無疑問,垃圾分類工作的完成使資源的利用率變得更高,并且在減輕環(huán)境污染壓力的同時,還給企業(yè)和社會創(chuàng)造了更多有用的價值。況且,無論是從經(jīng)濟效益來看還是社會效益來看智能垃圾桶都可以稱得上是目前最有潛力的一個行業(yè)。像wifi信號和usb充電接口這種功能,智能垃圾桶將來都能實現(xiàn),還可以實時監(jiān)測人流量為規(guī)劃城市交通提供數(shù)據(jù)參考REF_Ref27945\w\h[4-5]。智能垃圾分類系統(tǒng)的誕生是垃圾分類方式的進步,垃圾智能分類行業(yè)的發(fā)展不僅可以在一定程度上減輕我國的環(huán)境保護工作,而且還可以減少環(huán)境污染是資源得以回收再利用。近些年,在國家政策的驅(qū)動下,垃圾分類行業(yè)在各大城市的到了很好地發(fā)展。據(jù)相關資料顯示,目前為止,我們國家已經(jīng)有好幾十萬家企業(yè)的工作內(nèi)容與垃圾分類有關。進入信息化時代以來,垃圾分類系統(tǒng)再次得到升級,它不僅可以結合互聯(lián)網(wǎng)和云計算技術,而且還能將大數(shù)據(jù)和物聯(lián)網(wǎng)融入到垃圾分類行業(yè),使垃圾分類系統(tǒng)變得更加模塊化、智能化、數(shù)字化?;赟TM32的語音識別垃圾桶克服了大部分智能垃圾桶的缺點,它操作簡單、構造簡單且實用性強。本文主要研究此款垃圾桶的整體構造,探討語音識別方案和電機驅(qū)動方案。1.4本章小結本章主要討論了垃圾分類的發(fā)展現(xiàn)狀、國內(nèi)外垃圾分類的發(fā)展趨勢以及存在的問題和基于語音識別的智能垃圾桶的主要研究內(nèi)容。第2章系統(tǒng)方案設計2.1系統(tǒng)整體設計本項研究的核心是語音識別技術在垃圾分類上的應用,本設計的功能主要包括語音播報功能、語音識別功能、舵機轉(zhuǎn)動功能以及主控制器。本文主要將垃圾分為四類,四類垃圾分別投入四個垃圾桶內(nèi),每個垃圾桶桶蓋上都裝有一個舵機,舵機有由主控制器來控制,在有指令輸入時,主控制器便會控制舵機轉(zhuǎn)動,進而打開垃圾桶桶蓋。主板上裝有揚聲器、語音識別模塊、主控制器STM32模塊、電源模塊和指示燈部分。系統(tǒng)啟動之后由語音播報模塊提示人進行操作,我們的聲音信號可以通過麥克風被語音識別模塊采集然后轉(zhuǎn)化為電信號,轉(zhuǎn)換完成之后,可以對電信號進行識別并對垃圾類別做出判斷,然后打開對應的垃圾桶桶蓋,桶蓋打開之后保持30s打開狀態(tài),30s后垃圾桶自動閉合,邏輯架構圖見圖2.1。圖2.1邏輯架構圖2.2主控制器方案關于智能垃圾桶的主控制器,本設計選用單片機STM32,這款控制器的內(nèi)核是ARM32位的,它出產(chǎn)于ST公司,具有實時仿真技術和跟蹤功能。與其他單片機相比,該器件的資源特別廣,性能也增強了很多,值得展示的是該器件使用的是ARM最新、最先進架構,其內(nèi)核的實時性和功耗控制均比較優(yōu)異,而且它還擁有非凡且創(chuàng)新的外觀設計、大規(guī)模的集成設計以及易于開發(fā)的實用性等諸多優(yōu)點REF_Ref28137\w\h[6]。我們知道一個平臺是可以同時進行多個項目開發(fā)的,在進行多個項目開發(fā)時,STM32控制平臺是諸多選擇中最佳的平臺選項,從以下三個方面體現(xiàn)出來。(1)該主控制器STM32在使用它的管腳和存儲空間非常的靈活,它不僅可以應用在少量的管腳使用和存儲空間應用上,還可以擴展到多管腳的使用和存儲空間的應用上。(2)STM32對性能的應用和電池供電的應用要求極高。(3)主控制器STM32在很多設計中都會被用到,因為它可以從簡單低成本的應用擴展到高端的應用。2.3語音識別方案垃圾桶內(nèi)設有語音識別模塊,語音識別就是將聲波轉(zhuǎn)化成可以被機器識別的語言,這項技術的重點在于如何使計算機聽懂人類的語言REF_Ref28219\w\h[7-8]。本研究所設計的智能垃圾分類系統(tǒng)根據(jù)中文環(huán)保衛(wèi)生領域相關標準和場景,定制了專業(yè)模型來實現(xiàn)語音信號的識別及轉(zhuǎn)換,進而將信號傳遞給主控制器,主控制器負責控制舵機的轉(zhuǎn)動,進而打開對應的垃圾桶桶蓋,具體流程見圖2.3。圖2.2語音識別流程框架用戶的語音通過麥克風輸入后,先后經(jīng)過分幀、預加重等一系列的處理之后便可以轉(zhuǎn)變成為數(shù)字信號,然后再利用端點檢測技術、噪音消除技術對轉(zhuǎn)換的數(shù)字信號進行信號處理,來確定語音起始及結束的位置,更深入的消除由語音采集設備等外部環(huán)境引起的信號干擾。再將處理好的信號傳入特征提取模塊,把能夠有效反映語音特征的信息轉(zhuǎn)化成一組離散型矢量序列,壓縮封裝后傳送至識別引擎,開始語音識別搜索。作為整個系統(tǒng)的中樞,識別引擎分為垃圾聲學模型、識別字典兩個部分。垃圾聲學模型利用隱馬爾可夫模型構建,經(jīng)過采集生活中垃圾的音頻數(shù)據(jù),對模型進行自適應訓練。由于音頻中包含了周圍環(huán)境中的噪聲、采集設備的噪聲和用戶個體發(fā)音習慣,因此訓練出的模型更加符合現(xiàn)實生活中的場景,很大程度地增強了該模型的識別性能。識別字典是指標準垃圾詞語庫。數(shù)據(jù)經(jīng)過識別引擎處理后將傳入語義理解模塊,該模塊是基于生活中垃圾分類場景進行語義定制,能夠根據(jù)實際情況及;垃圾名詞庫對結果進行語義分析,進而了解用戶所仍垃圾種類,以達到優(yōu)化識別結果的目的。本文選擇SNR6812VR-M進行語音的識別與播報,該模塊的語音識別及播報是集合在一起的,它的電源抗干融能力比其他語音識別模塊的更強,且其內(nèi)部的語音識別算法集成度更高,更有利于語音的識別,在噪聲環(huán)境下的表現(xiàn)依然非常出色,非常適合應用在家電類產(chǎn)品。2.4舵機控制方案當用戶的聲音與系統(tǒng)設定的語音匹配成功之后,STM32便會控制對應垃圾桶的舵機轉(zhuǎn)動,進而打開對應垃圾桶,垃圾桶打開30s,30s后舵機會自動恢復屆時垃圾桶也會自動關閉。一些機器人的輸出執(zhí)行機構都是使用舵機進行控制的,在這些系統(tǒng)中舵機充當微機系統(tǒng)的角色或者作為航模系統(tǒng)進行使用。舵機與單片機的接口很好實現(xiàn),因為舵機的控制結構極其簡單,且其輸出結構不復雜。據(jù)資料顯示,舵機的學名叫作伺服馬達,它是位置自動控制系統(tǒng)的一種,適用于角度多變的控制系統(tǒng),尤其適用于角度可以隨時改變又可以隨時保持當前狀態(tài)的系統(tǒng)。角度多變的系統(tǒng)常見于高檔遙控玩具中。當舵機正常工作時,先由接受信道接受控制信號,然后將其送入信號標志芯片,等到出現(xiàn)直流偏置電壓時,存在于舵機內(nèi)部的基準電路便會產(chǎn)生一個基準信號,對該基準信號的電壓進行測量,然后對比信號傳輸時出現(xiàn)的偏置電壓和電位器的電壓進行,同時把比較后的電壓差輸出到電動機的芯片上。若電壓差是正的,則電機正向轉(zhuǎn)動;若電壓差是負值,則電機反向轉(zhuǎn)動。當電機的速度一定時,若想讓電機停止轉(zhuǎn)動,即晶體管處于放大狀態(tài),且其基級電壓與電位器的電壓差為零,這時可以把兩個或者兩個以上的設備連接來提高齒輪的速度進而控制電機的轉(zhuǎn)動。舵機正常工作需要約二十毫秒的時基脈沖。小型舵機若想正常工作,電壓一般是4.8V或者6V,轉(zhuǎn)速一般是0.22弧度每秒或者0.18弧度每秒。小型舵機的缺點是它的轉(zhuǎn)速很快,導致角度改變的太快,舵機經(jīng)常反應不過來。如果現(xiàn)實生活中想要角度改變的更快,就必須獲得更快的轉(zhuǎn)速REF_Ref28366\w\h[9-10]。2.5本章總結第二章先介紹了主控制器的的選擇標準和設計方案,然后進行了語音識別模塊的方案設計和工作流程安排,最后確定了舵機控制模塊的設計方案并介紹了它的工作原理。第3章系統(tǒng)電路設計3.1單片機最小系統(tǒng)單片機正常運行情況下所需器件最少的系統(tǒng)就叫作單片機最小系統(tǒng),有了最小系統(tǒng),單片機既可以正常復位,并下載程序了,但是只有最小系統(tǒng)的單片機是不能實現(xiàn)任何功能的。若想要單片機具備功能,必須要保證單片機的最小系統(tǒng)正確,然后可以根據(jù)需求按照順序添加功能模塊和器件。STM32最小系統(tǒng)有主芯片,即主控制器的心臟;電源復位電路,即用于使電路恢復到起始狀態(tài)的電路;時鐘電路,即在設定時間內(nèi)產(chǎn)生的振蕩電路;電源電路,即供電的電路,另外還需在這個最小系統(tǒng)的基礎之上添加LED指示電路和下載電路。單片機的工作原理與微型計算機的工作原理極其相似,縱然單片機只是一塊芯片,但他工作原理和微型計算機是一樣的,只是比計算機的模塊少而已。數(shù)據(jù)多樣化采集多樣化與控制系統(tǒng)使單片機可以完成各種復雜的運算,單片機借助強大的數(shù)據(jù)處理技術和計算機功能在智能電子行業(yè)大展宏圖。并通過集成電路的應用,將數(shù)據(jù)運算和處理功能集成在芯片上,實現(xiàn)對數(shù)據(jù)的高速處理REF_Ref28588\w\h[11-14]。STM32單片機在很多設計中都會被用到,目前已經(jīng)應用在了語音設備中。因此,在設計基于語音識別的智能垃圾桶時我選擇的核心控制器是STM32單片機。STM32F103C8T6是STM32的增強型系列,它擁有64個引腳且內(nèi)嵌128K的Flash容量,最佳的工作溫度為零下40度到八十度。STM32的增強型系列芯片有以四個極其重要的特點。該系列芯片的內(nèi)核是最高工作頻率為72MHz的ARM32位的Cortex-M3。STM32F103C8T6芯片不僅有休眠和停止的模式,還擁有待機的模式。該系列芯片不僅擁有雙采樣和保持能力的12位us級A/D轉(zhuǎn)換器,還擁有2通道12位D/A轉(zhuǎn)換器。STM32F103C8T6芯片不僅有高達112個快速I/O端口和13個通信接口,它的定時器更是多達11個。本設計中所使用的主控制器芯片,其總線寬度為32位,速度是72兆赫茲,電機采用脈沖寬度調(diào)制技術進行控制。這款單片機最大的優(yōu)點便是成本低,這一點對很多設計拉說都是最重要的一點,這也是它可以被應用到很多設計中的原因。所以,不管是從能源消耗還是價格方面考慮,單片機STM32都具有巨大的優(yōu)勢,特別是工作可靠,費用很小,綜合實力比較強,擁有低功耗且強大的加密功能。本文使用該芯片的引腳有A10、B6、B7、B8、B9,單片機核心電路圖如圖3.1所示。圖3.1單片機核心電路圖3.2外圍電路設計3.2.1語音識別電路語音播報和語音識別分別是語音模塊的兩個部分,本文的采用SNR6812VR-M作為語音識別模塊,這個模塊將語音模塊的兩個部分集合在了一起。語音播報利用直驅(qū)喇叭進行實現(xiàn),直驅(qū)喇叭的工作電壓為5V/1W。SNR6812VR-M不僅更高階的語音識別識別算法和識別精度,而且在噪聲環(huán)境下的表現(xiàn)依然很出色。SNR6812VR-M語音識別模塊可以應用在本設計中是因為它可以識別人的高穩(wěn)定度語音,并且在使用之前用戶不需要與此設備進行磨合。模塊內(nèi)部的語音識別詞條非常重要,由Flash存儲器進行存儲,語音播報內(nèi)容由外掛SPIFlash存儲器存儲。SNR6812VR-M的通信方式為先利用UART串口輸出,然后再進行查詢和控制等,便可以輕松的控制并獲取模塊的當前狀態(tài)REF_Ref28725\w\h[15-17]。這個模塊可以同時識別多個詞條。語音識別模塊的內(nèi)部結構圖見圖3.2。圖3.2語音識別模塊原理圖該模塊的硬件共有23個引腳,本設計用到的引腳有8個,除了GND和VDD以外,還有六個引腳用于語音識別和播報,下面進行詳細介紹。PA8/TXD引腳是通用的I/O口,同時也是UART發(fā)送器數(shù)據(jù)輸出口,連接STM32的RXD引腳;PA9/RXD引腳是通用的I/O口,同時也是UART接收器數(shù)據(jù)輸入口,連接STM32的TXD引腳;剩下四個引腳分別連接喇叭和麥克風,該模塊的麥克風為外接普通駐極體話筒,由于延長線過長損耗會增大進而影響識別率,所以建議線長為20cm。3.2.2舵機控制電路本設計中負責開關垃圾桶的是SG90模擬舵機,其引腳有三個,且這三個引腳是相互兼容的,分別為接地引腳、高電平引腳、脈沖調(diào)制引腳。SG90位置伺服器采用PWM同步控制,它有不工作、轉(zhuǎn)動和保持三種狀態(tài)的工作電流,當位置伺服器處于不工作的狀態(tài)時,電流依然存在,不過此時的電流時靜態(tài)電流為4mA,這時沒有PWM控制信號不能自動復位;當位置伺服器處于轉(zhuǎn)動狀態(tài)時,工作電流約為300mA,需供給PWM信號;當位置伺服器處于保持狀態(tài)時,有PWM信號,若此時沒有外力抵抗,電流的消耗就會很小約為5mA,若有外力抵抗時,由于要抵抗外力,電流會增大。四個舵機的PWM引腳分別連接STM32的B6、B7、B8、B9。SG90舵機內(nèi)部電路圖見圖3.3。圖3.3SG90舵機內(nèi)部結構圖3.3本章小結第三章重在分析每個模塊的優(yōu)卻點及選用原則,詳細的介紹了三個模塊的電路設計并且給出了這三個模塊的設計原理圖。在集成電路設計環(huán)境下繪制了各個部分的原理圖,進行了仿真分析和驗證,結果說明設計的電路原理圖符合設計要求。第4章系統(tǒng)軟件設計4.1軟件整體設計本設計本質(zhì)上是語音識別技術在垃圾分類上的一種應用,整個設計包括語音識別功能、語音播報功能、電機驅(qū)動功能以及主控制器。系統(tǒng)先采集語音信息,然后將采集到的信息與垃圾詞庫對比,將對比后的信息傳送給主控制器,再由主控制器來驅(qū)動相應的舵機進行轉(zhuǎn)動,進而打開垃圾桶?;谡Z音識別的智能垃圾桶的軟件整體設計流程如圖4.1所示。圖4.1軟件整體設計流程4.2語音識別軟件設計語音識別過程為先有語音模塊進行信號采集,然后將采集到的信號輸入到模塊內(nèi)進行去噪處理,再進行端點檢測和特征值的提取,接著是與參考模板進行模式匹配,最后將識別有語音播報模塊識別結果輸出。4.2.1語音識別程序流程設計圖4.2語音識別程序流程圖4.2.2語音識別功能核心程序voidYuYin_Init(){GPIO_InitTypeDefGPIO_InitStructure;USART_InitTypeDefUSART_InitStructure;NVIC_InitTypeDefNVIC_InitStructure;RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1,ENABLE); RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE); USART_DeInit(USART1);GPIO_InitStructure.GPIO_Pin=GPIO_Pin_9;GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;GPIO_InitStructure.GPIO_Mode=GPIO_Mode_AF_PP; GPIO_Init(GPIOA,&GPIO_InitStructure);GPIO_InitStructure.GPIO_Pin=GPIO_Pin_10;GPIO_InitStructure.GPIO_Mode=GPIO_Mode_IN_FLOATING;GPIO_Init(GPIOA,&GPIO_InitStructure);NVIC_InitStructure.NVIC_IRQChannel=USART1_IRQn;NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority=2;NVIC_InitStructure.NVIC_IRQChannelSubPriority=0; NVIC_InitStructure.NVIC_IRQChannelCmd=ENABLE; NVIC_Init(&NVIC_InitStructure);USART_InitStructure.USART_BaudRate=9600;USART_InitStructure.USART_WordLength=USART_WordLength_8b;USART_InitStructure.USART_StopBits=USART_StopBits_1;USART_InitStructure.USART_Parity=USART_Parity_No;USART_InitStructure.USART_HardwareFlowControl=USART_HardwareFlowControl_None;USART_InitStructure.USART_Mode=USART_Mode_Rx|USART_Mode_Tx; USART_Init(USART1,&USART_InitStructure);USART_ITConfig(USART1,USART_IT_RXNE,ENABLE);USART_Cmd(USART1,ENABLE);}4.3舵機控制軟件設計舵機控制的軟件流程為先輸入控制信號,若控制信號有效,則由程序算出目標位置與當前位置的差值并判斷該數(shù)值是否為零,差值為零舵機停止轉(zhuǎn)動且計時時間清零,程序重復上述循環(huán),但是如果差值不是零,則需要求出剩余時間并算出輸出的PWM,然后再循環(huán)上述步驟;若控制信號無效,則判斷下一信號。4.3.1舵機控制流程設計圖4.3舵機控制流程設計4.3.2舵機控制功能核心程序voidPWM_Init(void){TIM_TimeBaseInitTypeDefTIM_TimeBaseStruct;TIM_OCInitTypeDefTIM_OCInitStructure;GPIO_InitTypeDefGPIO_InitStructure; RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB,ENABLE);RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM4,ENABLE);RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO,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(GPIOB,&GPIO_InitStructure); GPIO_ResetBits(GPIOB,GPIO_Pin_9); TIM_TimeBaseStruct.TIM_Period=9999; TIM_TimeBaseStruct.TIM_Prescaler=143; TIM_TimeBaseStruct.TIM_ClockDivision=0; TIM_TimeBaseStruct.TIM_CounterMode=TIM_CounterMode_Up; TIM_TimeBaseInit(TIM4,&TIM_TimeBaseStruct); TIM_OCInitStructure.TIM_OCMode=TIM_OCMode_PWM1; TIM_OCInitStructure.TIM_OutputState=TIM_OutputState_Enable; TIM_OCInitStructure.TIM_OCPolarity=TIM_OCPolarity_High; TIM_OC1Init(TIM4,&TIM_OCInitStructure); TIM_OC2Init(TIM4,&TIM_OCInitStructure); TIM_OC3Init(TIM4,&TIM_OCInitStructure);TIM_OC4Init(TIM4,&TIM_OCInitStructure); TIM_Cmd(TIM4,ENABLE); TIM_SetCompare1(TIM4,400); TIM_SetCompare2(TIM4,400); TIM_SetCompare3(TIM4,400); TIM_SetCompare4(TIM4,400);}4.4本章小結第四章主要介紹了系統(tǒng)的軟件的整體設計、語音識別模塊和舵機控制模塊的軟件設計流程和功能實現(xiàn)的核心程序。本章的結束可以使讀者對本設計有更近一步的了解。第5章系統(tǒng)測試與分析5.1實物組裝對于一些功能來說,仿真是實現(xiàn)不了的,無法進行測試的。因此就只能先進行實物組裝與焊接然后再安排測試。實物的組裝和焊接非常講究,如果焊接不當很有可能導致短路以及斷路等情況,對后期的調(diào)試和功能實現(xiàn)都會造成非常大的麻煩。下面我來介紹一些焊接方法及注意事項,我們知道電子器件的焊接與電路的通斷是密切相關的,如果覆銅板的焊點面受到損壞或者出現(xiàn)脫落,則該覆銅板在原則上是不允許被使用的,因為這樣的焊點會導致通過它的電流不穩(wěn)定。如果覆銅板沒有問題,那么在焊接時要仔細認真,不能知識將焊料簡單的堆在每個焊點周圍,這樣做不僅起不到電連接的目的,而且等時間長了或者周圍的環(huán)境發(fā)生了變化,電路就會出現(xiàn)短路或者短路的情況。這在電子儀器的使用中是一件非常令人頭疼的事。焊接電路時,首先應該焊接的是主控制電路,因為其他電路都是由該部分進行控制的。其次應該焊接語音識別部分,由于該模塊將語音采集和語音識別集合在一起,所以焊接時應該分步驟進行,應該先將麥克風和擴音器焊接在該模塊上,然后再將該模塊焊接在萬用板上,最后焊接上電源模塊和舵機。所有器件焊接完成之后,根據(jù)原理圖,用導線再將整個電路連接起來。具體實物連接見圖5.1。圖5.1實物連接圖5.2軟件調(diào)試軟件設計和實物連接完成后,就可以進行軟件的測試了,本文采用Keil軟件進行測試,Keil軟件是集編程、編譯、連接、調(diào)試和仿真與一體的單片機軟件。大多數(shù)的處理器廠家都會選擇Keil來完成軟件開發(fā),用這個工具對所開發(fā)的軟件進行編程和測試等,目的是為了檢查和驗證軟件中是否存在問題以及軟件設計是否正確,并進一步優(yōu)化代碼。用戶使用時,只要按下編譯鍵,Keil軟件便會自己查錯,并告知用戶具體的出錯位置和詳細的解釋信息,用戶只需根據(jù)提示修改相應代碼即可REF_Ref28928\w\h[18]。調(diào)試啟動界面見圖5.2。圖5.2調(diào)試啟動界面每個模塊的具體方案決定之后,便可以根據(jù)所確定的方案設計配套的代碼。程序的編寫有兩種方案,方案一可以將整個系統(tǒng)根據(jù)功劃分為幾個模塊,然后再可以每個模塊的功能來編寫程序;方案二直接根據(jù)硬件模塊來編寫程序。但是無論選擇哪一種方式進行編寫,都必須在實現(xiàn)一個模塊之后,再進行下一模塊的編寫。按照這個順序進行編寫,各個模塊不會相互影響,思路也會越來越清晰,如果后期出現(xiàn)問題的話,也很容易得到解決。5.3語音識別模塊上電測試與分析在測試開始時,應該先對供電接口進行測試,因為供電接口一旦出現(xiàn)短接,就會燒壞所有器件,所以在每次上電之前,都必須要進行電源接口檢測。一切正常情況的下,通電后,觀察實物運轉(zhuǎn)是否正確,例如語音識別功能,注意觀察指示燈的亮暗情況,所有可見現(xiàn)象如有異常,立刻切斷電源。另外,我們還需要關注一下實物上某些部分是否出現(xiàn)發(fā)熱的情況,一般電源發(fā)熱是正?,F(xiàn)象,但是如果其他模塊發(fā)熱很可能是異常情況,此時也應該立即切斷電源。待一切正常之后,就可以對實物進行各項功能的測試了REF_Ref28999\w\h[19-20]。系統(tǒng)上電后,打開開關,輸入一級指令“小智你好”,語音識別模塊的指示燈便會打開。測試現(xiàn)象如圖5.3所示。圖5.3語音識別模塊上電測試語音識別結果分析:語音識別模塊上電后,指示燈D1會被點亮,顏色為紅色語音播報模塊會提示用戶進行操作。在用戶給出一級指令后,指示燈D2會被點亮,顏色為藍色,同時語音播報模塊做出回復“在呢”,在給出二級指令之前,D2會一直處于點亮狀態(tài),給出二級指令后,指示燈D2熄滅,對應的舵機轉(zhuǎn)動打開垃圾桶蓋,30s后舵機自動恢復,垃圾桶關閉。指示燈D1和D2的點亮和熄滅狀態(tài)見表5.1。表5.1不同指令下指示燈D1和D2的工作狀態(tài)由表5.1可以看出,給系統(tǒng)上電之后指示燈D1一直處于被點亮的狀態(tài),說明指示燈D1是語音模塊的電源指示燈,如果D1被點亮,說明輸入1級指令之后,該模塊就可以進行工作,但是如果D1處于熄滅的狀態(tài),即使輸入1級指令,該模塊也不會正常工作。而指示燈D2只有在輸入1級指令之后才會被點亮,其他時刻均處于熄滅狀態(tài),由于1級指令是系統(tǒng)的喚醒指令,2級指令是系統(tǒng)的執(zhí)行指令,所以,當指示燈D2處于熄滅狀態(tài)時,系統(tǒng)可能還未被點亮也可能正在執(zhí)行2級指令,這時想確定系統(tǒng)的工作狀態(tài),我們需要觀察舵機的狀態(tài),如果舵機發(fā)生轉(zhuǎn)動則系統(tǒng)正在執(zhí)行2級指令,需要等待30s后再給系統(tǒng)發(fā)送任務,如
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026年廣西工商職業(yè)技術學院單招綜合素質(zhì)考試題庫及完整答案詳解1套
- 2026年陽光學院單招職業(yè)傾向性考試題庫及參考答案詳解一套
- 2026年濮陽職業(yè)技術學院單招職業(yè)技能測試題庫及參考答案詳解1套
- 2026年山西省陽泉市單招職業(yè)適應性考試題庫含答案詳解
- 2026年廣東工貿(mào)職業(yè)技術學院單招職業(yè)傾向性考試題庫及參考答案詳解一套
- 2026年攀枝花攀西職業(yè)學院單招職業(yè)技能考試題庫參考答案詳解
- 2026年巴音郭楞職業(yè)技術學院單招綜合素質(zhì)考試題庫附答案詳解
- 2026年貴州工貿(mào)職業(yè)學院單招職業(yè)技能考試題庫及參考答案詳解一套
- 2026年遼寧機電職業(yè)技術學院單招職業(yè)適應性考試題庫參考答案詳解
- 2026年廣西衛(wèi)生職業(yè)技術學院單招職業(yè)適應性考試題庫及答案詳解一套
- 2025天津大學招聘15人備考考試試題及答案解析
- 2025年山西大地環(huán)境投資控股有限公司社會招聘116人備考題庫有答案詳解
- 2026元旦主題晚會倒計時快閃
- 2025抖音流量生態(tài)深度解析:算法邏輯、爆流密碼與運營實戰(zhàn)全指南
- 2025至2030中國警用裝備行業(yè)項目調(diào)研及市場前景預測評估報告
- MOOC 西方園林歷史與藝術-北京林業(yè)大學 中國大學慕課答案
- 混凝土緩凝劑-標準
- 年生產(chǎn)一億粒阿莫西林膠囊(0.25)
- 危重患者的早期識別
- 環(huán)泊酚注射液-臨床用藥解讀
- 老年人護理需求評估表
評論
0/150
提交評論