仿真里的超声波距离是一个干净的数字。现场的超声波距离会带着地面反射、线缆、安装角度和一个正在快速移动的机器人。
先让数据诚实
ACEMATE 的四路超声波模块通过 RS485 Modbus 接入 STM32F407。轮询本身不复杂,复杂的是决定哪些数据应该被相信,以及在数据缺席时系统要做什么。
传感器没有“坏了”这一种状态。它可能迟到、重复、漂移,或者只是暂时看见了另一个答案。
我最后把排查路径分成三段:先确认总线上的字节,再确认协议解析,最后才看控制器的反应。每一段都留下可观察的状态,问题就不会直接变成“机器人偶尔不听话”。
这次现场调试让我重新理解了“稳定”:不是把每个变量都消灭,而是让系统对不确定性有预案。
下次先带示波器。
— Timer