语音控制小车的设计与实现_第1页
语音控制小车的设计与实现_第2页
语音控制小车的设计与实现_第3页
语音控制小车的设计与实现_第4页
语音控制小车的设计与实现_第5页
已阅读5页,还剩61页未读 继续免费阅读

下载本文档

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

文档简介

1、. . . 语音控制小车的设计与实现 XXXXX专业名称:通信工程 指导教师:XXXXXXXX61 / 66摘要随着电子工业的发展,具有语音控制功能的小车越来越受到人们的青睐,在人们的日常消费生活中起着不可忽视的作用。目前,声控技术已在很多领域得到使用。比如声控手机、声控洗衣机、电视机、电脑等设备。本文对声控小车概况做了阐述。在硬件设计方面,本论文以凌阳公司的SPCE061A单片机为控制核心,以语音小车控制电路板为辅,设计小车的动作。在软件方面,利用C语言进行编程,进行语音的“训练”和“识别”。设计出具有如下功能的语音声控小车:能够根据录制的语音命令来控制小车的前进,后退,左转,右转的功能。论

2、文首先对系统的方案进行论证,然后对各单元的软件、硬件工作原理进行了阐述,并介绍了系统的主要组成部分情况。关键词:SPCE061A 语音识别 全桥驱动 小车AbstractWith the development of the electronics industry,the voice-control car become more and more popular to people. And it plays an important role in people's daily life. At present, the voice-activated technology ha

3、s been used in many fields. For example, voice-activated phone. Only if you called out the names you want and it automatically called the telephone. There are also voice-activated washing machines, televisions, computers and other equipments.This article gives a detail to the voice-activated car. In

4、 hardware design, the paper use Sunplus SPCE061A as the control of core. On the software, we use C language programming for voice "training" and "recognition". It has the following features: According to recorded the voice command to control the car to start, stop,turn right , an

5、d turn left.First of all ,papers confirm the system of program, and then describe the unit's software, hardware as well as introduce the main components of the situation.Key words:SPCE061A,Speech Recognition,Full-bridge ,driver,Trolley目录摘要IAbstractII目录III前言11 绪论21.1引言21.2国外研究状况21.3目前存在的不足或有待解决的问

6、题31.4课题的目的任务和要求32语音控制原理52.1基本原理52.2语音识别系统的构成72.2.1 起止点识别72.2.2 特征提取82.2. 3识别判断83方案论证与硬件选择103.1 方案论证103.1.1 采用DSP+FPGA方案103.1.1 采用凌阳61方案103.2 系统的硬件方案113.3 系统控制方案123.4硬件介绍123.4.1 SPCE061A芯片特性简介123.4.2精简开发板61 板142 61 板输入/输出(I/O)接口163 音频输入/输出接口164 在线调试器(PROBE)和EZ-PROBE 接口.163.5小结174 系统硬件设计184.1 SPCE061A

7、 最小系统184.2电源电路194.3 音频电路194.4 数摸转换电路214.5 按键、LED和复位电路224.6 下载线接口电路和在线调制电路224.7 MCU连接电路234.8被控小车介绍244.8.1小车的行走原理244.8.2控制板原理图254.8.3全桥驱动原理264.8.4 动力电机驱动电路274.9小结295 系统软件设计305.1 系统的总体程序流程305.2系统子程序设计:315.2.1训练子程序:315.2.2语音识别子程序:335.2.3动作子程序:345.2.4中断子程序:345.3 程序中需要说明的几个问题355.4小结366系统调试376.1 硬件连接376.2

8、硬件模块连线图376.4 功能说明386.5 代码下载386.6训练小车396.7 声控小车406.8 重新训练417结论428致439参考文献44附件45前言语音处理技术是一门新兴的技术,它不仅包括语音的录制和播放,还涉与语音的压缩编码和解码,语音的识别等各种处理技术。做这方面的设计,一般有两个途径:一种方案是单片机扩展设计,另一种就是借助于专门的语音处理芯片。普通的单片机往往不能实现这么复杂的过程和算法,即使勉强实现也要加很多的外围器件。专门的语音处理芯片也比较多,像ISD系列、PM50系列等,但是专门的语音处理芯片功能比较单一,想在语音之外的其他方面应用基本是不可能的。 SPCE061A

9、是一种16位'nSP结构的微控制器。该芯片带有硬件乘法器,能够实现乘法运算、积运算等复杂的运算。它不仅运算能力强,而且处理速度快,单周期最高可以达到49MHz。SPCE061A嵌32K字的FLASH程序存储器以与2K的SRAM。同时该SOC芯片具有ADC和DAC功能,其MIC_ADC通道带有AGC自动增益环节,能够很轻松的将语音信号采集到芯片部,两路10位的电流输出型DAC,只要外接一个功放就可以完成声音的播放。以上介绍的这些硬件资源使得该SPCE061A能够单芯片实现语音处理功能。 借助于SPCE061A的语音特色,我们设计出了这款语音控制小车。小车不仅具有前进、后退、左转、右转等基

