智能環(huán)保垃圾桶控制系統(tǒng)設(shè)計_第1頁
智能環(huán)保垃圾桶控制系統(tǒng)設(shè)計_第2頁
智能環(huán)保垃圾桶控制系統(tǒng)設(shè)計_第3頁
智能環(huán)保垃圾桶控制系統(tǒng)設(shè)計_第4頁
智能環(huán)保垃圾桶控制系統(tǒng)設(shè)計_第5頁
已閱讀5頁,還剩33頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

智能環(huán)保垃圾桶PAGEIV題目摘要:隨著城市化進程的加速和人口增長,垃圾處理問題越來越突出,如何實現(xiàn)垃圾分類和回收利用已成為各國政府和社會關(guān)注的焦點。為了解決這個問題,本文研究了一種基于Arduino的智能語音分類垃圾桶系統(tǒng),該系統(tǒng)能夠?qū)崿F(xiàn)語音識別和自動開蓋等功能,為垃圾分類和處理提供了一種新的思路。本文首先介紹了系統(tǒng)設(shè)計的背景和意義,重點介紹了垃圾分類和回收利用的重要性以及當前存在的問題和挑戰(zhàn)。接著,對相關(guān)研究進行了綜述,介紹了目前已有的一些智能垃圾桶系統(tǒng)的設(shè)計方案和技術(shù)路線。在此基礎(chǔ)上,本文提出了一種基于Arduino的智能語音分類垃圾桶系統(tǒng)的設(shè)計方案。系統(tǒng)硬件部分采用了Arduino開發(fā)板和HLK-V20語音識別模塊,Arduino開發(fā)板作為主控芯片,控制垃圾桶的開合,HLK-V20語音識別模塊用于語音識別。本文詳細介紹了系統(tǒng)硬件的設(shè)計和實現(xiàn)過程,包括Arduino和語音識別模塊的介紹、電路設(shè)計和硬件連接等。軟件部分采用了ArduinoIDE開發(fā)環(huán)境和語音識別庫進行開發(fā),ArduinoIDE是一款基于C語言的開發(fā)環(huán)境,適合嵌入式開發(fā)。語音識別庫是一個開源的語音識別庫,能夠?qū)崿F(xiàn)語音的識別和轉(zhuǎn)換。本文詳細介紹了軟件開發(fā)的流程和實現(xiàn)過程,包括語音識別庫的使用和代碼編寫等。在實驗方面,本文對系統(tǒng)進行了多個方面的測試和評估,包括語音識別準確率、垃圾桶開蓋實驗、響應(yīng)速度和穩(wěn)定性等。實驗結(jié)果表明,系統(tǒng)具有較高的語音識別準確率和開蓋準確率,響應(yīng)速度快且穩(wěn)定性好。通過本文的研究,我們成功實現(xiàn)了一種基于Arduino的智能語音分類垃圾桶系統(tǒng),該系統(tǒng)可以有效地實現(xiàn)垃圾分類和處理。此外,該系統(tǒng)具有一定的創(chuàng)新性和應(yīng)用價值,為智能垃圾分類技術(shù)的研究和應(yīng)用提供了參考和支持。同時,本文還探討了該系統(tǒng)的不足之處和改進方向。關(guān)鍵詞:智能垃圾桶;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

