本文首发于DF创客社区,作者:Jeff2
原文链接:http://mc.dfrobot.com.cn/thread-289776-1-1.html
项目背景
之前和朋友做AI训练街霸游戏,想加入人工语音识别输出特定技能或者连环招式,以增加游戏的趣味性。也联想到目前某些游戏按键技能太多,经常操作跟不上思想。于是就想着开发一个 输出全靠吼的硬件。说盘就盘。
boom表
LD3320
arduino leonardo
杜邦线
面包板
软件要求:
先下载ld3320 库文件,并复制到arduino的libraries文件夹下。地址
http://www.waveshare.net/study/portal.php?mod=atta...
连接 LD3320 语音模块到arduino leonardo
3.3V -- VCC
GND -- GND
MISO -- D12
MOSI -- D11
SCK -- D13
NSS -- D4
RST -- D9
IRQ -- D2
WR -- GND
先做个简单测试
#include <ld3320>
VoiceRecognition Voice;//声明一个语音识别对象
#define Led 8 //定义LED控制引脚
voidsetup()
{
pinMode(Led,OUTPUT);//初始化LED引脚为输出模式
digitalWrite(Led,LOW);//LED引脚低电平
Voice.init();//初始化VoiceRecognition模块
Voice.addCommand("kai deng",0);//添加指令,参数(指令内容,指令标签(可重复))
Voice.addCommand("guan deng",1);//添加指令,参数(指令内容,指令标签(可重复))
Voice.start();//开始识别
}
voidloop() {
switch(Voice.read())//判断识别
{
case0://若是指令“kai deng”
digitalWrite(Led,HIGH);//点亮LED
break;
case1://若是指令“guan deng”
digitalWrite(Led,LOW);//熄灭LED
break;
default:
break;
}
}
上面代码测试
开灯 口令能点亮LED说明LD3320通了
接下研究下KEYBORAD代码
arduino leonardo可以直接用arduino的keyboard实例
我这边经过修改后代码如下
#include <Keyboard>
#include <ld3320>
#include <PinMap>
VoiceRecognition Voice;//声明一个语音识别对象
boollastCapsLockState;
voidsetup() {
// initialize control over the keyboard:
Keyboard.begin();
TIMSK0 = 0;
Voice.init();//初始化VoiceRecognition模块
//add fun
Voice.noiseTime(0x10);
Voice.voiceMaxLength(0x14);
Voice.micVol(0x55);
Voice.addCommand("zhuo mian", 0);//添加指令,参数(指令内容,指令标签(可重复))
Voice.addCommand("hong", 0);
Voice.addCommand("tui chu", 1);
Voice.addCommand("xia ye", 2);
Voice.addCommand("shang qu", 3);
Voice.addCommand("di bu", 4);
Voice.addCommand("zui shang", 5);
Voice.addCommand("liu lang qi", 6);
Voice.addCommand("guan bi", 7);
Voice.addCommand("xian shi", 8);
Voice.addCommand("qie huan", 9);
Voice.addCommand("shui jiao", 10);
Voice.addCommand("fang da", 11);
Voice.addCommand("bi ge", 11);
Voice.addCommand("suo xiao", 12);
Voice.addCommand("si mou", 12);
Voice.addCommand("mi ma", 13);
Voice.addCommand("