语音控制小车Word文档下载推荐.docx
《语音控制小车Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《语音控制小车Word文档下载推荐.docx(32页珍藏版)》请在冰豆网上搜索。
小车不仅具有前进、后退、左转、右转停车等基本功能;
同时配合SPCE061A的语音特色,实现语音控制功能。
1系统方案
1.1设计方案
方案一:
采用凌阳SPCE061A十六位单片机,对小车的整个行驶过程进行实时监控,完成所有功能需要4个I/O口,由于凌阳SPCE061A单片机提供32个I/O口一片即可实现所有功能,这为设计过程提供了极大方便。
其主要设计思想是:
小车上,安装两个直流电机利用IOB0~IOB3;
凌阳SPCE061A十六位单片机提供了丰富的时基信源和时基中断,给设计者以大量的选择空间,并给设计者提供精确的时基计数,其加减速通过大功率电阻消耗功率来实现。
这种方案可以使程序简单,易于控制。
方案二:
此方案也采用凌阳SPCE061A十六位单片机,与第一种方案不同之处在于利用
单片机的IOB8、IOB9产生控制调速的脉宽和控制小车的正、反行驶,用凌阳
SPCE061A十六位单片机的TimeA和TimeB很容易实现脉宽调制,这大大加强了用
脉宽调制控制加减速的可选性,但对继电器要求较高,这里考虑到大众化设计,
采用第一个方案。
1.2功能设计要求
语音控制小车是凌阳大学计划推出的基于SPCE061A的代表性兴趣产品,它配合61板推出,综合应用了SPCE061A的众多资源,打破了传统教学中单片机学习枯燥和低效的现状。
小车采用语音识别技术,可通过语音命令对其行驶状态进行控制。
语音控制小车的主要功能:
1.可以通过简单的I/O操作实现小车的前进、后退、左转、右转功能;
2.配合SPCE061A的语音特色,利用系统的语音播放和语音识别资源,实现语音控制的功能;
3.可以在行走过程中声控改变小车运动状态;
4.在超出语音控制范围时能够自动停车。
1.2参数说明
车体:
双电机两轮驱动
供电:
电池(四节AAA:
1.5V×
3)
工作电压:
DC3V~6V
工作电流:
运动时约200mA
1.3注意事项
1.一定要注意电池的正负极性,切勿装反;
2.长期不用请将电池取出电池盒;
3.由于语音信号的不确定性,语音识别的过程会出现一定的误差和不准确性;
4.由于小车行动比较灵活,速度比较快,在使用时一定要注意保持场地足够大,且保证不会对周围的物体造成伤害;
5.不要让小车长时间运行在堵转状态(堵转状态:
由于小车所受阻力过大,造成小车电机加电但并不转动的现象),这样会造成很大的堵转电流,有可能会损坏小车的控制电路。
1.4备注
可以自行添加各种传感器,实现避障、循迹、跟踪等功能。
2核心器件简介
2.1SPCE061A特性简介
SPCE061A是一种十六位单片机,使用它可以非常方便灵活的实现语音的录放,该芯片拥有8路10位精度的ADC,其中一路为音频转换通道,并且内置有自动增益电路。
这为实现语音录入提供了方便的硬件条件。
两路10位精度的DAC,只需要外接功放(SPY0030A)即可完成语音的播放。
另外十六位单片机具有一套易学易用的指令系统和集成开发环境,在此环境中,它支持标准C语言编程,也支持C语言与汇编语言的互相调用。
另外还提供了语音录放的库函数,只要了解库函数的使用,就可以很容易的完成语音的录放、识别等功能,这些都为软件开发提供了方便的条件。
SPCE061是一款拥有2KRAM、32KFlash、32个I/O口,并集成了AD/DA功能强大的16位微处理器,它还拥有丰富的语音处理功能,为小车的功能扩展提供了相当大的空间。
只要按照该单片机的要求对其编制程序就可以实现很多不同的功能。
SPCE061A是继&
micro;
’nSP™系列产品SPCE500A等之后凌阳科技推出的又一款16位结构的微控制器。
与SPCE500A不同的是,在存储器资源方面考虑到用户的较少资源的需求以及便于程序调试等功能,SPCE061A里只内嵌32K字的闪存(FLASH)。
较高的处理速度使&
’nSP™能够非常容易地、快速地处理复杂的数字信号。
因此,与SPCE500A相比,以&
’nSP™为核心的SPCE061A微控制器是适用于数字语音识别应用领域产品的一种最经济的选择。
SPCE061A特性:
16位μ’nSP微处理器;
工作电压:
内核工作电压VDD为3.0V~3.6V(CPU),I/O口工作电压VDDH为VDD~5.5V(I/O);
CPU时钟:
0.32MHz~49.152MHz;
内置2K字SRAM;
内置32K闪存ROM;
可编程音频处理;
晶体振荡器;
系统处于备用状态下(时钟处于停止状态),耗电小于2μ******;
2个16位可编程定时器/计数器(可自动预置初始计数值);
2个10位DAC(数-模转换)输出通道;
32位通用可编程输入/输出端口;
14个中断源可来自定时器A/B,时基,2个外部时钟源输入,键唤醒;
具备触键唤醒的功能;
使用音频编码SACM_S240方式(2.4K位/秒),能容纳210秒的语音数据;
锁相环PLL振荡器提供系统时钟信号;
32768Hz实时时钟;
7通道10位电压模-数转换器(ADC)和单通道声音模-数转换器;
声音模-数转换器输入通道内置麦克风放大器和自动增益控制(AGC)功能;
具备串行设备接口;
低电压复位(LVR)功和低电压监测(LVD)功能;
内置在线仿真板
(ICE,In-CircuitEmulator)接口。
2.2精简开发板——61板
“61板”是SPCE061AEMUBOARD的简称,是以凌阳16位单片机SPCE061A为核心的精简开发-仿真-实验板,大小相当于一张扑克牌。
“61板”除了具备单片机最小系统电路外,还包括有电源电路、复位电路、ICE电路、音频电路(含MIC输入部分和DAC音频输出部分)等,“61板”可以采用电池供电。
如图2-1所示为该精简开发板的实物图。
图2-161板实物图
3系统总体方案
3.1系统硬件方案
系统的结构框图如图4-1示。
图3-1系统结构框图
系统组成主要包括以下两部分:
SPCE061A精简开发板、语音小车控制电路板。
图中的语音输入部分MIC_IN、按键输入KEY、声音输出部分的功率放大环节等已经做到了精简开发板——61板上,为我们使用提供了很大的方便。
在电机的驱动方面,采用全桥驱动技术,利用四个I/O端口分为两组分别实现两个电机的正传、反转和停三态运行。
3.2系统控制方案
小车的运动控制采用语音控制和中断定时控制相结合,通过语音触发小车动作,小车动作之后,随时可以通过语音指令改变小车的运动状态。
在每一次动作触发的同时启动定时器,如果小车由于某些原因不能正常的接收语音指令,则只要定时时间到,中断服务程序会发出指令让小车停下来。
详细的控制过程请参看下面的程序设计部分。
4系统硬件设计
小车驱动电机一般利用现成的玩具小车上的配套直流电机。
考虑到小车必须能够前进、倒退、停止,并能灵活转向,在左右两轮各装一个电机分别进行驱动。
当左轮电机反转,右轮电机正转方向右转,反之则向左转。
通过L298n电机驱动模块,驱动两台直流电机,通过凌阳开发板的IOB0~IOB3四个I/O口控制电机的正反转。
4.1车体介绍
语音控制小车为三轮结构。
其中前面两个车轮由两个直流电机控制,供小车驱动动力,后面轮子为360度可以旋转的轮子。
车子整体图片4-1所示:
图4-1小车整体图
4.1.1小车的行走原理
直走:
两直流电机正转小车就会前进。
倒车:
两直流电机反转小车就会倒车。
左转:
左电机反转,右电机正转,就可以实现左转。
右转:
右电机反转,右电机反转,就可以实现右转。
4.2L298N驱动模块原理图
控制板主要包括:
接口电路、电源电路和两路电机的驱动电路,控制板原理图如图4-2所示。
接口电路:
接口电路负责将61板的I/O接口信号传送给控制电路板,I/O信号主要为控制电机需要的IOB0~IOB3这四路信号,同时为了方便后续的开发和完善,预留了IOB12~IOB15以及IOA8~IOA15接口,可以在这些接口上添加一些传感器。
电源部分:
整个小车有4个电源信号:
电池电源,控制板工作电源,61板工作电源,61板的I/O输出电源。
系统供电由电池提供,控制板直接采用电池供电(VCC),然后经二极管D1后产生61板电源(VCC_61),通过61板的Vio跳线产生61板的端口电源(V1)。
图4-2驱动模块原理图
4.3L298N控制状态表
表4.3基本的输入与小车运动状态对照表
IOB0
IOB1
IOB2
IOB3
左电机
右电机
小车
1
停转
停
0
正转
前进
反转
倒退
左前转
右前转
注意:
为了小车的安全请不要出现以下两种组合情况:
表4.4禁止的输入状态列表
IOB0
后电机
前电机
*
5系统软件设计
5.1系统的总体程序流程
系统的总体程序流程如图5-1所示:
图5-1系统总体程序流程图
语音识别小车的主程序流程如图6-1所示,分为四大部分:
初始化部分、训练部分、识别部分、重训操作。
初始化部分:
初始化操作将IOB0~IOB3设置为输出端,用以控制电机。
训练部分:
训练部分完成的工作就是建立语音模型。
程序一开始判断小车是否被训练过,如果没有训练过则要求对其进行训练,并且会在训练成功之后将训练的模型存储到Flash,在以后使用时不需要重新训练;
如果已经训练过会把存储在Flash中的模