【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
相关推荐
wangduqiang74720 小时前
stm32写sd卡
stm32·单片机·嵌入式硬件
你疯了抱抱我20 小时前
【STM32】配置vscode+C工具链+Cortex-Debug开发环境,IC:STM32F411CEU6
c语言·vscode·stm32
wangduqiang74720 小时前
stm32休眠和唤醒,和内部flash
stm32·单片机·嵌入式硬件
橡木树的叶子20 小时前
STM32单片机+RGB三色灯模块+七色灯颜色数据发送到串口调试助手+源代码(使用cubuemx+vscode实现操作)
stm32·单片机·计算机外设
caimouse20 小时前
ReactOS 项目目录工程分析文档
stm32·单片机·嵌入式硬件
DS小龙哥20 小时前
基于STM32与华为云的智能康养木屋环境监测与控制系统
stm32·嵌入式硬件·华为云
破晓单片机21 小时前
049、STM32项目分享:智能宠物喂食器系统
stm32·单片机·嵌入式硬件·宠物
ylscode21 小时前
加密合规性:1Password 解决硬件令牌配置差异问题
stm32·单片机·嵌入式硬件
wengqidaifeng2 天前
嵌入式小白第三站:UART、I2C、SPI、ADC 怎么学?从传感器读数到完整小项目
stm32·单片机·嵌入式硬件·51单片机
振南的单片机世界2 天前
HAL_Delay(1000)真准吗?SysTick的1ms基准从哪来
arm开发·stm32·单片机·嵌入式硬件