亿迅智能制造网
工业4.0先进制造技术信息网站!
首页 | 制造技术 | 制造设备 | 工业物联网 | 工业材料 | 设备保养维修 | 工业编程 |
home  MfgRobots >> 亿迅智能制造网 >  >> Manufacturing Technology >> 制造工艺

基于 Arduino Nano 的 AI 巡线迷宫机器人

所需元件

元件数量备注
Arduino Nano1主控
蓝牙主从一体模块 (HC-05/06 类)1无线调参/手动控制
红外循迹模块 (5 路阵列 + 2 路侧向)1共 7 路 IR 传感器
360° 连续旋转舵机2差速驱动
4.8V 电池组 (NiMH 或 2S LiFe)1供电

设计思路

从简单的巡线升级为具备“迷宫求解智能”的机器人。核心思想:

  1. PID 巡线:5 路传感器读取偏差,计算 PID 输出控制左右舵机速差
  2. 路口识别:2 路侧向传感器 + 5 路阵列状态机,判断十字、T字、左/右转、直行、死胡同、终点
  3. 左手法则求解:首次探索记录路径 (L/R/S/B),回溯简化路径
  4. 二次优化:按简化路径全速通过,不再探索
  5. 蓝牙调参:实时发送/接收 Kp/Ki/Kd,手动模式辅助调试

传感器布局与状态定义

5 路巡线传感器 (LFS0–LFS4,从左到右)

数字输出:检测到黑线输出 1,否则 0。中心传感器 (LFS2) 对准线时为 1。典型模式:

10000  11000  01000  01100  00100  00110  00010  00011  00001  00000  11111
  -4    -3     -2     -1      0      +1     +2     +3     +4     无线   全线

误差值 error 映射为 -4…+4,全 1 判定为 CONT_LINE (路口/终点),全 0 判定为 NO_LINE (死胡同)。

侧向传感器

  • 远左/远右模拟量读取,阈值 THRESHOLD = 150 判断是否检测到横线
  • 用于区分“直行+左/右转”路口

迷宫求解算法:左手法则

路口类型与动作映射

路口类型可能动作左手法则强制动作
十字左/右/直左转
T字左/右左转
仅右转右转右转
仅左转左转左转
直行或左左/直左转
直行或右右/直直行
死胡同掉头掉头 (B)
终点停止停止

“多跑一寸”消歧策略

遇到 CONT_LINE 或侧向触发时,先按 PID 前进一小段 (extraInch ≈ 200 ms),再读传感器:

  • 仍是全线 → 十字 → 记录 'L'
  • 非全线 → T字 → 记录 'L'
  • 侧向再次触发 → 终点 → 停止

同理处理左/右转消歧。

路径简化

记录路径字符串 (如 LBL),遇到 ...B... 即回溯简化:

LBL → S   LBS → R   RBL → B   SBL → L   等价角度模 360° 映射

简化后路径长度减半以上,二次运行极快。

代码模块结构

  • RobotDefines.h:引脚、常量、PID 参数、路径数组、模式枚举
  • sensorFunctions:readLFSsensors() 读取 7 路传感器、计算 error、设定 mode
  • motorFunctions:舵机微秒脉冲控制、PID 输出映射、转向/前进封装
  • generalFunctions:LED 闪烁、蓝牙指令解析、手动控制、PID 参数无线下发
  • mazeSolve():首次探索状态机
  • mazeOptimization():二次按简化路径执行

关键代码片段

PID 计算

void calculatePID() {
  P = error;
  I += error;
  D = error - previousError;
  PIDvalue = Kp*P + Ki*I + Kd*D;
  previousError = error;
}

电机 PID 控制

void motorPIDcontrol() {
  int left  = 1500 - (iniMotorPower + adj) - PIDvalue;
  int right = 1500 + iniMotorPower - PIDvalue;
  left  = constrain(left,  1000, 2000);
  right = constrain(right, 1000, 2000);
  leftServo.writeMicroseconds(left);
  rightServo.writeMicroseconds(right);
}

蓝牙调参命令

// 手机串口助手发送:
p50   // 设 Kp=50
i0    // 设 Ki=0
d20   // 设 Kd=20
g     // 进入自动巡线
s     // 停止
f/b/l/r  // 手动前/后/左/右

调试建议

  • 先在直线上调 PID,令 Kp 从小增大至微震荡,再加 Kd 抑制超调,Ki 通常置 0
  • 侧向传感器阈值需实测校准,避免环境光干扰
  • 舵机零点校准:writeMicroseconds(1500) 应静止,微调 adj
  • 电池电压跌落会导致舵机扭矩不足,建议加稳压或监测电压

扩展方向

  • 引入 OpenMV/ESP32-CAM 视觉识别,替代红外阵列
  • 加装超声波/ToF 实现避障与墙跟随
  • 上位机可视化地图构建 (SLAM 入门)
  • 迁移至 ROS 2 + micro-ROS,实现分布式控制

制造工艺

  1. 人造雪机如何改变冬季运动
  2. 树莓派避障机器人构建:分步指南
  3. 基于树莓派的视觉避障移动机器人
  4. Star Automation 书法机器人亮相 NPE2018:三轴伺服头演绎日本书法
  5. Wittmann Battenfeld发布WX153:面向大吨位注塑自动化的先进机器人线
  6. 汉诺威工业博览会:Bosch 发布 AI 驱动制造解决方案
  7. FANUC 扩充 SCARA 机器人阵容:六款新品,3-20 kg 负载,400-1100 mm 作业半径
  8. AI驱动机器人:前沿智能机器
  9. AI赋能机器人通过触觉识别90多种物体
  10. 人工智能:效益、风险与行业影响
  11. 大数据与AI:数字化转型背后的协同效应
  12. 零售业人工智能:实证收益,非昙花一现