当前位置:文档之家› 语音识别机器人实验报告

语音识别机器人实验报告

开放实验项目报告项目名称:语音识别机器人专业学生姓名班级学号指导教师指导单位2012/2013学年第一学期一.设计背景在科学日新月异的今天,电子设备的便捷化,人性化,智能化已成为不可逆转的潮流,而语音控制智能,更是其中研究发展的热点。

凌阳SPCE061以其便捷的操作,可靠的性能,成为了各位电子爱好者的首选。

本实验采用凌阳61板和运动小车(迷你型)模组设计的语音控制小车。

凌阳板嵌入小车模型顶部。

语音处理技术不仅包括语音的录制和播放,还涉及语音的压缩编码和解码、语音的识别等各种处理技术。

本设计的语音控制小车,借助于SPCE061A在语音处理方面的特色,不仅具有前进、后退、左转、右转、停止等基本程序控制功能,而且还具备语音控制功能。

二.总流程图三.主要模块1、凌阳SPCE061是继µ’nSP™系列产品SPCE500A等之后凌阳科技推出的又一款16 位结构的微控制器。

与SPCE500A不同的是,在存储器资源方面考虑到用户的较少资源的需求以及便于程序调试等功能,SPCE061A里只内嵌32K字的闪存(FLASH )。

较高的处理速度使µ’nSP™能够非常容易地、快速地处理复杂的数字信号。

因此,与SPCE500A相比,以µ’nSP™为核心的SPCE061A 微控制器是适用于数字语音识别应用领域产品的一种最经济的选择。

其性能如下:A、16 位µ’nSP™微处理器;B、工作电压(CPU) VDD 为2.4~3.6V (I/O) VDDH 为2.4~5.5VC、CPU 时钟:0.32MHz~49.152MHz ;D、内置2K 字SRAM;E、内置32K FLASH;F、可编程音频处理;G、晶体振荡器;H、系统处于备用状态下(时钟处于停止状态),耗电仅为2µA@3.6V ;I、2 个16 位可编程定时器/计数器(可自动预置初始计数值);J、2 个10 位DAC(数-模转换)输出通道;K、32 位通用可编程输入/输出端口;L、14 个中断源可来自定时器A / B ,时基,2 个外部时钟源输入,键唤醒;M、具备触键唤醒的功能;N、使用凌阳音频编码SACM_S240 方式(2.4K 位/秒),能容纳210 秒的语音数据;O、锁相环PLL 振荡器提供系统时钟信号;P、32768Hz 实时时钟;Q、7 通道10 位电压模-数转换器(ADC)和单通道声音模-数转换器;R、声音模-数转换器输入通道内置麦克风放大器和自动增益控制(AGC)功能;S、具备串行设备接口;T、具有低电压复位(LVR)功能和低电压监测(LVD)功能;U、内置在线仿真电路ICE(In- Circuit Emulator )接口;V、具有保密能力;W、具有WatchDog 功能。

SPCE061A的结构如下图所示:SPCE061A的实物图如下:2、L298N是ST公司生产的一种高电压、大电流电机驱动芯片。

该芯片采用15脚封装。

主要特点是:工作电压高,最高工作电压可达46V;输出电流大,瞬间峰值电流可达3A,持续工作电流为2A;额定功率25W。

内含两个H桥的高电压大电流全桥式驱动器,可以用来驱动直流电动机和步进电动机、继电器线圈等感性负载;采用标准逻辑电平信号控制;具有两个使能控制端,在不受输入信号影响的情况下允许或禁止器件工作有一个逻辑电源输入端,使内部逻辑电路部分在低电压下工作;可以外接检测电阻,将变化量反馈给控制电路。

使用L298N 芯片驱动电机,该芯片可以驱动一台两相步进电机或四相步进电机,也可以驱动两台直流电机。

其性能如下:A、尺寸:80mmX45mm;B、主要芯片:L298N、光电耦合器;C、工作电压:控制信号直流5V;电机电压直流3V~46V(建议使用36伏以下);D、最大工作电流:2.5A;E、额定功率:25W;F、具有信号指示;G、转速可调;H、抗干扰能力强;I、具有过电压和过电流保护;J、可单独控制两台直流电机;K、可单独控制一台步进电机; L、PWM脉宽平滑调速;M、可实现正反转;N、采用光电隔离.L298N的结构如下图所示:L298N的实物图如下:四、硬件设计语音控制小车为三轮结构。

