CEM5825人体雷达模工作原理:通过发射电磁波对目标进行照射并接受其回波,解析其中蕴含的距离、 速度、角度等信息。模块自动处理上述参数信息后,通过串口以ASCLL码的形式发出
一:硬件资料:
1.1 模块管脚定义:
1.2模块电气特性
简单使用一下:USB监测仪测试一下模块的工作电压情况:
由于手头上没有2.0mm间距的杜邦线,所以将2.54的杜邦线拆开,直接固定在2.0mm的位置,在安装的过程中注意不要将5v,GND,txd和rxd四根线中任意两两之间短接,否则可能造成模块的损坏。
二:软件资料
2.1 串口基本配置参数
2.2 模块输出类型:
2.3 模块指令介绍
2.3.1 设置最大的检测距离:rmax = ?
可设置小数后一位的距离值,单位米。默认 rmax=6。 例如:发送 rmax=2,模块会返回“received message: rmax=2 rmax is 2.0”表示指令 配置成功。如未收到此反馈信息,请检查发送指令是否带回车换行,重发指令
2.3.2.设置大幅度灵敏度阈值:th1_mov=**、th2_mov=**、th3_mov=**
th1_mov 对应 2.8 米以内的信号阈值,默认 60。
th2_mov 对应 2.8-8 米以内的信号阈值,默认 30。
th3_mov 对应 8 米以外的信号阈值,默认 12。
2.3.3.设置小幅度灵敏度阈值:th1_occ=**、th2_occ=**、th3_occ=**
th1_occ 对应 2.8 米以内的信号阈值,默认 60。
th2_occ 对应 2.8-8 米以内的信号阈值,默认 55。
th3_occ 对应 8 米以外的信号阈值,默认 12。
灵敏度阈值越大,模块越不灵敏。做分段灵敏度主要是近距离的目标反射信号相对会强一 些,因此在近距离时并不需要和远距离一样的灵敏度。同时针对不同的环境,也可以针对性做 设置。分段灵敏度可搭配测试模式进行调试,一般建议客户按照默认参数进行测试。
2.3.4:设置测试模式:test_mode=*
当 test_mode=1 时,模块进入测试模式,在测试模式中时,模块除 mov 和 dis 信息外, 还会输出信号强度 str 数值。模块默认 test_mode=0。
本模块默认设置是按照最高灵敏度设置的,测试场地是空旷的大房间。当使用环境发生变 化,例如进入一个较小的封闭房间时,此时可能因为房间较小带来信号的多次反射折射,或者 周围其他电磁因素,造成噪底抬高超出默认灵敏度阈值。此时则需要通过进入 test_mode,观 察在没有人时的 dis 以及 str 大小,来设置对应的灵敏度值。
2.3.5 保存设置:save
发送 save,模块会返回“received message: save all vars have been saved 并打印出 所有设定值”表示指令配置成功,参数保存。如未收到此反馈信息,请检查发送指令是否带回 车换行,重发指令。
2.3.6 获取当前参数:get_all
发送 get_all,模块会返回“received message: get_all”并返回当前模块所有参数设置。 如未收到此反馈信息,请检查发送指令是否带回车换行,重发指令
三:安装测试:
3.1 水平直线安装:
安装高度 1 米,测量时人体正对雷达。测试静坐以及走动两种状态下的覆盖范围。
3.2 挂高垂直测试
本模块也可挂高做人体存在检测。 我们的测试场景为挂高 3 米,测量人体静止站立及走动的 FOV。
四:主要软件代码分析:
if(USART_GetITStatus(USART1, USART_IT_RXNE) != RESET) //接收中断(接收到的数据必须是0x0d 0x0a结尾) { Res =USART_ReceiveData(USART1); //读取接收到的数据 if(u8UART3RecvStatus == 0) { if((Res== 0x6F) ||(Res== 0x6D) ) { USART_RX_STA = 0 ; USART_RX_BUF[USART_RX_STA] = Res ; u8UART3RecvStatus = 1; } } else if(u8UART3RecvStatus == 1) { USART_RX_STA ++ ; USART_RX_BUF[USART_RX_STA] = Res ; if(USART_RX_STA >= 15) { USART_RX_STA = 0 ; u8UART3RecvStatus = 0 ; } } 显示函数: LCD_ShowString(30,110,200,16,16,USART_RX_BUF); //显示LCD ID