




已阅读5页,还剩24页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
南京邮电大学开放实验项目报告项目名称语音识别机器人专业_学生姓名_班级学号_指导老师_指导单位_2011/2012学年第二学期基于凌阳61单片机的语音机器人设计实习目的与意义11实习任务设计并制作一个智能小车,并具备语音遥控的功能12基本要求(1)、智能小车主控芯片任选一款单片机AT89S52或SPCE061A;(2)、人工遥控小车发车(语音遥控);(3)、能够识别语音控制的转弯,前进与后退,以及实现再训练功能。13实习意义通过智能小车的设计及制作,巩固并掌握IDE20的编程方法,学会利用单片机进行程序设计并实现功能。通过在小车的设计与制作,将所学的知识体现出来,并应用于实际生活中,在设计过程中对小车功能的创新和改良,增强学生的创新意识和逻辑思维能力,提高学生的动手能力和研究主动性。2实验内容和步骤21车体设计21161板简介61板是SPCE061AEMUBOARD的简称,是以凌阳16位单片机SPCE061A为核心的精简开发仿真实验板,大小相当于一张扑克牌,是“凌阳大学计划”专为电子爱好者和高校大学生进行课程设计、毕业设计及电子竞赛所设计的,也可作为单片机项目初期研发使用。61板除了具备单片机最小系统电路外,还包括电源电路、音频电路(含MIC输入部分和DAC音频输出部分)、复位电路等,使学生在掌握软件设计的同时,熟悉单片机硬件的设计制作,锻炼动手能力,也为单片机学习者和开发者创造了一个良好的学习条件和开发新产品的机会212SPCE061A单片机简介SPCE061A是一款16位结构的微控制器,下图是它的结构概览SPCE061A主要包括输入/输出端口、定时器/计数器、数/模转换、模/数转换、串行设备输入输出、通用异步串行接口、低电压监测和复位等部分,并且内置在线仿真电路ICE接口,较高的处理速度使其能够快速的处理复杂的数字信号。SPCE061A单片机应用领域广泛,例如应用在家用电器控制器、工业控制、通信产品、医疗设备以及电子书籍等诸多方面。213电源61板采用3节5号电池进行供电,由J10接入。其中的前后两组电容用来去耦滤波,使其供给芯片的电源更加干净平滑。为了获得标准的33V电压,在扳子上加入SPY0029A三端稳压器。两个二极管,是为了防止误将电源接反造成不必要损失而设置的,在操作过程中千万不要将电源接反,因为反向电压超过一定的值,二极管将会被损坏,达不到保护的目的。后面的零电阻及其电源、地分成不同的几路是为了减少电磁干扰设置的。214程序下载区ICE基本运作方式是通过控制CLOCK及通过ICE喂入指令方式,来控制CPU的运行及缓存器资料和内存资料的存取,因此必须透过控制缓存器值的设定来控制目前CPU的动作。每个相连接的不同ICE模块都拥有自己独特的3BITID,当PC在传送CONTROL信号时都会先传送该3BITID,只有ICE本身的ID和CONTROL信号的ID相同时才会执行该命令或回传资料。61板上的74HC244主要在我们选用下载线的时候起作用,主要奇缓存的作用和完成SDA是作为数据回送还是数据下传的选择。22语音控制小车概述221功能要求语音控制小车是凌阳大学计划推出的基于SPCE061A的代表性兴趣产品,它配合61板推出,综合应用了SPCE061A的众多资源,打破了传统教学中单片机学习枯燥和低效的现状。小车采用语音识别技术,可通过语音命令对其行驶状态进行控制。语音控制小车的主要功能可以通过简单的I/O操作实现小车的前进、后退、左转、右转功能;配合SPCE061A的语音特色,利用系统的语音播放和语音识别资源,实现语音控制的功能;可以在行走过程中声控改变小车的运动状态;222车体结构车体结构图图3、4所示。语音控制小车为三轮结构,车的结构示意图如下图所示。其中前轮为万向轮,被动调节小车前进方向。在自然状态下,前轮保持中间位置并正前方运动。后面两个车轮由各自的电机驱动,为整个小车提供动力。整个小车分为三大部分车体部分、61板、驱动板。车体部分小车车体主要为两个电机驱动装置,分左轮驱动和右轮驱动。在车体的中间有一个可以安装3节AA电池的电池盒,整个小车的电源就是由它来提供的。61板61板是小车的核心部分,它负责整个小车控制信号的产生,以及语音的播放和识别功能实现的。在不使用小车时可以将61板从小车上拆下来,61板仍然是完整的,可以用它来做其它的实验或开发。控制板控制板负责将来自61板的控制信号转化为能够驱动电动机的信号。驱动板核心驱动电路224硬件框图小车控制系统硬件结构比较简单,主要分为两个部分一个是SPCE061A精简开发板(即“61”板)如图5所示,另外一个是电机控制板如图6所示。电机控制板的工作就是根据61板的输出新高去启动和停止相应的电机,以及调整电机的正反转方向。正是通过开启和关闭相应的电机,使电机在不同的组合状态运转,最终来实现小车的前进,倒退等功能。23小车方案及程序分析231小车方案可以通过简单的I/O操作实现小车的前进、后退、左转、右转功能;配合SPCE061A的语音特色,利用系统的语音播放和语音识别资源,实现语音控制的功能;可以在行走过程中声控改变小车的运动状态;实现能自动往返于起跑线与终点线间的智能流程,并具备人工遥控(我们选用语音控制)的功能。232程序流程图1、语音识别总流程图语音识别小车的主程序流程如图7所示,分为四大部分初始化部分、训练部分、识别部分、重训操作。初始化部分初始化操作将IOB8IOB11设置为输出端,用以控制电机。必要时还要有对应的输入端设置和PWM端口设置等。训练部分训练部分完成的工作就是建立语音模型。程序一开始判断小车是否被训练过,如果没有训练过则要求对其进行训练,并且会在训练成功之后将训练的模型存储到FLASH,在以后使用时不需要重新训练;如果已经训练过会把存储在FLASH中的模型调出来装载到辨识器中。识别部分在识别环节当中,如果辨识结果是名字,则进入自动往返流程状态。如果辨识结果为动作指令小车会语音告知相应动作并执行该动作。重训操作考虑到有重新训练的需求,设置了重新训练的按键(61板的KEY3),循环扫描该按键,一旦检测到此键按下,则将擦除训练标志位(0XE000单元),并等待复位。复位后,程序重新执行,当检测到训练标志位为0XFFFF时会要求重新对其进行训练。下面详细介绍以上提到的子程序。2、训练函数流程图当程序检测到训练标志位BS_FLAG内容为0XFFFF,就会要求操作者对它进行训练操作,训练操作的过程如图8所示训练采用两次训练获取结果的方式,以训练名字为例小车首先会提示给我取个名字吧,这时你可以告诉它一个名字;然后它会提示请再说一遍,这时再次告诉它名字,如果两次的声音差别不大,小车就能够成功的建立模型,名称训练成功;如果没能够成功的建立模型,小车会告知失败的原因并要求重新训练。成功训练名称后会给出下一条待训练指令提示音前进,参照名称训练方式训练前进指令。依次训练小车的名称前进指令倒车指令左转指令右转指令,全部训练成功子程序返回,训练结束。3、语音识别函数流程图语音识别流程如图9所示首先获取辨识器的辨识结果,判断是否有语音触发,如果有语音触发则会返回识别结果的ID号,ID号对应名称或者对应不同的动作。如果ID号为名称,则进入运动自动往返程序流程;如果ID号为动作,则语音告知将要执行的动作,并执行该动作。动作子程序动作子程序包括前进、倒车、左拐、右拐、自动往返子程序。前进由小车的结构原理和驱动电路分析知只要IOB8为高电平,IOB9,IOB10,IOB11全部为高电平即可实现小车的前进。前进子程序包括语音提示、置端口数据、启动定时器操作。倒车由小车的结构原理分析和驱动电路分析知只要IOB9为高电平,IOB8,IOB10,IOB11全部为低电平即可实现小车的倒退。倒退子程序包括语音提示、置端口数据、启动定时器操作。左转由小车的结构原理分析和驱动电路分析知小车左转需要两个条件1左轮不转2后轮前进,这时对应的I/O状态为IOB10、IOB11为高电平,IOB8、IOB9为低电平。左转子程序包括语音提示、置端口数据、启动定时器操作。右转由小车的结构原理分析和驱动电路分析知小车右转需要两个条件1左轮前进2右轮停止,这时对应的I/O状态为IOB8、IOB9为高电平,IOB11、IOB10为低电平。右转子程序包括语音提示、置端口数据、启动定时器操作。4、中断控制流程。虽然已经有了前进、后退以及等待(通过直接呼叫小车的名字使其停车)等语音控制指令,但是考虑环境的干扰因素,小车运行时的噪音影响和有效距离的限制,小车运行后可能接收不到语音指令而一直运行。为了防止出现这种情况,加入了时间控制,在启动小车运行的同时启动定时器,定时器时间到停止小车的运行,该定时器借助于2HZ时基中断完成,图1214所示为该程序的流程图。可以在程序中修改UITIMESET参数来控制运行时间,当UITIMESET2时,运行时间为1S,以此类推。31硬件连接调试过程硬件调试过程相对顺利,实验第一步就是搭建车体,研究驱动电路,并焊接。由于车体焊接存在的问题,在程序调试过程中出现了一系列的硬件问题,但经过仔细分析后,这些问题都得到了解决,硬件的调试改进为软件的实现调试打下了基础。32程序调试过程分析本次设计任务对软件编写调试的能力要求相对较高,程序调节是否顺利决定了实习进度。由于初次接触61的编程,所以在实习初期我们主要是学习和认知61的板以及61编程的基本知识,这是个学习深入的过程。在对编程基础知识了解后,基于对题目要求的理解和思考,我们确定实现方案。可以通过简单的I/O操作实现小车的前进、后退、左转、右转功能;配合SPCE061A的语音特色,利用系统的语音播放和语音识别资源,实现语音控制的功能;可以在行走过程中声控改变小车的运动状态;具备人工遥控(我们选用语音控制)的功能。这个方案的确定是在查阅了,61资料“语音控制小车”的实现程序后得到的思路。基于对现有程序框架的理解。当然,程序的调试是不可能一两次就能成功的。这其中遇到的问题有很多,其中就有硬件的问题以及对61编程的知识的理解的不够而出现的调试困难。33总体结果分析本设计综合应用了SPCE061A丰富的软硬件资源,成功的实现了语音控制功能。标准的C语言编程,丰富的语音资源函数为编程提供了很大的方便。该设计方案结构简单,以单芯片实现了语音播放与识别以及电机控制功能,相当于“语音识别芯片普通单片机”的功能。但是比“语音识别芯片普通单片机”。该语音控制小车操作比较简单,训练和识别成功的几率也比较高,是一个典型的语音识别方案。由于时间和精力有限,我们实现了实习要求的基本内容和发挥部分的大部分内容,但未能实现自动语音播报行驶距离的设计要求,这主要是我们对硬件的设计还不够熟练和精通,以及对61编程也未达到纯熟的地步。对以实现的功能要求来说,我们的设计相对理想。源代码/工程名称MSEEDCARDEMO功能描述语音小车涉及的库CMACRO1016LIBBSRV222SDLLIBSACMV26ELIB组成文件MSEEDCFLASHASM1HARDWAREASMISRASM头文件HARDWAREHS480HHARDWAREINC硬件连接IOA0KEY1IOA1KEY2IOA2KEY3IOB8前进IOB9倒车IOB10左拐IOB11右拐/INCLUDE“S480H“INCLUDE“BSRSDH“DEFINEP_IOA_DATAVOLATILEUNSIGNEDINT0X7000DEFINEP_IOA_DIRVOLATILEUNSIGNEDINT0X7002DEFINEP_IOA_ATTRIBVOLATILEUNSIGNEDINT0X7003DEFINEP_IOB_DATAVOLATILEUNSIGNEDINT0X7005DEFINEP_IOB_DIRVOLATILEUNSIGNEDINT0X7007DEFINEP_IOB_ATTRIBVOLATILEUNSIGNEDINT0X7008DEFINEP_TIMERA_DATAVOLATILEUNSIGNEDINT0X700ADEFINEP_TIMERA_CTRLVOLATILEUNSIGNEDINT0X700BDEFINEP_TIMERB_DATAVOLATILEUNSIGNEDINT0X700CDEFINEP_TIMERB_CTRLVOLATILEUNSIGNEDINT0X700DDEFINEP_WATCHDOG_CLEARVOLATILEUNSIGNEDINT0X7012DEFINEP_INT_MASKVOLATILEUNSIGNEDINT0X702DDEFINEP_INT_CLEARVOLATILEUNSIGNEDINT0X7011DEFINEP_INT_CTRLVOLATILEUNSIGNEDINT0X7010DEFINEP_SYSTEMCLOCKVOLATILEUNSIGNEDINT0X7013DEFINENAME_ID0X100DEFINECOMMAND_GO_ID0X101DEFINECOMMAND_BACK_ID0X102DEFINECOMMAND_LEFT_ID0X103DEFINECOMMAND_RIGHT_ID0X104DEFINES_NAME1/给我取个名字吧DEFINES_ACT110/前进DEFINES_ACT211/倒车,请注意DEFINES_ACT39/左拐DEFINES_ACT49/右拐DEFINES_RDY12/YEAHDEFINES_AGAIN4/请再说一遍DEFINES_NOVOICE5/没有听到任何声音DEFINES_CMDDIFF14/说什么暗语呀DEFINES_NOISY14/说什么暗语呀DEFINES_START8/准备就绪,开始辨识DEFINES_GJG0/拐就拐DEFINES_DCZY0/倒车,请注意/DEFINERSP_INTR0DEFINERSP_NAME1DEFINERSP_AGAIN4DEFINERSP_NOVOICE5DEFINERSP_STAR8DEFINERSP_MASTER9DEFINERSP_HERE10DEFINERSP_GUNSHOT0DEFINERSP_PATROL11DEFINERSP_READY12DEFINERSP_COPY13DEFINERSP_NOISY14DEFINES_NAME0/给我取个名字吧DEFINES_ACT11/前进DEFINES_ACT22/倒车,请注意DEFINES_ACT33/左拐DEFINES_ACT44/右拐DEFINES_RDY5/YEAHDEFINES_AGAIN6/请再说一遍DEFINES_NOVOICE7/没有听到任何声音DEFINES_CMDDIFF8/说什么暗语呀DEFINES_NOISY8/说什么暗语呀DEFINES_START9/准备就绪,开始辨识DEFINES_GJG10/拐就拐DEFINES_DCZY11/倒车,请注意/EXTERNUNSIGNEDINTBSR_SDMODEL100/外部变量BSR_SDMODEL100,辨识器自带EXTERNVOIDF_FLASHWRITE1WORDUNSIGNEDINTADDR,UNSIGNEDINTVALUEEXTERNVOIDF_FLASHERASEUNSIGNEDINTSECTORUNSIGNEDINTUITIMESET3/运行时间定时,调整该参数控制运行时间UNSIGNEDINTUITIMECONT/运行时间计时UNSIGNEDINTTIME_10S,TIME,TEM,H,TEMP,M,C,Y,TVOIDDELAYUNSIGNEDINTIFORI0I0/有语音触发P_IOB_DATA0X0000/临时停车SWITCHRESULTCASENAME_IDC1BSR_STOPRECOGNIZERP_SYSTEMCLOCK0X0003P_INT_MASK0X0200BREAKCASECOMMAND_GO_IDGOAHEADBREAKCASECOMMAND_BACK_IDBACKUPBREAKCASECOMMAND_LEFT_IDTURNLEFTBREAKCASECOMMAND_RIGHT_IDTURNRIGHTBREAKDEFAULTBREAK/语法格式VOIDIRQ5VOID/实现功能中断服务子函数/参数无/返回值无/VOIDDELAY0UNSIGNEDINTIFORI0I0X00FFIP_WATCHDOG_CLEAR0X0001VOIDDELAY11UNSIGNEDINTMUNSIGNEDINTIFORI0IMIP_WATCHDOG_CLEAR0X0001VOIDDELAY_HUNSIGNEDINTIFORI0I0X0100IP_WATCHDOG_CLEAR0X0001VOIDDELAY1UNSIGNEDINTIFORI0I0X02FFIP_WATCHDOG_CLEAR0X0001VOIDDELAY2UNSIGNEDINTIFORI0I0X0DFFIP_WATCHDOG_CLEAR0X0001VOIDDELAY3UNSIGNEDINTIFORI0I0X2FFFIP_WATCHDOG_CLEAR0X0001VOIDIRQ3VOID_ATTRIBUTE_ISRVOIDIRQ3VOIDIFP_INT_CTRLIFP_IOB_DATAP_IN
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论