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

Arduino UNO 自制循迹小车:从零构建自主巡线机器人

项目简介

经典双路红外循迹小车,利用两路反射式红外传感器识别黑线(白底黑线),Arduino UNO 通过 L293D 驱动两路 BO 电机实现差速转向。适合初学者理解闭环控制、电机驱动、传感器融合基础概念。

硬件清单

元件数量备注
Arduino UNO R31
L293D 双 H 桥驱动1DIP-16,峰值 600mA/通道
BO 直流减速电机 + 轮子2黄色 6V 150RPM 常用
万向轮1前轮支撑
红外循迹模块2LM393 比较器输出,数字量 0/1
9V 电池/电池盒1或 2S 锂电池 7.4V
底盘1亚克力/纸板/3D 打印均可
点焊板/定制 PCB1文中提供 PCBWay 共享链接

电路接线

L293D 引脚映射

L293D 引脚功能Arduino 引脚
1,9 EN使能左/右常接 5V(或 PWM 调速)
2,7 IN左电机方向D8, D9
10,15 IN右电机方向D10, D11
3,6 OUT左电机接电机两端
11,14 OUT右电机接电机两端
8 VCC2电机电源9V 电池正极
16 VCC1逻辑电源5V
4,5,12,13 GND地共地

红外传感器

核心控制逻辑

// 引脚定义
const uint8_t LM1=8, LM2=9, RM1=10, RM2=11;
const uint8_t SL=13, SR=12;

void setup() {
  pinMode(LM1,OUTPUT); pinMode(LM2,OUTPUT);
  pinMode(RM1,OUTPUT); pinMode(RM2,OUTPUT);
  pinMode(SL,INPUT);   pinMode(SR,INPUT);
  stopMotors();
}

void loop() {
  bool left  = digitalRead(SL);  // HIGH=黑线
  bool right = digitalRead(SR);

  if (!left && !right)      forward();   // 都在白面 → 直行
  else if (right && !left)  turnLeft();  // 右偏 → 左转修正
  else if (!right && left)  turnRight(); // 左偏 → 右转修正
  else                      stopMotors(); // 双黑 → 停止/十字路口
}

void forward()  { digitalWrite(LM1,HIGH); digitalWrite(LM2,LOW);  digitalWrite(RM1,HIGH); digitalWrite(RM2,LOW); }
void backward() { digitalWrite(LM1,LOW);  digitalWrite(LM2,HIGH); digitalWrite(RM1,LOW);  digitalWrite(RM2,HIGH); }
void turnLeft()  { digitalWrite(LM1,LOW);  digitalWrite(LM2,HIGH); digitalWrite(RM1,HIGH); digitalWrite(RM2,LOW); }
void turnRight() { digitalWrite(LM1,HIGH); digitalWrite(LM2,LOW);  digitalWrite(RM1,LOW);  digitalWrite(RM2,HIGH); }
void stopMotors(){ digitalWrite(LM1,LOW); digitalWrite(LM2,LOW); digitalWrite(RM1,LOW); digitalWrite(RM2,LOW); }

调试与优化指南

1. 传感器阈值校准

多数模块自带蓝色电位器调节比较器阈值。让小车悬空,对准白纸调节至 LED 熄灭(LOW),对准黑电工胶带 LED 点亮(HIGH)。

2. 电机死区与 PWM 调速

L293D 饱和压降约 2V,6V 电机实际得 4V,扭矩较弱。建议:

3. 防抖与平滑转向

4. 进阶算法:PID 循迹

若使用 4-8 路模拟输出传感器(如 QTR-8RC),可计算偏差 error = position - center,引入 PID 控制电机差速,实现高速平滑过弯。

PCB 定制与外壳

常见故障排查

制造工艺

  1. 蓝牙控制树莓派机器人:语音反馈功能构建指南
  2. Simple Pi Robot:用树莓派打造 2WD 自主巡航车
  3. 舵机驱动避障机器人:基于 Arduino 与 HC-SR04 构建
  4. Joy Robot:基于 Arduino 与 ESP8266 的开源 3D 打印智能机器人
  5. V4 版高速循迹机器人:Arduino Nano + 定制 PCB + PID 算法
  6. Arduino Nano 语音控制机器人:蓝牙 + 手机 APP 实现
  7. PiBot:Arduino驱动的88键钢琴机器人,精准演奏MIDI乐曲
  8. Arduino Mega 2560 综合实训平台 - 传感器/电机/显示/PCB 一体化开发板
  9. 自主家庭助理机器人 O'nine - ROS + Alexa 语音控制 + 机械臂 + 麦克纳姆轮全向移动
  10. PID算法循迹机器人套件:Arduino UNO + 5路红外传感器 + 铝合金底盘
  11. 全向轮跟随机器人:OpenCV 人脸检测与安全陪伴
  12. 适用于 Arduino 项目的智能室内导航机器人套件

现象可能原因对策
小车原地旋转/倒退电机接线反/传感器左右装反对调电机两根线或交换 SL/SR 引脚定义
直线跑偏两电机转速不一/机械摩擦差异PWM 微调左右占空比、检查轮子同心度
十字路口冲出双传感器同时触发停车逻辑增加「十字检测」状态机:检测到双黑后延时 200ms 再停
供电不稳导致复位9V 电池内阻大,电机启动拉低电压改用 2S 锂电池 + 5V 稳压模块(如 MP1584)