基于单片机的语音控制小车设计.docx
- 文档编号:2296175
- 上传时间:2022-10-28
- 格式:DOCX
- 页数:15
- 大小:581.37KB
基于单片机的语音控制小车设计.docx
《基于单片机的语音控制小车设计.docx》由会员分享,可在线阅读,更多相关《基于单片机的语音控制小车设计.docx(15页珍藏版)》请在冰豆网上搜索。
基于单片机的语音控制小车设计
西藏大学
《单片机应用基础》课程设计
题目:
基于单片机的语音控制小车设计
学院:
工学院
专业:
09电子信息工程
姓名:
董龙生
学号:
208
指导老师:
肖伟、陈延利
1引言………………………………………………………3
2语音控制小车设计要求…………………………………3
功能要求……………………………………………………………….3
参数说明………………………………………………………………..3
3SPCE061A特性简介………………………………………3
4系统总体方案介绍………………………………………4
5系统硬件设计……………………………………………5
车体介绍……………………………………………………………..5
小车的行走原理………………………………………………………..5
控制板原理图………………………………………………………….6
6系统软件设计……………………………………………7
系统的主程序设计……………………………………………………..7
主程序………………………………………………………………...8
语音识别的原理简介…………………………………………………..12
7结束语……………………………………………………12
基于单片机技术的语音控制小车设计
1、引言
语音处理技术是一门新兴的技术,它不仅包括语音的录制和播放,还涉及语音的压缩编码和解码,语音的识别等各种处理技术。
以往做这方面的设计,一般有两个途径:
一种方案是单片机扩展设计,另一种就是借助于专门的语音处理芯片。
普通的单片机往往不能实现这么复杂的过程和算法,即使勉强实现也要加很多的外围器件。
专门的语音处理芯片也比较多,如ISD系列、PM50系列等,但是专门的语音处理芯片功能比较单一,想在语音之外的其他方面应用基本是不可能的。
SPCE061A是一款16位μ'nSP结构的微控制器。
该芯片带有硬件乘法器,能够实现乘法运算、内积运算等复杂的运算。
它不仅运算能力强,而且处理速度快,单周期最高可以达到49MHz。
SPCE061A内嵌32K字的FLASH程序存储器以及2K的SRAM。
同时该SOC芯片具有ADC和DAC功能,其MIC_ADC通道带有AGC自动增益环节,能够很轻松的将语音信号采集到芯片内部,两路10位的电流输出型DAC,只要外接一个功放就可以完成声音的播放。
以上介绍的这些硬件资源使得该SPCE061A能够单芯片实现语音处理功能。
借助于SPCE061A的语音特色,“基于单片机技术的语音控制小车设计”实现了对小车前进、后退、左转、右转、停车等语音控制功能.
2、语音控制小车设计要求
功能要求:
1.可以通过简单的I/O操作实现小车的前进、后退、左转、右转功能;
2.配合SPCE061A的语音特色,利用系统的语音播放和语音识别资源,实现语音控制的功能;
3.可以在行走过程中声控改变小车运动状态;
4.在超出语音控制范围时能够自动停车。
参数说明
车体:
双电机两轮驱动
供电:
电池(四节AA:
×4或×4)
工作电压:
DC4V~6V
工作电流:
运动时约200mA
3.SPCE061A特性简介
SPCE061A是一款性价比很高的十六位单片机,使用它可以非常方便灵活的实现语音的录放,该芯片拥有8路10位精度的ADC,其中一路为音频转换通道,并且内置有自动增益电路。
这为实现语音录入提供了方便的硬件条件。
两路10位精度的DAC,只需要外接功放(SPY0030A)即可完成语音的播放。
该单片机具有一套易学易用的指令系统和集成开发环境,在此环境中,它支持标准C语言编程,也支持C语言与汇编语言的互相调用。
另外还提供了语音录放的库函数,只要了解库函数的使用,就可以很容易的完成语音的录放、识别等功能,这些都为软件开发提供了方便的条件。
SPCE061A特性:
16位μ’nSP微处理器;
工作电压:
内核工作电压VDD为~(CPU),I/O口工作电压VDDH为VDD~(I/O);
CPU时钟:
~;
内置2K字SRAM;
内置32K闪存ROM;
可编程音频处理;
晶体振荡器;
系统处于备用状态下(时钟处于停止状态),耗电小于;
2个16位可编程定时器/计数器(可自动预置初始计数值);
2个10位DAC(数-模转换)输出通道;
32位通用可编程输入/输出端口;
14个中断源可来自定时器A/B,时基,2个外部时钟源输入,键唤醒;
具备触键唤醒的功能;
使用音频编码SACM_S240方式位/秒),能容纳210秒的语音数据;
锁相环PLL振荡器提供系统时钟信号;
32768Hz实时时钟;
7通道10位电压模-数转换器(ADC)和单通道声音模-数转换器;
声音模-数转换器输入通道内置麦克风放大器和自动增益控制(AGC)功能;
具备串行设备接口;
低电压复位(LVR)功和低电压监测(LVD)功能;
内置在线仿真板(ICE,In-CircuitEmulator)接口。
4、系统总体方案介绍
小车的运动控制采用语音控制和中断定时控制相结合,通过语音触发小车动作,小车动作之后,随时可以通过语音指令改变小车的运动状态。
在每一次动作触发的同时启动定时器,如果小车由于某些原因不能正常的接收语音指令,则只要定时时间一到,中断服务程序就会发出指令让小车停下来。
图1控制系统所需硬件
5、系统硬件设计
系统的硬件方面,由于大部分的功能实现都是在61板上完成的,只有电机控制部分电路另外设计在一块独立的电路板上,我们称之为控制板。
下面详细的介绍小车的结构和运行原理以及控制电路板的结构和功能实现。
图2系统硬件框图
车体介绍
语音控制小车为四轮结构。
其中前面两个车轮由前轮电机控制,在连杆和支点作用下控制前轮左右摆动,来调节小车的前进方向。
在自然状态下,前轮在弹簧作用下保持中间位置。
后面两个车轮由后轮电机驱动,为整个小车提供动力。
所以又称前面的轮子为方向轮,后面的两个轮子为驱动轮。
小车的行走原理.
直走:
由小车的结构分析,在自然状态下,前轮在弹簧作用下保持中间状态,这是只要后轮电机正转小车就会前进。
倒车:
倒车动作和前进动作刚好相反,前轮电机仍然保持中间状态,后轮电机反转,小车就会向后运动。
图4小车前进、后退示意图
左转:
前轮电机逆时针旋转(规定为正转),后轮电机正转,这时小车就会在前后轮共同作用下朝左侧前进。
右转:
前轮电机反转,后轮电机正转,这时小车就是会在前后轮共同作用下朝右侧前进。
图5小车转向示意图
控制板原理图
控制板主要包括:
接口电路、电源电路和两路电机的驱动电路,控制板原理图如下。
接口电路:
接口电路负责将61板的I/O接口信号传送给控制电路板,I/O信号主要为控制电机需要的IOB8~IOB11这四路信号,同时为了方便后续的开发和完善,预留了IOB12~IOB15以及IOA8~IOA15接口,可以在这些接口上添加一些传感器。
电源部分:
整个小车有4个电源信号:
电池电源,控制板工作电源,61板工作电源,61板的I/O输出电源。
系统供电由电池提供,控制板直接采用电池供电(VCC),然后经二极管D1后产生61板电源SPCE061A在语音控制小车中的应用(VCC_61),通过61板的Vio跳线产生61板的端口电源(V1)。
图6小车控制电路图
6、系统软件设计
系统的主程序设计
系统的主程序流程如下图所示:
图7主程序流程图
共分为四大部分:
初始化部分、训练部分、识别部分、重训操作。
初始化部分:
初始化操作将IOB8~IOB11设置为输出端,用以控制电机。
必要时还要有对应的输入端设置和PWM端口设置等。
训练部分:
训练部分完成的工作就是建立语音模型。
程序一开始判断小车是否被训练过,如果没有训练过则要求对其进行训练,并且会在训练成功之后将训练的模型存储到Flash,在以后使用时不需要重新训练;如果已经训练过会把存储在Flash中的模型调出来装载到辨识器中。
识别部分:
在识别环节当中,如果辨识结果是名字,停止当前的动作并进入待命状态,然后等待动作命令。
如果辨识结果为动作指令小车会语音告知相应动作并执行该动作,在运动过程中可以通过呼叫小车SPCE061A在语音控制小车中的应用的名字使小车停下来。
重训操作:
考虑到有重新训练的需求,设置了重新训练的按键(61板的KEY3),循环扫描该按键,一旦检测到此键按下,则将擦除训练标志位(0xe000单元),并等待复位。
复位后,程序重新执行,当检测到训练标志位为0xffff时会要求重新对其进行训练。
主程序:
Andshallnotbedistributed,reproduced,
//========================================================
//========================================================
//工程名称:
Car_Demo
//功能描述:
实现小车的语音控制
//涉及的库:
//
//
//组成文件:
//,,
//,,
//硬件连接:
IOA0-----KEY1
//IOA1-----KEY2
//IOA2-----KEY3
//IOB8-----前进
//IOB9-----倒车
//IOB10----左拐
//IOB11----右拐
//========================================================
#include<>
#include<>
#defineP_IOA_Data(volatileunsignedint*)0x7000
#defineP_IOA_Dir(volatileunsignedint*)0x7002
#defineP_IOA_Attrib(volatileunsignedint*)0x7003
#defineP_IOB_Data(volatileunsignedint*)0x7005
#defineP_IOB_Dir(volatileunsignedint*)0x7007
#defineP_IOB_Attrib(volatileunsignedint*)0x7008
#defineP_TimerA_Data(volatileunsignedint*)0x700A
#defineP_TimerA_Ctrl(volatileunsignedint*)0x700B
#defineP_TimerB_Data(volatileunsignedint*)0x700C
#defineP_TimerB_Ctrl(volatileunsignedint*)0x700D
#defineP_Watchdog_Clear(volatileunsignedint*)0x7012
#defineP_INT_Mask(volatileunsignedint*)0x702D
#defi
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 单片机 语音 控制 小车 设计