您现在的位置是:首页 >技术杂谈 >安信可新品雷达模组Rd-03搭配STM32制作简易人体感应雷达灯教程网站首页技术杂谈
安信可新品雷达模组Rd-03搭配STM32制作简易人体感应雷达灯教程
-
前言
安信可最新雷达模组Rd-03已经横空出世,为了方便大家使用该模组,本教程将使用STM32F103C8T6搭配Rd-03制作一个简易的人体检测雷达灯。
一、Rd-03引脚说明
Rd-03共有五个管脚,以下是管脚功能定义表:
序号 | 引脚 | 说明 |
---|---|---|
1 | 3.3V | 输入电源 |
2 | GND | 接地 |
3 | OT1 | UART_TX |
4 | RX | UART_RX |
5 | OT2 | 检测结果输出,感应时输出高电平,未感应时输出低电平 |
二、STM32F103C8T6使用CubeMX搭配HAL库配置
打开CubeMX, 选择STM32F103C8T6,勾选串口以及将中断使能勾上。选择串口1,则PA9为TX,PA10为RX。这里选择PA12作为GPIO输出控制LED灯。
三、STM32与Rd-03的接线
根据CubeMX生成的串口引脚以及Rd-03的引脚,引脚接线如下
STM32 | Rd-03 | |
---|---|---|
3.3V | ------- | 3.3V |
GND | ------- | GND |
PA9 | ------- | UART_RX |
PA10 | ------- | UART_TX |
注意LED灯需要接上PA12引脚以及与STM32共地
四、STM32使用Rd-03
Rd-03具有内置的MCU处理数据,使用串口驱动,在运行模式下会打印出“OFF“和”ON range 距离“。故STM32只要在串口回调函数中对ON和OFF字符进行判断即可。定义几个全局变量。
uint8_t RX_BUF[64]={0}; //缓存数组
uint8_t RX_count=0; //计数位
uint8_t RX_temp; //缓存字符
void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart)//回调函数,检测到雷达发送一帧数据时进行处理
{
if(huart == &huart1){
RX_BUF[RX_count++] = RX_temp;//将缓存字符存入缓存数组中
if(RX_BUF[RX_count-1] == 0X0A){
// RX_count = 1;
if(0==(memcmp(&RX_BUF,"ON",strlen("ON")))) //字符串比较,雷达检测到有人时开灯
{
LED_ON;//宏定义,使能PA12
}
if(0==(memcmp(&RX_BUF,"OFF",strlen("OFF")))) //字符串比较,雷达检测到无人时关灯
{
LED_OFF;//宏定义,关闭PA12
}
HAL_UART_Transmit(&huart1,(uint8_t *)&RX_BUF,RX_count,0xFFFF);//将缓存数组中的数据从串口发送出去
while(HAL_UART_GetState(&huart1)==HAL_UART_STATE_BUSY_TX);//判缓存数组是否发送完毕
memset(RX_BUF,0x00,sizeof(RX_temp));
RX_count = 0;
}
HAL_UART_Receive_IT(&huart1,&RX_temp,1);
}
}
当然也可以根据串口协议编写相关的函数配置Rd-03的参数,如最大检测门限距离以及检测的延迟时间等等。也可以使用上位机软件调配好参数通过TTL写入Rd-03中,再连接STM32使用。在本教程中为了方便大家使用,根据Rd-03的协议编写了一个函数可以通过输入两个参数对Rd-03初始化驱动,以下是函数名称。在进入whilie循环前先调用该函数配置完相应参数即可。一次修改一个参数,若五个参数都需要修改则需要调用五次。教材末尾附上源码地址。
//parameter为调试的参数名
//roiMin,roiMax,activeFrameNum,inactiveFrameNum,delay五个可填写
//分别对应最小探测距离门、最远探测距离门、检测到目标最小帧数、目标消失最小帧数、目标消失延迟时间
//data为输入的参数,最远探测距离门范围为0-15
void RD_03_Write_cmd(uint8_t parameter,uint8_t data);
STM32搭配Rd-03制作雷达灯效果:
五、使用上位机修改Rd-03的参数
使用TTL连接Rd-03,可使用上位机修改Rd-03的参数。
在安信可页面下载对应资料,内包含开发的工具以及相应的资料文档:Rd-03模组
首先选择对应的端口号,波特率为115200,点击连接设备。右边的参数都可修改,如最大门限距离,一个门限距离为70cm,最大是15个门限距离也就是10.5米。目标消失延迟时间则为检测到目标后持续输出高电平的时间,单位为秒。在输入完参数后点击写入传感器设置则配置完毕。
六、Rd-03模组独立制作雷达灯
前面提到Rd-03是有独立的OT2引脚输出高低电平,所以只需要先使用上位机配置好相应的参数,在将配置的信息写入雷达模组中,在将OT2引脚与LED灯正极相接以及GND与模组共地即可,使用TTL供电。
源码地址: https://e.coding.net/axk/stm32_rd-03/STM32_Rd-03.git
总结
官方网址: https://www.ai-thinker.com
开发DOCS:https://docs.ai-thinker.com
官方论坛: http://bbs.ai-thinker.com
技术支持:support@aithinker.com