




已阅读5页,还剩33页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
摘摘 要要 随着电子 信息技术的飞速发展 语音识别被广泛的应用在各个领域 常见 的应用领域有 语音输入系统 如于键盘输入方法 语音控制系统 如工业控制 语 音拨号系统 智能家电 声控智能玩具等 智能对话查询系统 银行服务 股票查询 服务等等 当然这些应用都要建立在对语音的准确识别的基础上 本项目主要采用凌阳科技公司的一款 SPCE061A 单片机进行设计 主要利用它特 有的语音识别功能来实现对小车行驶状态的控制 比如输入预先训练好的语音命令 前 进 小车根据命令向前行驶一段距离 输入 左转 小车向左转弯 利用语音命令代 替了传统的遥控手动控制 小车接收命令的同时 向外界发出语音信号 从而实现人 车之间的简单的交互 为减小声音信号衰减 以及外部声音信号的干扰对语音命令的干扰造成的误差 本设计采用无线高频信号发送的模式 来实现语音命令的传送 即设计中采用两个 SPCE061A 单片机控制系统 第一个专门负责语音信号的采集 然后发送语音命令的 编码 另外一个根据接收的语音命令编码 来控制小车的行驶状态 采用固定码 PT2262 无线发射模块和 PT2272 接收模块 关键词关键词 SPCE061A PT2262 PT2272 语音控制 智能小车 目目 录录 摘要摘要 I I ABSTRACTABSTRACT 1 1 引言引言 1 1 2 2 背景介绍背景介绍 1 1 2 1 选题背景 1 2 2 研究的目的及意义 2 3 3 设计要求设计要求 2 2 3 1 系统功能 2 3 2 基本参数 2 4 4 方案论证方案论证 2 2 4 1 方案一 2 4 2 方案二 3 4 3 方案三 3 4 4 方案比较 4 5 5 系统硬件设计系统硬件设计 4 4 5 1 系统总体方案介绍 4 5 2 SPCE061A 单片机 5 5 3 SPCE061A 最小系统 6 5 4 电源 7 5 5 无线发射接收模块 PT2262 PT2272 8 5 6 小车控制板 9 5 7 小车车体架构 12 5 8 SPCE061A 精简开发板 13 5 9 系统实物图 13 6 6 系统软件设计系统软件设计 1515 6 1 软件结构 15 6 2 语音识别原理简介 16 6 3 训练子程序 17 6 4 语音识别子程序 18 6 5 动作子程序 19 6 6 中断子程序 20 7 7 操作步骤操作步骤 2121 7 1 硬件连接 21 7 2 代码下载 21 8 8 测试测试 2121 9 9 结论结论 2222 参考文献参考文献 2222 致谢致谢 2323 附录附录 2424 基于 SPCE061A 单片机的语音遥控小车的设计 1 引言 随着电子 信息技术的飞速发展 语音识别被广泛的应用在各个领域 常见的应 用领域有 语音输入系统 相对于键盘输入方法 它更符合人的日常习惯 也更自然 更高效 语音控制系统 即用语音来控制设备的运行 相对于手动控制来说更加快捷 方便 可以用在诸如工业控制 语音拨号系统 智能家电 声控智能玩具等许多领域 智能对话查询系统 根据客户的语音进行操作 为用户提供自然 友好的数据库检索 服务 例如家庭服务 宾馆服务 旅行社服务系统 订票系统 医疗服务 银行服务 股票查询服务等等 当然这些应用都要建立在对语音的准确识别的基础上 要实现小车行驶状态的语音控制 关键点在于语音命令的识别 因此选择具有语 音识别功能的 SPCE061A 做为控制器 考虑到声音信号的衰减 干扰 所以把语音信 号的识别 和小车的控制隔离开来 采用两组 SPCE061A 最小系统 一组用于语音识 别 然后通过编码 把识别出的语音命令通过 PT2262 发射模块作为固定码发射出去 然后另一组通过 PT2272 接收的固定码来实现对小车的控制 主要内容如下 1 熟悉 SPCE061A 单片机及其开发环境 2 编写程序 用 H 桥电路驱动电机 观察电机转速 3 编写程序 测试无线发射接收模块 PT2262 2272 4 编写程序 检测语音识别功能 5 编写综合程序 调试各个模块的协同工作 6 反复试跑 调试程序细节 利用凌阳公司提供的 SPCE061A 单片机开发板和越野型车模 预计可以按时实现语 音命令对小车行驶状态的控制 2 背景介绍 2 12 1 选题背景选题背景 20 世纪 50 年代 AT 训练名称 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 RIGHT ID S ACT4 0 训练第 4 个动作 6 46 4 语音识别子程序语音识别子程序 语音识别流程如图 6 5 所示 首先获取辨识器的辨识结果 判断是否有语音触发 如果有语音触发则会返回识别结果的 ID 号 ID 号对应名称或者对应不同的动作 如果 ID 号为名称 则结束运动 如果当前在运动状态 进入待命状态 等待下一次的指令 触发 如果 ID 号为动作 则语音告知将要执行的动作 并执行该动作 图 6 5 语音识别流程图 6 56 5 动作子程序动作子程序 动作子程序包括 前进 倒车 左拐 右拐 停车子程序 前进 由小车的结构原理和驱动电路分析知 只要 IOB8 为高电平 IOB9 IOB10 IOB11 全部为低电平即可实现小车的前进 前进子程序包括语音提示 置端口数据 启动定时器操作 该部分程序如下 void GoAhead 前进 PlaySnd S ACT1 3 语音提示 P IOB Data 0 x0100 前进 P INT Mask 0 x0004 开 2Hz 中断 asm int fiq irq uiTimecont 0 清定时器 倒车 由小车的结构原理分析和驱动电路分析知 只要 IOB9 为高电平 IOB8 IOB10 IOB11 全部为低电平即可实现小车的倒退 倒退子程序包括语音提示 置端口数据 启动定时器操作 程序如下 void BackUp 倒退 PlaySnd S ACT2 3 语音提示 P IOB Data 0 x0200 倒车 P INT Mask 0 x0004 开 2Hz 中断 asm int fiq irq uiTimecont 0 清定时器 左转 由小车的结构原理分析和驱动电路分析知 小车左转需要两个条件 1 前 轮左偏 2 后轮前进 这时对应的 I O 状态为 IOB8 IOB10 为高电平 IOB9 IOB11 为低电平 左转子 程序包括语音提示 置 端口数据 启动定时器操作 该部分程序如下 void TurnLeft 左转 PlaySnd S GJG 3 播放提示音 P IOB Data 0 x0900 前轮右偏 Delay 延时 P IOB Data 0 x0500 前轮左偏 P INT Mask 0 x0004 打开 2Hz 中断 asm int fiq irq 允许总中断 uiTimecont 0 清定时器 右转 由小车的结构原理分析和驱动电路分析知 小车右转需要两个条件 1 前 轮右偏 2 后轮前这时对应的 I O 状态为 IOB8 IOB11 为高电平 IOB9 IOB10 为低 电平 右转子程序包括语音提示端口数据 启动定时器操作 该部分程序如下 void TurnLeft 左转 PlaySnd S GJG 3 播放提示音 P IOB Data 0 x0500 前轮左偏 Delay 延时 P IOB Data 0 x0900 前轮右偏 P INT Mask 0 x0004 打开 2Hz 中断 asm int fiq irq 允许总中断 uiTimecont 0 清定时器 6 66 6 中断子程序中断子程序 虽然已经有了前进 后退以及停车 通过直接呼叫小车的名字使其停车 等语音 控制指令 但是考虑环境的干扰因素 小车运行时的噪音影响和有效距离的限制 小 车运行后可能接收不到语音指令而一直运行 为了防止出现这种情况 加入了时间控 制 在启动小车运行的同时启动定时器 定时器时间到停止小车的运行 该定时器借 助于 2Hz 时基中断完成 图 6 6 所示为该程序的流程图 可以在程序中修改 uiTimeset 参数来控制运行时间 当 uiTimeset 2 时 运行时间为 1s 以此类推 图 6 6 中断子程序流程 7 操作步骤 7 17 1 硬件连接硬件连接 语音控制小车电路包括两大部分 SPCE061A 开发板部分和控制板部分 硬件部分 的连接主要用到 SPCE061A 的 IOB8 IOB11 来控制小车的状态 电源部分连接 电池电源直接接控制板电源接口 J1 J2 接 61 板的电源 连接 时注意电源极性 7 27 2 代码下载代码下载 硬件连接完成之后 检查无误 接下来就可以下载程序了 具体的步骤为 第一步 打开集成开发环境 打开 CarDemo spj 文件 编译链接 第二步 点击菜单 Project Select Body 或者直接点击 图标打开如图 7 1 所示的对话框 图 7 1 Select Body 对话框 第三步 在弹出的对话框中选择 Body Name 为 SPCE061A 选择 Probe 为 EZ Probe 点击 OK 按钮确定 第四步 点击 IDE 工具栏上的 图标 选择 Use ICE 模式 第五步 按 F8 快捷下载按钮 下载代码 8 测试 成功下载程序以后 去掉下载线并复位系统 如果使用 EZ Probe 还应将 Probe 选择跳线 S5 拔去 小车就会提示对它进行训练 训练采用应答式训练 每条指令的 训练次数为两次 每一条命令的训 练过程都是一样的 以 前进 为例说明 步骤一 小车提示 前进 步骤二 告诉小车 前进 步骤三 小车提示 请再说一遍 重复训练提示音 步骤四 再次告诉小车 前进 重复训练一次 这是一个完整的训练过程 如 果训练成功 小车会自动进入下一条指令的训练 并会提示下一条指令对应的动作 如果没有训练成功 小车会提示 说什么暗语呀 或者 没有听到任何声音 等信息 这样的话就要重复刚才所说的四个步骤 直到成功为止 整个的训练过程共有 5 次这 样的训练 依次为 名称 前进 后退 左拐 右拐 完成训练后 输入语音命令 前进 观察小车是否前行 9 结论 凌阳 SPCE061A 单片机的数字信号处理能力 独有的语音识别能力为本系统的设计 提供了便利条件 32 个可编程 I O 口 使得扩展外围设备非常方便 CPU 可工作在 0 32MHz 49MHz 的主频范围 并且拥有丰富的时基 定时器 以及中断功能 实现了小 车的语音控制功能 本课题在最初设计的过程中 由于语音命令受外界的干扰大 语音命令发出后 很容易受到外界干扰 导致施令者一旦和小车距离过远 小车将接受不到命令 这种 情况下 催生了方案三的提出 并得以实践 实验结果证明 采用无线语音遥控 大 大增加小车的声控距离 降低了命令错误几率 参考文献参考文献 1 谭浩强 C 语言程序设计 北京 清华大学出版社 2005 2 谭浩强 张基温 C 语言程序设计教程 北京 高等教育出版社 1991 3 彭伟 单片机程序设计 100 例 北京 电子工业出版社 2009 年 4 马忠梅 单片机 C 语言应用程序设计 北京 北京航空航天大学出版社 2007 5 郭天祥 新概念 51 单片机 C 语言教程 北京 电子工业出版社 2009 6 刘鲲 孙春亮 单片机 C 语言入门 修订版 北京 人民邮电出版社 2010 7 陈超 C 语言常用函数速查手册 北京 化学工业出版社 2010 9 李晶皎 嵌入式语音技术及凌阳 16 位单片机应用 北京 北航出版社 2003 10 黄菊生 单片机原理与接口技术 北京 国防工业出版社 2007 11 罗亚非 凌阳 16 位单片机应用基础 北京 北京航空航天大学出版社 2005 12 沈美明 温冬蝉 IBM PC 汇编语言程序设计 北京 清华大学出版社 2001 8 薛钧义 张彦斌 虞鹤松 樊波 凌阳十六位单片机原理及应用 北京 北京航空航 天出版社 2003 2 13 汪敏 凌阳 16 位单片机实验与实践 北京 北京航空航天大学出版社 2007 14 齐向东 刘立群 单片机控制技术实践 北京 中国电力出版社 2009 15 彭传正 林春景 凌阳单片机原理与实践 北京 北京航天航空大学出版社 2006 16 杜刚 16 位单片机原理及应用 北京 中国电力出版社 2007 17 凌阳科技 凌阳单片机在大学生电子竞赛中的应用 北京 北京航天航空大学 出版社 2005 18 樊尚春 传感器技术与应用 北京 北京航空航天大学出版社 2004 19 汪敏 凌阳 16 位单片机实验与实践 北京 北京航空航天大学出版社 2007 20 雷思孝 单片机原理及实用技术 西安 西安电子科技大学出版社 2003 致 谢 本论文是在王旭辉老师的悉心指导下完成的 王旭辉老师渊博的专业知识 严谨 的治学态度 精益求精的工作作风 诲人不倦的高尚师德 严以律己 宽以待人的崇 高风范 朴实无华 平易近人的人格魅力对我影响深远 不仅使我树立了远大的学术 目标 掌握了基本的研究方法 还使我明白了许多待人接物与为人处世的道理 在本 论文的写作过程中 我的导师王旭辉老师倾注了大量的心血 从选题到开题报告 从 写作提纲 到一遍又一遍地指出每稿中的具体问题 严格把关 循循善诱 在此 谨 向王旭辉老师表示崇高的敬意和衷心的感谢 感谢指导教师王旭辉的关心 指导和教诲 写作毕业论文是一次再系统学习的过 程 毕业论文的完成 同样也意味着新的学习生活的开始 同时我还要感谢在我学习 期间给我极大关心和支持的各位老师以及关心我的同学和朋友 附 录 第一块 SPCE061A 开发板程序如下 The information contained herein is the exclusive property of Sunnnorth Technology Co And shall not be distributed reproduced or disclosed in whole in part without prior written permission C COPYRIGHT 2003 SUNNORTH TECHNOLOGY CO ALL RIGHTS RESERVED The entire notice above must be reproduced on all authorized copies 工程名称 Car Demo 功能描述 实现小车的语音控制 涉及的库 CMacro1016 lib bsrv222SDL lib sacmv26e lib 组成文件 main c Flash asm hardware asm ISR asm hardware h s480 h hardware inc 硬件连接 IOA0 KEY1 IOA1 KEY2 IOA2 KEY3 IOB8 前进 IOB9 倒车 IOB10 左拐 IOB11 右拐 维护记录 2005 12 12 v1 0 include s480 h include bsrsd h define P IOA Data volatile unsigned int 0 x7000 define P IOA Dir volatile unsigned int 0 x7002 define P IOA Attrib volatile unsigned int 0 x7003 define P IOB Data volatile unsigned int 0 x7005 define P IOB Dir volatile unsigned int 0 x7007 define P IOB Attrib volatile unsigned int 0 x7008 define P TimerA Data volatile unsigned int 0 x700A define P TimerA Ctrl volatile unsigned int 0 x700B define P TimerB Data volatile unsigned int 0 x700C define P TimerB Ctrl volatile unsigned int 0 x700D define P Watchdog Clear volatile unsigned int 0 x7012 define P INT Mask volatile unsigned int 0 x702D define P INT Clear volatile unsigned int 0 x7011 define NAME ID 0 x100 define COMMAND GO ID 0 x101 define COMMAND BACK ID 0 x102 define COMMAND LEFT ID 0 x103 define COMMAND RIGHT ID 0 x104 define S NAME0 给我取个名字吧 define S ACT11 前进 define S ACT22 倒车 请注意 define S ACT33 左拐 define S ACT44 右拐 define S RDY5 Yeah define S AGAIN6 请再说一遍 define S NOVOICE7 没有听到任何声音 define S CMDDIFF8 说什么暗语呀 define S NOISY8 说什么暗语呀 define S START9 准备就绪 开始辨识 define S GJG10 拐就拐 define S DCZY11 倒车 请注意 extern unsigned int BSR SDModel 100 外部变量 BSR SDModel 100 辨识器自带 extern void F FlashWrite1Word unsigned int addr unsigned int Value extern void F FlashErase unsigned int sector unsigned int uiTimeset 3 运行时间定时 调整该参数 控制运行时间 unsigned int uiTimecont 运行时间计时 语法格式 void Delay 实现功能 延时 参数 无 返回值 无 void Delay unsigned int i for i 0 i 0 xffff i P Watchdog Clear 0 x0001 语法格式 void PlaySnd unsigned SndIndex unsigned DAC Channel 实现功能 语音播放函数 参数 SndIndex 播放语音资源索引号 DAC Channel 播放声道选择 返回值 无 void PlaySnd unsigned SndIndex unsigned DAC Channel BSR StopRecognizer 停止识别器 SACM S480 Initial 1 初始化为自动播放 SACM S480 Play SndIndex DAC Channel 3 开始播放一段语音 while SACM S480 Status 解码并填充队列 P Watchdog Clear 0 x0001 清看门狗 SACM S480 Stop 停止播放 BSR InitRecognizer BSR MIC 初始化识别器 语法格式 int TrainWord int WordID int SndID 实现功能 训练一条指令 参数 WordID 指令编码 SndID 指令提示音索引号 返回值 无 int TrainWord unsigned int WordID unsigned int SndID int Result PlaySnd SndID 3 引导训练 播放指令对应动 作 while 1 Result BSR Train WordID BSR TRAIN TWICE 训练两次 获得训练 结果 if Result 0 break switch Result case 1 没有检测出声音 PlaySnd S NOVOICE 3 return 1 case 2 需要训练第二次 PlaySnd S AGAIN 3 break case 3 环境太吵 PlaySnd S NOISY 3 return 3 case 4 数据库满 return 4 case 5 检测出声音不同 PlaySnd S CMDDIFF 3 return 5 case 6 序号错误 return 6 default break return 0 语法格式 void TrainSD 实现功能 训练函数 参数 无 返回值 无 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 RIGHT ID S ACT4 0 训练第 4 个动作 语法格式 void StoreSD 实现功能 存储语音模型函数 参数 无 返回值 无 void StoreSD unsigned int ulAddr i commandID g Ret F FlashWrite1Word 0 xef00 0 xaaaa F FlashErase 0 xe000 F FlashErase 0 xe100 F FlashErase 0 xe200 ulAddr 0 xe000 for commandID 0 x100 commandID 0 x105 commandID g Ret BSR ExportSDWord commandID while g Ret 0 模型导出成功 g Ret BSR ExportSDWord commandID for i 0 i 100 i 保存语音模型 SD1 0 xe000 0 xe063 F FlashWrite1Word ulAddr BSR SDModel i ulAddr 1 语法格式 void StoreSD 实现功能 装载语音模型函数 参数 无 返回值 无 void LoadSD unsigned int p k jk Ret g Ret p int 0 xe000 for jk 0 jk 5 jk for k 0 k0 有语音触发 P IOB Data 0 x0000 临时停车 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 执行动作四 右转 break default break 语法格式 void IRQ5 void 实现功能 中断服务子函数 参数 无 返回值 无 void IRQ5 void attribute ISR 运动定时控制 void IRQ5 void if uiTimecont uiTimeset P IOB Data 0 x0000 P INT Clear 0 x0004 语法格式 int main void 实现功能 主函数 参数 无 返回值 无 int main void unsigned int BS Flag Train 标志位 P IOA Dir 0 xff00 初始化 IOA IOA0 7 下拉输入 P IOA Attrib 0 xff00 P IOA Data 0 x0000 P IOB Dir 0 x0f00 初始化 IOB IOB8 11 同向输出 P IOB Attrib 0 x0f00
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- GB/T 29124-2025燃料电池电动汽车配套设施规范
- 2024年咨询工程师真题及参考答案详解(培优A卷)
- 2024-2025学年度注册公用设备工程师预测复习含答案详解(培优B卷)
- 2024年土木工程建筑施工考前冲刺练习题附参考答案详解【综合题】
- 2025年苏州工业职业技术学院单招《物理》考试彩蛋押题附参考答案详解(综合卷)
- 2024-2025学年中医助理医师自我提分评估及答案详解【全优】
- 传染病患者排泄护理与感染防控要点
- 2023年度高升专通关考试题库【名校卷】附答案详解
- 2025年城市公共自行车智能化改造项目的智能化管理方案报告
- 中班科学领域教案《奇妙的磁铁》反思
- GB/T 29178-2012消防应急救援装备配备指南
- TSZUAVIA 009.6-2019 多旋翼无人机系统实验室环境试验方法 第6部分:湿热试验
- GB/T 1144-2001矩形花键尺寸、公差和检验
- 结肠息肉课件培训课件
- 工程质量保证体系框图
- 疥疮防与治课件
- 饮食营养与健康课件
- 地下车库系统环氧地坪施工组织设计
- 2022年浙江省公务员录用考试《申论》试卷及参考答案
- 医共体成员单位人力资源工作制度
- YY∕T 0953-2020 医用羧甲基壳聚糖(高清正版)
评论
0/150
提交评论