8浏览
查看: 8|回复: 0

[入门教程] C4002 毫米波人体存在传感器:基于 PC 串口的测试方法...

[复制链接]
1. 测试目的


DFRobot C4002 是一款 24GHz 毫米波人体存在传感器,支持运动人体、静止/微动人体检测,并可以通过 UART 输出目标状态、距离、速度、方向、能量、环境光和距离门信息。


前面已经完成了 C4002 的接口协议整理和嵌入式端接线说明。本文重点记录一种更直接的测试方式:不接开发板,直接使用 USB-TTL 串口模块把 C4002 接到 PC,通过 Python 程序读取串口数据,并实时绘制:


  • 距离-时间曲线;
  • 速度-时间曲线;
  • 距离门热力图;
  • 目标状态、环境光、运动方向等调试信息。



这种方法适合在正式接入单片机或开发板之前,先验证传感器工作状态、观察检测范围和分析安装位置是否合适。


2. 硬件准备


本次测试使用的硬件如下:


硬件说明
DFRobot C4002毫米波人体存在传感器
USB-TTL 串口模块连接 PC 和 C4002
杜邦线用于连接 VIN、GND、TX、RX
Windows PC运行 Python 测试程序



C4002 默认 UART 波特率为 115200


3. 硬件连接


USB-TTL 串口模块与 C4002 的连接如下:


C4002 引脚USB-TTL 串口模块说明
VIN5VC4002 工作电压为 3.6V~5.5V
GNDGND必须共地
TXRXC4002 发送数据到 PC
RXTXPC 向 C4002 发送配置命令



串口连接需要交叉:


  1. C4002_TX -> USB-TTL_RX
  2. C4002_RX -> USB-TTL_TX
  3. C4002_GND -> USB-TTL_GND
  4. C4002_VIN -> USB-TTL_5V
复制代码



注意:这里使用的是 TTL 串口,不是 RS232 电平串口。如果 USB-TTL 模块支持 3.3V/5V 电平切换,应根据模块实际 IO 电平选择安全配置。


4. Python 环境准备


测试程序依赖 3 个 Python 库:


  1. python -m pip install pyserial matplotlib numpy
复制代码



其中:


  • pyserial 用于打开 COM 串口;
  • matplotlib 用于实时绘图;
  • numpy 用于处理距离门热力图矩阵。



本次测试中,C4002 被识别为 COM3


5. 测试程序说明


测试脚本文件名为:


  1. c4002_pc_monitor.py
复制代码



程序主要完成以下工作:


  • 打开 COM3 串口;
  • 按 C4002 的 UART 帧格式查找帧头 FA F5 AA A5
  • 校验帧长度和校验和;
  • 解析检测结果通知帧;
  • 输出当前目标状态、光照、距离、速度、方向和距离门 bitmask;
  • 使用 matplotlib 实时绘制距离、速度和距离门热力图。



程序解析的核心数据包括:


字段含义
target_status目标状态,例如无人、存在、运动
light_lux环境光强,单位 lux
presence_gate_mask存在目标距离门 bitmask
presence_distance_m静止/存在目标距离,单位 m
presence_energy静止/存在目标能量
motion_distance_m运动目标距离,单位 m
motion_speed_mps运动目标速度,单位 m/s
motion_energy运动目标能量
motion_direction运动方向,例如靠近、远离或无方向



6. 运行方法


实时绘图运行:


  1. python c4002_pc_monitor.py --port COM3
复制代码



如果只想在命令行中快速验证串口数据,可以使用无绘图模式:


  1. python c4002_pc_monitor.py --port COM3 --no-plot --duration 8
复制代码



程序启动后会先设置 C4002 的上报周期:


  1. Set report period: 5 x 0.1s
复制代码



也就是每 0.5 秒上报一次结果。


7. 串口输出示例


本次测试中,命令行输出示例如下:


  1. Opened COM3, baud=115200
  2. Set report period: 5 x 0.1s
  3. Response: cmd=0x83, success, len=4
  4. [   0.51s] state=Presence light=52.5lux presence: distance=1.43m energy=99 motion: distance=0.95m speed=0.01m/s energy=69 direction=No direction gate_mask=0x0000001E
  5. [   1.01s] state=Presence light=52.5lux presence: distance=1.42m energy=99 motion: distance=0.95m speed=0.00m/s energy=99 direction=No direction gate_mask=0x0000001E
  6. [   1.51s] state=Presence light=52.5lux presence: distance=1.49m energy=99 motion: distance=1.00m speed=0.03m/s energy=42 direction=No direction gate_mask=0x0000001E
