乐于分享
好东西不私藏

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

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

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

嗨,陪你从零做Arduino机器人的博主又来啦!

前八章我们已经搞定了机器人的「身体」「大脑」「感知」和「稳定运行」——亲手做了底盘、实现了行走避障、搭建了稳定电路,现在的机器人已经能自主移动、自主避障,堪称一台成熟的智能小车。

但有一个小局限:要么是全自动运行,要么需要用数据线连接电脑控制,始终被「线」束缚着,不够灵活。

今天我们直接跳至《Arduino机器人制作指南》第十三章:蓝牙遥控与APP控制,这一章是机器人进阶的关键,教你给机器人加装蓝牙模块,实现「无线遥控」——用手机APP就能控制机器人前进、后退、左转、右转,甚至切换自动避障模式,彻底摆脱有线束缚!

全程通俗拆解,不用懂复杂的蓝牙原理,接线简单、代码可直接复制、APP可直接套用,新手也能轻松上手,让你的智能小车再升级一个档次!

本章你能直接实现的成果

✅ 认识蓝牙模块(HC-05/HC-06),知道怎么接线、怎么配对

✅ 学会Arduino与蓝牙模块通信,接收手机发送的指令

✅ 搭建蓝牙遥控电路,完全兼容前八章的机器人底盘和电路

✅ 用手机APP发送指令,无线控制机器人所有动作(前进/后退/左转/右转/停止)

✅ 实现「手动遥控」与「自动避障」模式切换,灵活切换使用场景

✅ 解决蓝牙连接不稳定、指令延迟、失控等常见问题

读完+动手,你的机器人将彻底摆脱数据线,随时随地用手机控制,可玩性直接拉满!

一、先搞懂:蓝牙模块到底是什么?(新手必看)

第十三章的核心元件是「蓝牙模块」,我们新手首选最常用、最稳定的 HC-05 蓝牙模块(HC-06也可以,用法基本一致),它的作用很简单:

作为Arduino和手机之间的「无线桥梁」——手机APP发送控制指令(比如「前进」),蓝牙模块接收指令,再传给Arduino,Arduino执行指令,控制机器人动作。

HC-05蓝牙模块关键参数(不用记,知道用法就行)

  • 通信方式:UART串口通信(和Arduino的串口通信一致,不用额外学新知识点)

  • 供电电压:3.3V(重点!不能直接接5V,会烧模块)

  • 配对方式:默认密码1234或0000,手机蓝牙直接搜索配对

  • 接线简单:只有4个引脚,不用焊接(新手直接插面包板)

💡 新手提醒:HC-05是「主从一体」模块,我们用它做「从机」(接收手机指令),不用复杂设置,默认模式就能用;HC-06是从机模块,用法和HC-05完全一样,新手随便买一款都可以。

二、备料:第十三章新增零件(少量补充,成本低)

本章不需要大改之前的机器人,在第八章稳定电路的基础上,只需要新增2样核心零件,淘宝搜关键词直接买,十几块钱就能配齐:

  1. HC-05/HC-06 蓝牙模块 ×1(核心无线通信元件)

  2. 3.3V 稳压模块 ×1(给蓝牙模块供电,因为蓝牙模块只能用3.3V,不能直接接5V)

沿用零件:Arduino UNO、舵机×2、超声波传感器、微动开关、电池、面包板、跳线、机器人底盘(前八章已备,电路不用大改)

补充说明:如果你的Arduino主板有3.3V引脚(大部分UNO主板都有),也可以不用稳压模块,直接用主板的3.3V给蓝牙模块供电,更省事!

三、核心实操1:蓝牙模块接线(完全兼容前八章电路,不用大改)

接线是本章的重点,也是新手最容易踩坑的地方,核心记住「蓝牙模块用3.3V供电」「串口通信引脚对应」,直接照抄以下接线,绝不会错:

第一步:明确引脚分配(直接照抄,不踩坑)

  • HC-05蓝牙模块 → Arduino 引脚

  • VCC(蓝牙电源) → 3.3V(Arduino引脚或稳压模块输出,绝对不能接5V!)

  • GND(蓝牙接地) → Arduino GND(共地!必须接,否则通信失败)

  • TXD(蓝牙发送端) → Arduino D10(RX引脚,注意:TX接RX,交叉连接)

  • RXD(蓝牙接收端) → Arduino D11(TX引脚,交叉连接)