10、本功能;同时配合SPCE061A的语音特色,实现语音控制功能。 1 绪论1.1引言所谓声控技术其实也就是利用语音识别技术来达到控制或者操作的一种技术,而语音识别技术这近五年来已经有很大的进步,最新的语音识别技术可以辨识90以上的人类说出的字。声控技术虽然是一项比较先进的技术,但不可否认的是,声控技术在无限传输时的合成的质量不是很好,它尚需进一步提高,因为无线环境中的背景噪音太大了,当然还有其他方面的因素影响着声控功能的发挥。然而随着微电子技术、计算机技术、与传感器技术的迅速发展,现今声控技术应用广泛,这种崭露头角的声控技术,给严重伤残人的生活带来了极大的方便。伤残病人用声音就可以打开门窗、窗帘

11、、电视机、电灯等。在其他领域里,声控技术也大有用武之地。比如飞机在飞行或空战中,一旦飞行员负了伤,他可以用声音来驾驶飞机。声音识别器将飞行员的讲话声音与贮存的声音相比较,只要声音一致,飞机就能自动地完成各种动作,从而化险为夷。那么能不能做到“君子动口不动手” 呢?本文介绍用凌阳单片机61A设计并制作的一套基于语音识别技术的声控小车。1.2国外研究状况随着微电子技术、计算机技术、与传感器技术的迅速发展,现今声控技术已经应用到社会中的各个角落,为人们提供着各种便利。1、声控玩具车:进一步提高系统的滤噪性能,和识别的准确率,并利用已有的软件开发出独具特色的语音芯片,并将其集成在遥控上即可做出声控玩具

12、车。2、能识别主人的看门狗:在本系统的基础上扩充对说话者的识别功能,并将软件硬件化,集成在芯片上。将芯片置于防盗门上,使之可以完成主人叫门即开门的功能。3、真实汽车上的声控系统:在驾驶的过程中,不便于用手来完成的其它操作可以用声控系统来实现。这于我们的系统是极其相似的。但是实际的汽车中可能存在着大量的噪声,所以,滤噪便成为最为关键的技术。1.3目前存在的不足或有待解决的问题声控技术虽然是一项比较先进的技术。但是,声控技术在无限传输时的合成的质量不是很好,它还需进一步提高,因为无线环境中的背景噪音太大了,当然还有其他方面的因素影响着声控功能的发挥,具体来说表现在以下几个方面:1 、时效型。从发出

13、指令到执行指令,有一段延迟时间,虽已降低到尽可能的小,但还是很明显。可行的方法就是改用高效的DSP芯片,这在经费上和时间上都是不允许的。2.、对环境的适应。如果环境噪声很大,或偶尔出现较大的噪声,则会出现误识。这个不足之处还没有很有效的解决方案。3、多人识别。各人的发音不尽一样,因此该系统还限于单人识别。若要做多人识别,则识别的时效性会降低,即有很大的延迟。另外,多人识别,也没有较为有效、成熟的算法供参考。1.4课题的目的任务和要求声控小车其技术要通过相关语音对小车进行操作控制。使用了“前、后、左、右、停”五个字作为小车行驶的指令。本毕业设计有助于培养我们的独立动手能力、思考能力。具体的项目制

14、作过程分为两部分:软件部分和硬件部分。其目的让我们熟悉61板的设计与制作,并掌握其原理;学会运用C语言进行编程且运用。语音控制小车的主要功能: 1. 可以通过简单的I/O操作实现小车的前进、后退、左转、右转功能; 2. 配合SPCE061A的语音特色,利用系统的语音播放和语音识别资源,实现语音控制的功能; 3. 可以在行走过程中声控改变小车运动状态; 4. 在超出语音控制围时能够自动停车。2语音控制原理2.1基本原理机器语音识别、处理的过程与人对语音识别、理解过程基本上是一致的,目前主流的语音识别技术是基于统计模式识别的基本理论。一个完整的语音识别系统可大致分为语音特征提取、声学模型与模式匹配

15、(识别算法)和语义理解3部分。其基本原理如图1所示。图2.1语音识别系统原理框图从图中我们可以看出语音识别一般分为2个步骤:第一步是系统“学习”或“训练”阶段,这一个阶段的任务是建立识别基本单元的声学模型以与进行文法分析的语言模型,即构建参考模式库;第二步是“识别”或“测试”阶段,根据识别系统的类型选择能够满足要求的识别方法,采用语音分析方法分析出这种识别方法所要求的语音特征参数,按照一定的准则和测度与参考模式库中的模型进行比较,通过判决得出结果。在本系统中,我们采用语音信号的短时能量和短时过零率进行端点检测,用线性预测倒谱系数 (LPCC)作为特征参数,语音特征提取是分帧提取的。基于本系统采

