




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
智能環保垃圾桶PAGEIV題目摘要:隨著城市化進程的加速和人口增長,垃圾處理問題越來越突出,如何實現垃圾分類和回收利用已成為各國政府和社會關注的焦點。為了解決這個問題,本文研究了一種基于Arduino的智能語音分類垃圾桶系統,該系統能夠實現語音識別和自動開蓋等功能,為垃圾分類和處理提供了一種新的思路。本文首先介紹了系統設計的背景和意義,重點介紹了垃圾分類和回收利用的重要性以及當前存在的問題和挑戰。接著,對相關研究進行了綜述,介紹了目前已有的一些智能垃圾桶系統的設計方案和技術路線。在此基礎上,本文提出了一種基于Arduino的智能語音分類垃圾桶系統的設計方案。系統硬件部分采用了Arduino開發板和HLK-V20語音識別模塊,Arduino開發板作為主控芯片,控制垃圾桶的開合,HLK-V20語音識別模塊用于語音識別。本文詳細介紹了系統硬件的設計和實現過程,包括Arduino和語音識別模塊的介紹、電路設計和硬件連接等。軟件部分采用了ArduinoIDE開發環境和語音識別庫進行開發,ArduinoIDE是一款基于C語言的開發環境,適合嵌入式開發。語音識別庫是一個開源的語音識別庫,能夠實現語音的識別和轉換。本文詳細介紹了軟件開發的流程和實現過程,包括語音識別庫的使用和代碼編寫等。在實驗方面,本文對系統進行了多個方面的測試和評估,包括語音識別準確率、垃圾桶開蓋實驗、響應速度和穩定性等。實驗結果表明,系統具有較高的語音識別準確率和開蓋準確率,響應速度快且穩定性好。通過本文的研究,我們成功實現了一種基于Arduino的智能語音分類垃圾桶系統,該系統可以有效地實現垃圾分類和處理。此外,該系統具有一定的創新性和應用價值,為智能垃圾分類技術的研究和應用提供了參考和支持。同時,本文還探討了該系統的不足之處和改進方向。關鍵詞:智能垃圾桶;Arduino;語音識別;垃圾分類;HLK-V20AbstractWiththeaccelerationofurbanizationandpopulationgrowth,theproblemofgarbagedisposalhasbecomeincreasinglyprominent.Howtorealizegarbageclassificationandrecyclinghasbecomeafocusofattentionforgovernmentsandsocietiesaroundtheworld.Inordertosolvethisproblem,thispaperstudiesanintelligentvoiceclassificationgarbagebinsystembasedonArduino,whichcanrealizefunctionssuchasvoicerecognitionandautomaticopening,providinganewideaforgarbageclassificationanddisposal.Thispaperfirstintroducesthebackgroundandsignificanceofthesystemdesign,focusingontheimportanceofgarbageclassificationandrecycling,aswellasthecurrentproblemsandchallenges.Then,relatedresearchisreviewed,introducingthedesignschemesandtechnicalroutesofsomeexistingintelligentgarbagebinsystems.Basedonthis,thispaperproposesadesignschemeforanintelligentvoiceclassificationgarbagebinsystembasedonArduino.ThehardwarepartofthesystemusesanArduinodevelopmentboardandanHLK-V20voicerecognitionmodule.TheArduinodevelopmentboardservesasthemaincontrolchip,controllingtheopeningandclosingofthegarbagebin,andtheHLK-V20voicerecognitionmoduleisusedforvoicerecognition.Thispaperdetailsthedesignandimplementationprocessofthesystemhardware,includingtheintroductionofArduinoandvoicerecognitionmodules,circuitdesign,andhardwareconnection.ThesoftwarepartusestheArduinoIDEdevelopmentenvironmentandvoicerecognitionlibraryfordevelopment.ArduinoIDEisadevelopmentenvironmentbasedontheClanguage,suitableforembeddeddevelopment.Thevoicerecognitionlibraryisanopen-sourcevoicerecognitionlibrarythatcanachievevoicerecognitionandconversion.Thispaperdetailsthesoftwaredevelopmentprocessandimplementation,includingtheuseofvoicerecognitionlibrariesandcodewriting.Intermsofexperiments,thispaperconductedvarioustestsandevaluationsofthesystem,includingvoicerecognitionaccuracy,garbagebinopeningexperiment,responsespeed,andstability.Theexperimentalresultsshowthatthesystemhashighvoicerecognitionaccuracyandopeningaccuracy,fastresponsespeed,andgoodstability.Throughtheresearchinthispaper,wehavesuccessfullyrealizedanintelligentvoiceclassificationgarbagebinsystembasedonArduino,whichcaneffectivelyrealizegarbageclassificationanddisposal.Inaddition,thesystemhascertaininnovationandapplicationvalue,providingreferenceandsupportfortheresearchandapplicationofintelligentgarbageclassificationtechnology.Atthesametime,thispaperalsodiscussestheshortcomingsandimprovementdirectionsofthesystem..Inconclusion,theintelligentgarbagebinsystembasedonsingle-chipmicrocomputerandRaspberryPiproposedinthisarticleachievesautomaticgarbageclassificationanduploadofgarbageinformationanddataprocessingthroughvisualrecognitionanddataprocessing.Thesystemhascertainpracticalityandapplicationprospectsandhasmadecertaincontributionstogarbageclassificationandenvironmentalprotection..Keywords:Intelligentgarbagebin,Arduino,voicerecognition,Vgarbageclassification,HLK-V20
西安文理學院本科畢業論文(設計)PAGE81緒論1.1研究背景在現今社會中,人類生產的垃圾逐漸多樣化、復雜化,許多垃圾含有化學物質或有害成分,如若垃圾沒有妥善處理,許多垃圾混雜在一起有可能會產生化學反應,產生出有害物質影響環境從而危機人類的身體健康[1]。而若對垃圾進行不針對的焚燒或掩埋,將會影響環境,浪費資源,所以盡早的進行垃圾分類是處理垃圾利用垃圾的有效解決方式。垃圾分類要長期、科學,如果光靠相關工作人員進行處理是不可行的,要靠社會中的每一位公民形成垃圾分類的意識與習慣[2]。垃圾分類的特點是回收、處理、利用具有高效性,最大限度降低二次污染的可能性。分類后的垃圾可以將有價值的垃圾進行二次利用,從而使資源可持續利用。總之,垃圾的分類與處理對經濟可持續發展和保護環境具有重大意義[3]。國外對垃圾桶控制系統的設計和研究相對較早。到目前為止,許多國家已經實現了垃圾的分類和回收利用,有的還廣泛采用了帶有太陽能設備的垃圾桶控制系統。具有這種控制系統的垃圾桶通常被稱為太陽能垃圾桶[1]。最早采用太陽能裝置控制系統的垃圾桶于2006年8月在美國紐約出現。由于它能容納比傳統垃圾桶多8倍的垃圾,被稱為“大胃王”。但是,根據其系統的具體工作原理,它的實際名稱應該是太陽能壓縮機。它的控制系統以太陽光為操作系統的能量來源,通過自動壓縮處理,將垃圾體積縮小到原來的八分之一。有了這個功能,這種垃圾桶可以容納1362升的垃圾。由于其容量大,也大大減少了環衛工人收集的垃圾數量但與此同時,其控制系統也存在一定的缺陷。首先,它的價格非常昂貴,其次,由于內部系統中高科技部件的比例很高,損壞后很難修復[2]。在“胃王”出現之后,英國劍橋大學在美國智能垃圾桶控制系統研究的基礎上,研發出了另一款更符合英國當地環境的太陽能垃圾桶控制系統。同樣的,這類垃圾桶的控制系統也會對里面的垃圾進行壓縮,但是要實現對垃圾的壓縮,只需要從外面接收到少量的陽光,因為這類垃圾桶控制系統的動力來自一組太陽能電池。這種設計使得這種類型的垃圾桶在英國多霧的天氣里也能正常工作。此外,在該垃圾桶的控制系統中還安裝了智能傳感器和無線發射器[3]。當環衛工的手機收到來自無線發射器的信息提醒他清理垃圾箱時,就意味著容器內的垃圾超過了預設范圍。接收到的信息是一個簡單的數字,例如1或2代表垃圾箱的編號,這樣環衛工人就知道該去哪個垃圾箱進行清潔。由于該系統具有向環衛工提供即時信息的功能,因此在劍橋市對這種垃圾桶進行了測試,結果令人滿意。現如今垃圾桶是生活中不可或缺的產品,隨著人們逐漸增加的環保意識,垃圾桶的款式與功能越來越多樣化。垃圾桶根據使用場合的不同,分為公共式、家庭式、醫用式;根據盛放形式的不同,分為獨立式、分類式;根據開啟方式有揭蓋式、踩踏式等[4]。隨著垃圾桶的跟新換代,智能垃圾桶逐漸走進人們的生活中,智能垃圾桶則可以通過自動分類和回收利用,減輕人力負擔,提高垃圾處理效率和準確率。本文旨在研究基于Arduino的智能語音分類垃圾桶系統,探索智能垃圾分類技術的應用,為城市垃圾處理提供一種新的解決方案。1.2研究目的和意義本文的研究目的是設計和開發基于Arduino的智能語音分類垃圾桶系統,該系統能夠實現自動語音識別和分類,為城市垃圾處理提供一種新的智能化解決方案。具體來說,本研究的目標包括以下方面:設計并實現基于Arduino的智能語音分類垃圾桶系統,該系統能夠自動識別語音指令,控制垃圾桶蓋的開合,并對垃圾進行分類。考慮到垃圾桶所處的環境和使用場景,系統需要具備較高的可靠性和穩定性,能夠在復雜的環境下正常工作。研究智能垃圾分類技術的應用和實現,探索如何通過智能化的方式提高垃圾處理的效率和準確率。本文的研究意義在于探索智能化垃圾分類技術的應用,為解決城市垃圾處理難題提供一種新的思路和方案。本研究開發的智能語音分類垃圾桶系統具有實際應用價值,可以有效減輕人工操作的負擔,提高垃圾處理的效率和準確率,具有較高的社會和經濟效益。同時,本研究也為智能化垃圾處理技術的研究和應用提供了一定的參考和借鑒價值。1.3研究內容和結構本文的研究內容主要包括以下三個部分:系統實現:本部分將介紹基于Arduino的智能語音分類垃圾桶系統的具體實現過程,包括硬件組裝和軟件編程兩個方面。此外,本部分還將介紹系統的測試和性能評估結果。系統應用:本部分將介紹基于Arduino的智能語音分類垃圾桶系統的實際應用情況,包括在城市垃圾處理中的應用和效果評估。此外,本部分還將探討智能化垃圾處理技術在未來的發展方向和應用前景。本文的結構如下:第一章:緒論。介紹研究背景、意義和目的,概述論文的研究內容和結構。第二章:相關技術和理論。介紹基于Arduino的智能語音分類垃圾桶系統的設計方案,包括硬件設計和軟件設計兩個方面并且介紹與本研究相關的技術理論和模塊介紹,包括Arduino開發環境、語音識別技術、舵機驅動模塊、指示電路模塊等內容。第三章:系統軟件設計。介紹基于Arduino的智能語音分類垃圾桶系統的具體實現過程,包括硬件組裝和軟件編程兩個方面。第四章:實驗和結果分析。介紹基于Arduino的智能語音分類垃圾桶系統的實際應用情況。第五章:總結與展望。總結本文的研究成果,探討智能化垃圾處理技術的發展前景和應用方向,提出今后研究的方向和建議。2智能垃圾桶架構設計2.1系統架構設計基于Arduino的智能語音分類垃圾桶系統的架構設計主要包括硬件設計和軟件設計兩個方面。硬件設計部分主要包括以下幾個模塊:垃圾桶、語音識別模塊、舵機控制模塊和電源模塊。垃圾桶模塊包括垃圾桶本身以及其上部的開蓋裝置。開蓋裝置可以通過舵機控制模塊實現自動開蓋和關閉的功能。語音識別模塊采用的是HLK-V20,它可以對人類的聲音進行識別和分類,從而實現對垃圾進行分類。電源模塊主要用于為整個系統提供電力,確保系統的穩定運行。軟件設計部分主要包括以下幾個模塊:語音識別模塊驅動程序、舵機控制程序和用戶交互程序。語音識別模塊驅動程序負責對語音識別模塊進行初始化和驅動,從而實現對聲音的采集和分類。舵機控制程序負責對舵機控制模塊進行控制,實現自動開蓋和關閉的功能。用戶交互程序負責接收用戶的指令,并將指令轉換為相應的控制信號,從而控制系統的運行。如圖所示:圖2.SEQ圖\*ARABIC\s11系統整體框圖2.2智能垃圾桶硬件設計2.2.1Arduino開發板模塊Arduino開發板是一種基于開源硬件平臺的微控制器開發板,由意大利開發商貢獻。Arduino開發板的設計目的是為了簡化微控制器的使用,使它更易于理解和使用[5]。Arduino開發板由一個微控制器(通常是AtmelAVR系列)。Arduino開發環境是一款開源軟件,可用于編寫、上傳和運行Arduino程序。Arduino開發板擁有一個簡單易學的編程語言,它基于C/C++語言,具有很強的易用性和靈活性[6]。用戶可以在Arduino開發環境中編寫自己的程序,并將其上傳到開發板上運行。Arduino開發板有許多型號和變種,例如ArduinoUno、ArduinoMega、ArduinoLeonardo等,它們在芯片性能、輸入輸出端口數等方面有所不同,可以根據具體的應用需求進行選擇[7]。此外,Arduino開發板還有大量的開源庫和示例代碼可供用戶參考和使用,這些資源使得用戶能夠快速開發自己的項目[8]。Arduino開發板是一種易于學習和使用的開源硬件平臺,它極大地降低了微控制器編程的門檻,為愛好者、學生和工程師提供了一個快速、靈活、低成本的開發平臺。圖2.2Arduino開發板實物圖圖2.3ArduinoNano管腳圖2.2.2HLK-V20語音識別模塊HLK-V20,一款基于非特定人自動語音識別技術的語音識別聲控芯片,提供了真正的單芯片語音識別解決方案。該芯片內部集成了高精度的模數轉換(A/D)和數模轉換(D/A)接口,不需要額外的Flash和RAM就能實現語音識別/聲控/人機對話功能。此外,它可以動態編輯識別的關鍵詞列表[9]。利用HLK-V20,無論是任何電子產品,甚至是以最簡單的51芯片為主控的系統,都可以輕易地實現語音識別/聲控/人機對話功能,為所有的電子產品增加語音用戶操作界面(VUI)。主要特性包括非特定人語音識別技術,無需用戶進行錄音訓練,可以動態編輯識別的關鍵詞列表,只需要將識別的關鍵詞以字符串形式發送給芯片,便可在下次識別時生效[10]。HLK-V20能夠設定自定義語音,其中可以自定義開機播報語、自定義語言喚醒詞、自定義語言命令詞、自定義TTS語音播報等。圖2.4HLK-V20語音識別模塊實物圖模塊有16個引腳,包括功放輸出、差分輸入與串口。具體定義說明見下表:引腳名稱類型說明1B8IGeneralpurposeinput/output2B7I/0Generalpurposeinput/output3B6I/0Generalpurposeinput/output4A27I/0Generalpurposeinput/output5A26I/0Generalpurposeinput/output6SPK+0功放差分輸出P端7SPK-0功放差分輸出N端8VCCPWR電源(3.3V-5V)9GNDGNDGND10B2I/0Generalpurposeinput/output11B3I/0Generalpurposeinput/output12A25I/0Generalpurposeinput/output13MIC-IMIC1差分輸入N端14MIC+IMIC1差分輸入P端15RXI/0Uartrx16TXI/0Uarttx表2.1引腳定義說明圖2.5模塊引腳分布圖在電路圖2.6的語音識別模塊使用中,僅需連接5V電源,然后將模塊的串行通信端口與Arduino的3號腳相連即可。圖2.6語音識別模塊原理圖2.2.3舵機驅動模塊本垃圾桶涉及到控制四臺舵機的運動。舵機是一種能夠根據位置進行伺服控制的驅動裝置,適合在需要不斷改變角度并能保持這種變化的控制系統中使用。它主要由外殼、電路板、驅動電機、減速器和位置檢測組件組成[11]。它的運行原理是通過接收器向舵機發送信號,然后由電路板上的集成電路驅動無心電機開始旋轉,通過減速齒輪將動力傳遞到擺桿,同時位置檢測器返回信號,確定是否已到達預定位置。位置檢測器實際上是一個可變電阻,當舵機轉動時,電阻值也會隨之改變,通過檢測電阻值就可以知道轉動的角度ADDINNE.Ref.{5390A051-8BB5-4447-C42}[12]。步機舵機驅動電路圖如圖2.7所示:圖2.7步機舵機驅動電路原理圖電源線和接地線用于為轉向機內的直流電機和控制線提供能量。電壓通常在4到6V之間,通常取5V。請注意,轉向機的電源應提供足夠的動力。控制線的輸入是具有可調寬度和20ms周期(即50Hz頻率)的周期性方波脈沖信號。當方波的脈沖寬度發生變化時,轉向軸的角度發生變化,角度變化與脈沖寬度的變化成正比。某型轉向器輸出軸的角度與輸入信號的脈沖寬度之間的關系如圖2.8所示。圖2.8舵機輸出轉角與輸入信號脈沖寬度的關系2.2.4指示電路模塊指示電路的作用是顯示垃圾桶的工作狀態,其中LED1表示可回收垃圾桶開蓋;LED2表述廚余垃圾桶開蓋;LED3表示其它垃圾桶開蓋;LED4表示有害垃圾桶開蓋。指示電路圖如圖2.9所示:圖2.9指示電路原理圖2.2.5按鍵電路模塊本設計采用的按鍵開關為6*6*4.3MM微動開關。按鍵使用溫度范圍是-25°~+-85°C;額定負荷為DC12V0.1A;接觸電阻<=0.03Ω;耐壓AC250V(50Hz)/MIN;絕緣電阻>=100MΩ;壽命100000times(次)。按鍵結構圖如圖2.10所示:圖2.10按鍵結構圖本設計有1個功能按鍵K1,它的作用是手動開/關垃圾桶按鍵,按下按鍵所有的垃圾桶都會打開蓋子,再按一下就會關閉蓋子。按鍵電路如圖2.11所示:圖2.11按鍵電路原理圖2.2.6電源電路模塊本設計的單片機是5V供電,語音識別模塊也是5V供電,所以這里僅需要一個5V直流供電即可。S1是電源開關,電容C1是電源濾波電容。穩壓電路如圖2.12所示:圖2.12電源電路2.2.7DC電源插座模塊DC-005為常見直流插座,插入配套φ5.5插頭后,可以自動斷開電路內部電源。引腳定義:1.電源正極;2.負極靜觸點;3.負極動觸點。當插頭插入時,頂部打開觸點3,切斷電路內部的電池負極路徑,內部電源停止供電,然后接入外部負極電源,1、3腳形成外部電源路徑。電氣接線原理如下圖所示:圖2.13電氣連接原理圖2.3軟件介紹2.3.1ArduinoIDE開發環境ArduinoIDE是一款開源的集成開發環境(IDE),用于編寫和上傳程序到Arduino開發板。它是一款跨平臺的軟件,支持Windows、MacOSX和Linux等操作系統ADDINNE.Ref.{533DFBF6-0299-4EF9-BE97-46B00C0C11AD}[14]。ArduinoIDE包含了一系列的工具,例如代碼編輯器、編譯器、串口監視器等,可以幫助用戶編寫、調試和上傳程序。同時,它還提供了許多示例程序和開源庫,用戶可以借鑒和使用這些資源來快速開發自己的項目。ArduinoIDE的編程語言基于C/C++,并添加了一些庫和函數,以便用戶可以輕松地控制Arduino的輸入輸出端口和其他外設。用戶可以通過IDE中的串口監視器,將程序輸出信息打印到計算機上,進行調試和驗證。ArduinoIDE還支持各種Arduino開發板的兼容性,并可以根據需要選擇合適的開發板。用戶可以通過IDE中的菜單欄進行設置,并自動配置編譯器、串口和其他參數ADDINNE.Ref.{CFC9C5E7-9602-4560-BFC8-70FD864CE93E}[15]。ArduinoIDE是一款簡單易用的開發環境,為Arduino開發者提供了一個良好的編程環境和開發工具,使得他們能夠快速、輕松地開發Arduino項目。2.3.2Arduino語音識別庫使用Arduino語音識別庫是一種在Arduino平臺上使用語音識別模塊的軟件庫。它包含了一系列的函數和API,可以幫助Arduino程序快速實現語音識別功能,例如識別特定的語音指令或控制外設ADDINNE.Ref.{D218584C-6B02-474C-BA56-6AB8B4CF9D0D}[16]。使用Arduino語音識別庫可以大大簡化開發過程,無需深入理解語音識別技術和協議,只需簡單地調用庫中的函數和API即可實現語音識別功能。在使用Arduino語音識別庫之前,需要將語音識別模塊與Arduino開發板進行連接,并配置串口參數等相關信息。接下來,用戶需要下載并安裝Arduino語音識別庫,將其導入到ArduinoIDE中,然后編寫相應的程序ADDINNE.Ref.{CE05F365-4BAB-4022-ACA4-A637860FA886}[17]。在編寫程序時,用戶需要先初始化語音識別模塊,并設置相應的參數,例如語音指令的識別模式、音量等級等。然后,用戶可以使用庫中提供的函數和API,監聽串口數據并實時處理語音指令。例如,用戶可以使用Serial.available()函數監聽串口輸入緩沖區中是否有數據,并使用Serial.read()函數讀取緩沖區中的數據。然后,用戶可以將讀取到的數據傳遞給語音識別庫中的函數進行識別和處理。Arduino語音識別庫是一種方便快捷的軟件庫,可以幫助Arduino程序員快速實現語音識別功能。使用它,開發人員可以更專注于業務邏輯的實現,而不需要關注太多語音識別的技術細節。2.4本章小結這一章將詳細討論語音識別垃圾箱控制系統的各硬件模塊設計。通過運用基礎知識和實際操作經驗,我們對此設計的硬件電路制定了具體的要求和實施步驟。參考各類相關文獻,我們逐步建立了各模塊的結構框架,并最終繪制了原理圖。評估一個硬件模塊設計的成功不僅取決于各模塊是否獨立實現了其功能,更重要的是它們是否能協同工作,共同完成整個硬件的功能。完成了硬件設計后,我們對整個設計的架構和目標有了更明確的理解,為之后的軟件設計工作打下了堅實的基礎。3智能垃圾桶系統軟件設計3.1程序流程設計程序是使許多不同的子模塊連接成一個整體的搭建,用程序實現系統的邏輯控制功能。語言識別模塊聽到語言命令,根據其內容控制輸出電路從而實現語音識別垃圾的功能。基于Arduino的智能語音分類垃圾桶系統采用了模塊化設計的思想,將整個系統分為多個模塊,每個模塊都有獨立的功能和任務。通過良好的協作和配合,實現了系統的高效穩定運行。本次設計用模塊化結構,程序由主程序和子程序構成。主程序流程圖如圖所示:圖3.1主程序流程圖3.2舵機子程序設計在這個設計中,我們使用Nano的D6/D9/D10/D11端口輸出PWM信號以控制舵機的轉動角度。其工作原理如下:PWM控制信號由微控制器發送到舵機的信號調制芯片,得到直流偏壓電壓。芯片內部有一個基準電路,生成周期為20ms,寬度為0.5ms的基準信號,并將獲得的直流偏壓電壓與電位器的電壓進行比較,得到電壓差輸出。最后,電壓差的正負決定電機的正反轉,通過級聯減速齒輪帶動電位器旋轉,當電機轉速穩定時,電位器旋轉使電壓差為0,電機停止旋轉,從而達到驅動垃圾桶蓋開關的目的。智能垃圾桶實現開蓋子的動作需將舵機旋轉到0°,那么只需要輸出一個占空比為1.5ms的控制脈沖,開蓋子程序流程圖如圖3.2所示:圖3.2開蓋子序流程智能垃圾桶實現關蓋子的動作需將舵機旋轉到-90°,那么只需要輸出一個占空比為0.5ms的控制脈沖,關蓋子程序流程圖如圖3.3所示:圖3.3關蓋子序流程3.3語音識別子程序設計模塊可配合微控制單元(MicrocontrollerUnit;MCU)的串口使用,語音模塊識別語音指令后通過串口輸出協議數據,MCU端串口接收語音模塊串口數據后進行處理。圖3.1模塊應用示例圖HLK-V20上電初始化后,系統開始周期性地讀取數據。若未收到數據,則清楚緩存。若收到數據則讀取指令并判斷垃圾類型,依次判斷指令內容,若為C4則執行有害垃圾開蓋,若否則步進1位,若為C5,則廚余垃圾開蓋;依次步進一位,以判斷是否為其他垃圾和可回收垃圾,并執行開蓋操作。語音識別流程圖如圖3.4所示:圖3.4語音識別程序流程圖3.4硬件系統實現實現基于Arduino的智能語音分類垃圾桶的硬件系統,需要按照以下步驟進行:第一步編寫Arduino代碼,實現語音識別和控制LED燈的功能。可以使用Arduino語音識別庫和串口通信庫來實現語音識別和與PC機的通信。在識別到特定的語音指令時,通過Arduino的數字輸出引腳控制LED燈的亮滅。第二步連接電路:將Arduino開發板與HLK-V20語音識別模塊、LED燈等硬件設備連接,按照上一步中給出的硬件連接步驟進行連接。上傳代碼將編寫好的Arduino代碼上傳到開發板中。測試系統:連接電源,使用錄制好的語音指令對系統進行測試。可以通過串口監視器查看Arduino的輸出信息,檢查系統是否能夠正確地識別語音指令并控制LED燈的亮滅。通過以上步驟,就可以實現基于Arduino的智能語音分類垃圾桶的硬件系統。示例代碼如下:#include<EEPROM.h>//EEPROM庫的頭文件#include<MsTimer2.h>//定時器庫的頭文件#include<Servo.h>//舵機庫的頭文件#include<SoftwareSerial.h>//串口頭文件//新建一個softSerial對象,rx:3,tx:13SoftwareSerialsoftSerial1(3,13);//手動開蓋按鈕constintkey_1=19;//垃圾桶開蓋指示constintled_1=5;constintled_2=7;constintled_3=8;constintled_4=12;//定義舵機Servoservo1;Servoservo2;Servoservo3;Servoservo4;//定義變量unsignedinttime_dj=20;//舵機工作時間unsignedinttime_ys=300;//關蓋延時時間unsignedintds1=0;//延時計數器unsignedintds2=0;unsignedintds3=0;unsignedintds4=0;unsignedcharflag_open1=1;//開蓋標志unsignedcharflag_open2=1;unsignedcharflag_open3=1;unsignedcharflag_open4=1;booleanflag_sd1=0;//手動標志booleanflag_sd2=0;booleanflag_sd3=0;booleanflag_sd4=0;booleanflag_yy1=0;//語音標志booleanflag_yy2=0;booleanflag_yy3=0;booleanflag_yy4=0;unsignedcharflag_key=3;}voideeprominit(void){unsignedchartest;test=EEPROM.read(20);while(test==0xff);}//主循環voidloop(){while(softSerial1.available()>0){UART_dat1[bz1]=softSerial1.read();//暫存串口數據switch(bz1){case0:if(UART_dat1[bz1]==0x43){bz1=1;}else{if(UART_dat1[bz1]==0x42){bz1=2;}else{bz1=0;}}break;case1://讀命令command1=UART_dat1[bz1]-0x30;bz1=0;break;case2://讀命令bommand=UART_dat1[bz1]-0x30;bz1=0;break;}}if(!digitalRead(key_1)&&flag_key==0){delay(50);//手動控制if(!digitalRead(key_1)){flag_key=1;}while(!digitalRead(key_1));}if(!digitalRead(key_1)&&flag_key==1){delay(50);if(!digitalRead(key_1)){flag_key=3.5硬件連接在實現基于Arduino的智能語音分類垃圾桶時,需要連接多個硬件設備,包括Arduino開發板和HLK-V20語音識別模塊。硬件連接的步驟如下:將Arduino開發板與電腦連接,打開ArduinoIDE,選擇合適的開發板類型和串口號,并上傳一個簡單的程序,以驗證連接是否成功。將HLK-V20語音識別模塊連接到Arduino開發板。需要將模塊的VCC引腳連接到Arduino的5V引腳,GND引腳連接到GND引腳,TXD引腳連接到Arduino的RX引腳,RXD引腳連接到Arduino的TX引腳。給HLK-V20模塊供電。可以使用一個9V電池或外部電源模塊來為模塊供電。連接一個LED燈到Arduino開發板上,以模擬控制垃圾桶蓋的開關。需要將LED的正極連接到Arduino的數字輸出引腳(例如D2),將負極連接到GND引腳。完成硬件連接后,使用ArduinoIDE打開示例程序,將其上傳到Arduino開發板上,并打開串口監視器,以驗證程序是否能夠正常工作。以上就是實現基于Arduino的智能語音分類垃圾桶的硬件連接步驟。在連接硬件時需要注意引腳的對應關系和電源的供應情況,以保證整個系統能夠正常工作。如圖所示:圖3.5硬件連接前期圖3.6硬件連接后期3.6硬件調試在實現基于Arduino的智能語音分類垃圾桶的硬件系統后,還需要進行硬件調試,以確保系統的正常運行。以下是一些常見的硬件調試步驟:電源檢查:首先需要檢查電源是否正常。如果電源不足或不穩定,可能會導致硬件設備不能正常工作。可以使用萬用表等工具來檢查電源的電壓和電流。信號檢查:接下來需要檢查信號是否正常。可以使用示波器等工具來檢查信號波形是否正確。如果信號波形不正確,可能是由于線路連接錯誤或設備損壞等原因導致。數據傳輸測試:如果系統中存在數據傳輸,還需要進行數據傳輸測試。可以使用串口監視器等工具來檢查數據傳輸是否正常。如果數據傳輸不正常,可能是由于串口通信配置錯誤或軟件錯誤等原因導致。通過以上硬件調試步驟,可以確保系統的正常運行,并且解決可能存在的硬件問題,使系統更加穩定可靠。若系統正常工作,當說出垃圾的名稱,垃圾桶判斷垃圾分類,隨之會相應的亮起開蓋指示燈并打開垃圾桶蓋。圖3.7硬件功能說明3.7軟件調試在開發基于Arduino的智能語音分類垃圾桶的軟件時,采用了以下軟件開發流程,需求分析:分析智能語音分類垃圾桶的功能需求,確定需要實現的功能。例如,識別特定的語音指令并執行對應的垃圾桶開蓋操作等。設計階段:設計軟件的結構,確定軟件模塊的功能和接口。例如,設計語音識別模塊和控制模塊,確定它們之間的交互方式和數據傳輸方式等。編碼階段:根據軟件設計階段的結果,進行編碼工作。例如,編寫語音識別模塊的代碼,編寫控制模塊的代碼,以及處理兩者之間交互的代碼等。調試階段:在編碼完成后,進行軟件調試,發現并解決軟件中存在的錯誤。例如,檢查語音識別模塊是否可以準確地識別語音指令,檢查控制模塊是否可以正常控制垃圾桶等。測試階段:對整個軟件系統進行測試,確保系統的功能和性能符合需求。例如,測試語音識別模塊和控制模塊之間的交互是否正常,測試垃圾桶是否可以正確開蓋等。部署階段:將軟件部署到硬件設備上,進行最終測試和優化。例如,將語音識別模塊和控制模塊燒錄到Arduino開發板上,進行最終的測試和優化等。維護階段:軟件部署后,需要進行維護工作,包括錯誤修復和性能優化等。例如,檢查軟件系統是否存在漏洞或者性能問題,及時修復和優化等。在軟件開發流程中,需求分析和設計階段同樣是非常重要的,因為這兩個階段的結果將直接影響后續的開發和測試工作。編碼、調試、測試、部署和維護階段則是具體的實現過程,需要花費相應的時間和精力進行開發。同時,在進行IDE環境的調試時,報錯是常有的事情,這需要我們仔細地尋找并解決問題。(1)一種常見的問題來源是標點符號的輸入環境。有時候,我們可能在全英文環境下編程,但卻使用了中文標點,這會導致程序報錯。盡管我們反復檢查代碼,可能都發現不了錯誤,因為語句本身并沒有問題,只是標點符號的環境出了問題。對于這類問題的解決方法,一種方式是確保在編程時始終保持同一種語言環境,例如全英文。對于中文的注釋,可以先用拼音表示,或者在完成一個完整的模塊編寫后,再進行語言環境的切換。這樣就可以避免此類錯誤的發生。(2)另一種常見的錯誤來源是數字和字母的混淆,特別是字母“O”和數字“0”。由于外觀上的相似,如果我們在編程時打字速度過快,就很容易按錯鍵盤。這種錯誤往往難以被肉眼發現,只有在調試環境下程序報錯時,我們才能察覺并進行修改。在編程過程中,我們需要對此保持警惕,盡量避免這種錯誤的發生。3.8本章小結軟件編程的主體部分是主程序的總體流程設計,它決定了軟件系統的質量和性能。以流程框架的形式呈現,使得編程人員對整個軟件編寫的條理更為明晰。同時,對主程序進行分析,對各個子程序進行詳細的文字描述和解釋,幫助我們在思維中形成清晰的編譯路徑。通過對軟件系統的分析,我們將復雜的整體分解為更易處理的部分,這在一定程度上降低了編程的難度,同時也增強了我們完成這個系統設計的信心。4實驗和結果分析4.1舵機模塊測試要在單片機系統中實現對伺服電機輸出角度的控制,首先必須完成兩個任務:一是產生基本的PWM周期信號。本設計的目標是產生一個20ms的周期信號;接下來是脈寬的調整,即微控制器模擬PWM信號的輸出并調整占空比。當系統中只需要控制一臺伺服電機時,采用的控制方法是改變單片機一個定時器中斷的初始值,將20ms分為兩個中斷執行時間,一個短時間中斷和一個長時間中斷。這不僅節省了硬件電路,而且減少了軟件開銷,從而提高了控制系統的效率和控制精度。如圖4.1所示,手動開/關功能正常,四個按鈕控制相應的垃圾桶開/關。圖4.1舵機驅動垃圾桶蓋4.2智能環保垃圾桶控制系統的功能調試功能演示:將系統連接到5V電源后,系統開始工作,并伴有語音提示:“歡迎來到分類垃圾桶”。當有人扔垃圾時,他們對著垃圾桶說:“垃圾桶,玉米”。垃圾桶能自動識別垃圾類型,并伴隨廣播語音:“廚余”和相應的指示燈亮,并控制舵機打開廚余垃圾桶;對垃圾桶說:“垃圾桶,報紙”,垃圾桶就能自動識別類型,廣播聲音:“可回收”和相應的指示燈亮,并控制舵機打開垃圾桶的可回收材料。圖4.2可回收垃圾開蓋圖4.3廚余垃圾開蓋圖4.4其它垃圾開蓋圖4.5有害垃圾開蓋4.1語音識別及語音播報測試在測試之前,首先需對日常生活的垃圾進行分類,為測試做數據準備。如圖所示垃圾分類數據庫:表4.1垃圾分類數據庫有害垃圾廚余垃圾其它垃圾可回收垃圾油漆桶菜葉衛生紙報紙打火機小蔥瓦片易拉罐塑料袋西瓜皮一次性筷子瓶子注射器蛋殼盤子舊書溫度計洋蔥渣土衣服農藥瓶香蕉皮磚塊泡沫塑料殺蟲劑骨頭陶瓷刀片測試腳本主要包括以下測試用例:垃圾識別功能測試:測試系統是否可以準確識別垃圾的名稱。垃圾桶自動開合功能測試:測試系統是否可以自動控制垃圾桶的開合。我們使用測試結果來評估系統的性能和可靠性,并提出改進建議。測試步驟如下:1.準備測試環境:將測試環境搭建好,包括電腦、垃圾桶模型。2.啟動系統:啟動系統,確保系統可以正常運行。3.測試垃圾識別功能:測試系統是否可以準確將不同名稱的垃圾打開相應的垃圾蓋。我們將說出30次不同類型的垃圾,并記錄每種垃圾的識別成功率。4.測試垃圾桶自動功能:測試系統是否可以控制垃圾桶的開合。我們將輸出30次控制脈沖,并記錄垃圾桶開合的準確性。表4.2智能垃圾桶系統測試結果垃圾種類投遞次數識別成功率開合準確性有害垃圾廚余垃圾303087%82%87%86%其它垃圾可回收垃圾303085%84%85%86%從測試過程種發現了以下問題:用戶未發出語音指令,舵機卻開始運轉當用戶在無意說話時系統就啟動了,進行不相關的語音播報當環境處于嘈雜的狀態時,垃圾桶識別成功率低針對以上問題,為提高垃圾桶識別垃圾成功率,優化系統性能,可通過一下解決方案提高垃圾桶抗干擾能力:采用口令模式,在使用垃圾桶之前先對垃圾桶呼叫“垃圾桶”,這時垃圾桶才會開啟通話進行人機交互設置好關鍵詞,如果識別到“盡量使用普通話語音,說話清楚、語速慢些,不說未設定的垃圾名稱,從而干擾系統因為垃圾桶經常在戶外,噪聲大,所以用戶應盡量保持可識別的距離內,進行語音垃圾投放4.4系統性能評估4.4.1相應速度測試測試通過本次實驗,我們對智能垃圾桶系統進行了測試,得到了一系列測試結果。根據測試結果,我們可以得出以下結論:基于單片機和HLK-V20的智能垃圾桶系統可以實現垃圾名稱分類、桶蓋開合功能。響應速度測試可以用來檢測系統對語音指令的響應速度,下面是簡單的測試步驟:打開串口監視器,設置波特率為9600,并輸入指令"OPEN"。此時應該能夠看到系統回復"Openingthetrashcan"的信息。測量從語音指令輸入到舵機開始運動的時間間隔,即為系統的響應速度。可以使用計時器或者示波器等工具進行測量。根據需要進行調整和優化,確保系統的響應速度在合理范圍內,并且能夠準確響應用戶的語音指令。在實驗中,我們成功地將Arduino開發板和HLK-V20語音識別模塊集成到一起,實現了基于語音指令控制垃圾桶蓋子開閉的功能。通過響應速度測試,我們發現系統能夠快速響應用戶的語音指令,平均響應時間約為500ms,能夠滿足實際使用的要求。在實際應用中,基于語音識別的智能垃圾桶可以提高垃圾分類的效率和準確度,同時也能夠方便老年人和身體不便的人群使用。然而,由于語音識別技術的局限性,系統還存在一些缺陷和改進的空間。例如,環境噪聲、口音等因素都可能影響語音識別的準確性,需要進一步進行優化和改進。4.4.2系統穩定性測試系統穩定性測試是為了檢測系統的長時間穩定性和可靠性。在該測試中,系統會持續運行一段時間,觀察系統在運行過程中是否存在問題或異常,以及系統
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 軟件設計師考試全面分析試題及答案
- 網絡互聯技術及其應用試題及答案
- 政治參與中的意愿與行為研究試題及答案
- 西方政治制度與國際法的重要性及影響分析試題及答案
- 團隊文化在項目管理中的作用試題及答案
- 政治算法在民主決策中的應用試題及答案
- 壹釋機電工程考試內容知識的核心要素試題及答案
- 公共政策解析與評估試題及答案
- 新時代背景下公共政策的創新研究試題及答案
- 透視2025年西方政治制度的社會結構試題及答案
- GA 1517-2018金銀珠寶營業場所安全防范要求
- 關建過程明細表
- 《飛翔的女武神》課件
- 胎盤早剝預案演練腳本
- 中鐵項目XXXX年2月份經濟活動分析
- 老年患者術前評估中國專家建議
- 朗文定義詞匯表中英對照
- 2022年學校空調使用管理制度
- 抗震支架設計流程
- 塑料包裝袋購銷合同
- 生產良率系統統計表
評論
0/150
提交評論