语音控制 Arduino 小车 – 蓝牙 BLE + 手机 App DIY 教程
组件与物料
| Arduino UNO | ×1 |
| 面包板 | ×1 |
| 直流减速电机 | ×2 |
| 车轮 | ×2 |
| 底盘 | ×1 |
| LM7805 稳压芯片 | ×1 |
| L293D 双 H 桥驱动芯片 | ×1 |
| 12V 电池(电源) | ×1 |
| 杜邦线 | 若干 |
| 蓝牙模块 HC-05(或 BLE 模块) | ×1 |
项目思路
手机安装语音控制 App,通过蓝牙与 Arduino 通信。App 将语音识别转为文本指令(如 "forward", "back", "left", "right"),经蓝牙串口发送给 Arduino。Arduino 逐字符读取串口缓冲区拼接字符串,匹配指令后控制 L293D 驱动两路电机正反转,实现小车前进、后退、左转、右转。
App 下载地址:Google Play
接线说明
详细接线图见:博客链接
- L293D 输入引脚分别接 Arduino D11, D10, D5, D6
- HC-05 模块 TX→Arduino RX (D0), RX→Arduino TX (D1) (需电平转换或分压)
- 电机电源由 12V 经 LM7805 降压为 5V 供 L293D 逻辑端,电机直连 12V
Arduino 代码
int motor_input1 = 11; // 右电机 IN1
int motor_input2 = 10; // 右电机 IN2
int motor_input3 = 5; // 左电机 IN3
int motor_input4 = 6; // 左电机 IN4
String voice;
void setup() {
Serial.begin(9600);
pinMode(motor_input1, OUTPUT);
pinMode(motor_input2, OUTPUT);
pinMode(motor_input3, OUTPUT);
pinMode(motor_input4, OUTPUT);
}
void loop() {
// 读取蓝牙串口数据,以 '#' 结束
while (Serial.available() > 0) {
delay(10);
char c = Serial.read();
if (c == '#') break;
voice += c;
}
if (voice == "forward") { // 前进
digitalWrite(motor_input1, LOW);
digitalWrite(motor_input2, HIGH);
digitalWrite(motor_input3, LOW);
digitalWrite(motor_input4, HIGH);
delay(5000);
}
else if (voice == "back") { // 后退
digitalWrite(motor_input1, HIGH);
digitalWrite(motor_input2, LOW);
digitalWrite(motor_input3, HIGH);
digitalWrite(motor_input4, LOW);
delay(5000);
}
else if (voice == "left") { // 左转
digitalWrite(motor_input1, LOW);
digitalWrite(motor_input2, HIGH);
digitalWrite(motor_input3, HIGH);
digitalWrite(motor_input4, LOW);
delay(800);
}
else if (voice == "right") { // 右转
digitalWrite(motor_input1, HIGH);
digitalWrite(motor_input2, LOW);
digitalWrite(motor_input3, LOW);
digitalWrite(motor_input4, HIGH);
delay(800);
}
if (voice.length() > 0) {
Serial.println(voice); // 回显调试
voice = "";
// 停止所有电机
digitalWrite(motor_input1, LOW);
digitalWrite(motor_input2, LOW);
digitalWrite(motor_input3, LOW);
digitalWrite(motor_input4, LOW);
}
}
改进建议
- 使用 PWM 控制电机速度(analogWrite)
- 增加超声波避障、循迹等功能
- 改用 BLE 4.0/5.0 模块降低功耗
- 设计 PCB 替代面包板,提高可靠性
制造工艺
- Alexa 控制 ARDrone 2.0 演示:树莓派 + Hologram Nova 语音激活无人机
- Arduino 数字骰子:LCD 显示随机点数的电子骰子
- 用 Arduino Nano 自制 37 灯珠轮盘赌游戏机
- 废旧遥控车改装:Arduino + USB Host Shield 实现 Xbox 手柄无线控制
- ATtiny85 迷你街机:贪吃蛇 — 打造掌上 OLED 游戏机
- 便携测距仪 DIY 套件:Arduino Nano + HC-SR04 + 18650 电池 + 3D 打印外壳
- MobBob:3D 打印智能机器人,Android 手机无缝控制,语音视觉一体
- 智能 APP 控制液压机械臂:Arduino UNO + 蓝牙 + 8 路注射器驱动
- Arduino Nano + OpenCV 人脸追踪自主机器人小车
- PiBot:Arduino驱动的88键钢琴机器人,精准演奏MIDI乐曲
- 铜电镀智能系统:基于 Arduino UNO 的可控电解装置
- Arduino Nano 驱动 NeoPixel 矩阵:自制霓虹乒乓游戏