【《基于STM32位主控制器的一款语音识别的智能分类垃圾桶设计》11000字】_第1页
【《基于STM32位主控制器的一款语音识别的智能分类垃圾桶设计》11000字】_第2页
【《基于STM32位主控制器的一款语音识别的智能分类垃圾桶设计》11000字】_第3页
【《基于STM32位主控制器的一款语音识别的智能分类垃圾桶设计》11000字】_第4页
【《基于STM32位主控制器的一款语音识别的智能分类垃圾桶设计》11000字】_第5页
已阅读5页,还剩21页未读 继续免费阅读

下载本文档

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

文档简介

基于STM32位主控制器的一款实用语音识别的智能分类垃圾桶设计目录TOC\o"1-3"\h\u6447基于STM32位主控制器的一款实用语音识别的智能分类垃圾桶设计 121003引言 124283第1章绪论 2167581.1研究背景 2125351.2国内外研究现状及存在问题 3177071.3研究内容 498121.4本章小结 46072第2章系统方案设计 5313302.1系统整体设计 534802.2主控制器方案 5172272.3语音识别方案 6126392.4舵机控制方案 7250942.5本章总结 89755第3章系统电路设计 9173263.1单片机最小系统 9106733.2外围电路设计 1117633.2.1语音识别电路 1180113.2.2舵机控制电路 14279153.3本章小结 142577第4章系统软件设计 15324174.1软件整体设计 15252764.2语音识别软件设计 15171434.2.1语音识别程序流程设计 16181284.2.2语音识别功能核心程序 16120574.3舵机控制软件设计 17139404.3.1舵机控制流程设计 18196324.3.2舵机控制功能核心程序 18248554.4本章小结 195278第5章系统测试与分析 20240655.1实物组装 20118085.2软件调试 21287665.3语音识别模块上电测试与分析 21111395.4舵机驱动模块上电调试与分析 23264705.5本章小结 2421243结论 25引言最近几十年,人们的生活质量逐渐被提高,但是生活垃圾却逐渐在增多,垃圾处理工作变得越来越繁重,所以垃圾分类现已成为一个非常热门的话题。目前,在一些大的城市已经有了一些垃圾分类的措施,但是通过调查我发现已有的这些措施并没有在很大程度上的减轻后期垃圾分类工作。原因有几点,一是很多人没有垃圾分类的观念,为了省事他们往往会把所有的垃圾放在一个垃圾袋里,等到垃圾袋满了直接丢弃。二是大多数人根本不知道垃圾分为哪几类都包括什么,所以即使他们丢垃圾是想过要进行垃圾分类,分的也可能是错的。三是只在社区或者公共场合配备垃圾分类的设备,并不能从根本上解决后期垃圾分类的繁重工作,因为人们的首次处理垃圾是在家里,要想从根本上减少垃圾分类的成本还应该从垃圾的首次处理着手。针对以上几点,本文提出基于语音识别的智能分类垃圾桶作为补救措施。之所以选用语音识别是因为它有三大优势。其一是声音输入设备造价便宜而且设计不到用户的隐私,可以方便推广。其二是既然垃圾分类要着手与垃圾的初次处理,那么操作这种设备的还有老人和小孩,所以智能垃圾桶不能设计的特别繁琐,本文设计的垃圾桶不仅省事而且便捷,因为用户只需讲出垃圾的名字,所对应的垃圾桶便会自动打开。完全解决了老人和小孩的使用问题。其三是语音识别器件很小不用考虑空间问题。第1章绪论1.1研究背景最近这些年,我们的生活越来越好,水平也越来越高,然而每个人每天扔出的垃圾也越来越多。这种现象的出现使垃圾处理工作变得越来越困难,只靠人力进行分拣变得越来越不现实。伴随着这种现象的出现,以及国内外一些新兴行业的发展,垃圾智能分类这一新兴事物也逐渐映入人们的眼睑,并在有心人的经营下,发展成为一个行业。垃圾分类给大家带来的诸多好处的同时也在世界上很多国家发展成为先进的潮流。垃圾智能分类系统对于加快垃圾分类速度有极大的帮助,不仅如此,它还提升垃圾的转运速率。另外,垃圾被细分之后,不但减轻了垃圾的后期处理工作,还加快了垃圾处理的整个进程。翻阅了相关资料,可以发现一般重视垃圾分类的国家,都比较重视对居民垃圾分类意识的培养。然而在一些经济教育比较落后的国家,人们就没有垃圾分类的意识,对于这些国家来说,垃圾分类工作仍有很长的路要走REF_Ref27174\w\h[1]REF_Ref25587\n\h。目前,在一些企业、社区以及市场上已经存在了很多智能垃圾分类设备,但是很多产品设备都是为了迎合企业的利益,只对部分垃圾进行分类,并不能囊括我们生活中的所有垃圾,这中垃圾桶投入应用之后,垃圾分类工作并没有从根本上减轻。同时由于一些设备过于先进,很多普通市民碍于不会操作设备只能将垃圾随便丢弃,这样一来,不仅不能解决垃圾分类的问题,还污染了环境,影响了整个城市的形象。针对以上问题,本文提出了一种操作简单、便于实施的系统,该系统就是基于语音识别的智能垃圾分类系统,它由STM32单片机控制,利用语音模块采集用户的语音,识别判断后打开对应垃圾桶桶盖的之中设计。这款垃圾桶虽然成本很低但是非常使用,而且操作简单,适用于所有人群,在技术的帮助下,可以随时增加垃圾类别。本设计最大的优点是它可以装在家里,从垃圾产生的时候就进行分类,从根本上减轻垃圾分类工作。1.2国内外研究现状及存在问题垃圾分类这一概念是在社会经济和人们生活水平提高的同时被提出来的,城市生活垃圾成分复杂,这与当地居民的生活习惯和经济发展水平有着密切的关系REF_Ref27324\w\h[2]。目前,在我国垃圾分类已被纳入法律程序并且我国还对其进行了立法,并且在各省市进行了实施。垃圾分类刚开始的阶段是由居委会提供分类垃圾桶,然后小贩将分类后的垃圾清运走。由于这个工作工程过于繁琐,所以混仍的方式被淘汰,取之而来的是垃圾的分类投放,垃圾分类投放后由国家的环保卫生部门进行分类清理运送和分拣回收。但是刚刚发展起来的垃圾分类只将垃圾分为了有机、无机和弃土三类垃圾。虽然改变垃圾分类的方式,可以使后期的垃圾处理工作更加方便成本更低,但是垃圾资源化的问题依然不能得到解决,想要从根本上解决垃圾问题,采取的分类方式非常重要。作为垃圾处理最关键的环节,垃圾分类的智能化研究在我国仍处于初级阶段,由于这一环节的研发集资比较困难而且研发难度有很大,所以这一环节的工作我们还是基本依靠人力,机器辅助方面比较少。但是大量的人力资源投入到垃圾分拣之一环节不仅大大提升了成本而且对员工来说这一环节的工作危险性极高。虽然国内也有一些科研机构对垃圾的智能分类进行了研究和探索,但其分拣的主要是经济效益比较高的可回收垃圾,因此这种智能垃圾桶的实用性和性价比并不高,目前国内外各大垃圾处理厂依旧是依靠人力来进行分拣。从应用性和实用性两个方面来说,垃圾分类特别是是垃圾分拣这一环节需要结合更先进的技术。垃圾分类是没有国界之分的,而且国外对于垃圾分类的重视并不亚于我们国家。其中日本,德国,新西兰等国家在垃圾分类方面处于领先地位REF_Ref27507\w\h[3]。下面简单介绍一下这几个国家在垃圾分类方面所采取的举措。在德国,他们将垃圾分类写在了法律中,重立法更重执法。这个国家拥有一套完整的垃圾分类制度,而且做的很详细,细致到扔玻璃都要根据颜色进行分类。日本国家才是真正的动真格,他们扔垃圾是要收费的,因为日本自然资源较少,所以资源需要更合理的利用。在大环境的影响下,国家只能利用罚钱的手段来减少垃圾的产量。迄今为止,日本已经有70%的城市采取此举,这也是日本在垃圾分类方面占据世界前列的原因。不过随着大数据,人工智能以及物联网时代的到来,垃圾分类只会变得更加智能,智能垃圾分类的必要性和紧迫性让世界各国都开始重视智能化与垃圾分类的结合。像芬兰的吃不饱垃圾桶,芬兰人在垃圾桶上加上了真空管道,这样一来就可以把垃圾桶和垃圾站直接联系在一起,很大程度上节约了垃圾分类行业的人力物力资源。再者像西班牙的垃圾分类机器人,他们将垃圾分为了有机、塑料金属、纸质和玻璃四种类型,机器人可以根据这几种垃圾的属性把垃圾分离开来,放到各自的垃圾桶里。从以上现象可以看出,在垃圾分类这件事上各国都很重视,甚至会用法律或者资金来强制性的要求公民必须进行垃圾分类,并且国外的一些国家将智能化和垃圾分类结合的很好,非常值得我们学习。1.3研究内容毫无疑问,垃圾分类工作的完成使资源的利用率变得更高,并且在减轻环境污染压力的同时,还给企业和社会创造了更多有用的价值。况且,无论是从经济效益来看还是社会效益来看智能垃圾桶都可以称得上是目前最有潜力的一个行业。像wifi信号和usb充电接口这种功能,智能垃圾桶将来都能实现,还可以实时监测人流量为规划城市交通提供数据参考REF_Ref27945\w\h[4-5]。智能垃圾分类系统的诞生是垃圾分类方式的进步,垃圾智能分类行业的发展不仅可以在一定程度上减轻我国的环境保护工作,而且还可以减少环境污染是资源得以回收再利用。近些年,在国家政策的驱动下,垃圾分类行业在各大城市的到了很好地发展。据相关资料显示,目前为止,我们国家已经有好几十万家企业的工作内容与垃圾分类有关。进入信息化时代以来,垃圾分类系统再次得到升级,它不仅可以结合互联网和云计算技术,而且还能将大数据和物联网融入到垃圾分类行业,使垃圾分类系统变得更加模块化、智能化、数字化。基于STM32的语音识别垃圾桶克服了大部分智能垃圾桶的缺点,它操作简单、构造简单且实用性强。本文主要研究此款垃圾桶的整体构造,探讨语音识别方案和电机驱动方案。1.4本章小结本章主要讨论了垃圾分类的发展现状、国内外垃圾分类的发展趋势以及存在的问题和基于语音识别的智能垃圾桶的主要研究内容。第2章系统方案设计2.1系统整体设计本项研究的核心是语音识别技术在垃圾分类上的应用,本设计的功能主要包括语音播报功能、语音识别功能、舵机转动功能以及主控制器。本文主要将垃圾分为四类,四类垃圾分别投入四个垃圾桶内,每个垃圾桶桶盖上都装有一个舵机,舵机有由主控制器来控制,在有指令输入时,主控制器便会控制舵机转动,进而打开垃圾桶桶盖。主板上装有扬声器、语音识别模块、主控制器STM32模块、电源模块和指示灯部分。系统启动之后由语音播报模块提示人进行操作,我们的声音信号可以通过麦克风被语音识别模块采集然后转化为电信号,转换完成之后,可以对电信号进行识别并对垃圾类别做出判断,然后打开对应的垃圾桶桶盖,桶盖打开之后保持30s打开状态,30s后垃圾桶自动闭合,逻辑架构图见图2.1。图2.1逻辑架构图2.2主控制器方案关于智能垃圾桶的主控制器,本设计选用单片机STM32,这款控制器的内核是ARM32位的,它出产于ST公司,具有实时仿真技术和跟踪功能。与其他单片机相比,该器件的资源特别广,性能也增强了很多,值得展示的是该器件使用的是ARM最新、最先进架构,其内核的实时性和功耗控制均比较优异,而且它还拥有非凡且创新的外观设计、大规模的集成设计以及易于开发的实用性等诸多优点REF_Ref28137\w\h[6]。我们知道一个平台是可以同时进行多个项目开发的,在进行多个项目开发时,STM32控制平台是诸多选择中最佳的平台选项,从以下三个方面体现出来。(1)该主控制器STM32在使用它的管脚和存储空间非常的灵活,它不仅可以应用在少量的管脚使用和存储空间应用上,还可以扩展到多管脚的使用和存储空间的应用上。(2)STM32对性能的应用和电池供电的应用要求极高。(3)主控制器STM32在很多设计中都会被用到,因为它可以从简单低成本的应用扩展到高端的应用。2.3语音识别方案垃圾桶内设有语音识别模块,语音识别就是将声波转化成可以被机器识别的语言,这项技术的重点在于如何使计算机听懂人类的语言REF_Ref28219\w\h[7-8]。本研究所设计的智能垃圾分类系统根据中文环保卫生领域相关标准和场景,定制了专业模型来实现语音信号的识别及转换,进而将信号传递给主控制器,主控制器负责控制舵机的转动,进而打开对应的垃圾桶桶盖,具体流程见图2.3。图2.2语音识别流程框架用户的语音通过麦克风输入后,先后经过分帧、预加重等一系列的处理之后便可以转变成为数字信号,然后再利用端点检测技术、噪音消除技术对转换的数字信号进行信号处理,来确定语音起始及结束的位置,更深入的消除由语音采集设备等外部环境引起的信号干扰。再将处理好的信号传入特征提取模块,把能够有效反映语音特征的信息转化成一组离散型矢量序列,压缩封装后传送至识别引擎,开始语音识别搜索。作为整个系统的中枢,识别引擎分为垃圾声学模型、识别字典两个部分。垃圾声学模型利用隐马尔可夫模型构建,经过采集生活中垃圾的音频数据,对模型进行自适应训练。由于音频中包含了周围环境中的噪声、采集设备的噪声和用户个体发音习惯,因此训练出的模型更加符合现实生活中的场景,很大程度地增强了该模型的识别性能。识别字典是指标准垃圾词语库。数据经过识别引擎处理后将传入语义理解模块,该模块是基于生活中垃圾分类场景进行语义定制,能够根据实际情况及;垃圾名词库对结果进行语义分析,进而了解用户所仍垃圾种类,以达到优化识别结果的目的。本文选择SNR6812VR-M进行语音的识别与播报,该模块的语音识别及播报是集合在一起的,它的电源抗干融能力比其他语音识别模块的更强,且其内部的语音识别算法集成度更高,更有利于语音的识别,在噪声环境下的表现依然非常出色,非常适合应用在家电类产品。2.4舵机控制方案当用户的声音与系统设定的语音匹配成功之后,STM32便会控制对应垃圾桶的舵机转动,进而打开对应垃圾桶,垃圾桶打开30s,30s后舵机会自动恢复届时垃圾桶也会自动关闭。一些机器人的输出执行机构都是使用舵机进行控制的,在这些系统中舵机充当微机系统的角色或者作为航模系统进行使用。舵机与单片机的接口很好实现,因为舵机的控制结构极其简单,且其输出结构不复杂。据资料显示,舵机的学名叫作伺服马达,它是位置自动控制系统的一种,适用于角度多变的控制系统,尤其适用于角度可以随时改变又可以随时保持当前状态的系统。角度多变的系统常见于高档遥控玩具中。当舵机正常工作时,先由接受信道接受控制信号,然后将其送入信号标志芯片,等到出现直流偏置电压时,存在于舵机内部的基准电路便会产生一个基准信号,对该基准信号的电压进行测量,然后对比信号传输时出现的偏置电压和电位器的电压进行,同时把比较后的电压差输出到电动机的芯片上。若电压差是正的,则电机正向转动;若电压差是负值,则电机反向转动。当电机的速度一定时,若想让电机停止转动,即晶体管处于放大状态,且其基级电压与电位器的电压差为零,这时可以把两个或者两个以上的设备连接来提高齿轮的速度进而控制电机的转动。舵机正常工作需要约二十毫秒的时基脉冲。小型舵机若想正常工作,电压一般是4.8V或者6V,转速一般是0.22弧度每秒或者0.18弧度每秒。小型舵机的缺点是它的转速很快,导致角度改变的太快,舵机经常反应不过来。如果现实生活中想要角度改变的更快,就必须获得更快的转速REF_Ref28366\w\h[9-10]。2.5本章总结第二章先介绍了主控制器的的选择标准和设计方案,然后进行了语音识别模块的方案设计和工作流程安排,最后确定了舵机控制模块的设计方案并介绍了它的工作原理。第3章系统电路设计3.1单片机最小系统单片机正常运行情况下所需器件最少的系统就叫作单片机最小系统,有了最小系统,单片机既可以正常复位,并下载程序了,但是只有最小系统的单片机是不能实现任何功能的。若想要单片机具备功能,必须要保证单片机的最小系统正确,然后可以根据需求按照顺序添加功能模块和器件。STM32最小系统有主芯片,即主控制器的心脏;电源复位电路,即用于使电路恢复到起始状态的电路;时钟电路,即在设定时间内产生的振荡电路;电源电路,即供电的电路,另外还需在这个最小系统的基础之上添加LED指示电路和下载电路。单片机的工作原理与微型计算机的工作原理极其相似,纵然单片机只是一块芯片,但他工作原理和微型计算机是一样的,只是比计算机的模块少而已。数据多样化采集多样化与控制系统使单片机可以完成各种复杂的运算,单片机借助强大的数据处理技术和计算机功能在智能电子行业大展宏图。并通过集成电路的应用,将数据运算和处理功能集成在芯片上,实现对数据的高速处理REF_Ref28588\w\h[11-14]。STM32单片机在很多设计中都会被用到,目前已经应用在了语音设备中。因此,在设计基于语音识别的智能垃圾桶时我选择的核心控制器是STM32单片机。STM32F103C8T6是STM32的增强型系列,它拥有64个引脚且内嵌128K的Flash容量,最佳的工作温度为零下40度到八十度。STM32的增强型系列芯片有以四个极其重要的特点。该系列芯片的内核是最高工作频率为72MHz的ARM32位的Cortex-M3。STM32F103C8T6芯片不仅有休眠和停止的模式,还拥有待机的模式。该系列芯片不仅拥有双采样和保持能力的12位us级A/D转换器,还拥有2通道12位D/A转换器。STM32F103C8T6芯片不仅有高达112个快速I/O端口和13个通信接口,它的定时器更是多达11个。本设计中所使用的主控制器芯片,其总线宽度为32位,速度是72兆赫兹,电机采用脉冲宽度调制技术进行控制。这款单片机最大的优点便是成本低,这一点对很多设计拉说都是最重要的一点,这也是它可以被应用到很多设计中的原因。所以,不管是从能源消耗还是价格方面考虑,单片机STM32都具有巨大的优势,特别是工作可靠,费用很小,综合实力比较强,拥有低功耗且强大的加密功能。本文使用该芯片的引脚有A10、B6、B7、B8、B9,单片机核心电路图如图3.1所示。图3.1单片机核心电路图3.2外围电路设计3.2.1语音识别电路语音播报和语音识别分别是语音模块的两个部分,本文的采用SNR6812VR-M作为语音识别模块,这个模块将语音模块的两个部分集合在了一起。语音播报利用直驱喇叭进行实现,直驱喇叭的工作电压为5V/1W。SNR6812VR-M不仅更高阶的语音识别识别算法和识别精度,而且在噪声环境下的表现依然很出色。SNR6812VR-M语音识别模块可以应用在本设计中是因为它可以识别人的高稳定度语音,并且在使用之前用户不需要与此设备进行磨合。模块内部的语音识别词条非常重要,由Flash存储器进行存储,语音播报内容由外挂SPIFlash存储器存储。SNR6812VR-M的通信方式为先利用UART串口输出,然后再进行查询和控制等,便可以轻松的控制并获取模块的当前状态REF_Ref28725\w\h[15-17]。这个模块可以同时识别多个词条。语音识别模块的内部结构图见图3.2。图3.2语音识别模块原理图该模块的硬件共有23个引脚,本设计用到的引脚有8个,除了GND和VDD以外,还有六个引脚用于语音识别和播报,下面进行详细介绍。PA8/TXD引脚是通用的I/O口,同时也是UART发送器数据输出口,连接STM32的RXD引脚;PA9/RXD引脚是通用的I/O口,同时也是UART接收器数据输入口,连接STM32的TXD引脚;剩下四个引脚分别连接喇叭和麦克风,该模块的麦克风为外接普通驻极体话筒,由于延长线过长损耗会增大进而影响识别率,所以建议线长为20cm。3.2.2舵机控制电路本设计中负责开关垃圾桶的是SG90模拟舵机,其引脚有三个,且这三个引脚是相互兼容的,分别为接地引脚、高电平引脚、脉冲调制引脚。SG90位置伺服器采用PWM同步控制,它有不工作、转动和保持三种状态的工作电流,当位置伺服器处于不工作的状态时,电流依然存在,不过此时的电流时静态电流为4mA,这时没有PWM控制信号不能自动复位;当位置伺服器处于转动状态时,工作电流约为300mA,需供给PWM信号;当位置伺服器处于保持状态时,有PWM信号,若此时没有外力抵抗,电流的消耗就会很小约为5mA,若有外力抵抗时,由于要抵抗外力,电流会增大。四个舵机的PWM引脚分别连接STM32的B6、B7、B8、B9。SG90舵机内部电路图见图3.3。图3.3SG90舵机内部结构图3.3本章小结第三章重在分析每个模块的优却点及选用原则,详细的介绍了三个模块的电路设计并且给出了这三个模块的设计原理图。在集成电路设计环境下绘制了各个部分的原理图,进行了仿真分析和验证,结果说明设计的电路原理图符合设计要求。第4章系统软件设计4.1软件整体设计本设计本质上是语音识别技术在垃圾分类上的一种应用,整个设计包括语音识别功能、语音播报功能、电机驱动功能以及主控制器。系统先采集语音信息,然后将采集到的信息与垃圾词库对比,将对比后的信息传送给主控制器,再由主控制器来驱动相应的舵机进行转动,进而打开垃圾桶。基于语音识别的智能垃圾桶的软件整体设计流程如图4.1所示。图4.1软件整体设计流程4.2语音识别软件设计语音识别过程为先有语音模块进行信号采集,然后将采集到的信号输入到模块内进行去噪处理,再进行端点检测和特征值的提取,接着是与参考模板进行模式匹配,最后将识别有语音播报模块识别结果输出。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舵机控制软件设计舵机控制的软件流程为先输入控制信号,若控制信号有效,则由程序算出目标位置与当前位置的差值并判断该数值是否为零,差值为零舵机停止转动且计时时间清零,程序重复上述循环,但是如果差值不是零,则需要求出剩余时间并算出输出的PWM,然后再循环上述步骤;若控制信号无效,则判断下一信号。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本章小结第四章主要介绍了系统的软件的整体设计、语音识别模块和舵机控制模块的软件设计流程和功能实现的核心程序。本章的结束可以使读者对本设计有更近一步的了解。第5章系统测试与分析5.1实物组装对于一些功能来说,仿真是实现不了的,无法进行测试的。因此就只能先进行实物组装与焊接然后再安排测试。实物的组装和焊接非常讲究,如果焊接不当很有可能导致短路以及断路等情况,对后期的调试和功能实现都会造成非常大的麻烦。下面我来介绍一些焊接方法及注意事项,我们知道电子器件的焊接与电路的通断是密切相关的,如果覆铜板的焊点面受到损坏或者出现脱落,则该覆铜板在原则上是不允许被使用的,因为这样的焊点会导致通过它的电流不稳定。如果覆铜板没有问题,那么在焊接时要仔细认真,不能知识将焊料简单的堆在每个焊点周围,这样做不仅起不到电连接的目的,而且等时间长了或者周围的环境发生了变化,电路就会出现短路或者短路的情况。这在电子仪器的使用中是一件非常令人头疼的事。焊接电路时,首先应该焊接的是主控制电路,因为其他电路都是由该部分进行控制的。其次应该焊接语音识别部分,由于该模块将语音采集和语音识别集合在一起,所以焊接时应该分步骤进行,应该先将麦克风和扩音器焊接在该模块上,然后再将该模块焊接在万用板上,最后焊接上电源模块和舵机。所有器件焊接完成之后,根据原理图,用导线再将整个电路连接起来。具体实物连接见图5.1。图5.1实物连接图5.2软件调试软件设计和实物连接完成后,就可以进行软件的测试了,本文采用Keil软件进行测试,Keil软件是集编程、编译、连接、调试和仿真与一体的单片机软件。大多数的处理器厂家都会选择Keil来完成软件开发,用这个工具对所开发的软件进行编程和测试等,目的是为了检查和验证软件中是否存在问题以及软件设计是否正确,并进一步优化代码。用户使用时,只要按下编译键,Keil软件便会自己查错,并告知用户具体的出错位置和详细的解释信息,用户只需根据提示修改相应代码即可REF_Ref28928\w\h[18]。调试启动界面见图5.2。图5.2调试启动界面每个模块的具体方案决定之后,便可以根据所确定的方案设计配套的代码。程序的编写有两种方案,方案一可以将整个系统根据功划分为几个模块,然后再可以每个模块的功能来编写程序;方案二直接根据硬件模块来编写程序。但是无论选择哪一种方式进行编写,都必须在实现一个模块之后,再进行下一模块的编写。按照这个顺序进行编写,各个模块不会相互影响,思路也会越来越清晰,如果后期出现问题的话,也很容易得到解决。5.3语音识别模块上电测试与分析在测试开始时,应该先对供电接口进行测试,因为供电接口一旦出现短接,就会烧坏所有器件,所以在每次上电之前,都必须要进行电源接口检测。一切正常情况的下,通电后,观察实物运转是否正确,例如语音识别功能,注意观察指示灯的亮暗情况,所有可见现象如有异常,立刻切断电源。另外,我们还需要关注一下实物上某些部分是否出现发热的情况,一般电源发热是正常现象,但是如果其他模块发热很可能是异常情况,此时也应该立即切断电源。待一切正常之后,就可以对实物进行各项功能的测试了REF_Ref28999\w\h[19-20]。系统上电后,打开开关,输入一级指令“小智你好”,语音识别模块的指示灯便会打开。测试现象如图5.3所示。图5.3语音识别模块上电测试语音识别结果分析:语音识别模块上电后,指示灯D1会被点亮,颜色为红色语音播报模块会提示用户进行操作。在用户给出一级指令后,指示灯D2会被点亮,颜色为蓝色,同时语音播报模块做出回复“在呢”,在给出二级指令之前,D2会一直处于点亮状态,给出二级指令后,指示灯D2熄灭,对应的舵机转动打开垃圾桶盖,30s后舵机自动恢复,垃圾桶关闭。指示灯D1和D2的点亮和熄灭状态见表5.1。表5.1不同指令下指示灯D1和D2的工作状态由表5.1可以看出,给系统上电之后指示灯D1一直处于被点亮的状态,说明指示灯D1是语音模块的电源指示灯,如果D1被点亮,说明输入1级指令之后,该模块就可以进行工作,但是如果D1处于熄灭的状态,即使输入1级指令,该模块也不会正常工作。而指示灯D2只有在输入1级指令之后才会被点亮,其他时刻均处于熄灭状态,由于1级指令是系统的唤醒指令,2级指令是系统的执行指令,所以,当指示灯D2处于熄灭状态时,系统可能还未被点亮也可能正在执行2级指令,这时想确定系统的工作状态,我们需要观察舵机的状态,如果舵机发生转动则系统正在执行2级指令,需要等待30s后再给系统发送任务,如

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论