一、RD-03E资料链接
Rd-03 系列模组 | 安信可科技 (ai-thinker.com)
二、模块简介 Rd-03E 模组可对运动、微动人体进行探测、识别,并上报实时距离,能够探测指定区域内的目标与手势并实时上报结果,广泛应用于各种 AloT 场景。该模组具有实时性强,测距精度高,测距范围大,算法参数灵活配置等特点。 三、硬件设计 我的磁吸灯是接电源适配器5V供电,所以在整个系统的电源管理上就不用费什么心思了,直接将5V输入接至STM32和RD-03E模块上就行了,板载了5V转3.3V的LDO。
由于灯的只有一个手动的船型开关,所以在开关控制上采用了最简单的方式——继电器。找了找,翻到了一个5V的继电器模块,类似下图。
大家都知道stm32供电3.3V,管脚也是输出3.3V,所以下一步要解决的就是用3.3v控制5V继电器模块。也不是很难,简单用S8050三极管搭了一个电平转换电路,并将 排针 IN 端与所接电阻之间割断。排针 IN 端接IO_IN,电阻端接IO_OUT。
改装后的继电器模块如右上图。至此就能用3.3V单片机控制5V继电器了,整个硬件部分也就结束了。 四、软件设计 1、固件烧录 直接使用J-LINK烧录固件(当然也可以用DAPLINK或其他,这里用J-LINK举例)。 1.1双击打开J-Flash选择GD32E230K8型号
1.2将开发资料中的 “Rd-03E精准测距固件(固件号2268)” 下载,后直接拖入J-Flash中。 1.3连接J-LINK:“Target -> Connect”,连接成功后会下方显示。直接下载 “Target -> Production Programming” 就行了
2、通讯协议 这部分直接看开发资料里的手册,格式就是 AA AA byte1 byte2 byte3 55 55;
[color=rgba(0, 0, 0, 0.87)] 3、代码编写 整体思路:① GIPO初始化 ② 串口初始化,并打开中断接收数据 ③ 判断帧头帧尾是否分别是 AA AA , 55 55;不是则舍去。 ④ 判断byte1 不为0(即不是无人状态),并且判断byte3 byte2 范围,控制继电器吸合,反之关断。(也可以加一些滤波算法) 下面是main.c内程序: - #include "stm32f10x.h" // Device header
复制代码五、效果演示 六、存在问题 |