【CEM5881-M11雷达模块】使用开发指南

一、硬件介绍

1、开发板

STM32F103C8T6蓝色开发板, 搭载Cortex-M3内核,Flash 64KB, RAM 20KB,最高72MHz主频;

引脚图

2、雷达模块

CEM5881-M11是一款小尺寸24GHz毫米波目标运动检测雷达模块,可以探测到目标的速度和靠近 / 远离方向(此功能为双路运放硬件版本,IQ两路中频时,多普勒可做靠近远离方向的识别),可以通过运动能量值来估算运动范围;

特性

参数 典型值
频率 24G-24.25GHz
调制方式 CW
检测距离 运动检测直线>8m
供电 3.6-5V
电流 70mA
输出串口电平 3.3V
检测周期 实时
数据格式 串口输出 ASCII / 高低电平

引脚定义

管脚为2mm间距接口;

(可使用2mm转2.54mm杜邦线)

管脚 名称 备注
1 VCC 电源5V供电
2 GND 接地
3 UTX 串口发送 / 感应输出管脚
4 URX 串口接收

功能配置指令

波特率 115200,8 位数据位,1 位停止位,校验位和流控为 None;

接收设置选 ASCII,发送设置选 ASCII;

save:保存参数设置。如果不发送 save,则掉电失效;

VER:读取版本号;

get_all:模块输出当前参数设置;

所有指令带回车换行发送有效

1、微动检测灵敏度

ThNormal=,设置微动检测灵敏度(整数设置) 默认配置=80;

值越大,模块越不灵敏,感应距离及范围就越小 (若不需要检测微动,可将参数设置较大的数值)

2、运动检测灵敏度

ThIn=,设置运动检测灵敏度(整数设置) 默认配置=85;

值越大,模块越不灵敏,感应距离及范围就越小

3、微动检测概率

EffNormal=,设置微动检测概率,默认值为 0 (该值不要大于100)

该值越大,触发模块需要的动作持续时间就越长;

对于短暂的抖动,可通过将该值增加来滤除瞬时的抖动震动等动作,代价是牺牲触发灵敏度

4、运动检测概率

EffIn=,设置运动检测概率,默认值为 10 (建议按默认值,无需设置)

5、输出模式切换

usart2led=,串口模式与IO模式输出转换 (默认usart2led=0)

usart2led=1:切换到IO输出;

此模式下,TX口配置为IO口,以高低电平指示目标检测结果;

(在IO输出模式下无法输出字符串信息)

指令 usart2led=0:切换到串口显示 (串口输出ASCII)

6、高电平持续时间(IO 模式)

led_ton=,当TX配置为IO模式输出时,该指令用于配置输出高电平持续时间;

单位 ms,默认 led_ton=2000ms;

当雷达模块感应到有目标移动时,TX口输出高电平,默认高电平维持时间 2 秒

数据格式解析

在串口显示模式下,输出的字符串中:v代表目标速度,负号-代表目标远离雷达,速度不带负号则代表目标靠近雷达;

(判断目标是靠近还是远离)

str代表反射信号强度;

二、硬件连接

模块与开发板之间的引脚连接方式如下:

开发板 VCC GND RX(PA10)
雷达模块 VCC GND TX

实物效果搭建如下

三、代码编写(Arduino IDE)

功能效果:当雷达模块检测到目标运动时,板载的LED点亮,同时串口输出相关的运动信息等;

当检测不到运动目标时,LED熄灭;

主要相关代码

c 复制代码
void setup() {
  Serial.begin(115200);
  while(!Serial);
  pinMode(LED_BUILTIN, OUTPUT);		// 板载LED
  digitalWrite(LED_BUILTIN, LOW);  
}