复制代码



从输出可以看到:


  • 串口打开成功;
  • 设置上报周期命令返回成功;
  • 当前状态为 Presence,说明检测到了静止或微动人体;
  • 环境光约为 52.5 lux
  • 存在目标距离约为 1.4m~1.5m
  • 运动速度接近 0m/s,符合静止/微动场景;
  • 距离门 bitmask 为 0x0000001E



0x0000001E 转为二进制后,对应低位的多个距离门被置位,说明传感器在多个相邻距离门上检测到了存在响应。


8. 实时绘图结果


本次测试截图如下:


C4002 毫米波人体存在传感器:基于 PC 串口的测试方法...图1


图中包含三部分:


8.1 距离-时间曲线


第一幅图是距离随时间变化的曲线:


  • 蓝色曲线:Presence distance,表示静止/存在目标距离;
  • 红色曲线:Motion distance,表示运动目标距离。



从截图可以看到,目标距离主要集中在约 1m~2m 区间,说明人体目标位于传感器前方较近位置。蓝色和红色曲线有一定波动,这是毫米波雷达在人体微动、姿态变化、反射能量变化时的正常现象。


8.2 速度-时间曲线


第二幅图是运动速度随时间变化的曲线。


截图中速度基本围绕 0m/s 附近波动,说明测试期间人体整体处于静止或微动状态。如果人明显靠近或远离传感器,该曲线会出现更明显的正负变化。


这里需要注意,C4002 输出的是径向速度,也就是沿着传感器朝向方向的速度。人从左向右横向移动时,速度曲线可能不会像靠近/远离那样明显。


8.3 距离门热力图


第三幅图是存在目标距离门热力图。


横轴是距离门编号,颜色越深表示该距离门被检测为存在目标。从截图可以看到,低编号距离门中有一段连续区域颜色较深,说明传感器在对应距离范围内检测到了人体存在。


距离门并不等价于人数。一个距离门中可能有一个人,也可能有多个人;多个距离门被置位也可能只是同一个人体在多个相邻距离门中产生反射。因此,C4002 更适合做人体存在检测,而不是多人计数或多人轨迹跟踪。


9. 测试结果分析


根据本次测试结果,可以得到以下结论:


测试项结果
COM3 串口通信正常
上报周期配置成功
目标状态输出正常
环境光输出正常
静止/存在距离输出正常
运动距离输出正常
运动速度输出正常
距离门 bitmask 输出正常
PC 实时绘图正常



本次测试时,传感器能够稳定检测到前方人体存在,距离数据集中在 1m~2m 范围,速度接近 0m/s,与实际静止/微动场景相符。


10. 关于轨迹跟踪的说明


使用 PC 串口测试可以实现“一维轨迹”观察,也就是:


  1. 时间 -> 距离
  2. 时间 -> 速度
  3. 时间 -> 距离门变化
复制代码



这种方式可以观察人靠近、远离传感器的过程,但不能实现真正的二维平面轨迹跟踪。原因是 C4002 当前公开输出的数据中没有水平角度、俯仰角、目标 ID 或点云数据。


因此:


  • 单人靠近/远离趋势:可以观察;
  • 单人距离随时间变化:可以绘制;
  • 多个距离门响应:可以显示;
  • 多人区分:不可靠;
  • 多人轨迹跟踪:不适合。



如果项目目标是多人定位或二维轨迹跟踪,应选择支持点云、角度、目标 ID 和 track list 输出的毫米波雷达模块。


11. 小结


通过 USB-TTL 串口把 C4002 直接连接到 PC,可以快速完成传感器功能验证。本文的 Python 程序能够实时读取 C4002 的 UART 数据,并绘制距离、速度和距离门热力图,对调试安装位置、检测范围、目标状态和环境干扰非常有帮助。


从测试结果看,C4002 适合用于智能灯、人体存在检测、房间有人/无人判断等场景。它可以提供比普通 PIR 更丰富的距离、速度和静止人体检测信息,但不适合直接承担多人识别或二维轨迹跟踪任务。


参考资料:





您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

为本项目制作心愿单
购买心愿单
心愿单 编辑
[[wsData.name]]

硬件清单

  • [[d.name]]
btnicon
我也要做!
点击进入购买页面
上海智位机器人股份有限公司 沪ICP备09038501号-4 备案 沪公网安备31011502402448

© 2013-2026 Comsenz Inc. Powered by Discuz! X3.4 Licensed

mail