|
本帖最后由 qrut 于 2023-7-17 13:25 编辑
前两天看马宝24ghz雷达模块卖的比较火,和以往雷达模块不同点在于,此雷达模块基于调频连续波(FMCW)模式,可以对物体距离角度等作出识别(此款单发单收不支持角度测量),可以识别移动物体和静止人体(微运动检测),比普通雷达模块主要多了静止人体检测功能,有些场合需要人在就一直有检测输出,普通雷达模块和普通红外人体传感器都是无法做到的,还支持完善的配置功能和二次开发,可玩性大增于是撸了一个玩玩。
官方的介绍
最大6米的探测距离
应用场景,主要是感应灯泡,智能马桶盖啥的。
引脚定义,支持串口调试和配置,此款还集成了蓝牙透传,还可以配合手机app来配置模块。
到手后外观,这个模块不算便宜,也10几20块了。板子非常小,只有一个小手指头大小。
一颗3.3v的 ldo,最大输入18v极限,但是模块工作电流较大(几十ma),5v供电都有点发热,所以尽量5v左右供电为好。
主板正面集成的杰里的蓝牙透传模块
另一头儿是雷达ic的晶振和电源滤波
反面是雷达ic和天线,支持光线检测,具体见标注。
雷达ic
来自矽典微的24ghz 毫米波雷达ic
内部框图,支持spi uart输出数据流,支持i2c spi 和uart 配置,这个模块只用了uart数据流输出和配置。
买的不带线的版本,好么,原配1.5mm间距插针,手底下没有,只能飞线转成2.54了
接个usb转ttl (图中创新工坊的pwlink lite 烧录调试器 支持虚拟串口)
先用官方(这个软件实际上是矽典微提供的),默认256000波特率
连接后并开启工程模式后,右侧曲线图实时显示每个距离墙的设定灵敏度和对应能量值,绿色曲线是设定灵敏度,能量值超过设定值即为检测到物体。支持移动物体和静止物体检测。那个红色球状图标指示移动物体,如果静态人体则紫色显示,无人和物绿色显示。
模块支持8个距离墙灵敏度配置,距离墙实际上就是分段灵敏度配置,1个距离墙默认0.75米,这样8个距离墙就是0.75x8=6米的最大距离,每个距离墙的动态和静态灵敏度都可以独立配置,这样灵活性就大大增加了,例如可以配置某个距离的灵敏度,或者干脆关闭某个距离的感应检测,实现盲区配置。pc版的配置软件功能比较单一,手机版本的功能强大。
下面手机版app配置软件,先扫描连接到模块。
连接后主要功能和pc版类似,这个是普通模式,不显示实时能量值。
切换到工程模式就会显示
配置界面,可以看到距离墙单位,0.75和0.2米可选(pc版不支持配置),这个功能非常有用,因为默认0.75米距离检测分辨率较低,切换到0.2米后分辨率可以达到厘米,因此精度大幅提升,但是最远探测距离就变成0.2x8=1.6米了。红框里都是pc版没有的功能,支持光敏联动配置,阈值啥的都可以调,输出电平也可以配,作为感应灯泡应用时可以联动光敏探头,实现夜间起控。
距离门配置,静态人体检测前3个距离门实际上配置是无效的(这个官方也有提及),因为离的很近及其细微的动作都会被识别成移动目标。
手机版app还支持固件更新
这个是底噪检测,用于对应环境的精确底噪检测,更好的配合距离门配置调参。
下面将距离门配置到最低0-20cm范围,输出延迟关闭,关闭静态人体检测后的移动识别效果,可以看到检测到移动物体灯泡亮,停止移动灯泡灭,检测范围内有抖动物体输出就会随着抖动而变化。并不能维持常亮检测静态人体
下面是打开静态人体检测时的效果,只要人体存在灯泡就会一直点亮,直到人离开设定检测范围。人体检测的原理是微弱的心跳带来的抖动和呼吸带来的人体表面皮肤浮动等等的细微变化,会被雷达反射波接收识别到,移动物体的rx反射波会比原始tx发射信号产生频偏,内部比较两个波形差异来识别距离和存在信息。当然你能做到憋气面无表情,心脏能暂停跳动,身体一动不动或者扔个死人过去也是能规避检测的。
上面是基本使用方法,由于此模块有分辨率较高的距离检测功能,那是不是能跳出官方应用框架,来开发一个倒车雷达之类的应用呢?说干就干
下面是官方通讯协议手册提供的内容,模块可以通过串口配置,配置流程如下图。
配置任何功能之前需要先开启配置模式,配置模式由一个数据帧组成,有帧头和帧尾,数据大小和帧内数据等等组成,进入配置模式后模块会输出一个应答帧,应答帧也是类似结构,详细见下图通讯协议说明。
pc端和手机端所有功能都可以找到对应配置命令
倒车雷达主要看如何获取雷达输出数据流,数据格式如下图帧头F4F3F2F1, 帧尾F8F7F6F5, 中间是数据长度和帧内数据。
而雷达输出数据还分标准模式和工程模式,工程模式在标准模式的基础上增加距离门能量值等一些额外信息,帧长度不同。
由于厂家只提供通讯协议并没有任何技术支持和例程,只能自己先分析一下通讯流程和特性,下面上电连接后模块会输出雷达数据,但是前3秒左右是不稳定时期(黑框)可以看到数据流并没有输出正确的帧数据,直到红框时才输出正确的帧数据。接收这个数据时就需要延迟,等待稳定后再接收。
测试发送配置帧,正确接收且产生应答,此时雷达输出数据流会暂停。
再发送结束配置命令,可以看到雷达数据流恢复。
一个标准雷达数据帧的解析,需要接收存储后提取雷达距离数据,由两个字节组成。
用了两天时间开发了一个demo程序,下面是部分程序片段,雷达参数配置也可以在单片机里完成,因为有手机app同样可以配置所以这个作为可选预留。
基本流程就是将串口接收到的数据帧存储到数组里,提取数组对应距离数据,合成数据后提供给距离显示和动画演示(注意解说并不一定对应程序片段,只做演示)
滴滴声由pwm输出控制
上电必须延迟一段时间等待模块稳定且输出正确数据才能开启串口,串口数据由于异步通讯可以通过中断函数获得,这样不会丢失数据流
动画用口罩画的
连好线,裹着透明胶带的是喇叭(太吵裹了透明胶降低音量),stm8开发板,和屏。
烧好程序,加好雷达模块,此雷达模块上电后会自动检测遮挡的薄透静止物体,将此物体雷达反射波通过算法忽略掉,因此雷达前面可以配置天线罩(面罩设计可以参考官方天线罩设计指南),四周和后方的雷达信号可以通过金属屏蔽罩接地来屏蔽(反射波同样可以自动忽略),实现只允许特定角度和特定方向的雷达范围检测。
下面演示视频,设定了四个档位(可以任意更改),60-80cm档位,40-60,20-40, 20以内,对应动画和声音提示,距离越近声音越急促,直到快撞上的长鸣。
逐渐靠近再远去,可以看到工作良好,最远侦测距离和各距离墙灵敏度可以通过手机app配置,目前功能比较简单,后期还可以加入很多东西。
以上只是此模块的另一种扩展应用场景的抛砖引玉,后期再研究一下看看能不能再做些好玩的东西,先这样。
完
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
x
打赏
-
查看全部打赏
|