其中前轮为万向轮,被动调节小车前进方向。

在自然状态下,前轮保持中间位置并正前方运动。

后面两个车轮由各自的电机驱动,为整个小车提供动力。

整个小车分为三大部分:车体部分、凌阳SPCE061模块、驱动模块。

车体部分:小车车体主要为两个电机驱动装置,分左轮驱动和右轮驱动。

在车体的中间有一个可以安装3节AA电池的电池盒,整个小车的电源就是由它来提供的。

凌阳SPCE061模块:凌阳SPCE061模块是小车的核心部分,它负责整个小车控制信号的产生,以及语音的播放和识别功能实现的。

在不使用小车时可以将其从小车上拆下来,它仍然是完整的,可以用来做其它的实验或开发。

驱动模块:核心驱动电路L289N,通过其驱动左、右两个电机的转动与停止,以实现小车的前进,后退,左转,右转等功能。

硬件框图如下:五、软件设计1、各部分流程图语音识别总流程图:训练函数流程图:语音识别函数流程图:2、部分程序代码:语音命令训练函数: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 GoAhead() //前进{PlaySnd(S_ACT1,3); //提示*P_IOB_Data = 0x0100; //前进*P_INT_Mask |= 0x0004; //以下为中断定时操作__asm("int fiq,irq");uiTimecont = 0;}后退命令函数:void BackUp() //倒退{PlaySnd(S_DCZY,3); //提示*P_IOB_Data=0x0200; //倒退*P_INT_Mask |= 0x0004; //以下为中断定时操作uiTimecont = 0;}左转命令函数:void TurnLeft() //左转{PlaySnd(S_GJG,3);*P_IOB_Data=0x0900; //右转Delay(); //延时*P_IOB_Data=0x0500; //左转*P_INT_Mask |= 0x0004; //以下为中断定时操作__asm("int fiq,irq");uiTimecont = 0;}右转命令函数:void TurnRight() //右转{PlaySnd(S_GJG,3); //语音提示*P_IOB_Data=0x0500; //左转Delay(); //延时*P_IOB_Data=0x0900; //右转*P_INT_Mask |= 0x0004; //以下为中断定时操作uiTimecont = 0;}停车命令函数:void Stop() //停车{*P_IOB_Data=0x0000; //停车PlaySnd(S_RDY,3); //语音提示}语音命令辨识函数:void BSR(void){int Result; //辨识结果寄存Result = BSR_GetResult(); //获得识别结果if(Result>0) //有语音触发?{*P_IOB_Data=0x0000; //临时停车switch(Result){case NAME_ID:c=1;BSR_StopRecognizer();*P_SystemClock=0x0003;*P_INT_Mask=0x0200;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;}}}六、实验总结本次实验以凌阳SPCE061A单片机为主体,搭配L298N电机驱动模块,完成了语音控制小车的语音控制功能。

诸如左、右转,前进、后退、停止等。

实现了本次实验的实验目的。

在本次实验中,我学习到了凌阳单片机的一些基础知识。

在硬件方面,较高的执行速度、内置的硬件乘法器、ADC 和 DAC 功能、内置的 AGC 自动增益环节,这些为语音处理提供了强大基础。

在软件方面,标准的 C 语言编程,丰富的语音资源函数为编程提供了很大的方便,降低了开发难度,提升了开发效率。

但是本实验也有很多不足,比如凌阳语音识别部分安装在小车上,这样虽然使设计更为简洁、可靠,但同时也可能因语音识别距离过远而使得小车无法正确接收命令,导致控制失败,因此可考虑将语音识别模块与小车控制模块分开,两者之间无线控制。

另外本实验中小车仅能接收前进、后退、左转、右转、停车五种指令,命令过于单调,可考虑增加加速、减速等指令,使设计更为全面,实用。

整个实验中,我们的团队互相帮助,互相学习,共同合作完成了本设计。

在此,我感谢我的团队,也感谢指导老师对我们的帮助,谢谢你们!。

相关主题