void loop() {
  if (Serial.available() > 0) {
      String receiveData  = Serial.readStringUntil('\n');
      int startIndex = receiveData.indexOf("v=") + 2; // 找到v=
      int endIndex = receiveData.indexOf(" km/h");    // 找到 km/h
      String speedStr = receiveData.substring(startIndex, endIndex); 

      float speed_old = speedStr.toFloat();   // km/h
      float speed_new = speed_old / 3.6;      // m/s
      
      if(speed_new<0) {			// 远离时
        float speed = fabs(speed_new);
        Serial.printf("目标正在以 %.2f m/s 的速度远离\n", speed);
      }
      else if(speed_new>0){		// 靠近时
        Serial.printf("目标正在以 %.2f m/s 的速度靠近\n", speed_new);
      }
      digitalWrite(LED_BUILTIN, HIGH);  

    }else{		// 无目标时 熄灭LED
      digitalWrite(LED_BUILTIN, LOW);
    }
    delay(300);
}

四、效果演示

上位机串口打印目标运动的相关信息,同时板载的LED点亮,当检测不到运动目标时,LED熄灭;

五、雷达模块对比

1、CEM5861G-M11雷达模块

CEM5816G-M11是一款高灵敏度24GHz毫米波FMCW人体存在检测雷达模块,在传统人体感应雷达的功能基础上,同时具备检测人体呼吸等微小幅度的运动,来判断人体存在的功能,可以同时输出目标的距离。

主要可以检测当前运动目标的距离(米)以及可以使用上位机软件进行功能的配置等

2、CEM5881-M11雷达模块

CEM5816G-M11是一款小尺寸24GHz毫米波目标运动检测雷达模块,可以探测到目标靠近 / 远离速度,以及可以通过运动能量值来估算运动范围;

主要可以检测到当前目标靠近 / 远离的速度(km/h)

3、主要区别对比

模块 CEM5861G-M11 CEM5881-M11
调制方式 FMCW(调频连续波) CW(连续波)
核心功能 人体存在检测(呼吸级微动)+ 运动检测 仅运动检测
检测距离 挂高:静止 3m、移动 6m 水平:运动 7m / 存在 4m 运动检测直线 >8m
尺寸 常规模块,适配标准安装 窄条设计,适配 86 盒面板 / 窄边框屏幕
输出模式 UART串口输出(含距离、状态、速度等详细数据) 串口 / IO模式(高低电平输出)
功能 可输出目标距离信息 可识别目标靠近 / 远离的速度
功耗 平均22mA@5V,峰值 80mA 平均70mA@5V
相关推荐
Deitymoon2 小时前
STM32——433M无线遥控灯
stm32·单片机·嵌入式硬件
Wallace Zhang3 小时前
SimpleFOC源码学习09(v2.3.2) - 磁编码器MagneticSensorSPI.cpp与MagneticSensorSPI.h
驱动开发·stm32·simplefoc·foc电机控制
12.=0.3 小时前
【stm32_7】定时器的原理与应用、基本定时器、通用定时器、PWM、模拟脉冲信号的宽度、利用PWM控制外设、逻辑分析仪的使用
c语言·stm32·单片机·嵌入式硬件
Deitymoon3 小时前
STM32——振动传感器控制继电器
stm32·单片机·嵌入式硬件
国产芯片设计3 小时前
DIY实战|0.8寸WiFi自动授时电子钟,国产数码管驱动芯片方案分享
stm32·单片机·mcu·51单片机·硬件工程
LCMICRO-133108477463 小时前
长芯微LD73360完全P2P替代AD73360,是一款工业电能计量6通道模拟输入前端(AFE) 处理器
stm32·单片机·嵌入式硬件·fpga开发·硬件工程·模拟前端afe
rit843249915 小时前
STM32 + DS3231 + TM1640 实时时钟数码管显示系统
stm32·单片机·嵌入式硬件
小懒懒️16 小时前
嵌入式常见通信协议学习——UART
stm32·uart·通信协议
zjxtxdy16 小时前
STM32开发
stm32·单片机·fpga开发