arduino+SNR8051离线语音识别 的小制作

前言

该方案可以低成本快速制作小作品,本身是用来水期末arduino课程设计😁(竟然放在考试周),一个下午做了一个语音控制灯光亮灭、亮度和风扇开关的小作品。技术含量不高,单纯是为了水课程设计和练习练习焊接。

该小制作由于时间仓促,现有功能极其有限,可以根据自己需要进行魔改。语音模块SNY8015唯一的好处就是便宜,但是自个修改内部程序较为复杂(在没有购买专用下载器的情况下,下载器价格昂贵),个人还是推荐用LD3320做比较好,毕竟可操作性比较强。很容易做的。

器材

  • arduino nano核心板 9.98元
  • SNR8051 语音识别芯片 18.9元
  • 电源转换器
  • 洞洞板
  • 继电器 ×3
  • 灯带
  • 风扇

设计思路

在这里插入图片描述

电路连接

只介绍核心部件连接

ARDUINO NANOSNR8051
9TX
10RX
5V5V
GNDGND

说明

SNY8051通信只有USART,有个指令集,看图吧
在这里插入图片描述
每次成功识别后都会返回一串16进制数,arduino根据反馈的数据进行判别,做出相应的动作。同理arduino也可通过发送指令控制语音识别模块发出语音。

控制灯光仅仅是通过继电器控制电压做到的。

代码

#include  
int brightness = 0; SoftwareSerial BT(9, 10); 
String recipt="";void setup() {Serial.begin(9600,SERIAL_8N1);BT.begin(9600);pinMode(2, OUTPUT);  pinMode(3, OUTPUT); pinMode(5, OUTPUT); }void loop() {int i,j;while (BT.available()) {//从串口中读取数据int in = (char)BT.read();recipt+=in;delay(2);}if(recipt.length()>0){//先输出一下接收到的数据Serial.print(recipt);Serial.print(' ');if(recipt=="-1262-1" ||recipt=="-1265-1"||recipt=="-1267-1" ) //打开灯光,灯光调暗,最小亮度 digitalWrite(2, 1); digitalWrite(3, 0); if(recipt=="-1266-1"||recipt=="-1264-1" ) //最大亮度digitalWrite(3, 1); if(recipt=="-1263-1")//关闭灯光digitalWrite(2, 0); if(recipt=="-1268-1")//打开风扇digitalWrite(5, 1); if(recipt=="-1269-1")//关闭风扇digitalWrite(5, 0); }recipt="";
}

这里16进制当做10进制字符串处理了,自个可以随便改。

成品展示

可以通过语音唤醒设备,通过识别提前设置好的语音进行相关操作,比如打开灯光、调节亮度,打开风扇等等。
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部