WeMos D1 之 语音开盖垃圾桶 开发记录

目录

(一)WeMos 控制垃圾桶开关盖

(二)LDV7语音识别模块的使用


基于WeMos、LDV7语音识别模块和SG90电机实现语音开盖垃圾桶

(一)WeMos 控制垃圾桶开关盖

#include <Servo.h>
#define PIN D5  //定义D5口

Servo myDuoJi;  //定义了舵机的一个类

void setup() 
{
  Serial.begin(115200);       //初始化串口,设置波特率为115200
  Serial.println("start");       //测试串口是否启动,启动成功就发送start
  myDuoJi.attach(PIN );   //将D5口与舵机连接
  myDuoJi.write(180);   //使电机通电即处于关盖状态
}

void loop() 
{
  char cmd;
  if ( Serial.available() > 0 ) {   //检测串口是否有数据
    cmd = Serial.read();    // 读取串口数据
    Serial.println(cmd);   //打印接收的信息
    if (cmd == 'o') {     
      Serial.println(cmd);
      myDuoJi.write(70); // 舵机转动合适角度打开盖
    }
    if (cmd == 's') {   //
      Serial.println(cmd);
      myDuoJi.write(180); //舵机转动合适角度关盖
    }
  }
}

servo类的内容: 

将代码下载到wemos,此时可通过电脑端串口助手发送指令给wemos实现开关盖

(二)LDV7语音识别模块的使用

语音模块通过串口通信将识别到的指令发送给wemos,从而控制电机开关盖。

语音模块的工作原理是,识别关键字的拼音,然后执行对应的操作比如发送一段信息“识别成功”。

打开厂家提供的模块驱动程序,

(1)在LDChip.c文件下找到 uint8 LD_AsrAddFixed() 函数

口令模式的的程序,需要说出一级指令再进行下一步识别,比如要控制垃圾桶开关盖,就先喊一声“垃圾桶”,识别后,再喊“开盖”或者“关盖”。代码的实现就修改下源程序,替换源程序的几个关键词,因为模块是根据拼音识别的,所以添加成垃圾桶的拼音“la ji tong”即可,开盖,关盖写“kai gai”“guan gai”,他们分别对应一个识别码,用于执行特定指令。

(2)然后找到main.c文件下的    User_handle()函数,

这里的代码是识别到关键词后的操作,如图稍微修改下代码,开盖和关盖对应的识别码所对应的操作就是通过串口对外发送“1”和“2”(此处对应wemos代码,应发送o和s),只要将语音模块的针脚“txd”接到wemos的“rx”,就可以发送信息给wemos从而控制电机开关盖。

(3)串口通信要确保两端的波特率相同,wemos端的波特率已经设置为“115200”,语音模块要修改为一致。

根据注释提示,要修改波特率为“115200”,只需将“0xB8”替换为“0xFA”。

代码修改完成。

  • 1
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值