第二步:补充说明(新手必看)

  1. 供电提醒:如果用Arduino的3.3V引脚给蓝牙供电,确保机器人其他设备(舵机、传感器)供电稳定,避免电压不足导致蓝牙连接不稳定;

  2. 交叉连接:蓝牙的TXD接Arduino的RX(D10),蓝牙的RXD接Arduino的TX(D11),这是串口通信的关键,接反了会无法接收指令;

  3. 原有电路不动:前八章的舵机、传感器、稳压电路接线完全不变,只新增蓝牙模块的接线,避免破坏原有稳定电路。

⚠️ 避坑重点:蓝牙模块VCC绝对不能接5V!一旦接错,瞬间烧毁蓝牙模块,新手一定要反复核对引脚,确认无误再通电!

核心实操2:手机APP准备(不用编程,直接套用)

我们不需要自己开发APP,第十三章推荐了新手友好的免费APP,直接下载、配对,就能发送控制指令,步骤如下:

方案1:新手首选(最简单,直接用)

  1. 手机应用商店搜索「蓝牙串口助手」(任意一款都可以,比如「蓝牙串口APP」「Serial Bluetooth Terminal」);

  2. 打开手机蓝牙,搜索蓝牙模块(名称一般是「HC-05」「HC-06」),点击配对,输入密码1234或0000,配对成功;

  3. 打开蓝牙串口APP,连接配对好的蓝牙模块,设置通信参数(默认即可:波特率9600、数据位8、停止位1、无校验);

  4. 在APP里设置控制指令(比如:按「F」发送前进指令、「B」后退、「L」左转、「R」右转、「S」停止),保存即可。

方案2:进阶方案(更贴合机器人控制)

如果觉得串口助手不够直观,可以下载「Arduino蓝牙遥控APP」(比如「Robot Control」),这类APP有现成的按键(前进、后退、左转、右转),不用手动输入指令,点击按键就能控制,更方便。

重点:无论用哪款APP,只要能发送指定字符(F、B、L、R、S),就能控制机器人,新手先从串口助手开始,熟悉后再换进阶APP。

核心实操3:蓝牙遥控程序(直接复制上传,兼容前八章)

本章的程序,是在第四章行走程序、第五章避障程序的基础上,新增「蓝牙指令接收」逻辑,完全兼容前八章的代码,不用重新写,直接复制替换即可,核心是「接收蓝牙指令→执行对应动作」。

完整代码如下(直接复制上传,新手不用修改):

#include <Servo.h>// 定义舵机对象(沿用第四章)Servo servoLeft;   // 左舵机Servo servoRight;  // 右舵机// 定义碰撞开关引脚(沿用第五章)int leftSwitch = 2;  // 左碰撞开关 → D2int rightSwitch = 3// 右碰撞开关 → D3// 定义超声波引脚(沿用第六章)int trigPin = 4;int echoPin = 5;int safeDistance = 20;  // 小于20cm自动避障// 定义蓝牙通信引脚(本章新增)int bluetoothTX = 11;  // 蓝牙RXD → Arduino TX(D11)int bluetoothRX = 10;  // 蓝牙TXD → Arduino RX(D10)// 定义蓝牙接收的指令char command;// 定义模式:0=手动遥控,1=自动避障(本章新增)int mode = 0;voidsetup() {  // 舵机引脚绑定(沿用第四章)  servoLeft.attach(9);  servoRight.attach(10);  // 碰撞开关、超声波引脚设置(沿用第五、六章)  pinMode(leftSwitch, INPUT);  pinMode(rightSwitch, INPUT);  pinMode(trigPin, OUTPUT);  pinMode(echoPin, INPUT);  // 蓝牙串口初始化(本章核心新增)  Serial.begin(9600);  // 波特率9600,和蓝牙、APP一致}voidloop() {  // 接收蓝牙指令(本章核心)  if (Serial.available() > 0) {    command = Serial.read();  // 读取手机发送的指令    // 根据指令切换模式或执行动作    switch(command) {      case 'F': mode = 0; forward(); break;    // F=前进(手动模式)      case 'B': mode = 0; backward(); break;   // B=后退(手动模式)      case 'L': mode = 0; turnLeft(); break;   // L=左转(手动模式)      case 'R': mode = 0; turnRight(); break;  // R=右转(手动模式)      case 'S': mode = 0; stopRobot(); break;  // S=停止(手动模式)      case 'A': mode = 1break;               // A=切换自动避障模式    }  }  // 自动避障模式(沿用第五章,新增模式判断)  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();    }  }}// 超声波测距函数(沿用第六章)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;}// 行走相关函数(沿用第四章,微调适配)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);}