16、用孤立词识别的特点,我们采用动态时间规整(DTW)算法进行模式匹配。动态时间规整(DTW)动态时间规整(DTW)是把时间规整和距离测度计算结合起来的一种非线性规整技术。假设:(1)参考模板特征矢量序列为;(2)输入语音特征矢量序列为mn,那么动态时间规整是要寻找时间规整函数,它把输入模板的时间轴17非线性地映射到参考模板的时间轴m ,并且该满足: (1)式中:是第n帧输入矢量和第m帧参考矢量的距离,D是相应于最优时间规整下二模板的距离测度。DTW 是一个典型的最优化问题,它用满足一定条件的时间规整函数我描述输入模板和参考模板的时间对应关系,求解二模板匹配时累计距离最小所对应的规整函数。实现动态

17、时间规整的常用方法就是动态规划(DP),本系统采用加权累计局里的对称动态规划技术。假设规整函数写成: (2)其约束条件如下:(1) 单调和连续条件:,(2) 边界条件:(3) 调整窗条件定义加权累计距离:(3)式中:和式(1)中一样,是对点上2个矢量的距离,加权系数一般采用对称形式: (4)分母用来补偿规整函数F中点数i的影响,按照等式(4)定义的,有。调整窗口函数r的引入使它的使用围更加广泛。累计距离还可以用递推公式计算:(5)初始条件:。最后计算结果:作为二模板间的距离DP匹配距离。2.2语音识别系统的构成语音识别系统的基本结构主要包括预处理、A /D转换、起止点识别、特征提取和识别判断等

18、部分, 结构如下图所示。图2.2语音识别系统的基本结构2.2.1起止点识别语音信号处理基于语音短时稳定性, 当采样频率为8 kH z时, 可取128个样点为一帧(短时段) , 帧长16 ms。字音由浊音和清音构成, 与噪声相比, 浊音表现为高能量, 清音表现为高过零率。对一帧声音数据, 能量和过零率分别用短时段能量特征En和短时段过零率表征。通过区别于背景噪声可以判别语音起止点。取连续10帧背景噪声数据, 计算出IZCT (过零率阈)记为)与ITL(能量阈)记为:式中:、为过零率的均值和标准差; 为固定值,一般取25,分别为能量的最大值和最小值 6 。2.2.2特征提取相对其他语音特征, LP

19、CC (线性预测倒谱特征),有递推公式, 速度和精度都较好, 特别是适于特定人的孤立词的短时段识别。LPCC 在LPC (线性预测系数特征)基础上求得:式中: c( n ) ( n = 1, 2, p ),为LPCC 系数,p为特征模型阶数, 取12阶则可对绝大多数语音信号的声道模型足够近似逼近; a ( k )为LPC特征; 。2.2. 3识别判断基于时序特征值差的分段线性的动态时配识别方法, 将动态时间匹配和特征识别结合, 相对其他识别方法, 该方法简单、计算量小, 特别适用于特定人孤立词的短时段识别。基本思想是找出语音信号音韵特征相对的量(子音、母音、过渡音等)进行距离比较。其方法是按时

20、序找出帧特征的差值(特征差), 再将音韵特征所包含的特征差累加除以整个字音的总特征差, 得到相对累计特征差。这样尽管发音速度不同, 但音韵特征的相对累计特征差基本不变。经语音数据分析发现, 语音结束段虽然频谱变化剧烈, 但语意少, 对区别语音作用不大, 在该识别方法中删去了该段特征。计算方法为: 每帧特征数据为L ( i, j ) (对应设计中为LPCC 系数), 归一化得s ( i, j )。相邻两帧的特征差为:平均特征差为:式中: N 为语音帧数。然后, 从后向前依次检查t( j ),凡大于平均特征差的剔除, 直到小于平均特征差为止,以去除语意少的结束段。数据帧数减为设累计特征差阈为:为保

21、留的关键帧数, 通常每个字音取8, 则双字孤立词取16。然后选出关键帧: 第1帧必选; 依次加t ( i ), 大于的帧为又一关键帧, 直到选出M 个关键帧。再分段线性化, 将两个关键帧之间的特征值差取平均, 作为最后的语音特征向量。学习过程中, 这些特征向量作为模板保存。识别过程中, 这些特征向量与模板相比较, 计算距离, 在距离阈最小距离者为识别结果。3方案论证与硬件选择3.1 方案论证3.1.1 采用DSP+FPGA方案语音识别根据实际需要和应用场合的不同,可以分为孤立词识别和连续语音识别、特定人识别和非特定人识别。语音识别追求的主要指标为高识别率、实时性和大词汇量;而对于一个语音识别系

