基于SPCE061A的小车语音控制系统

时间:2011-09-19来源:网络

初始化部分的初始化操作会将SPCE061A单片机上的IOB13~IOB10设置为输出端,用以控制电机。将其IOA的低8位IOA0~IOA7设置为下拉的输入端,用来连接按键。

  训练部分完成的工作是建立语音模型。程序一开始会判断小车是否被训练过,如果没有训练过,系统会要求对其进行训练,并且会在训练成功之后将训练的模型存储到Flash中;如果已经训练过则会把存储在Flash中的模型调出,装载到辨识器中。

  在识别环节当中,如果辨识结果是名字,直接置待命标志,然后等待动作命令。只有检测到待命标志,小车才会根据相应的辨识结果执行动作。如果没有待命标志,即使识别到动作命令也不会执行动作。小车在执行完对应的命令之后清除待命标志,结束待命状态。

  考虑到有重新训练的需求,这里设置了重新训练的按键。程序运行时循环扫描该按键,什么时间检测到此键按下,则将擦除语音模型存储区首单元(0xe000)所在的页,等待复位到来。复位后,程序重新从头开始执行,当检测到语音模型存储区首地址为0xffff(擦除后的值)时,系统会要求重新对其进行训练。

  FIQ中断服务程序


  FIQ中断服务程序用来调用语音辨识子程序,并对a2000格式的语音进行解码播放。

  调试及性能分析

  系统的调试以程序为主。硬件调试时,首先检查电路的焊接是否正确,然后用万用表测试或通电检测。软件调试则需要分别进行主程序、FIQ中断服务程序、显示子程序等的编程及调试。本程序采用单片机汇编语言编写,用KEILuVision2编译器编程调试。软件调试直到语音能够控制小车的行驶状态,并显示出小车的行驶距离等功能为止。

  结语

  本文设计的语音控制系统主要采用16位单片机SPCE061A来实现。软件编程则是采用C语言和汇编语言的混合编程来实现的,集两种语言的优点于一体,实现对硬件的实时控制。通过实验验证,该语音控制系统主要可实现以下功能:

  (1)可以通过语音命令来控制小车的行驶状态,实现前进、后退、左转、右转等功能;

  (2)显示小车的运行时间以及运行路程;

  (3)可以扩展控制板的调速环节,利用系统的PWM资源,实现小车的PWM调速;

  (4)预留多路开关型传感器接口,可以自行安装各类传感器,配合程序实现小车的循迹、避障等功能。

1 2

关键词: 服务程序 语音控制 编程调试

加入微信
获取电子行业最新资讯
搜索微信公众号:EEPW

或用微信扫描左侧二维码

相关文章

查看电脑版