第 6 讲 · 超声波雷达的数据链路与可视化

源目录保留了一套 Arduino 超声波雷达教程视频、Processing 代码和完整 Processing 运行环境。下文只整理该扩展实验的核心链路。

它不是真正的脉冲雷达

这个作品用超声波传感器测距,用伺服机改变方向,然后把每个“角度—距离”点画成类似雷达的扫描界面。它的价值在于串起多个模块,而不是复现专业电磁雷达。

超声波扫描实验中的舵机、HC-SR04 模块与 Arduino 控制板

伺服机设定角度
        ↓
超声波模块测距
        ↓
Arduino 发送 "angle,distance."
        ↓
Processing 解析并绘图

从极坐标到屏幕坐标

传感器给出角度 θ\theta 和距离 rr。平面坐标为

x=rcos⁡θ,y=rsin⁡θ.x=r\cos\theta,\qquad y=r\sin\theta.

Processing 窗口的 yy 轴默认向下,所以原代码绘制目标时使用了负的 rsin⁡θr\sin\theta。它还把厘米按比例换成像素,并只显示 40 cm 范围内的物体。

拖影是怎么出现的

每帧不是用不透明黑色把旧画面完全擦除,而是覆盖一层很透明的黑色矩形。旧扫描线会逐帧变暗,因此产生运动拖影。这是纯图形效果,不表示传感器真的同时保持了所有方向的回波。

从教程代码到可用实验还差什么

  • 不要把串口写死为 COM4,启动时列出端口并明确选择;
  • 解析前检查数据是否包含逗号,两个字段是否能转换为数值;
  • 对距离做滤波和超时判断,避免无回波被画成假目标;
  • 记录采样时刻,否则伺服运动、测距和显示之间的延迟无法分析;
  • 把像素比例和显示上限从窗口尺寸中推导,而不是散落在多个常数里。

评论