程序核心解析(新手必懂)

不用深懂代码逻辑,记住3个关键:

  1. Serial.begin(9600):蓝牙模块默认波特率是9600,必须和APP、Arduino的波特率一致,否则无法通信;

  2. Serial.read():读取手机APP发送的指令(F、B、L、R、S、A),对应不同的动作和模式;

  3. 模式切换:按「A」切换到自动避障模式,按「F/B/L/R/S」切换回手动遥控模式,灵活切换使用场景。

上传程序后,打开手机蓝牙,配对蓝牙模块,打开APP发送指令,就能无线控制机器人啦!

🎉 恭喜!你的机器人彻底摆脱有线束缚,实现手机无线遥控,可玩性直接拉满!

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

  1. 蓝牙模块接5V供电 → 直接烧毁模块;解决:必须接3.3V,用Arduino的3.3V引脚或3.3V稳压模块。

  2. 蓝牙TX/RX接反 → 无法接收指令,机器人没反应;解决:蓝牙TXD接Arduino D10(RX),蓝牙RXD接Arduino D11(TX),交叉连接。

  3. 波特率不一致 → 通信失败,APP发送指令没反应;解决:Arduino程序、蓝牙模块、手机APP的波特率,全部设置为9600。

  4. 蓝牙配对失败 → 搜不到模块或配对密码错误;解决:确保蓝牙模块通电,密码输入1234或0000,手机蓝牙开启且靠近模块。

  5. 指令延迟、失控 → 蓝牙连接不稳定、电压不足;解决:确保蓝牙模块供电稳定,远离干扰源(比如路由器),缩短手机与机器人的距离。

五、进阶技巧:优化蓝牙遥控体验(可选)

如果想让遥控更流畅、更实用,可以试试这2个小技巧(第十三章拓展内容):

技巧1:增加调速功能

在程序中修改舵机的write数值(比如把forward()里的10改成15、170改成165),降低舵机转速,让机器人遥控更平稳,避免操作过猛导致翻车。

技巧2:自定义控制指令

可以修改程序中的指令字符(比如把「F」改成「1」、「B」改成「2」),也可以在APP里设置自定义按键,比如增加「原地旋转」「加速」「减速」等按键,实现更多控制功能。

六、本章总结:你的机器人实现「无线自由」

第十三章是机器人进阶的重要一步,它让我们的机器人从「有线控制/全自动」升级为「无线遥控+模式切换」,彻底摆脱了数据线的束缚,可玩性和实用性大幅提升。

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

  • ✅ HC-05蓝牙模块的接线、配对和使用方法;

  • ✅ Arduino与蓝牙模块的串口通信原理(不用深懂,会用就行);

  • ✅ 手机APP的设置和指令发送,实现无线遥控;

  • ✅ 手动遥控与自动避障模式切换,灵活适配不同场景;

  • ✅ 蓝牙遥控常见问题的排查方法,解决连接、失控等问题。

现在的你的机器人,已经是一台「全能智能小车」——有结实的身体、稳定的电路、敏锐的感知、灵活的无线控制,既能手动遥控玩,也能自动避障跑,你也从「新手」升级为「能实现无线控制」的机器人爱好者!

下一章预告:机器人「智能化」再升级!

下一章我们将进入更高阶的内容——传感器融合与智能决策,让机器人学会:

  • ✅ 融合多种传感器数据(超声波、红外、碰撞),更精准地感知世界;

  • ✅ 实现更复杂的智能逻辑(比如绕开障碍物后自动回到预设路线);

  • ✅ 解锁「跟随模式」,让机器人跟着人或物体跑;

  • ✅ 进一步优化无线遥控体验,实现更精准的控制。

下一章,我们继续解锁机器人的更多高级功能,让它变得更智能、更强大!

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

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

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

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

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

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

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

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

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

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

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

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

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

图片由AI生成