语音识别LD3320模块控制LED和舵机

实现目标

  • 将一级唤醒词“小杰”修改为“小哈”;
  • 在已有“开灯”和“关灯”两个指令基础上,添加“开门”和“关门”两个指令。

舵机-90度转角代表关门,45度代表开门。对应的脉冲宽度时间分别为0.5ms 和 2.0ms。

我们继续在官方提供的口令模式的Demo示例程序基础上,实现本文的目标。

修改唤醒词和关键词

将唤醒词修改为“小哈”

修改如下文件:

其中:

#define DATE_A 8 #define DATE_B 20

这两个宏定义,其中DATE_A代表候选的关键词的个数,这里是8个;DATE_B是关键词对应的字符串的长度中的最大值,此例中,最长的字符串为:"kai fa ban yan zheng"(开发板验证),这个字符串中有20个字符,所以DATE_B定义为20。

因为我们修改的唤醒词“小哈”,字符个数没有超过20,所以,这两个宏定义不需要修改。

添加“开门”和“关门”关键词

  1. 添加“开门”和“关门”的识别码

  1. 修改宏定义及关键词对应的数组

  1. 修改User_handle函数

添加“开门”和“关门”的识别结果处理。

添加“开灯”和“关灯”代码

  1. 定义继电器控制引脚
sbit RELAY=P1^0;
  1. 在语音识别结果处添加继电器控制代码

添加“开门”和“关门”代码

  1. 定义舵机控制引脚
sbit SG90 = P1^7; 
  1. 添加100us的定时器初始化代码

  1. 在语音识别结果处添加开关门控制的布尔变量改变的代码

  1. 定时器中添加舵机控制代码

编译程序并下载程序至LD3320模块中

程序编译没有错误之后,将编译结果下载至LD3320模块中验证程序是否正确。

结果展示

声明:本内容为作者独立观点,不代表电子星球立场。未经允许不得转载。授权事宜与稿件投诉,请联系:editor@netbroad.com
觉得内容不错的朋友,别忘了一键三连哦!
赞 1
收藏 2
关注 62
成为作者 赚取收益
全部留言
0/200
成为第一个和作者交流的人吧