智能环保垃圾桶控制系统设计_第1页
智能环保垃圾桶控制系统设计_第2页
智能环保垃圾桶控制系统设计_第3页
智能环保垃圾桶控制系统设计_第4页
智能环保垃圾桶控制系统设计_第5页
已阅读5页,还剩33页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

智能环保垃圾桶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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论