22、统,还应考虑软硬件设计简单、价格低廉、外围控制灵活、人机交互便捷等特点。现在应用于语音识别的芯片主要为DSP(数字信号处理器)芯片:如TI公司的TMS320系列。然而, 将DSP 芯片用于小型语音识别系统中, 其不足之处是很明显的:引脚多、价格贵、使用繁琐;控制功能弱,常需要与单片机或FPGA (现场可编程门阵列)结合, 来实现人机交互; 常需要外接A /D 转换芯片;引脚为3. 3 V,与单片机、FPGA、F lash 存储器等连接时,要考虑电平匹配。这些将使整个系统结构庞大,设计繁琐。3.1.1 采用凌阳61方案SPCE061A是凌阳科技推出的一个16位结构的微控制器。CPU时钟频率为03

23、249152 MHz,具有较高的处理速度,可使nSPTM能够非常容易、快速地处理复杂的数字信号;拥有可编程音频处理;置2 KWord的SRAM和32 KWord的FLASH;2个16位可编程定时器计数器(可自动预置初始计数值),2个10位DAC输出通道,32位通用可编程输入输出端口。它是数字语音识别应用领域产品中的一种比较经济的选择。图3.1基于SPCE061A的语音控制小车实现方案本案采用采用SPCE061A实现语音控制小车方案。3.2 系统的硬件方案系统结构框图如下: 凌阳SPCE061A单片机方向控制电路MIC 语音输入电路方向电机 驱动电机 音频放大电路SPK驱动控制电路KEY61板图

24、3.2结构系统图系统组成主要包括以下两部分:SPCE061A精简开发板、语音小车控制电路板。 图中的语音输入部分MIC_ IN、按键输入KEY、声音输出部分的功率放大环节等已经做到了精简开发板61 板上,为我们使用提供了很大的方便。在电机的驱动方面,采用全桥驱动技术,利用四个I/O端口分为两组分别实现两个电机的正传、反转和停三态运行。3.3 系统控制方案小车的运动控制采用语音控制和中断定时控制相结合,通过语音触发小车动作,小车动作之后,随时可以通过语音指令改变小车的运动状态。在每一次动作触发的同时启动定时器,如果小车由于某些原因不能正常的接收语音指令,则只要定时时间到,中断服务程序会发出指令让

25、小车停下来。 详细的控制过程请参看程序设计部分。3.4硬件介绍3.4.1 SPCE061A芯片特性简介SPCE061A是一种十六位单片机,使用它可以非常方便灵活的实现语音的录放,该芯片拥有8路10位精度的ADC,其中一路为音频转换通道,并且置有自动增益电路。这为实现语音录入提供了方便的硬件条件。两路10位精度的DAC,只需要外接功放(SPY0030A)即可完成语音的播放。另外十六位单片机具有一套易学易用的指令系统和集成开发环境,在此环境中,它支持标准C语言编程,也支持C语言与汇编语言的互相调用。另外还提供了语音录放的库函数,只要了解库函数的使用,就可以很容易的完成语音的录放、识别等功能,这些都

26、为软件开发提供了方便的条件。SPCE061是一款拥有2KRAM、32KFlash、32个I/O口,并集成了AD/DA功能强大的16位微处理器,它还拥有丰富的语音处理功能,为小车的功能扩展提供了相当大的空间。只要按照该单片机的要求对其编制程序就可以实现很多不同的功能。SPCE061A 是继µnSP系列产品SPCE500A等之后凌阳科技推出的又一款16位结构的微控制器。与SPCE500A不同的是,在存储器资源方面考虑到用户的较少资源的需求以与便于程序调试等功能,SPCE061A里只嵌32K字的闪存(FLASH)。较高的处理速度使µnSP能够非常容易地、快速地

27、处理复杂的数字信号。因此,与SPCE500A相比,以µnSP为核心的SPCE061A微控制器是适用于数字语音识别应用领域产品的一种最经济的选择。SPCE061A特性: u16 位nSP 微处理器;u工作电压:核工作电压 VDD为 3.0V3.6V(CPU),I/O口工作电压 VDDH为 VDD5.5V(I/O);uCPU时钟:0.32MHz49.152MHz;u置 2K字 SRAM;u置 32K闪存 ROM;u可编程音频处理;u晶体振荡器;u系统处于备用状态下(时钟处于停止状态),耗电小于 2A3.6V;u2 个 16 位可编程定时器/计数器(可自动预置初始计数值);u2

