跳转到内容

Arduino 循迹避障小车提示词范例

接手一台 Arduino Nano 差速小车。小车沿黑色胶带赛道循迹,在直线、弯道
和交叉口保持稳定;前方 20cm 内出现障碍物时平稳停车,障碍移除后重新
确认赛道再起步。目标是完成可复测的闭环控制,不是调到“看起来能跑”。
1. 项目配置
控制板:Arduino Nano
循迹:Pololu QTR-8RC 八通道反射传感器,使用 QTRSensors 固定版本
驱动:TB6612FNG,左右两台带编码器直流减速电机
避障:VL53L0X 前向测距,I2C
电源:电机与逻辑电源分路,公共地,电池欠压检测
控制周期:循迹 100Hz,速度环 50Hz,测距 20Hz
赛道为白底黑线,标称线宽 18mm。传感器高度、轮距、轮径和编码器分辨率
以实车测量为准,不能从其他车型复制参数。
2. 车辆行为
上电保持电机禁止输出,完成 QTR 明暗标定并检查八通道动态范围。
任一关键通道无有效变化时拒绝起步。编码器方向和左右电机极性先用低速
悬空测试确认,再执行地面直线测试。
用 QTR 加权位置形成横向误差,PID 输出左右轮差速;基础速度根据弯道
误差和轮速余量调整,积分项限幅并在丢线时清零。连续 100ms 看不到赛道
时先减速,再按最后有效方向低速搜索,超过 2 秒仍未恢复则停车等待人工。
测距连续三次小于 20cm 时按受控斜坡降速至零。障碍移除并连续五次大于
30cm 后,先重新确认赛道位置,再以低速起步;不得从停车状态直接恢复
到全速。电池欠压、电机堵转或编码器停更立即关闭驱动并记录故障。
3. 工程边界
- 未架空确认电机方向、急停和驱动待机脚前不得落地运行;
- 不得通过持续提高 PWM 掩盖机械卡滞、供电压降或驱动过热;
- 不得在传感器未标定时使用固定阈值宣称完成循迹;
- 不得把超声或 ToF 单次异常值直接当作障碍物结论;
- 不得在丢线、欠压、堵转状态下继续高速搜索;
- 不得边充电边运行未经验证的锂电池系统。
4. 验收
在包含 5m 直线、半径 30cm 弯道、S 弯、交叉口和断线段的固定赛道测试。
连续完成 30 圈,统计单圈时间、横向误差峰值、丢线次数和恢复时间;
在三种速度下各执行 20 次障碍停车,停车距离不得超过 10cm 且无碰撞。
最终交付传感器标定值、PID 与速度参数、状态机、控制周期统计、
30 圈数据、障碍测试和仍需人工处理的机械偏差与电源问题。