什么是EasyVR shield 3?如何设置EasyVR shield 3
目录
✅ 一、EasyVR Shield 3 是什么?
▶ 简介:
🔧 二、主要功能:
📦 三、硬件连接方式
✅ 模块外观:
✅ 四、设置步骤(安装与配置)
🔧 第一步:准备材料
🔧 第二步:模块模式设置(跳线帽)
🔧 第三步:安装 Arduino 库
🔧 第四步:安装 EasyVR Commander(可选)
🔧 第五步:训练命令(可选步骤)
✅ 五、在 Arduino 上使用 EasyVR Shield 示例代码
📌 六、常见问题 FAQ
✅ 七、总结
✅ 一、项目目标
📦 二、所需材料清单
🔌 三、硬件接线说明
✅ EasyVR Shield:
✅ L298N 电机驱动模块:
🎙 四、训练语音命令(使用 EasyVR Commander)
步骤:
👨💻 五、Arduino 控制代码示例
✅ 六、测试流程
❗ 七、常见问题排查
✅ 八、扩展方向
下面我会系统、清晰地讲解 EasyVR Shield 3 是什么、它的用途、以及如何设置与使用它。
✅ 一、EasyVR Shield 3 是什么?
▶ 简介:
EasyVR Shield 3 是一个专门为 Arduino 或兼容开发板设计的语音识别模块扩展板,由 Veear Technologies(现在由 Parallax 代理)推出。
它可以让你的 Arduino 实现语音控制功能,比如说:
“Turn on the light” → Arduino 控制 LED 打开。
🔧 二、主要功能:
功能名称 | 描述 |
---|---|
🎙️ 离线语音识别 | 不依赖互联网,在本地识别语音命令 |
🗂️ 支持自定义命令 | 你可以训练自己的词组或句子 |
🧠 支持文本到语音(TTS) | 可选功能,模块可发出语音反馈 |
🔊 音频输出接口 | 可连接喇叭进行语音提示 |
🔌 与 Arduino 兼容 | 插在 Arduino 上即可使用 |
📦 预定义命令组 | 支持“动作”“数字”“颜色”等命令集 |
📦 三、硬件连接方式
✅ 模块外观:
-
看起来像 Arduino Shield(可以直接插在 Arduino UNO 上)
-
带有麦克风、电源接口、串口跳线帽(MODE)
-
使用 UART(串口通信)进行语音数据交换
✅ 四、设置步骤(安装与配置)
🔧 第一步:准备材料
材料 | 说明 |
---|---|
Arduino UNO/Nano/Mega | 控制板(UNO最兼容) |
EasyVR Shield 3 | 语音识别模块 |
USB 线 | 上传代码用 |
可选:喇叭或耳机 | 听模块语音反馈 |
可选:EasyVR Commander 软件 | 配置模块 & 训练命令 |
🔧 第二步:模块模式设置(跳线帽)
EasyVR Shield 有一个模式选择跳线帽(标注为 "PC ↔ MCU"):
-
配置模式(PC):用于连接 EasyVR Commander 配置命令集
-
通信模式(MCU):正常与 Arduino 通信运行程序
📌 出厂默认为 “MCU” 模式(使用前训练语音要跳到 “PC” 模式)
🔧 第三步:安装 Arduino 库
-
打开 Arduino IDE
-
点击
工具
→管理库
-
搜索:
EasyVR
-
安装
EasyVR for Arduino
官方库(由 VeeaR 发布)
🔧 第四步:安装 EasyVR Commander(可选)
用于:
-
在电脑上训练语音命令(录音)
-
上传命令组到模块内存
-
连接模块时需把跳线帽设置为 PC 模式
📥 官方软件下载:
-
EasyVR Commander 下载页面
🔧 第五步:训练命令(可选步骤)
-
把跳线帽设置为 “PC” 模式
-
用 USB 转串口连接 EasyVR 到电脑
-
打开 EasyVR Commander
-
新建命令组,录入你想识别的指令(如 “灯开”)
-
上传命令组到模块
-
设置回 “MCU” 模式
✅ 五、在 Arduino 上使用 EasyVR Shield 示例代码
#include <EasyVR.h>
#include <SoftwareSerial.h>SoftwareSerial port(12, 13); // Arduino 与 EasyVR 的通信引脚
EasyVR easyvr(port);int ledPin = 8; // LED 控制引脚void setup()
{pinMode(ledPin, OUTPUT);Serial.begin(9600);port.begin(9600);if (easyvr.detect() == false) {Serial.println("EasyVR not detected!");while (1);}Serial.println("EasyVR detected!");easyvr.setTimeout(5); // 设置识别超时easyvr.setLanguage(EasyVR::ENGLISH); // 设置语言(中、英、日等)
}void loop()
{Serial.println("Say a command...");easyvr.recognizeCommand(0); // 识别第 0 个命令组while (!easyvr.hasFinished()); // 等待识别完成int idx = easyvr.getCommand();if (idx == 0) {digitalWrite(ledPin, HIGH); // 识别到第一个命令:开灯Serial.println("LED ON");}else if (idx == 1) {digitalWrite(ledPin, LOW); // 识别到第二个命令:关灯Serial.println("LED OFF");}
}
🧪 假设你训练的 0 号命令组包含:
-
Index 0: “Turn on the light”
-
Index 1: “Turn off the light”
📌 六、常见问题 FAQ
问题 | 解决办法 |
---|---|
识别失败 | 麦克风位置是否正确?训练是否清晰? |
EasyVR Commander 连不上 | 跳线帽是否切换到 PC 模式?端口是否选择正确? |
无法上传命令组 | 检查模块供电、串口线是否可靠连接 |
想让它识别中文 | EasyVR 支持中文语音包,需选择中文语言模型(需要中文库) |
✅ 七、总结
项目 | 内容 |
---|---|
名称 | EasyVR Shield 3 |
功能 | 离线语音识别,可语音控制 Arduino |
配置工具 | EasyVR Commander |
使用步骤 | 接线 → 录音训练 → Arduino 编程 |
技术要求 | 熟悉串口、Arduino 编程、基础英语 |
应用场景 | 智能家居、语音小车、语音开关控制等 |
假设我们现在要实现一个 用语音控制小车前进 / 后退 的项目,使用的是 EasyVR Shield 3 + Arduino + 小车底盘。
下面我会手把手带你实现这个项目,从硬件、语音命令训练到完整代码,一步一步来:
✅ 一、项目目标
通过语音命令控制小车运动方向:
“前进” → 小车前进
“后退” → 小车后退
“停止” → 小车停止
📦 二、所需材料清单
名称 | 描述 |
---|---|
Arduino UNO | 主控板(推荐 UNO) |
EasyVR Shield 3 | 语音识别模块,安装在 Arduino 上 |
L298N 电机驱动模块 | 控制电机前进/后退 |
直流电机+小车底盘 | 小车运行组件 |
9V 或 18650 电池 | 电机供电 |
跳线若干 | 接线用 |
🔌 三、硬件接线说明
✅ EasyVR Shield:
-
直接插在 Arduino UNO 上即可
✅ L298N 电机驱动模块:
Arduino 引脚 | L298N 模块引脚 | 说明 |
---|---|---|
5 | IN1 | 控制左电机方向 A |
6 | IN2 | 控制左电机方向 B |
9 | IN3 | 控制右电机方向 A |
10 | IN4 | 控制右电机方向 B |
12V 电池 | 12V 输入 | 为电机供电 |
GND | GND | 共享地线 |
PS:如果你是四轮小车,可将两边电机分别接到 OUT1/OUT2 和 OUT3/OUT4。
🎙 四、训练语音命令(使用 EasyVR Commander)
步骤:
-
将 EasyVR Shield 设置为 PC 模式(拨跳线帽)
-
连接电脑,打开 EasyVR Commander
-
创建一个命令组(Group 0),录入以下命令:
-
Command 0: "前进"
-
Command 1: "后退"
-
Command 2: "停止"
-
-
上传到模块内存
-
设置跳线帽回 MCU 模式
👨💻 五、Arduino 控制代码示例
#include <EasyVR.h>
#include <SoftwareSerial.h>EasyVR easyvr(12, 13); // RX, TX
int motorPin1 = 5;
int motorPin2 = 6;
int motorPin3 = 9;
int motorPin4 = 10;void setup() {Serial.begin(9600);easyvr.begin(9600);pinMode(motorPin1, OUTPUT);pinMode(motorPin2, OUTPUT);pinMode(motorPin3, OUTPUT);pinMode(motorPin4, OUTPUT);if (!easyvr.detect()) {Serial.println("EasyVR not detected!");while (1);}Serial.println("Ready for commands...");easyvr.setTimeout(5); // 设置识别超时easyvr.setLanguage(EasyVR::CHINESE); // 设置语言为中文
}void loop() {Serial.println("Listening...");easyvr.recognizeCommand(0); // 启动对第0组命令的识别while (!easyvr.hasFinished()); // 等待识别结束int command = easyvr.getCommand();if (command == 0) { // 前进forward();Serial.println("Forward");} else if (command == 1) { // 后退backward();Serial.println("Backward");} else if (command == 2) { // 停止stopMotor();Serial.println("Stop");} else {Serial.println("Command not recognized.");}
}void forward() {digitalWrite(motorPin1, HIGH);digitalWrite(motorPin2, LOW);digitalWrite(motorPin3, HIGH);digitalWrite(motorPin4, LOW);
}void backward() {digitalWrite(motorPin1, LOW);digitalWrite(motorPin2, HIGH);digitalWrite(motorPin3, LOW);digitalWrite(motorPin4, HIGH);
}void stopMotor() {digitalWrite(motorPin1, LOW);digitalWrite(motorPin2, LOW);digitalWrite(motorPin3, LOW);digitalWrite(motorPin4, LOW);
}
✅ 六、测试流程
-
上传代码到 Arduino
-
给电机供电(推荐用外接 9V/12V)
-
打开串口监视器 → 说出你训练的命令:“前进 / 后退 / 停止”
-
小车应该能相应动作!
❗ 七、常见问题排查
问题 | 原因与解决方式 |
---|---|
小车不动 | 电机供电不足 / 驱动模块未连接好 |
语音识别失败 | 命令未训练成功 / 模块跳线帽没拨回 MCU 模式 |
前进后退方向不对 | 交换 IN1-IN2 或 IN3-IN4 的引脚方向 |
模块没被识别 | 代码中串口或语音组号设错 / 跳线接反 |
✅ 八、扩展方向
你可以在这个基础上继续拓展,比如:
-
增加语音控制“左转 / 右转”功能
-
加入避障模块(超声波)增强自动能力
-
语音说“巡线模式”,小车进入循迹
-
或者加入蓝牙、遥控模块作为备用控制方式