28、个 10 位 DAC(数-模转换)输出通道;u32 位通用可编程输入/输出端口;u14 个中断源可来自定时器 A / B,时基,2 个外部时钟源输入,键唤醒;u具备触键唤醒的功能;u使用凌阳音频编码 SACM_S240 方式(2.4K位/秒),能容纳 210 秒的语音数据;u锁相环 PLL 振荡器提供系统时钟信号;u32768Hz 实时时钟;u7 通道 10 位电压模-数转换器(ADC)和单通道声音模-数转换器;u声音模-数转换器输入通道置麦克风放大器和自动增益控制(AGC)功能;u具备串行设备接口;u低电压复位(LVR)功和低电压监测(LVD)功能;u置在线仿真板另外,SPCE061A单片机

29、具有易学易用的效率较高的一套指令系统和集成开发环境。在此环境中,支持标准C语言,可以实现C语言与凌阳汇编语言的互相调用,并且提供了语音录放的库函数,只要了解库函数的使用,就会很容易完成语音录放,这些都为软件开发提供了方便的条件。3.4.2精简开发板61 板SPCE061A精简开发板(简称 61 板,SPCE061A EMU BOARD的简称),是以凌阳16 位单片机SPCE061A为核心的精简开发仿真实验板,是“凌阳科技大学计划”专为大学生、电子爱好者等进行电子实习、课程设计、毕业设计、电子制作与电子竞赛所设计的,也可作为单片机项目初期研发使用。61板”除了具备单片机最小系统电路外,还包括有电

30、源电路、复位电路、ICE 电路、音频电路(含 MIC 输入部分和 DAC 音频输出部分)等。“61 板”可以采用电池供电。1 SPCE061A功能 61板上有调试器接口(Probe 接口)以与下载线(EZ_Probe)接口,分别可接凌阳科技的在线调试器、简易下载线,配合 unSP IDE,可方便地在板上实现程序的下载、在线仿真调试。图3.3 SPCE061 板硬件框图表 3.1 框图说明POWER5V&3V 供电电路PLL锁向环外部电路Power电源指示灯Sleep睡眠指示灯RESET复位电路K4复位按键PROBE在线调试器串行5 针接口S5EZ-PROBE 和PROBE 切换的拨断开

31、关J12、J3耳机插孔和两针喇叭插针DAC一路音频输出电路,采用SPY0030 集成音频放大器MIC麦克风输入电路OSC32768 晶振电路VREFA/D 转换外部参考电压输入接口R/C芯片其他外围电阻、电容电路 K1K1K3扩展的按键:接IOA0IOA2SPCE061A61 板核心:16 位微处理器PORTA/B32 个I/O 口61 板接口说明图:图3.4 SPCE061 板接口说明图2 61 板输入/输出(I/O)接口61 板将SPCE061A 的32 个I/O 口IOA0IOA15,IOB0IOB15 全部引出,对应的引脚为:A 口,4148、53、5460;B 口,51、8

32、176、6864。而且该I/O 口是可编程的,即可以设置为输入或输出。设置为输入时,分为悬浮输入或非悬浮输入。非悬浮输入又可以设置为上拉输入或是下拉输入。在5V 情况下,上拉电阻为150K,下拉电阻为110K;设置为输出时,可以选择同向输出或者反相输出。3 音频输入/输出接口正如我们在前面介绍的 61 板具有强大的语音处理功能,如图 2 所示,X1 是语音的MIC 输入端,带自动增益(AGC)控制。J12 和J3 都是语音输出接口,一个是耳机插孔;另一个是两针的插针外接喇叭,由DAC 输出引脚21 或22 经语音集成放大器SPY0030 放大,然后输出。SPY0030 是凌阳的芯片,相当于LM

33、386,但是比386 音质好。它可以工作在2.46.0V围,最大输出功率可达700mW(LM386 必须工作在4V 以上,而且功率只有100mW)。(图没有啊!)4 在线调试器(PROBE)和EZ-PROBE 接口.图3.5中J4 为PROBE 的接口,该接口有5 针,其中两个分别是地(VSS)和3.3V 电源(VCC)。此接口与PROBE 的5 针接口相连,PROBE 的另一端接PC 机25 针并口。这样,就不需要再用仿真器和编程器了,只要按图 3 所示将其连接好,就可以通过它在PC 机上调试程序、在线仿真、最后将程序下载到芯片中,完成程序的烧写。图 2.3中的J11 是EZ-PROBE 的

34、接口,我们提供一根转接线用作EZ-PROBE 的下载,一端连接PC 机的25 针并口,另外一端连接61 板的5 针 EZ-PROBE 接口,如图3.5。图 3.5 61、PROBE/连接线、计算机三者之间的连接图3.5小结 本章对声控小车方案进行确认,最终确定以凌阳61板为主板,小车控制板为辅助板。小车的控制采用语音控制和中断控制相结合。语音控制:通过语音触发小车动作。中断控制:通过设置小车行驶时间来控制小车中断。4 系统硬件设计4.1 SPCE061A 最小系统SPCE061A 最小系统中,包括 SPCE061A 芯片与其外围的基本模块,其中外围的基本模块有:晶振输入模块(OSC) 、锁相环