西安文理學(xué)院本科畢業(yè)論文(設(shè)計)PAGE81緒論1.1研究背景在現(xiàn)今社會中,人類生產(chǎn)的垃圾逐漸多樣化、復(fù)雜化,許多垃圾含有化學(xué)物質(zhì)或有害成分,如若垃圾沒有妥善處理,許多垃圾混雜在一起有可能會產(chǎn)生化學(xué)反應(yīng),產(chǎn)生出有害物質(zhì)影響環(huán)境從而危機人類的身體健康[1]。而若對垃圾進行不針對的焚燒或掩埋,將會影響環(huán)境,浪費資源,所以盡早的進行垃圾分類是處理垃圾利用垃圾的有效解決方式。垃圾分類要長期、科學(xué),如果光靠相關(guān)工作人員進行處理是不可行的,要靠社會中的每一位公民形成垃圾分類的意識與習(xí)慣[2]。垃圾分類的特點是回收、處理、利用具有高效性,最大限度降低二次污染的可能性。分類后的垃圾可以將有價值的垃圾進行二次利用,從而使資源可持續(xù)利用??傊?,垃圾的分類與處理對經(jīng)濟可持續(xù)發(fā)展和保護環(huán)境具有重大意義[3]。國外對垃圾桶控制系統(tǒng)的設(shè)計和研究相對較早。到目前為止,許多國家已經(jīng)實現(xiàn)了垃圾的分類和回收利用,有的還廣泛采用了帶有太陽能設(shè)備的垃圾桶控制系統(tǒng)。具有這種控制系統(tǒng)的垃圾桶通常被稱為太陽能垃圾桶[1]。最早采用太陽能裝置控制系統(tǒng)的垃圾桶于2006年8月在美國紐約出現(xiàn)。由于它能容納比傳統(tǒng)垃圾桶多8倍的垃圾,被稱為“大胃王”。但是,根據(jù)其系統(tǒng)的具體工作原理,它的實際名稱應(yīng)該是太陽能壓縮機。它的控制系統(tǒng)以太陽光為操作系統(tǒng)的能量來源,通過自動壓縮處理,將垃圾體積縮小到原來的八分之一。有了這個功能,這種垃圾桶可以容納1362升的垃圾。由于其容量大,也大大減少了環(huán)衛(wèi)工人收集的垃圾數(shù)量但與此同時,其控制系統(tǒng)也存在一定的缺陷。首先,它的價格非常昂貴,其次,由于內(nèi)部系統(tǒng)中高科技部件的比例很高,損壞后很難修復(fù)[2]。在“胃王”出現(xiàn)之后,英國劍橋大學(xué)在美國智能垃圾桶控制系統(tǒng)研究的基礎(chǔ)上,研發(fā)出了另一款更符合英國當?shù)丨h(huán)境的太陽能垃圾桶控制系統(tǒng)。同樣的,這類垃圾桶的控制系統(tǒng)也會對里面的垃圾進行壓縮,但是要實現(xiàn)對垃圾的壓縮,只需要從外面接收到少量的陽光,因為這類垃圾桶控制系統(tǒng)的動力來自一組太陽能電池。這種設(shè)計使得這種類型的垃圾桶在英國多霧的天氣里也能正常工作。此外,在該垃圾桶的控制系統(tǒng)中還安裝了智能傳感器和無線發(fā)射器[3]。當環(huán)衛(wèi)工的手機收到來自無線發(fā)射器的信息提醒他清理垃圾箱時,就意味著容器內(nèi)的垃圾超過了預(yù)設(shè)范圍。接收到的信息是一個簡單的數(shù)字,例如1或2代表垃圾箱的編號,這樣環(huán)衛(wèi)工人就知道該去哪個垃圾箱進行清潔。由于該系統(tǒng)具有向環(huán)衛(wèi)工提供即時信息的功能,因此在劍橋市對這種垃圾桶進行了測試,結(jié)果令人滿意?,F(xiàn)如今垃圾桶是生活中不可或缺的產(chǎn)品,隨著人們逐漸增加的環(huán)保意識,垃圾桶的款式與功能越來越多樣化。垃圾桶根據(jù)使用場合的不同,分為公共式、家庭式、醫(yī)用式;根據(jù)盛放形式的不同,分為獨立式、分類式;根據(jù)開啟方式有揭蓋式、踩踏式等[4]。隨著垃圾桶的跟新?lián)Q代,智能垃圾桶逐漸走進人們的生活中,智能垃圾桶則可以通過自動分類和回收利用,減輕人力負擔,提高垃圾處理效率和準確率。本文旨在研究基于Arduino的智能語音分類垃圾桶系統(tǒng),探索智能垃圾分類技術(shù)的應(yīng)用,為城市垃圾處理提供一種新的解決方案。1.2研究目的和意義本文的研究目的是設(shè)計和開發(fā)基于Arduino的智能語音分類垃圾桶系統(tǒng),該系統(tǒng)能夠?qū)崿F(xiàn)自動語音識別和分類,為城市垃圾處理提供一種新的智能化解決方案。具體來說,本研究的目標包括以下方面:設(shè)計并實現(xiàn)基于Arduino的智能語音分類垃圾桶系統(tǒng),該系統(tǒng)能夠自動識別語音指令,控制垃圾桶蓋的開合,并對垃圾進行分類。考慮到垃圾桶所處的環(huán)境和使用場景,系統(tǒng)需要具備較高的可靠性和穩(wěn)定性,能夠在復(fù)雜的環(huán)境下正常工作。研究智能垃圾分類技術(shù)的應(yīng)用和實現(xiàn),探索如何通過智能化的方式提高垃圾處理的效率和準確率。本文的研究意義在于探索智能化垃圾分類技術(shù)的應(yīng)用,為解決城市垃圾處理難題提供一種新的思路和方案。本研究開發(fā)的智能語音分類垃圾桶系統(tǒng)具有實際應(yīng)用價值,可以有效減輕人工操作的負擔,提高垃圾處理的效率和準確率,具有較高的社會和經(jīng)濟效益。同時,本研究也為智能化垃圾處理技術(shù)的研究和應(yīng)用提供了一定的參考和借鑒價值。1.3研究內(nèi)容和結(jié)構(gòu)本文的研究內(nèi)容主要包括以下三個部分:系統(tǒng)實現(xiàn):本部分將介紹基于Arduino的智能語音分類垃圾桶系統(tǒng)的具體實現(xiàn)過程,包括硬件組裝和軟件編程兩個方面。此外,本部分還將介紹系統(tǒng)的測試和性能評估結(jié)果。系統(tǒng)應(yīng)用:本部分將介紹基于Arduino的智能語音分類垃圾桶系統(tǒng)的實際應(yīng)用情況,包括在城市垃圾處理中的應(yīng)用和效果評估。此外,本部分還將探討智能化垃圾處理技術(shù)在未來的發(fā)展方向和應(yīng)用前景。本文的結(jié)構(gòu)如下:第一章:緒論。介紹研究背景、意義和目的,概述論文的研究內(nèi)容和結(jié)構(gòu)。第二章:相關(guān)技術(shù)和理論。介紹基于Arduino的智能語音分類垃圾桶系統(tǒng)的設(shè)計方案,包括硬件設(shè)計和軟件設(shè)計兩個方面并且介紹與本研究相關(guān)的技術(shù)理論和模塊介紹,包括Arduino開發(fā)環(huán)境、語音識別技術(shù)、舵機驅(qū)動模塊、指示電路模塊等內(nèi)容。第三章:系統(tǒng)軟件設(shè)計。介紹基于Arduino的智能語音分類垃圾桶系統(tǒng)的具體實現(xiàn)過程,包括硬件組裝和軟件編程兩個方面。第四章:實驗和結(jié)果分析。介紹基于Arduino的智能語音分類垃圾桶系統(tǒng)的實際應(yīng)用情況。第五章:總結(jié)與展望。總結(jié)本文的研究成果,探討智能化垃圾處理技術(shù)的發(fā)展前景和應(yīng)用方向,提出今后研究的方向和建議。2智能垃圾桶架構(gòu)設(shè)計2.1系統(tǒng)架構(gòu)設(shè)計基于Arduino的智能語音分類垃圾桶系統(tǒng)的架構(gòu)設(shè)計主要包括硬件設(shè)計和軟件設(shè)計兩個方面。硬件設(shè)計部分主要包括以下幾個模塊:垃圾桶、語音識別模塊、舵機控制模塊和電源模塊。垃圾桶模塊包括垃圾桶本身以及其上部的開蓋裝置。開蓋裝置可以通過舵機控制模塊實現(xiàn)自動開蓋和關(guān)閉的功能。語音識別模塊采用的是HLK-V20,它可以對人類的聲音進行識別和分類,從而實現(xiàn)對垃圾進行分類。電源模塊主要用于為整個系統(tǒng)提供電力,確保系統(tǒng)的穩(wěn)定運行。軟件設(shè)計部分主要包括以下幾個模塊:語音識別模塊驅(qū)動程序、舵機控制程序和用戶交互程序。語音識別模塊驅(qū)動程序負責(zé)對語音識別模塊進行初始化和驅(qū)動,從而實現(xiàn)對聲音的采集和分類。舵機控制程序負責(zé)對舵機控制模塊進行控制,實現(xiàn)自動開蓋和關(guān)閉的功能。用戶交互程序負責(zé)接收用戶的指令,并將指令轉(zhuǎn)換為相應(yīng)的控制信號,從而控制系統(tǒng)的運行。如圖所示:圖2.SEQ圖\*ARABIC\s11系統(tǒng)整體框圖2.2智能垃圾桶硬件設(shè)計2.2.1Arduino開發(fā)板模塊Arduino開發(fā)板是一種基于開源硬件平臺的微控制器開發(fā)板,由意大利開發(fā)商貢獻。Arduino開發(fā)板的設(shè)計目的是為了簡化微控制器的使用,使它更易于理解和使用[5]。Arduino開發(fā)板由一個微控制器(通常是AtmelAVR系列)。Arduino開發(fā)環(huán)境是一款開源軟件,可用于編寫、上傳和運行Arduino程序。Arduino開發(fā)板擁有一個簡單易學(xué)的編程語言,它基于C/C++語言,具有很強的易用性和靈活性[6]。用戶可以在Arduino開發(fā)環(huán)境中編寫自己的程序,并將其上傳到開發(fā)板上運行。Arduino開發(fā)板有許多型號和變種,例如ArduinoUno、ArduinoMega、ArduinoLeonardo等,它們在芯片性能、輸入輸出端口數(shù)等方面有所不同,可以根據(jù)具體的應(yīng)用需求進行選擇[7]。此外,Arduino開發(fā)板還有大量的開源庫和示例代碼可供用戶參考和使用,這些資源使得用戶能夠快速開發(fā)自己的項目[8]。Arduino開發(fā)板是一種易于學(xué)習(xí)和使用的開源硬件平臺,它極大地降低了微控制器編程的門檻,為愛好者、學(xué)生和工程師提供了一個快速、靈活、低成本的開發(fā)平臺。圖2.2Arduino開發(fā)板實物圖圖2.3ArduinoNano管腳圖2.2.2HLK-V20語音識別模塊HLK-V20,一款基于非特定人自動語音識別技術(shù)的語音識別聲控芯片,提供了真正的單芯片語音識別解決方案。該芯片內(nèi)部集成了高精度的模數(shù)轉(zhuǎn)換(A/D)和數(shù)模轉(zhuǎn)換(D/A)接口,不需要額外的Flash和RAM就能實現(xiàn)語音識別/聲控/人機對話功能。此外,它可以動態(tài)編輯識別的關(guān)鍵詞列表[9]。利用HLK-V20,無論是任何電子產(chǎn)品,甚至是以最簡單的51芯片為主控的系統(tǒng),都可以輕易地實現(xiàn)語音識別/聲控/人機對話功能,為所有的電子產(chǎn)品增加語音用戶操作界面(VUI)。主要特性包括非特定人語音識別技術(shù),無需用戶進行錄音訓(xùn)練,可以動態(tài)編輯識別的關(guān)鍵詞列表,只需要將識別的關(guān)鍵詞以字符串形式發(fā)送給芯片,便可在下次識別時生效[10]。HLK-V20能夠設(shè)定自定義語音,其中可以自定義開機播報語、自定義語言喚醒詞、自定義語言命令詞、自定義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舵機驅(qū)動模塊本垃圾桶涉及到控制四臺舵機的運動。舵機是一種能夠根據(jù)位置進行伺服控制的驅(qū)動裝置,適合在需要不斷改變角度并能保持這種變化的控制系統(tǒng)中使用。它主要由外殼、電路板、驅(qū)動電機、減速器和位置檢測組件組成[11]。它的運行原理是通過接收器向舵機發(fā)送信號,然后由電路板上的集成電路驅(qū)動無心電機開始旋轉(zhuǎn),通過減速齒輪將動力傳遞到擺桿,同時位置檢測器返回信號,確定是否已到達預(yù)定位置。位置檢測器實際上是一個可變電阻,當舵機轉(zhuǎn)動時,電阻值也會隨之改變,通過檢測電阻值就可以知道轉(zhuǎn)動的角度ADDINNE.Ref.{5390A051-8BB5-4447-C42}[12]。步機舵機驅(qū)動電路圖如圖2.7所示:圖2.7步機舵機驅(qū)動電路原理圖電源線和接地線用于為轉(zhuǎn)向機內(nèi)的直流電機和控制線提供能量。電壓通常在4到6V之間,通常取5V。請注意,轉(zhuǎn)向機的電源應(yīng)提供足夠的動力??刂凭€的輸入是具有可調(diào)寬度和20ms周期(即50Hz頻率)的周期性方波脈沖信號。當方波的脈沖寬度發(fā)生變化時,轉(zhuǎn)向軸的角度發(fā)生變化,角度變化與脈沖寬度的變化成正比。某型轉(zhuǎn)向器輸出軸的角度與輸入信號的脈沖寬度之間的關(guān)系如圖2.8所示。圖2.8舵機輸出轉(zhuǎn)角與輸入信號脈沖寬度的關(guān)系2.2.4指示電路模塊指示電路的作用是顯示垃圾桶的工作狀態(tài),其中LED1表示可回收垃圾桶開蓋;LED2表述廚余垃圾桶開蓋;LED3表示其它垃圾桶開蓋;LED4表示有害垃圾桶開蓋。指示電路圖如圖2.9所示:圖2.9指示電路原理圖2.2.5按鍵電路模塊本設(shè)計采用的按鍵開關(guān)為6*6*4.3MM微動開關(guān)。按鍵使用溫度范圍是-25°~+-85°C;額定負荷為DC12V0.1A;接觸電阻<=0.03Ω;耐壓AC250V(50Hz)/MIN;絕緣電阻>=100MΩ;壽命100000times(次)。按鍵結(jié)構(gòu)圖如圖2.10所示:圖2.10按鍵結(jié)構(gòu)圖本設(shè)計有1個功能按鍵K1,它的作用是手動開/關(guān)垃圾桶按鍵,按下按鍵所有的垃圾桶都會打開蓋子,再按一下就會關(guān)閉蓋子。按鍵電路如圖2.11所示:圖2.11按鍵電路原理圖2.2.6電源電路模塊本設(shè)計的單片機是5V供電,語音識別模塊也是5V供電,所以這里僅需要一個5V直流供電即可。S1是電源開關(guān),電容C1是電源濾波電容。穩(wěn)壓電路如圖2.12所示:圖2.12電源電路2.2.7DC電源插座模塊DC-005為常見直流插座,插入配套φ5.5插頭后,可以自動斷開電路內(nèi)部電源。引腳定義:1.電源正極;2.負極靜觸點;3.負極動觸點。當插頭插入時,頂部打開觸點3,切斷電路內(nèi)部的電池負極路徑,內(nèi)部電源停止供電,然后接入外部負極電源,1、3腳形成外部電源路徑。電氣接線原理如下圖所示:圖2.13電氣連接原理圖2.3軟件介紹2.3.1ArduinoIDE開發(fā)環(huán)境ArduinoIDE是一款開源的集成開發(fā)環(huán)境(IDE),用于編寫和上傳程序到Arduino開發(fā)板。它是一款跨平臺的軟件,支持Windows、MacOSX和Linux等操作系統(tǒng)ADDINNE.Ref.{533DFBF6-0299-4EF9-BE97-46B00C0C11AD}[14]。ArduinoIDE包含了一系列的工具,例如代碼編輯器、編譯器、串口監(jiān)視器等,可以幫助用戶編寫、調(diào)試和上傳程序。同時,它還提供了許多示例程序和開源庫,用戶可以借鑒和使用這些資源來快速開發(fā)自己的項目。ArduinoIDE的編程語言基于C/C++,并添加了一些庫和函數(shù),以便用戶可以輕松地控制Arduino的輸入輸出端口和其他外設(shè)。用戶可以通過IDE中的串口監(jiān)視器,將程序輸出信息打印到計算機上,進行調(diào)試和驗證。ArduinoIDE還支持各種Arduino開發(fā)板的兼容性,并可以根據(jù)需要選擇合適的開發(fā)板。用戶可以通過IDE中的菜單欄進行設(shè)置,并自動配置編譯器、串口和其他參數(shù)ADDINNE.Ref.{CFC9C5E7-9602-4560-BFC8-70FD864CE93E}[15]。ArduinoIDE是一款簡單易用的開發(fā)環(huán)境,為Arduino開發(fā)者提供了一個良好的編程環(huán)境和開發(fā)工具,使得他們能夠快速、輕松地開發(fā)Arduino項目。2.3.2Arduino語音識別庫使用Arduino語音識別庫是一種在Arduino平臺上使用語音識別模塊的軟件庫。它包含了一系列的函數(shù)和API,可以幫助Arduino程序快速實現(xiàn)語音識別功能,例如識別特定的語音指令或控制外設(shè)ADDINNE.Ref.{D218584C-6B02-474C-BA56-6AB8B4CF9D0D}[16]。使用Arduino語音識別庫可以大大簡化開發(fā)過程,無需深入理解語音識別技術(shù)和協(xié)議,只需簡單地調(diào)用庫中的函數(shù)和API即可實現(xiàn)語音識別功能。在使用Arduino語音識別庫之前,需要將語音識別模塊與Arduino開發(fā)板進行連接,并配置串口參數(shù)等相關(guān)信息。接下來,用戶需要下載并安裝Arduino語音識別庫,將其導(dǎo)入到ArduinoIDE中,然后編寫相應(yīng)的程序ADDINNE.Ref.{CE05F365-4BAB-4022-ACA4-A637860FA886}[17]。在編寫程序時,用戶需要先初始化語音識別模塊,并設(shè)置相應(yīng)的參數(shù),例如語音指令的識別模式、音量等級等。然后,用戶可以使用庫中提供的函數(shù)和API,監(jiān)聽串口數(shù)據(jù)并實時處理語音指令。例如,用戶可以使用Serial.available()函數(shù)監(jiān)聽串口輸入緩沖區(qū)中是否有數(shù)據(jù),并使用Serial.read()函數(shù)讀取緩沖區(qū)中的數(shù)據(jù)。然后,用戶可以將讀取到的數(shù)據(jù)傳遞給語音識別庫中的函數(shù)進行識別和處理。Arduino語音識別庫是一種方便快捷的軟件庫,可以幫助Arduino程序員快速實現(xiàn)語音識別功能。使用它,開發(fā)人員可以更專注于業(yè)務(wù)邏輯的實現(xiàn),而不需要關(guān)注太多語音識別的技術(shù)細節(jié)。2.4本章小結(jié)這一章將詳細討論語音識別垃圾箱控制系統(tǒng)的各硬件模塊設(shè)計。通過運用基礎(chǔ)知識和實際操作經(jīng)驗,我們對此設(shè)計的硬件電路制定了具體的要求和實施步驟。參考各類相關(guān)文獻,我們逐步建立了各模塊的結(jié)構(gòu)框架,并最終繪制了原理圖。評估一個硬件模塊設(shè)計的成功不僅取決于各模塊是否獨立實現(xiàn)了其功能,更重要的是它們是否能協(xié)同工作,共同完成整個硬件的功能。完成了硬件設(shè)計后,我們對整個設(shè)計的架構(gòu)和目標有了更明確的理解,為之后的軟件設(shè)計工作打下了堅實的基礎(chǔ)。3智能垃圾桶系統(tǒng)軟件設(shè)計3.1程序流程設(shè)計程序是使許多不同的子模塊連接成一個整體的搭建,用程序?qū)崿F(xiàn)系統(tǒng)的邏輯控制功能。語言識別模塊聽到語言命令,根據(jù)其內(nèi)容控制輸出電路從而實現(xiàn)語音識別垃圾的功能。基于Arduino的智能語音分類垃圾桶系統(tǒng)采用了模塊化設(shè)計的思想,將整個系統(tǒng)分為多個模塊,每個模塊都有獨立的功能和任務(wù)。通過良好的協(xié)作和配合,實現(xiàn)了系統(tǒng)的高效穩(wěn)定運行。本次設(shè)計用模塊化結(jié)構(gòu),程序由主程序和子程序構(gòu)成。主程序流程圖如圖所示:圖3.1主程序流程圖3.2舵機子程序設(shè)計在這個設(shè)計中,我們使用Nano的D6/D9/D10/D11端口輸出PWM信號以控制舵機的轉(zhuǎn)動角度。其工作原理如下:PWM控制信號由微控制器發(fā)送到舵機的信號調(diào)制芯片,得到直流偏壓電壓。芯片內(nèi)部有一個基準電路,生成周期為20ms,寬度為0.5ms的基準信號,并將獲得的直流偏壓電壓與電位器的電壓進行比較,得到電壓差輸出。最后,電壓差的正負決定電機的正反轉(zhuǎn),通過級聯(lián)減速齒輪帶動電位器旋轉(zhuǎn),當電機轉(zhuǎn)速穩(wěn)定時,電位器旋轉(zhuǎn)使電壓差為0,電機停止旋轉(zhuǎn),從而達到驅(qū)動垃圾桶蓋開關(guān)的目的。智能垃圾桶實現(xiàn)開蓋子的動作需將舵機旋轉(zhuǎn)到0°,那么只需要輸出一個占空比為1.5ms的控制脈沖,開蓋子程序流程圖如圖3.2所示:圖3.2開蓋子序流程智能垃圾桶實現(xiàn)關(guān)蓋子的動作需將舵機旋轉(zhuǎn)到-90°,那么只需要輸出一個占空比為0.5ms的控制脈沖,關(guān)蓋子程序流程圖如圖3.3所示:圖3.3關(guān)蓋子序流程3.3語音識別子程序設(shè)計模塊可配合微控制單元(MicrocontrollerUnit;MCU)的串口使用,語音模塊識別語音指令后通過串口輸出協(xié)議數(shù)據(jù),MCU端串口接收語音模塊串口數(shù)據(jù)后進行處理。圖3.1模塊應(yīng)用示例圖HLK-V20上電初始化后,系統(tǒng)開始周期性地讀取數(shù)據(jù)。若未收到數(shù)據(jù),則清楚緩存。若收到數(shù)據(jù)則讀取指令并判斷垃圾類型,依次判斷指令內(nèi)容,若為C4則執(zhí)行有害垃圾開蓋,若否則步進1位,若為C5,則廚余垃圾開蓋;依次步進一位,以判斷是否為其他垃圾和可回收垃圾,并執(zhí)行開蓋操作。語音識別流程圖如圖3.4所示:圖3.4語音識別程序流程圖3.4硬件系統(tǒng)實現(xiàn)實現(xiàn)基于Arduino的智能語音分類垃圾桶的硬件系統(tǒng),需要按照以下步驟進行:第一步編寫Arduino代碼,實現(xiàn)語音識別和控制LED燈的功能??梢允褂肁rduino語音識別庫和串口通信庫來實現(xiàn)語音識別和與PC機的通信。在識別到特定的語音指令時,通過Arduino的數(shù)字輸出引腳控制LED燈的亮滅。第二步連接電路:將Arduino開發(fā)板與HLK-V20語音識別模塊、LED燈等硬件設(shè)備連接,按照上一步中給出的硬件連接步驟進行連接。上傳代碼將編寫好的Arduino代碼上傳到開發(fā)板中。測試系統(tǒng):連接電源,使用錄制好的語音指令對系統(tǒng)進行測試??梢酝ㄟ^串口監(jiān)視器查看Arduino的輸出信息,檢查系統(tǒng)是否能夠正確地識別語音指令并控制LED燈的亮滅。通過以上步驟,就可以實現(xiàn)基于Arduino的智能語音分類垃圾桶的硬件系統(tǒng)。示例代碼如下:#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;//關(guān)蓋延時時間unsignedintds1=0;//延時計數(shù)器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);}//主循環(huán)voidloop(){while(softSerial1.available()>0){UART_dat1[bz1]=softSerial1.read();//暫存串口數(shù)據(jù)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硬件連接在實現(xiàn)基于Arduino的智能語音分類垃圾桶時,需要連接多個硬件設(shè)備,包括Arduino開發(fā)板和HLK-V20語音識別模塊。硬件連接的步驟如下:將Arduino開發(fā)板與電腦連接,打開ArduinoIDE,選擇合適的開發(fā)板類型和串口號,并上傳一個簡單的程序,以驗證連接是否成功。將HLK-V20語音識別模塊連接到Arduino開發(fā)板。需要將模塊的VCC引腳連接到Arduino的5V引腳,GND引腳連接到GND引腳,TXD引腳連接到Arduino的RX引腳,RXD引腳連接到Arduino的TX引腳。給HLK-V20模塊供電??梢允褂靡粋€9V電池或外部電源模塊來為模塊供電。連接一個LED燈到Arduino開發(fā)板上,以模擬控制垃圾桶蓋的開關(guān)。需要將LED的正極連接到Arduino的數(shù)字輸出引腳(例如D2),將負極連接到GND引腳。完成硬件連接后,使用ArduinoIDE打開示例程序,將其上傳到Arduino開發(fā)板上,并打開串口監(jiān)視器,以驗證程序是否能夠正常工作。以上就是實現(xiàn)基于Arduino的智能語音分類垃圾桶的硬件連接步驟。在連接硬件時需要注意引腳的對應(yīng)關(guān)系和電源的供應(yīng)情況,以保證整個系統(tǒng)能夠正常工作。如圖所示:圖3.5硬件連接前期圖3.6硬件連接后期3.6硬件調(diào)試在實現(xiàn)基于Arduino的智能語音分類垃圾桶的硬件系統(tǒng)后,還需要進行硬件調(diào)試,以確保系統(tǒng)的正常運行。以下是一些常見的硬件調(diào)試步驟:電源檢查:首先需要檢查電源是否正常。如果電源不足或不穩(wěn)定,可能會導(dǎo)致硬件設(shè)備不能正常工作。可以使用萬用表等工具來檢查電源的電壓和電流。信號檢查:接下來需要檢查信號是否正常??梢允褂檬静ㄆ鞯裙ぞ邅頇z查信號波形是否正確。如果信號波形不正確,可能是由于線路連接錯誤或設(shè)備損壞等原因?qū)е?。?shù)據(jù)傳輸測試:如果系統(tǒng)中存在數(shù)據(jù)傳輸,還需要進行數(shù)據(jù)傳輸測試??梢允褂么诒O(jiān)視器等工具來檢查數(shù)據(jù)傳輸是否正常。如果數(shù)據(jù)傳輸不正常,可能是由于串口通信配置錯誤或軟件錯誤等原因?qū)е?。通過以上硬件調(diào)試步驟,可以確保系統(tǒng)的正常運行,并且解決可能存在的硬件問題,使系統(tǒng)更加穩(wěn)定可靠。若系統(tǒng)正常工作,當說出垃圾的名稱,垃圾桶判斷垃圾分類,隨之會相應(yīng)的亮起開蓋指示燈并打開垃圾桶蓋。圖3.7硬件功能說明3.7軟件調(diào)試在開發(fā)基于Arduino的智能語音分類垃圾桶的軟件時,采用了以下軟件開發(fā)流程,需求分析:分析智能語音分類垃圾桶的功能需求,確定需要實現(xiàn)的功能。例如,識別特定的語音指令并執(zhí)行對應(yīng)的垃圾桶開蓋操作等。設(shè)計階段:設(shè)計軟件的結(jié)構(gòu),確定軟件模塊的功能和接口。例如,設(shè)計語音識別模塊和控制模塊,確定它們之間的交互方式和數(shù)據(jù)傳輸方式等。編碼階段:根據(jù)軟件設(shè)計階段的結(jié)果,進行編碼工作。例如,編寫語音識別模塊的代碼,編寫控制模塊的代碼,以及處理兩者之間交互的代碼等。調(diào)試階段:在編碼完成后,進行軟件調(diào)試,發(fā)現(xiàn)并解決軟件中存在的錯誤。例如,檢查語音識別模塊是否可以準確地識別語音指令,檢查控制模塊是否可以正??刂评暗?。測試階段:對整個軟件系統(tǒng)進行測試,確保系統(tǒng)的功能和性能符合需求。例如,測試語音識別模塊和控制模塊之間的交互是否正常,測試垃圾桶是否可以正確開蓋等。部署階段:將軟件部署到硬件設(shè)備上,進行最終測試和優(yōu)化。例如,將語音識別模塊和控制模塊燒錄到Arduino開發(fā)板上,進行最終的測試和優(yōu)化等。維護階段:軟件部署后,需要進行維護工作,包括錯誤修復(fù)和性能優(yōu)化等。例如,檢查軟件系統(tǒng)是否存在漏洞或者性能問題,及時修復(fù)和優(yōu)化等。在軟件開發(fā)流程中,需求分析和設(shè)計階段同樣是非常重要的,因為這兩個階段的結(jié)果將直接影響后續(xù)的開發(fā)和測試工作。編碼、調(diào)試、測試、部署和維護階段則是具體的實現(xiàn)過程,需要花費相應(yīng)的時間和精力進行開發(fā)。同時,在進行IDE環(huán)境的調(diào)試時,報錯是常有的事情,這需要我們仔細地尋找并解決問題。(1)一種常見的問題來源是標點符號的輸入環(huán)境。有時候,我們可能在全英文環(huán)境下編程,但卻使用了中文標點,這會導(dǎo)致程序報錯。盡管我們反復(fù)檢查代碼,可能都發(fā)現(xiàn)不了錯誤,因為語句本身并沒有問題,只是標點符號的環(huán)境出了問題。對于這類問題的解決方法,一種方式是確保在編程時始終保持同一種語言環(huán)境,例如全英文。對于中文的注釋,可以先用拼音表示,或者在完成一個完整的模塊編寫后,再進行語言環(huán)境的切換。這樣就可以避免此類錯誤的發(fā)生。(2)另一種常見的錯誤來源是數(shù)字和字母的混淆,特別是字母“O”和數(shù)字“0”。由于外觀上的相似,如果我們在編程時打字速度過快,就很容易按錯鍵盤。這種錯誤往往難以被肉眼發(fā)現(xiàn),只有在調(diào)試環(huán)境下程序報錯時,我們才能察覺并進行修改。在編程過程中,我們需要對此保持警惕,盡量避免這種錯誤的發(fā)生。3.8本章小結(jié)軟件編程的主體部分是主程序的總體流程設(shè)計,它決定了軟件系統(tǒng)的質(zhì)量和性能。以流程框架的形式呈現(xiàn),使得編程人員對整個軟件編寫的條理更為明晰。同時,對主程序進行分析,對各個子程序進行詳細的文字描述和解釋,幫助我們在思維中形成清晰的編譯路徑。通過對軟件系統(tǒng)的分析,我們將復(fù)雜的整體分解為更易處理的部分,這在一定程度上降低了編程的難度,同時也增強了我們完成這個系統(tǒng)設(shè)計的信心。4實驗和結(jié)果分析4.1舵機模塊測試要在單片機系統(tǒng)中實現(xiàn)對伺服電機輸出角度的控制,首先必須完成兩個任務(wù):一是產(chǎn)生基本的PWM周期信號。本設(shè)計的目標是產(chǎn)生一個20ms的周期信號;接下來是脈寬的調(diào)整,即微控制器模擬PWM信號的輸出并調(diào)整占空比。當系統(tǒng)中只需要控制一臺伺服電機時,采用的控制方法是改變單片機一個定時器中斷的初始值,將20ms分為兩個中斷執(zhí)行時間,一個短時間中斷和一個長時間中斷。這不僅節(jié)省了硬件電路,而且減少了軟件開銷,從而提高了控制系統(tǒng)的效率和控制精度。如圖4.1所示,手動開/關(guān)功能正常,四個按鈕控制相應(yīng)的垃圾桶開/關(guān)。圖4.1舵機驅(qū)動垃圾桶蓋4.2智能環(huán)保垃圾桶控制系統(tǒng)的功能調(diào)試功能演示:將系統(tǒng)連接到5V電源后,系統(tǒng)開始工作,并伴有語音提示:“歡迎來到分類垃圾桶”。當有人扔垃圾時,他們對著垃圾桶說:“垃圾桶,玉米”。垃圾桶能自動識別垃圾類型,并伴隨廣播語音:“廚余”和相應(yīng)的指示燈亮,并控制舵機打開廚余垃圾桶;對垃圾桶說:“垃圾桶,報紙”,垃圾桶就能自動識別類型,廣播聲音:“可回收”和相應(yīng)的指示燈亮,并控制舵機打開垃圾桶的可回收材料。圖4.2可回收垃圾開蓋圖4.3廚余垃圾開蓋圖4.4其它垃圾開蓋圖4.5有害垃圾開蓋4.1語音識別及語音播報測試在測試之前,首先需對日常生活的垃圾進行分類,為測試做數(shù)據(jù)準備。如圖所示垃圾分類數(shù)據(jù)庫:表4.1垃圾分類數(shù)據(jù)庫有害垃圾廚余垃圾其它垃圾可回收垃圾油漆桶菜葉衛(wèi)生紙報紙打火機小蔥瓦片易拉罐塑料袋西瓜皮一次性筷子瓶子注射器蛋殼盤子舊書溫度計洋蔥渣土衣服農(nóng)藥瓶香蕉皮磚塊泡沫塑料殺蟲劑骨頭陶瓷刀片測試腳本主要包括以下測試用例:垃圾識別功能測試:測試系統(tǒng)是否可以準確識別垃圾的名稱。垃圾桶自動開合功能測試:測試系統(tǒng)是否可以自動控制垃圾桶的開合。我們使用測試結(jié)果來評估系統(tǒng)的性能和可靠性,并提出改進建議。測試步驟如下:1.準備測試環(huán)境:將測試環(huán)境搭建好,包括電腦、垃圾桶模型。2.啟動系統(tǒng):啟動系統(tǒng),確保系統(tǒng)可以正常運行。3.測試垃圾識別功能:測試系統(tǒng)是否可以準確將不同名稱的垃圾打開相應(yīng)的垃圾蓋。我們將說出30次不同類型的垃圾,并記錄每種垃圾的識別成功率。4.測試垃圾桶自動功能:測試系統(tǒng)是否可以控制垃圾桶的開合。我們將輸出30次控制脈沖,并記錄垃圾桶開合的準確性。表4.2智能垃圾桶系統(tǒng)測試結(jié)果垃圾種類投遞次數(shù)識別成功率開合準確性有害垃圾廚余垃圾303087%82%87%86%其它垃圾可回收垃圾303085%84%85%86%從測試過程種發(fā)現(xiàn)了以下問題:用戶未發(fā)出語音指令,舵機卻開始運轉(zhuǎn)當用戶在無意說話時系統(tǒng)就啟動了,進行不相關(guān)的語音播報當環(huán)境處于嘈雜的狀態(tài)時,垃圾桶識別成功率低針對以上問題,為提高垃圾桶識別垃圾成功率,優(yōu)化系統(tǒng)性能,可通過一下解決方案提高垃圾桶抗干擾能力:采用口令模式,在使用垃圾桶之前先對垃圾桶呼叫“垃圾桶”,這時垃圾桶才會開啟通話進行人機交互設(shè)置好關(guān)鍵詞,如果識別到“盡量使用普通話語音,說話清楚、語速慢些,不說未設(shè)定的垃圾名稱,從而干擾系統(tǒng)因為垃圾桶經(jīng)常在戶外,噪聲大,所以用戶應(yīng)盡量保持可識別的距離內(nèi),進行語音垃圾投放4.4系統(tǒng)性能評估4.4.1相應(yīng)速度測試測試通過本次實驗,我們對智能垃圾桶系統(tǒng)進行了測試,得到了一系列測試結(jié)果。根據(jù)測試結(jié)果,我們可以得出以下結(jié)論:基于單片機和HLK-V20的智能垃圾桶系統(tǒng)可以實現(xiàn)垃圾名稱分類、桶蓋開合功能。響應(yīng)速度測試可以用來檢測系統(tǒng)對語音指令的響應(yīng)速度,下面是簡單的測試步驟:打開串口監(jiān)視器,設(shè)置波特率為9600,并輸入指令"OPEN"。此時應(yīng)該能夠看到系統(tǒng)回復(fù)"Openingthetrashcan"的信息。測量從語音指令輸入到舵機開始運動的時間間隔,即為系統(tǒng)的響應(yīng)速度??梢允褂糜嫊r器或者示波器等工具進行測量。根據(jù)需要進行調(diào)整和優(yōu)化,確保系統(tǒng)的響應(yīng)速度在合理范圍內(nèi),并且能夠準確響應(yīng)用戶的語音指令。在實驗中,我們成功地將Arduino開發(fā)板和HLK-V20語音識別模塊集成到一起,實現(xiàn)了基于語音指令控制垃圾桶蓋子開閉的功能。通過響應(yīng)速度測試,我們發(fā)現(xiàn)系統(tǒng)能夠快速響應(yīng)用戶的語音指令,平均響應(yīng)時間約為500ms,能夠滿足實際使用的要求。在實際應(yīng)用中,基于語音識別的智能垃圾桶可以提高垃圾分類的效率和準確度,同時也能夠方便老年人和身體不便的人群使用。然而,由于語音識別技術(shù)的局限性,系統(tǒng)還存在一些缺陷和改進的空間。例如,環(huán)境噪聲、口音等因素都可能影響語音識別的準確性,需要進一步進行優(yōu)化和改進。4.4.2系統(tǒng)穩(wěn)定性測試系統(tǒng)穩(wěn)定性測試是為了檢測系統(tǒng)的長時間穩(wěn)定性和可靠性。在該測試中,系統(tǒng)會持續(xù)運行一段時間,觀察系統(tǒng)在運行過程中是否存在問題或異常,以及系統(tǒng)

溫馨提示

  • 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)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論