机器人终极升级!蓝牙遥控+APP控制,告别手动调试
第十四章|机器人终极升级!
蓝牙遥控+APP控制,告别手动调试
嗨,陪你从零做Arduino机器人的博主又来啦!
前面我们已经完成了机器人的身体、大脑、感知、稳定——亲手做底盘、实现行走避障、搭建稳定电路、解锁多种传感器用法,现在的机器人已经能自主运行,但还有一个痛点:
每次调整动作、切换模式,都要拔插USB上传程序,麻烦又耗时;想手动控制机器人前进、转弯,只能靠修改代码,不够灵活。
今天我们直接解锁机器人“终极技能”,细讲《Arduino机器人制作指南》第十四章:蓝牙遥控与APP控制。这一章将彻底解放你的双手,教你给机器人加装蓝牙模块,用手机APP远程控制,实现“手机点一点,机器人动一动”,还能切换自主避障和手动遥控模式,新手也能轻松上手!
全程拆解蓝牙接线、APP设置、代码编写,所有步骤都标红重点,代码直接复制可用,不用懂复杂的通信原理,跟着做,你的机器人就能实现“远程操控自由”!

本章你能直接解锁的终极技能
✅ 认识蓝牙模块(HC-05/HC-06),掌握核心用法
✅ 学会蓝牙模块与Arduino的接线,简单3步搞定
✅ 配置手机APP,实现手机与机器人“双向通信”
✅ 写出蓝牙遥控程序,手机控制机器人前进/后退/左转/右转/停止
✅ 实现“手动遥控+自主避障”双模式切换,按需切换更灵活
✅ 排查蓝牙连接失败、控制失灵的常见问题
读完+动手,你的机器人将从“自主小车”升级为“可遥控智能机器人”,不管是调试还是玩耍,都方便到飞起!
一、先搞懂:蓝牙模块到底是什么?(新手必看)
第十四章的核心零件,就是蓝牙模块——它相当于机器人的“无线接收器”,能实现手机与Arduino之间的无线通信,简单说就是:
手机APP发送指令(比如“前进”)→ 蓝牙模块接收指令 → 传给Arduino → 机器人执行对应动作。
本章我们用最常用、最稳定、最便宜的HC-05蓝牙模块(新手首选),它的优势很明显:
-
体积小,容易固定在机器人底盘上,不占空间;
-
接线简单,不用焊接,直接插面包板就能用;
-
兼容性强,支持所有安卓、苹果手机,连接稳定;
-
通信距离远(10-15米),日常玩耍、调试完全足够。
补充:HC-05和HC-06的区别(新手不用纠结)
✅ HC-05:可作为主设备,也可作为从设备,支持配对密码,本章首选;
✅ HC-06:只能作为从设备,没有配对密码,操作更简单,也可替代使用。

二、备料:第十四章新增零件(1个核心,成本低)
本章不需要大量新增零件,在之前机器人的基础上,只需要补充1个核心零件,再准备1部手机即可,性价比拉满:
-
HC-05蓝牙模块 ×1(核心零件,淘宝十几块钱,新手必买);
-
杜邦线 ×4(用来连接蓝牙模块和Arduino,之前大概率有剩余);
-
手机1部(安卓、苹果均可,用来安装控制APP)。
沿用零件:Arduino UNO、舵机×2、超声波传感器、微动开关、稳压模块、电池、底盘等(前八章已备,不用额外补充)
|
💡 新手提醒:买HC-05模块时,建议买“带引脚座”的,直接插面包板,不用焊接;配对密码默认是“1234”或“0000”,到手不用额外设置,直接能用。 |
三、核心实操1:蓝牙模块接线(3步搞定,完全兼容旧电路)
蓝牙模块的接线非常简单,只有4根线,完全不影响之前的舵机、传感器接线,直接新增接线即可,步骤如下(重点标红,照抄不踩坑):
先明确蓝牙模块引脚(HC-05)
HC-05模块有4个核心引脚,从左到右依次是:
-
VCC:电源引脚(接5V,和Arduino电源一致);
-
GND:接地引脚(接Arduino的GND,必须共地!);
-
TXD:发送引脚(接Arduino的RX引脚,即D0);
-
RXD:接收引脚(接Arduino的TX引脚,即D1)。
具体接线步骤(直接照抄)
-
HC-05 → VCC → Arduino → 5V(给蓝牙模块供电);
-
HC-05 → GND → Arduino → GND(共地,必接,否则无法通信);
-
HC-05 → TXD → Arduino → D0(RX引脚,注意:TX接RX,交叉连接);
-
HC-05 → RXD → Arduino → D1(TX引脚,交叉连接,不要接反)。
|
⚠️ 关键提醒:接线时,必须断开Arduino的电源(拔下USB或电池),避免接反引脚烧毁蓝牙模块和Arduino主板;接完后,再通电测试。 |
补充:如果接线后,Arduino无法上传程序,解决方法很简单——上传程序时,拔掉蓝牙模块的TXD和RXD接线,上传完成后,再插回去即可(因为TX/RX引脚被蓝牙占用,会影响程序上传)。