35、外围电路(PLL) 、复位电路(RESET) 、指示灯(LED)等。图4.1 61板最小系统4.2电源电路电源部分的电路,由电池盒提供的 4.5V直流电压经过 SPY0029 后产生 3.3V给整个系统供电。SPY0029 是凌阳公司设计的电压调整 IC,采用 CMOS 工艺,具有静态电流低、驱动能力强、线性调整出色等特点,如图2.6图中的 VDDH3 为 SPCE061A的 I/O电平参考,如果该点接 SPCE061A(PLCC84 封装,下面的介绍中当出现 SPCE061A的引脚描述时,均指此封装的芯片)的 51 脚,可使 I/O输出高电平为 3.3V;VDDP为PLL锁相环电源, 接SP

36、CE061A的7脚; VDD和VDDA分别为数字电源与模拟电源, 分别接SPCE061A的15脚和36脚; AVSS1是模拟地, 接SPCE061A的24脚; VSS是数字地, 接SPCE061A的38脚; AVSS2接音频输出电路的 AVSS2。图中前后两组电容用来去耦滤波,使其供给芯片的电源更加干净平滑。为了获得标准的3.3V电压,加入SPY0029A三端稳压器。两个二极管D3和D4,是为防止误将电源接反造成不必要损失而设置的,注意在操作过程中千万不要将电源接反,因为反向电压超过一定的值,二极管将会被损坏,达不到保护的目的。图 4.2电源电路图4.3 音频电路音频电路由音频输出和音频输入两

37、部分组成。SPCE061A置 2路10 位精度的 DAC,只需要外接功放电路即可完成语音的播放。图中的 SPY0030 是凌阳的一款音频放大芯片,可以工作在 2.46V围,最大输出功率可达 700mW。 SPCE061A 芯片中已经集成了音频输入专用 ADC 以与 AGC 放大电路,因此芯片外部的电路比较简单。图4.3 音频电路音频输入部分如图 2.7所示电路,MICP和MICN将随着MIC产生的波形变化,并在两个端口处形成两路反相的波形,再经过两级运放放大,把放大的语音信号交给ADC转换为数字量,这个时候就可以通过单片机编程对这些数据进行处理,比如说进行语音数据压缩、语音识别等。图4.4音频

38、输入外围电路音频输出部分SPY0030A是凌阳公司开发的专门用于语音信号放大的芯片,它的增益为:Gain = 2 * 5000 / ( 5000 + R1 ),图 2.8是SPY0030的典型应用电路。图4.5 SPY0030A工作原理图4.4 数摸转换电路凌阳SPCE061A单片机自带双通道DAC音频输出,DAC1、DAC2转换输出的模拟量电流信号分别通过AUD1和AUD2管脚输出,DAC输出为电流型输出,所以DAC输出经过SPY0030音频放大,以驱动喇叭放音,放大电路如图5-4(只列出DAC1,DAC2类似),这为单片机的音频设计提供了极大方便。在它们后面接一个简单的音频放大电路和喇叭即

39、可实现语音播报功能。 图4.6 数模转换电路4.5 按键、LED和复位电路此电路主要是对电源和睡眠指示作用以与复位重新训练小车等作用如图示。图4.7按键电路图4.8 LED电路 图4.9 复位电路4.6 下载线接口电路和在线调制电路此电路主要是下载程序代码和在线调试程序,为其那片机提供灵魂。如图4.10所示。图4.10下载调制电路4.7 MCU连接电路微处理电路即其小系统电路如图5-8所示,也是整个设计的核心部分,此单片机是16位单片机具有强大的处理功能,外部的其它信息由其处理后在传出,以达到控制效果。图4.11 微处理器连接图4.8被控小车介绍语音控制小车为四轮结构。其中前面两个车轮由前轮电

40、机控制,在连杆和支点作用下控制前轮左右摆动,来调节小车的前进方向。在自然状态下,前轮在弹簧作用下保持中间位置。后面两个车轮由后轮电机驱动,为整个小车提供动力。所以又称前面的轮子为方向轮,后面的两个轮子为驱动轮。4.8.1小车的行走原理直走:由小车的结构分析,在自然状态下,前轮在弹簧作用下保持中间状态,这是只要后轮电机正转小车就会前进。倒车:倒车动作和前进动作刚好相反,前轮电机仍然保持中间状态,后轮电机反转,小车就会向后运动。如图5-9所示。(a) 前进 (b) 后退图4.12小车前进后退示意图左传:前轮电机逆时针(规定为正转),后轮电机正转,这时小车就会在前后轮共同作用下朝左侧前进。右转:前轮

