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

前言

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

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

器材

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

设计思路

arduino+SNR8051离线语音识别 的小制作_第1张图片

电路连接

只介绍核心部件连接

ARDUINO NANO SNR8051
9 TX
10 RX
5V 5V
GND GND

说明

SNY8051通信只有USART,有个指令集,看图吧
arduino+SNR8051离线语音识别 的小制作_第2张图片
每次成功识别后都会返回一串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进制字符串处理了,自个可以随便改。

成品展示

可以通过语音唤醒设备,通过识别提前设置好的语音进行相关操作,比如打开灯光、调节亮度,打开风扇等等。
arduino+SNR8051离线语音识别 的小制作_第3张图片

arduino+SNR8051离线语音识别 的小制作_第4张图片
arduino+SNR8051离线语音识别 的小制作_第5张图片

你可能感兴趣的:(小制作,arduino,语音识别,单片机)