乐于分享
好东西不私藏

机器人终极升级!蓝牙遥控+APP控制,告别手动调试

机器人终极升级!蓝牙遥控+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部手机即可,性价比拉满:

  1. HC-05蓝牙模块 ×1(核心零件,淘宝十几块钱,新手必买);

  2. 杜邦线 ×4(用来连接蓝牙模块和Arduino,之前大概率有剩余);

  3. 手机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)。

具体接线步骤(直接照抄)

  1. HC-05 → VCC → Arduino → 5V(给蓝牙模块供电);

  2. HC-05 → GND → Arduino → GND(共地,必接,否则无法通信);

  3. HC-05 → TXD → Arduino → D0(RX引脚,注意:TX接RX,交叉连接);

  4. 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模块,操作简单)。

第二步:手机连接蓝牙模块

  1. 打开手机蓝牙,同时给Arduino机器人通电(蓝牙模块通电后,会快速闪烁指示灯,说明处于待配对状态);

  2. 打开下载好的APP,点击“搜索设备”,找到名称为“HC-05”的设备(部分模块名称可能不同,比如“HC-06”);

  3. 点击连接,输入配对密码(默认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 = 1break;                // 切换到自主避障      case 'M': mode = 0break;                // 切换到手动遥控    }  }  // 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);}

程序上传步骤(重点提醒)

  1. 拔掉蓝牙模块的TXD(接D0)和RXD(接D1)接线;

  2. 将Arduino通过USB连接电脑,上传上述代码;

  3. 上传完成后,拔掉USB,插回蓝牙模块的TXD和RXD接线;

  4. 给机器人接上电池,打开手机蓝牙,连接HC-05模块,即可开始控制。

🎉 测试效果:打开APP,点击“前进”(发送F),机器人前进;点击“左转”(发送L),机器人左转;发送“A”,切换到自主避障模式,机器人自动避障;发送“M”,切换回手动遥控,完美实现双模式控制!

六、第十四章最容易踩的5个坑(全部避完,少走弯路)

  1. 蓝牙模块接反TX/RX引脚 → 无法接收指令,指示灯一直快速闪烁;解决:重新接线,HC-05的TXD接Arduino的D0(RX),RXD接Arduino的D1(TX),交叉连接。

  2. 上传程序时,没有拔掉蓝牙接线 → 程序上传失败,提示“串口占用”;解决:上传程序前,拔掉蓝牙的TXD和RXD接线,上传完成后再插回。

  3. 手机无法搜索到蓝牙模块 → 蓝牙模块未通电,或引脚接触不良;解决:检查蓝牙模块VCC和GND接线,确保通电,重新插牢杜邦线。

  4. 连接成功,但无法控制机器人 → 波特率不匹配,或指令发送错误;解决:确保程序中Serial.begin(9600)(HC-05默认波特率),APP发送的字符和程序中一致(比如“F”大写,不要小写)。

  5. 控制时,机器人反应迟钝、乱动作 → 蓝牙信号被干扰,或电池电压不足;解决:远离干扰源(比如路由器),更换满电电池,确保电路稳定。

七、常见问题排查(新手必备)

常见故障

核心原因

解决方法

蓝牙模块指示灯快速闪烁,无法配对

未通电、接线松动,或模块故障

检查VCC和GND接线,重新插牢,更换模块测试

手机连接成功,但发送指令无反应

波特率不匹配、指令错误,或TX/RX接反

确认波特率9600,指令为大写(F/B/L/R/S/A/M),重新接线

切换自主避障模式,机器人不工作

传感器接线松动,或安全距离设置不合理

检查超声波、碰撞开关接线,调整safeDistance数值

蓝牙连接后,很快断开

电池电压不足,或信号干扰

更换满电电池,远离路由器、电脑等干扰源

八、本章总结:你的机器人迎来终极升级!

第十四章的蓝牙遥控与APP控制,是机器人制作的“终极升级”——前八章我们让机器人“能跑、能避障、能稳定运行”,本章则让机器人“可远程控制、可灵活切换模式”,彻底解放你的双手。

本章结束,你已经掌握了:

  • ✅ HC-05蓝牙模块的接线方法和核心用法;

  • ✅ 手机APP的配置的方法,实现蓝牙连接与指令发送;

  • ✅ 蓝牙遥控程序的编写与上传,兼容之前的避障代码;

  • ✅ “手动遥控+自主避障”双模式切换,按需使用;

  • ✅ 蓝牙连接、控制失灵的常见故障排查方法。

现在的你的机器人,已经是一台“完整的智能机器人”——有结实的身体、稳定的电路、敏锐的感知、灵活的动作,还有远程遥控功能,不管是用来调试、学习,还是玩耍,都足够强大!

从第一章的基础认知,到第十四章的终极升级,你已经从一个“Arduino新手”,成长为能独立制作、调试、升级智能机器人的爱好者,恭喜你!

九、后续预告:解锁更多高级玩法

第十四章之后,我们还可以解锁更多机器人高级玩法,比如:

  • ✅ 语音控制:用语音指令(比如“机器人前进”)控制机器人;

  • ✅ WiFi遥控:实现远距离(几十米)控制,甚至远程查看机器人状态;

  • ✅ 自动跟随:让机器人跟着人或物体移动;

  • ✅ 循迹导航:让机器人沿着预设的黑线或轨迹自动行驶。

如果想继续解锁这些高级玩法,后续我们可以一步步拆解,继续把你的机器人升级到更高level!

Arduino机器人制作指南[(美)麦库姆著:

《Arduino 机器人制作指南:从零基础到实践》

一文读懂:什么是Arduino?怎么从零开始做机器人?

手把手带你跑起来:点亮第一盏灯,你的 Arduino 机器人入门第一课!

第三章|动手组装!你的第一台机器人底盘,手把手教你从零件到成型

代码驱动轮子!让你的 Teachbot 真正走起来|舵机控制+行走编程全攻略

给机器人装“触觉”!碰撞检测+自动避障全实操

给机器人装上“眼睛”!超声波避障+红外测距,从此不撞墙

机器人身体怎么做?材料、工具、组装全攻略|从此自己造底盘

电路进阶!抗干扰+稳压+防烧板,让机器人稳到不翻车

传感器进阶+数据处理!让机器人“感知更精准、决策更智能”

第十二章|从零打造完整自主机器人系统|综合项目整合+整机调试+成品落地

第十三章|机器人进阶!蓝牙遥控+APP控制,彻底摆脱有线束缚

本篇文章内容来源于:Arduino机器人制作指南[(美)麦库姆著]2014年版

图片由AI生成