我是靠谱客的博主 清脆鲜花,最近开发中收集的这篇文章主要介绍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 <SoftwareSerial.h> 
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进制字符串处理了,自个可以随便改。

成品展示

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

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

最后

以上就是清脆鲜花为你收集整理的arduino+SNR8051离线语音识别 的小制作的全部内容,希望文章能够帮你解决arduino+SNR8051离线语音识别 的小制作所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(53)

评论列表共有 0 条评论

立即
投稿
返回
顶部