|
8| 0
|
[入门教程] C4002 毫米波人体存在传感器:基于 PC 串口的测试方法... |
|
1. 测试目的 DFRobot C4002 是一款 24GHz 毫米波人体存在传感器,支持运动人体、静止/微动人体检测,并可以通过 UART 输出目标状态、距离、速度、方向、能量、环境光和距离门信息。 前面已经完成了 C4002 的接口协议整理和嵌入式端接线说明。本文重点记录一种更直接的测试方式:不接开发板,直接使用 USB-TTL 串口模块把 C4002 接到 PC,通过 Python 程序读取串口数据,并实时绘制:
这种方法适合在正式接入单片机或开发板之前,先验证传感器工作状态、观察检测范围和分析安装位置是否合适。 2. 硬件准备 本次测试使用的硬件如下:
C4002 默认 UART 波特率为 115200。 3. 硬件连接 USB-TTL 串口模块与 C4002 的连接如下:
串口连接需要交叉: 注意:这里使用的是 TTL 串口,不是 RS232 电平串口。如果 USB-TTL 模块支持 3.3V/5V 电平切换,应根据模块实际 IO 电平选择安全配置。 4. Python 环境准备 测试程序依赖 3 个 Python 库: 其中:
本次测试中,C4002 被识别为 COM3。 5. 测试程序说明 测试脚本文件名为: 程序主要完成以下工作:
程序解析的核心数据包括:
6. 运行方法 实时绘图运行: 如果只想在命令行中快速验证串口数据,可以使用无绘图模式: 程序启动后会先设置 C4002 的上报周期: 也就是每 0.5 秒上报一次结果。 7. 串口输出示例 本次测试中,命令行输出示例如下: 从输出可以看到:
0x0000001E 转为二进制后,对应低位的多个距离门被置位,说明传感器在多个相邻距离门上检测到了存在响应。 8. 实时绘图结果 本次测试截图如下: ![]() 图中包含三部分: 8.1 距离-时间曲线 第一幅图是距离随时间变化的曲线:
从截图可以看到,目标距离主要集中在约 1m~2m 区间,说明人体目标位于传感器前方较近位置。蓝色和红色曲线有一定波动,这是毫米波雷达在人体微动、姿态变化、反射能量变化时的正常现象。 8.2 速度-时间曲线 第二幅图是运动速度随时间变化的曲线。 截图中速度基本围绕 0m/s 附近波动,说明测试期间人体整体处于静止或微动状态。如果人明显靠近或远离传感器,该曲线会出现更明显的正负变化。 这里需要注意,C4002 输出的是径向速度,也就是沿着传感器朝向方向的速度。人从左向右横向移动时,速度曲线可能不会像靠近/远离那样明显。 8.3 距离门热力图 第三幅图是存在目标距离门热力图。 横轴是距离门编号,颜色越深表示该距离门被检测为存在目标。从截图可以看到,低编号距离门中有一段连续区域颜色较深,说明传感器在对应距离范围内检测到了人体存在。 距离门并不等价于人数。一个距离门中可能有一个人,也可能有多个人;多个距离门被置位也可能只是同一个人体在多个相邻距离门中产生反射。因此,C4002 更适合做人体存在检测,而不是多人计数或多人轨迹跟踪。 9. 测试结果分析 根据本次测试结果,可以得到以下结论:
本次测试时,传感器能够稳定检测到前方人体存在,距离数据集中在 1m~2m 范围,速度接近 0m/s,与实际静止/微动场景相符。 10. 关于轨迹跟踪的说明 使用 PC 串口测试可以实现“一维轨迹”观察,也就是: 这种方式可以观察人靠近、远离传感器的过程,但不能实现真正的二维平面轨迹跟踪。原因是 C4002 当前公开输出的数据中没有水平角度、俯仰角、目标 ID 或点云数据。 因此:
如果项目目标是多人定位或二维轨迹跟踪,应选择支持点云、角度、目标 ID 和 track list 输出的毫米波雷达模块。 11. 小结 通过 USB-TTL 串口把 C4002 直接连接到 PC,可以快速完成传感器功能验证。本文的 Python 程序能够实时读取 C4002 的 UART 数据,并绘制距离、速度和距离门热力图,对调试安装位置、检测范围、目标状态和环境干扰非常有帮助。 从测试结果看,C4002 适合用于智能灯、人体存在检测、房间有人/无人判断等场景。它可以提供比普通 PIR 更丰富的距离、速度和静止人体检测信息,但不适合直接承担多人识别或二维轨迹跟踪任务。 参考资料:
|
沪公网安备31011502402448© 2013-2026 Comsenz Inc. Powered by Discuz! X3.4 Licensed