41、电机反转,后轮电机正转,这时小车就会在前后轮共同作用下朝右侧前进,如图4.13所示。(a) 左转 (b) 右转图4.13 小车左右转示意图4.8.2控制板原理图控制板主要包括:接口电路、电源电路和两路电机的驱动电路,控制板原理图如图 4.14所示。 接口电路:接口电路负责将61板的I/O接口信号传送给控制电路板,I/O信号主要为控制电机需要的IOB8IOB11这四路信号,同时为了方便后续的开发和完善,预留了IOB12IOB15以与IOA8IOA15接口,可以在这些接口上添加一些传感器。 电源部分:整个小车有4个电源信号:电池电源,控制板工作电源,61板工作电源,61板的I/O输出电源。系统供电

42、由电池提供,控制板直接采用电池供电(VCC),然后经二极管D1后产生61板电源(VCC_61),通过61板的Vio跳线产生61板的端口电源(V1)。 二极管D1作用: 1、降压,4节电池提供的电压VCC最大可达到6V,D1可有效地降压。 2、保护,D1可以防止电源接反烧坏61板。 图4.14 控制板原理图4.8.3全桥驱动原理全桥驱动又称 H桥驱动,下面介绍一下 H桥的工作原理: H桥一共有四个臂,分别为 B1B4,每个臂由一个开关控制,示例中为三极管 Q1Q4。如果让 Q1、Q2 导通 Q3、Q4 关断,如图 4.15所示,此时电流将会流经 Q1、负载、Q2 组成的回路,电机正转如果让 Q1

43、、Q2 关断 Q3、Q4 导通,如图4.16所示,此时电流将会流经 Q3、负载、Q4 组成的回路,电机反转。如果让 Q1、Q2 关断 Q3、Q4 也关断,负载 Load 两端悬空,如图 4.15 图4.15B1、B2 工作时的 H 桥电路简图图4.16 B3、B4 工作时的 H桥电路简图所示,此时电机停转。这样就实现了电机的正转、反转、停止三态控制。如果让 Q1、Q2 导通 Q3、Q4 也导通,那么电流将会流经 Q1、Q4 组成的回路以与 Q2和 Q3 组成的回路,如图4.18 所示,这时桥臂上会出现很大的短路电流。在实际应用时注意避免出现桥臂短路的情况,这会给电路带来很大的危害,严重的会烧毁

44、电路。图4.17 B1B4 全部停止工作时的H 桥简图图4.18 B1B4 全部工作时的 H 桥简图4.8.4 动力电机驱动电路动力驱动由后轮驱动实现,负责小车的直线方向运动,包括前进和后退,后轮驱动电路是一个全桥驱动电路,如图4.19所示:Q1、Q2、Q3、Q4 四个三极管组成四个桥臂,Q1 和 Q4 组成一组,Q2 和Q3 组成一组,Q5 控制 Q2、Q3 的导通与关断,Q6 控制 Q1 和 Q4 的导通与关断,而 Q5、Q6 由 IOB9 和 IOB8控制,这样就可以通过 IOB8 和 IOB9 控制四个桥臂的导通与关断控制后轮电机的运行状态,使之正转反转或者停转,进而控制小车的前进和后

45、退。图4.19表4.1小车运行状态与端口对照:IOB11IOB10IOB9IOB8后电机前电机小车0000停转停转停0001正转停转前进0010反转停转倒退0101正转正转左前转1001正转反转右前转另外还有一些不常用的运行状态,比如右后转、左后转等,结合以上对前轮和后轮的状态分析,其端口对照如表 4.2 所示:表4.2IOB11IOB10IOB9IOB8后电机前电机小车0110正转正转右后转1010正转反转左后转注意:为了小车的安全请不要出现以下两种组合情况:表 4.3 禁止的输入状态列表IOB11IOB10IOB9IOB8后电机前电机小车*11停转*停11*停转停4.9小结本章是对小车的硬

46、件进行设计。小车为后轮驱动,通过前后轮电机来实现行走。前轮电机控制前轮的方向,后轮电机控制后轮的驱动。通过改变IOB的高低电平来控制电机的正反转。5 系统软件设计5.1 系统的总体程序流程 系统的总体程序流程如图 5.1 所示:图 5.1 系统总体程序流程图语音识别小车的主程序流程如图5.1所示,分为四大部分:初始化部分、训练部分、识别部分、重训操作。 初始化部分:初始化操作将 IOB8IOB11 设置为输出端,用以控制电机。必要时还要有对应的输入端设置和PWM 端口设置等。 训练部分:训练部分完成的工作就是建立语音模型。程序一开始判断小车是否被训练过,如果没有训练过则要求对其进行训练,并且会

