Arduino 基于 6.5 寸轮毂电机的自动跟随机器人底盘超声波方案
构建一个高性价比、高可靠性的移动平台,核心在于动力与传感的平衡。本方案采用 6.5 寸无刷轮毂电机配合超声波传感器,利用 SimpleFOC 库实现闭环控制,是学习机器人运动控制及轻量级服务开发的理想路径。
核心硬件选型
1. 6.5 寸无刷轮毂电机
这是小型底盘的黄金动力单元。直径约 165mm,轴径 16mm,非常适合中小型机器人(底盘长 50~200cm)。
- 结构紧凑:轮内集成 BLDC 电机、减速机构与轴承,无外露传动部件,维护成本低。
- 大扭矩输出:内置减速比常见 1:10~1:30,低速下也能轻松承载重物,适合搬运与跟随场景。
- 闭环基础:自带霍尔传感器,为精准的速度和位置闭环提供了硬件支撑。
2. 双轮差速驱动
绝大多数移动机器人的通用模型。通过左右轮速度差实现前进、后退、转向甚至原地自旋。线速度与角速度解耦,使得路径跟踪算法设计更加直观。
3. 超声波感知方案
相比激光雷达或深度相机,超声波模块成本极低且电路简单。在自动跟随场景中,机器人通过保持与目标的相对距离恒定,实现'亦步亦趋'。
工程实践与代码实现
在实际开发中,电源管理与电磁干扰(EMC)往往是成败关键。6.5 寸轮毂电机启动电流大,必须使用隔离 DC-DC 模块为控制电路独立供电,并在电机电源端并联大容量电解电容吸收反电动势。
方案一:单超声波基础跟随
最简 MVP 方案,仅检测前方距离。适合验证基本逻辑。
#include <SimpleFOC.h>
// 6.5 寸轮毂电机配置
BLDCMotor motorL = BLDCMotor(7); // 左轮
BLDCMotor motorR = BLDCMotor(7); // 右轮
BLDCDriver3PWM driverL = BLDCDriver3PWM(9, 10, 11, 8);
BLDCDriver3PWM driverR = BLDCDriver3PWM(5, 6, 7, 4);
// 超声波引脚定义
#define TRIG_PIN 2
#define ECHO_PIN 3
// 跟随参数
const float TARGET_DISTANCE = 50.0; // 目标距离 50cm
MAX_DISTANCE = ;
WHEEL_DIAMETER = ;
WHEEL_BASE = ;
{
(TRIG_PIN, LOW);
();
(TRIG_PIN, HIGH);
();
(TRIG_PIN, LOW);
duration = (ECHO_PIN, HIGH, );
distance = duration * / ;
(distance > MAX_DISTANCE || distance < ) ;
distance;
}
{
distance = ();
(distance < ) {
motorL.(); motorR.(); ;
}
error = distance - TARGET_DISTANCE;
baseSpeed = ;
speedAdjust = error * ;
(error > ) {
motorL.(baseSpeed + speedAdjust); motorR.(baseSpeed + speedAdjust);
} (error < ) {
motorL.(baseSpeed + speedAdjust); motorR.(baseSpeed + speedAdjust);
} {
motorL.(); motorR.();
}
}
{
Serial.();
(TRIG_PIN, OUTPUT); (ECHO_PIN, INPUT);
driverL.voltage_power_supply = ; driverL.(); motorL.(&driverL);
motorL.(); motorL.();
driverR.voltage_power_supply = ; driverR.(); motorR.(&driverR);
motorR.(); motorR.();
Serial.();
}
{
motorL.(); motorR.();
lastControl = ;
(() - lastControl > ) {
();
lastControl = ();
Serial.(); Serial.(()); Serial.();
}
}


