概述
前言
该方案可以低成本快速制作小作品,本身是用来水期末arduino课程设计????(竟然放在考试周),一个下午做了一个语音控制灯光亮灭、亮度和风扇开关的小作品。技术含量不高,单纯是为了水课程设计和练习练习焊接。
该小制作由于时间仓促,现有功能极其有限,可以根据自己需要进行魔改。语音模块SNY8015唯一的好处就是便宜,但是自个修改内部程序较为复杂(在没有购买专用下载器的情况下,下载器价格昂贵),个人还是推荐用LD3320做比较好,毕竟可操作性比较强。很容易做的。
器材
- arduino nano核心板 9.98元
- SNR8051 语音识别芯片 18.9元
- 电源转换器
- 洞洞板
- 继电器 ×3
- 灯带
- 风扇
设计思路
电路连接
只介绍核心部件连接
ARDUINO NANO | SNR8051 |
---|---|
9 | TX |
10 | RX |
5V | 5V |
GND | GND |
说明
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离线语音识别 的小制作所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复