四、核心实操2:手机APP配置(不用编程,直接用)
蓝牙模块接好后,下一步就是配置手机APP,实现手机与机器人的连接,新手不用自己开发APP,用现成的免费APP即可,步骤如下:
第一步:下载并安装APP
推荐2款新手首选APP(二选一,都免费、好用):
-
安卓手机:搜索“蓝牙串口助手”(任意一款均可,推荐“蓝牙串口APP”,无广告);
-
苹果手机:搜索“LightBlue”(免费,兼容HC-05模块,操作简单)。
第二步:手机连接蓝牙模块
-
打开手机蓝牙,同时给Arduino机器人通电(蓝牙模块通电后,会快速闪烁指示灯,说明处于待配对状态);
-
打开下载好的APP,点击“搜索设备”,找到名称为“HC-05”的设备(部分模块名称可能不同,比如“HC-06”);
-
点击连接,输入配对密码(默认1234或0000),连接成功后,蓝牙模块的指示灯会变慢闪烁(每秒1次),APP会提示“连接成功”。
第三步:设置APP控制指令
连接成功后,我们需要设置“控制指令”——手机发送指定字符,机器人执行对应动作,新手直接照抄以下指令(和后续代码对应,不要修改):
-
发送“F” → 机器人前进;
-
发送“B” → 机器人后退;
-
发送“L” → 机器人左转;
-
发送“R” → 机器人右转;
-
发送“S” → 机器人停止;
-
发送“A” → 切换到自主避障模式;
-
发送“M” → 切换到手动遥控模式。
设置方法:在APP中,添加“按钮”,给每个按钮命名(比如“前进”),并设置对应的发送字符(比如“F”),设置完成后,点击按钮就能发送指令。

五、核心实操3:蓝牙遥控程序(直接复制可用,兼容旧代码)
本章的程序,是在之前“行走+避障”程序的基础上,新增蓝牙通信逻辑,完全兼容前八章的代码,不用重新写,直接复制上传即可。
核心逻辑:蓝牙模块接收手机发送的字符 → Arduino读取字符 → 执行对应动作/切换模式,完整代码如下(标红部分为新增蓝牙相关代码):
#include <Servo.h>// 1. 定义舵机对象(沿用之前代码)Servo servoLeft; // 左舵机Servo servoRight; // 右舵机// 2. 定义传感器引脚(沿用之前代码)int leftSwitch = 2; // 左碰撞开关 → D2int rightSwitch = 3; // 右碰撞开关 → D3int trigPin = 4; // 超声波Trig → D4int echoPin = 5; // 超声波Echo → D5int safeDistance = 20; // 安全距离(20cm)// 3. 定义蓝牙相关(本章新增)char cmd; // 存储蓝牙接收的指令int mode = 0; // 模式:0=手动遥控,1=自主避障voidsetup() {// 舵机引脚绑定(沿用)servoLeft.attach(9);servoRight.attach(10);// 传感器引脚设置(沿用)pinMode(leftSwitch, INPUT);pinMode(rightSwitch, INPUT);pinMode(trigPin, OUTPUT);pinMode(echoPin, INPUT);// 4. 蓝牙初始化(本章新增)Serial.begin(9600); // 蓝牙波特率9600(HC-05默认)}voidloop() {// 5. 读取蓝牙指令(本章新增)if (Serial.available() > 0) { // 判断是否有蓝牙指令cmd = Serial.read(); // 读取指令switch(cmd) {case 'F': mode = 0; forward(); break; // 手动-前进case 'B': mode = 0; backward(); break; // 手动-后退case 'L': mode = 0; turnLeft(); break; // 手动-左转case 'R': mode = 0; turnRight(); break; // 手动-右转case 'S': mode = 0; stopRobot(); break; // 手动-停止case 'A': mode = 1; break; // 切换到自主避障case 'M': mode = 0; break; // 切换到手动遥控}}// 6. 双模式逻辑(本章新增,兼容旧避障代码)if (mode == 1) { // 自主避障模式long distance = readDistance();int leftState = digitalRead(leftSwitch);int rightState = digitalRead(rightSwitch);if(distance < safeDistance || leftState == HIGH || rightState == HIGH) {stopRobot();delay(200);backward();delay(800);turnRight();delay(600);} else {forward();}}}// 7. 超声波测距函数(沿用)longreadDistance() {digitalWrite(trigPin, LOW);delayMicroseconds(2);digitalWrite(trigPin, HIGH);delayMicroseconds(10);digitalWrite(trigPin, LOW);long duration = pulseIn(echoPin, HIGH);long cm = duration * 0.034 / 2;return cm;}// 8. 行走相关函数(沿用,可根据自己机器人微调)voidforward() {servoLeft.write(10);servoRight.write(170);}voidbackward() {servoLeft.write(170);servoRight.write(10);}voidstopRobot() {servoLeft.write(90);servoRight.write(90);}voidturnLeft() {servoLeft.write(90);servoRight.write(170);}voidturnRight() {servoLeft.write(10);servoRight.write(90);}
程序上传步骤(重点提醒)
-
拔掉蓝牙模块的TXD(接D0)和RXD(接D1)接线;
-
将Arduino通过USB连接电脑,上传上述代码;
-
上传完成后,拔掉USB,插回蓝牙模块的TXD和RXD接线;
-
给机器人接上电池,打开手机蓝牙,连接HC-05模块,即可开始控制。
🎉 测试效果:打开APP,点击“前进”(发送F),机器人前进;点击“左转”(发送L),机器人左转;发送“A”,切换到自主避障模式,机器人自动避障;发送“M”,切换回手动遥控,完美实现双模式控制!
六、第十四章最容易踩的5个坑(全部避完,少走弯路)
-
蓝牙模块接反TX/RX引脚 → 无法接收指令,指示灯一直快速闪烁;解决:重新接线,HC-05的TXD接Arduino的D0(RX),RXD接Arduino的D1(TX),交叉连接。
-
上传程序时,没有拔掉蓝牙接线 → 程序上传失败,提示“串口占用”;解决:上传程序前,拔掉蓝牙的TXD和RXD接线,上传完成后再插回。
-
手机无法搜索到蓝牙模块 → 蓝牙模块未通电,或引脚接触不良;解决:检查蓝牙模块VCC和GND接线,确保通电,重新插牢杜邦线。
-
连接成功,但无法控制机器人 → 波特率不匹配,或指令发送错误;解决:确保程序中Serial.begin(9600)(HC-05默认波特率),APP发送的字符和程序中一致(比如“F”大写,不要小写)。
-
控制时,机器人反应迟钝、乱动作 → 蓝牙信号被干扰,或电池电压不足;解决:远离干扰源(比如路由器),更换满电电池,确保电路稳定。

