-
前言
安信可最新雷达模组Rd-03-V2与Rd-03H已经横空出世,为了方便大家使用这两款模组,本教程将使用STM32F103C8T6搭配Rd-03-V2、Rd-03H制作一个简易的人体检测雷达灯。
一、Rd-03-V2与Rd-03H区别
Rd-03-V2与Rd-03H使用的芯片相同,搭载矽典微的S1KM0000芯片,可实时感知区域内是否有静止、运动或者微动的人体。使用的串口通信协议(点击查看串口通信协议)与上位机相同(点击下载上位机),只是硬件封装跟尺寸上有所不同,下图是这两款封装跟尺寸上的区别。
一、Rd-03V2/Rd-03H引脚说明
Rd-03V2/Rd-03H共有五个管脚,以下是管脚功能定义表:
序号 | 引脚 | 说明 |
---|---|---|
1 | 3.3V | 输入电源 |
2 | GND | 接地 |
3 | OT1 | UART_TX |
4 | RX | UART_RX |
5 | IO | 检测结果输出,感应时输出高电平,未感应时输出低电平 |
二、STM32F103C8T6使用CubeMX搭配HAL库配置
打开CubeMX, 选择STM32F103C8T6,勾选串口1和串口2,选择异步通信以及将中断使能勾上。则串口1用来跟雷达通信,PA9为TX,PA10为RX,串口2用来作为调试口,这里选择PA12作为GPIO输出控制LED灯。
三、STM32与Rd-03的接线
根据CubeMX生成的串口引脚以及Rd-03V2/Rd-03H的引脚,引脚接线如下
STM32 | Rd-03V2/Rd-03H | |
---|---|---|
3.3V | ------- | 3.3V |
GND | ------- | GND |
PA9 | ------- | UART_RX |
PA10 | ------- | UART_TX |
注意LED灯需要接上PA12引脚以及与STM32共地
四、STM32使用Rd-03V2/Rd-03H
Rd-03V2/Rd-03H具有内置的MCU处理数据,使用串口驱动,在运行模式下会打印出“OFF“和”distance: 距离“。故STM32只要在串口回调函数中对ON和distance:字符进行判断即可。
// 检查是否包含 "distance"(有人 -> 开灯)
if (strstr(RX_BUF, "distance") != NULL) {
LED_ON;
}
// 检查是否包含 "OFF"(无人 -> 关灯)
if (strstr(RX_BUF, "OFF") != NULL) {
LED_OFF;
}
当然也可以根据串口协议编写相关的函数配置Rd-03-V2/Rd-03H的参数,如最大检测门限距离以及检测的延迟时间等等。在本教程中为了方便大家使用,根据Rd-03-V2/Rd-03H的协议编写了一个函数可以通过输入两个参数对Rd-03初始化驱动,以下是函数名称。在进入whilie循环前先调用该函数配置完相应参数即可。教材末尾附上源码地址。
//parameter为调试的参数名
//roiMin,roiMax,delay三个可填写
//分别对应最小探测距离门、最远探测距离门、目标消失延迟时间
//distance为输入的参数,一个距离门表示0.1m
RD_03_Write_cmd(roiMax,distance);//雷达数据初始化写入
STM32搭配Rd-03V2/Rd-03H制作雷达灯效果:
源码地址: https://e.coding.net/axk/stm32_rd-03/STM32-RD-03-V2.git (不能直接浏览器访问,请使用git克隆访问)
总结
官方网址: https://www.ai-thinker.com
开发DOCS:https://docs.ai-thinker.com
官方论坛: http://bbs.ai-thinker.com
技术支持:support@aithinker.com