新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > 基于16位微控制器的小车语音控制系统

基于16位微控制器的小车语音控制系统

作者: 时间:2011-09-02 来源:网络 收藏
软件部分

本文引用地址:https://www.eepw.com.cn/article/150269.htm

  主程序流程

  的主程序流程图如图4所示,主要分为四部分:初始化部分、训练部分、识别部分和重训操作。

  

小车语音控制系统程序流程图

  图4 主程序流程图

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

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

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

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

  FIQ中断服务程序

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

  调试及性能分析

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

  结语

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

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

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

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

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

霍尔传感器相关文章:霍尔传感器工作原理


霍尔传感器相关文章:霍尔传感器原理

上一页 1 2 下一页

评论


相关推荐

技术专区

关闭