47、在训练成功之后将训练的模型存储到FLASH,在以后使用时不需要重新训练;如果已经训练过会把存储在FLASH 中的模型调出来装载到辨识器中。 识别部分:在识别环节当中,如果辨识结果是名字,停止当前的动作并进入待命 状态,然后等待动作命令。如果辨识结果为动作指令小车会语音告知相应动作并执行该动作,在运动过程中可以通过呼叫小车的名字使小车停下来。 重训操作:考虑到有重新训练的需求,设置了重新训练的按键(61 板的KEY3) ,循环扫描该按键,一旦检测到此键按下,则将擦除训练标志位(0xe000 单元) ,并等待复位。复位后,程序重新执行,当检测到训练标志位为0xffff时会要求重新对其进行训练。 下

48、面详细介绍以上提到的子程序。5.2系统子程序设计:5.2.1训练子程序:当程序检测到训练标志位BS_Flag容为0xffff,就会要求操作者对它进行训练操作,训练操作的过程如图 5.2所示:训练采用两次训练获取结果的方式,以训练名字为例:小车首先会提示:给我取个名字吧, 这时你可以告诉它一个名字 (比如Jack) ; 然后它会提示: 请再说一遍, 这时再次告诉它名字 (Jack) ,如果两次的声音差别不大,小车就能够成功的建立模型,名称训练成功;如果没能够成功的建立模型,小车会告知失败的原因并要求重新训练。成功训练名称后会给出下一条待训练指令提示音:前进,参照名称训练方式训练前进指令。依次训练

49、小车的名称前进指令倒车指令左转指令右转指令,全部训练成功子程序返回,训练结束。图5.2训练流程图void TrainSD()while(TrainWord(NAME_ID,S_NAME) != 0) ; /训练名称while(TrainWord(COMMAND_GO_ID,S_ACT1) != 0) ; /训练第1个动作while(TrainWord(COMMAND_BACK_ID,S_ACT2) != 0) ; /训练第2个动作while(TrainWord(COMMAND_LEFT_ID,S_ACT3) != 0) ; /训练第3个动作while(TrainWord(COMMAND_RIG

50、HT_ID,S_ACT4) != 0) ;/训练第4个动作5.2.2语音识别子程序:语音识别流程如图 5.3所示:首先获取辨识器的辨识结果,判断是否有语音触发,如果有语音触发则会返回识别结果的ID号,ID号对应名称或者对应不同的动作。如果ID号为名称,则结束运动(如果当前在运动状态) ,进入待命状态,等待下一次的指令触发;如果 ID 号为动作,则语音告知将要执行的动作,并执行该动作。注:语音识别程序在语音中断函数中进行。图5.3语音识别部分流程图void BSR(void)int Result;/辨识结果寄存Result = BSR_GetResult();/获得识别结果if(Result&g

51、t;0)/有语音触发?*P_IOB_Data=0x0000;/临时停车switch(Result)case NAME_ID:/识别出名称命令Stop();/停车待命break;case COMMAND_GO_ID:/识别出第一条命令GoAhead(); /执行动作一:直走break;case COMMAND_BACK_ID:/识别出第二条命令BackUp();/执行动作二:倒车break;case COMMAND_LEFT_ID:/识别出第三条命令TurnLeft();/执行动作三:左转break;case COMMAND_RIGHT_ID:/识别出第四条命令TurnRight();/执行动作

52、四:右转break;default:break;5.2.3动作子程序:动作子程序包括:前进、倒车、左拐、右拐、停车子程序。 前进:由小车的结构原理和驱动电路分析知:只要IOB8 为高电平,IOB9,IOB10,IOB11 全部为低电平即可实现小车的前进。前进子程序包括语音提示、置端口数据、启动定时器操作。 倒车:由小车的结构原理分析和驱动电路分析知:只要IOB9 为高电平,IOB8,IOB10,IOB11全部为低电平即可实现小车的倒退。倒退子程序包括语音提示、置端口数据、启动定时器操作。 左转:由小车的结构原理分析和驱动电路分析知:小车左转需要两个条件:1.前轮左偏2.后轮前进,这时对应的 I/O 状态为:IOB8、IOB10 为高电平,IOB9、IOB11 为低电平。左转子程序包括语音提示、置端口数据、启动定时器操作。 右转:由小车的结构原理分析和驱动电路分析知:小车右转需要两个条件:1.前轮右偏2.后轮前进,这时对应的 I/O 状态为:IOB8、IOB11 为高电平,IOB9、IOB10 为低电平。右转子程序包括语音提示、置端口数据、启动定时器操作。 注:在转弯之前首先让前轮朝目标方向的反方向偏转,然后再让前轮朝目标

温馨提示

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

评论

0/150

提交评论