多功能语音控制小车Word下载.docx
- 文档编号:16334148
- 上传时间:2022-11-23
- 格式:DOCX
- 页数:13
- 大小:148.54KB
多功能语音控制小车Word下载.docx
《多功能语音控制小车Word下载.docx》由会员分享,可在线阅读,更多相关《多功能语音控制小车Word下载.docx(13页珍藏版)》请在冰豆网上搜索。
目前有两种封装形式:
84引脚的PLCC84封装和80引脚的LQFP80贴片封装。
主要性能如下:
■16位m’nSP微处理器;
■工作电压:
VDD为2.4~3.6V(cpu),VDDH为2.4~5.5V(I/O);
■CPU时钟:
32768Hz~49.152MHz;
■内置2K字SRAM、内置32KFLASH;
■可编程音频处理;
■32位通用可编程输入/输出端口;
■32768Hz实时时钟,锁相环PLL振荡器提供系统时钟信号;
■2个16位可编程定时器/计数器(可自动预置初始计数值);
■2个10位DAC(数-模转换)输出通道;
■7通道10位电压模-数转换器(ADC)和单通道语音模-数转换器;
■声音模-数转换器输入通道内置麦克风放大器自动增益控制(AGC)功能;
■系统处于备用状态下(时钟处于停止状态)耗电小于2mA@3.6V;
■14个中断源:
定时器A/B,2个外部时钟源输入,时基,键唤醒等;
■具备触键唤醒的功能;
■使用凌阳音频编码SACM_S240方式(2.4K位/秒),能容纳210秒的语音数据;
■具备异步、同步串行设备接口;
■具有低电压复位(LVR)功能和低电压监测(LVD)功能;
■内置在线仿真电路接口ICE(In-CircuitEmulator);
■具有保密能力;
■具有WatchDog功能(由具体型号决定)
一、方案设计与论证
本系统为典型的实时控制系统,易用单片机控制来实现,这里以凌阳SPCE061A单片机为主控元件,提出两种设计方案。
方案一:
采用凌阳SPCE061A十六位单片机,对小车的整个行驶过程进行实时监控,完成所有功能需要24个I/O口,由于凌阳SPCE061A单片机提供32个I/O口,一片即可实现所有功能,这为设计过程提供了极大方便。
其主要设计思想是:
小车上,安装一个霍尔元件利用单片机的IOB3外部中断判别轮胎转数的结果用以计算路程;
安装三个检测障碍物的光电检测器和一个碰撞开关,利用IOB4、IOB5、IOB6用扫描的方式来控制拐弯和返回;
利用单片机的IOB8-IOB13控制继电器选择小车的正、反向和加、减速行驶;
凌阳SPCE061A十六位单片机提供了丰富的时基信源和时基中断,给设计者以大量的选择空间,并给设计者提供精确的时基计数,其加减速通过大功率电阻消耗功率来实现。
整体框架如图1,这种方案可以使程序简单,易于控制。
方案二:
此方案也采用凌阳SPCE061A十六位单片机,与第一种方案不同之处在于利用单片机的IOB8、IOB9产生控制调速的脉宽和控制小车的正、反行驶,用凌阳SPCE061A十六位单片机的TimeA和TimeB很容易实现脉宽调制,这大大加强了用脉宽调制控制加减速的可选性,但对继电器要求较高,这里考虑到大众化设计,采用第一个方案。
二、硬件电路设计
2.1 电路方框图及说明
系统原理框图如图1所示。
主控元件采用凌阳SPCE061A单片机,属于凌阳u’nSP™系列产品的一个16位结构的微控制器。
在存储器资源方面考虑到用户的较少资源的需求以及便于程序调试等功能,SPCE061A里只内嵌32K字的闪存(FLASH),但用在此系统上已经绰绰有余。
较高的处理速度使u’nSP™能够非常容易地、快速地处理复杂的数字信号。
因此以u’nSP™为核心的SPCE061A微控制器也适用在数字语音识别应用领域。
SPCE061A在2.6V~3.6V工作电压范围内的工作速度范围为0.32MHz~49.152MHz,较高的工作速度使其应用领域更加拓宽。
2K字SRAM和32K字FLASH仅占一页存储空间,32位可编程的多功能I/O端口;
两个16位定时器/计数器;
32768Hz实时时钟;
低电压复位/监测功能;
8通道10位模-数转换输入功能并具有内置自动增益控制功能的麦克风输入方式;
双通道10位DAC方式的音频输出功能,这就为本系统的特定人辨识和语音播报打下了基础。
2.2 各部分电路设计
2.2.1 光电检测电路电路
为了确定障碍物,加入障碍物检测的光电传感器,根据小车所处的位置改变行驶状态,所使用的光电传感器为市场上普通的光电传感器,再没检测到障碍物时Uo输出为低电平,在检测到障碍物时Uo将与传感器内部电路断开,因而加一个上拉电阻,如图2所示,此时将输出高电平。
在检测障碍物的过程中采用查询方式。
2.2.2 继电器驱动电路的设计
由于单片机I/O口提供的电流太小,不能直接驱动继电器。
在这里采用8050来提供一个开关电压,实现I/O口对继电器的驱动,用IN4007去掉继电器断开时线圈产生的反向电流,保护8050。
如图3。
图3
2.2.3 行使状态控制电路的设计
如图4所示为行使状态控制电路,整个小车的行驶状态由两个电机来控制,MOTORB控制左拐和右拐,MOTORA控制前进、倒退以及三挡速度。
具体控制如表1所示。
图4 行使状态控制电路
表一:
行驶状态
IOB8
IOB9
IOB10
IOB11
IOB12
IOB13
全速前进
1
0
中速前进
慢速前进
左拐
右拐
全速倒退
中速倒退
慢速倒退
倒退左拐
倒退右拐
2.2.3 路程计数的设计
通过检测车轮转过的转数乘上车轮的周长来计算路程,霍尔元件就是一种很好的可用于车轮转数计数的元件。
在普通转盘计数的仪表中加装霍尔元件和磁铁,即可构成基于磁电转换技术的传感器。
霍尔元件固定安装在计数转盘附近,永磁铁安装在计数盘位上,当转盘每转一圈,永磁铁经过霍尔元件一次即在信号端产生一个计量脉冲。
由于霍尔电压很微弱(mV级),需用霍尔集成电路进行处理,如图4所示。
无论信号转子的哪个叶片通过空气间隙时,霍尔信号发生器都将产生一个电位由高到低的脉冲信号直接送IOB3作外部中断源,信号转子通过霍尔元件将产生一个中断,此中断的个数即为车轮转过的转数。
图5
2.2.4 显示电路
采用共阴极数码管LG5641AH进行动态显示,LG5641AH具有四位数码管,这四个数码管的段选a、b、c、d、e、f、g分别接在一起,每一个都拥有一个共阴的位选端,通过动态显示可轮流显示时间和路程,这有利于节省I/O口。
系统显示时间的精度为1S,显示路程的精度为0.01m。
用IOB8—IOB11口作为位选控制,IOA8—IOA11口传输要显示的数据,数据线和位选线直接接凌阳SPCE061A单片机的I/O口即可,因为I/O口输出电流很小不会对LED造成损坏,它的电压值却足以驱动LED,这不像别的单片机还要外接驱动电路和电阻,采用凌阳SPCE061A单片机大大减化了设计过程和硬件电路。
图6
2.2.5 麦克录音输入及AGC电路
麦克风电路如图4所示。
凌阳的SPCE061A是16位单片机,具有DSP功能,有很强的信息处理能力,最高时钟可达到49M,具备运算速度高的优势等等,这为语音的播放、录放、合成及辨识提供了条件。
本系统接入MIC电路如图所示,MIC为录制语音辨识命令服务。
图7
下图是简化的语音识别原理图,其中实线部分成为训练模块,虚线部分为识别模块。
辨认特定的使用者即特定语者(SpeakerDependent,SD)模式,使用者可针对特定语者辨认词汇(可由使用者自行定义,如人名声控拨号),即在启动小车前,系统将会提示输入语音命令作简单快速的训练纪录,在这里输入“启动”“停止”“返回”和“模式切换”四个语音命令,通过使用者的声音特性来加以辨认。
随着技术的成熟,进入语音适应阶段SA(speaker
adaptation),使用者只要对于语音辨识核心,经过一段时间的口音训练后,即可拥有不错的辨识率。
图8
2.2.6 语音播报电路
音频部分的原理图如下所示,在图9中可以看到两个跳线,其作用在于可以测量DAC的输出波形;
另外拔掉跳线,可以断开DAC到喇叭放大的通路,使得DAC通道处于开路状态。
这样便于用DAC做其他用途,用户可以用过这个跳线来加入自己的外围电路。
凌阳音频压缩算法根据不同的压缩比分为以下几种(具体可参见语音压缩工具一节内容):
SACM-A2000:
压缩比为8:
1,8:
1.25,8:
1.5SACM-S480:
压缩比为80:
3,80:
4.5SACM-S240:
1.5按音质排序:
A2000>
S480>
S240用凌阳CompressTool事先把所需要的语音信号录制好,本系统共包括十多个语音资源,整个语音信号经凌阳SACM_S480压缩算法压缩只占有13.2K存储空间,SPCE061A单片机具有32k闪存,使用内部flash即可满足要求。
凌阳SPCE061A单片机自带双通道DAC音频输出,DAC1、DAC2转换输出的模拟量电流信号分别通过AUD1和AUD2管脚输出,DAC输出为电流型输出,所以DAC输出经过SPY0030音频放大,以驱动喇叭放音,放大电路如图9(只列出了DAC1,DAC2类似),这为单片机的音频设计提供了极大方便。
在它们后面接一个简单的音频放大电路和喇叭即可实现语音播报功能,音频的具体功能主要通过程序来实现。
图9音频放大电路
三、软件设计
3.1软件流程图及设计思路说明
3.2 模块设计
3.2.1 中断服务流程图部分
SPCE061单片机有两个外部中断,分别为EXT1和EXT2,两个外部输入脚分别为B口的IOB2和IOB3的复用脚。
EXT1(IOB2)和EXT2(IOB3)两条外部中断请求输入线,用于输入两个外部中断源的中断请求信号,并允许外部中断以负跳沿触发方式来输入中断请求信号。
EXT1(IOB2)为黑线检测,确定小车位置,EXT2(IOB3)为轮子转数检测用于计算路程。
IRQ4用做整个行程的时间计数。
3.2.2 显示和播报部分
当收到三次辨识循环,小车停止,进行路程的显示和拨报,路程的显示采用动态显示,显示路程,采用四位显示单位为厘米,显示子程序流,程图如图12,显示的同时会有语音播报时间和路程,语音采用凌阳SACM_S480语音播报,流程图如图13。
图12
图13
3.2.3 语音辨识部分
在这里我们用的是SPCE061的特定语者辨识SD(SpeakerDependent),SD即语音样板由单个人训练,也只能识别训练某人的语音命令,而他人的命令识别率较低或几乎不能识别。
图14是语音辨识的一个整体框图:
图14
在程序中我们通过四条语句的训练演示特定人连续音识别,其中第一条语句为触发名称。
另外三条为命令,训练完毕开始辨识当识别出触发名称后,开始发布命令,则会听到自己设置的应答,具体流程图如图15
图15
四、系统测试及整机指标
本系统经测试运行效果良好,达到了预期的目的,语音控制和音频播放带给人耳目一新的感觉。
为了更好的实现语音辨识,本系统机械性能要求较高,噪声不能太大,行使速度不宜太快。
五、总结
系统用凌阳SPCE061A十六位单片机实现。
内部集成了2K字的RAM、32K字的Flash加上用凌阳SPCE061A十六位单片机实现不需要外扩程序存储器和RAM,也不用外接语音芯片,即可实现语音辨识和一系列职能动作,。
由于采用了高性能的MCU,省掉了大量的外围器件,如外扩RAM、ROM存储器等,使硬件结构大大简化,提高了系统的可靠性。
他的软件编程采用C和汇编混合编程来实现,集两种语言之优点于一体,它们的完美结合极大限度地简化了编程过程,丰富了编程思想,给开发者带来了莫大的方便。
采用别的单片机实现所有功能一般要两个单片机,硬件电路也更加复杂。
若要实现语音播报功能和语音辨识,不是多用几个别的类型的单片机就可实现的,而凌阳单片机提供了很好的语音播放和录制机制以及简单的API接口编程。
使用SPCE061A开发产品不仅给开发者耳目一新的感觉更给用户以振奋的性能。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 多功能 语音 控制 小车