七、常见问题排查(新手必备)
|
常见故障 |
核心原因 |
解决方法 |
|
蓝牙模块指示灯快速闪烁,无法配对 |
未通电、接线松动,或模块故障 |
检查VCC和GND接线,重新插牢,更换模块测试 |
|
手机连接成功,但发送指令无反应 |
波特率不匹配、指令错误,或TX/RX接反 |
确认波特率9600,指令为大写(F/B/L/R/S/A/M),重新接线 |
|
切换自主避障模式,机器人不工作 |
传感器接线松动,或安全距离设置不合理 |
检查超声波、碰撞开关接线,调整safeDistance数值 |
|
蓝牙连接后,很快断开 |
电池电压不足,或信号干扰 |
更换满电电池,远离路由器、电脑等干扰源 |
八、本章总结:你的机器人迎来终极升级!
第十四章的蓝牙遥控与APP控制,是机器人制作的“终极升级”——前八章我们让机器人“能跑、能避障、能稳定运行”,本章则让机器人“可远程控制、可灵活切换模式”,彻底解放你的双手。
本章结束,你已经掌握了:
-
✅ HC-05蓝牙模块的接线方法和核心用法;
-
✅ 手机APP的配置的方法,实现蓝牙连接与指令发送;
-
✅ 蓝牙遥控程序的编写与上传,兼容之前的避障代码;
-
✅ “手动遥控+自主避障”双模式切换,按需使用;
-
✅ 蓝牙连接、控制失灵的常见故障排查方法。
现在的你的机器人,已经是一台“完整的智能机器人”——有结实的身体、稳定的电路、敏锐的感知、灵活的动作,还有远程遥控功能,不管是用来调试、学习,还是玩耍,都足够强大!
从第一章的基础认知,到第十四章的终极升级,你已经从一个“Arduino新手”,成长为能独立制作、调试、升级智能机器人的爱好者,恭喜你!
九、后续预告:解锁更多高级玩法
第十四章之后,我们还可以解锁更多机器人高级玩法,比如:
-
✅ 语音控制:用语音指令(比如“机器人前进”)控制机器人;
-
✅ WiFi遥控:实现远距离(几十米)控制,甚至远程查看机器人状态;
-
✅ 自动跟随:让机器人跟着人或物体移动;
-
✅ 循迹导航:让机器人沿着预设的黑线或轨迹自动行驶。
如果想继续解锁这些高级玩法,后续我们可以一步步拆解,继续把你的机器人升级到更高level!
Arduino机器人制作指南[(美)麦库姆著:
手把手带你跑起来:点亮第一盏灯,你的 Arduino 机器人入门第一课!
第三章|动手组装!你的第一台机器人底盘,手把手教你从零件到成型
代码驱动轮子!让你的 Teachbot 真正走起来|舵机控制+行走编程全攻略
第十二章|从零打造完整自主机器人系统|综合项目整合+整机调试+成品落地
第十三章|机器人进阶!蓝牙遥控+APP控制,彻底摆脱有线束缚
本篇文章内容来源于:Arduino机器人制作指南[(美)麦库姆著]2014年版
图片由AI生成
夜雨聆风