【雷达灯控】安信可 Rd-03E+ 改了又改的老旧灯 + stm32c6t6

[复制链接]
查看1186 | 回复13 | 2024-3-9 15:02:32 | 显示全部楼层 |阅读模式
本帖最后由 putin 于 2024-3-11 10:45 编辑


                               
登录/注册后可看大图

                               
登录/注册后可看大图

                               
登录/注册后可看大图

简介
第一次参加安信可模组活动没想到就中了,这次安信可赠送的是雷达模块RD-03E,刚好有一个老旧灯正好把他改成感应灯。在这里感谢安信可以及安信可技术交流群的大佬们!!

模块介绍
Rd-03E是由深圳市安信可科技有限公司开发的雷达模组,搭载矽典微的S3KM111L芯片。 S3KM111L 是一种基于 FMCW 雷达收发器技术的集成单片机毫米波传感器 SoC,它工作 在 24 GHz 的 K 波段,每个单频扫描的调制带宽高达 1 GHz该模组采用 FMCW 波形和 S3 系列芯片专有的先进信号处理技术,结合 MCU 专有的雷达信号处理和内置智能存在 感应算法,可实现精准的人体感应测距以及手势识别。开发人员可通过上位机工具实时 显示距离信息以及手势信息。 Rd-03E 模组可对运动、微动人体进行探测、识别,并上报实时距离,能够探测指定区域 内的目标与手势并实时上报结果,广泛应用于各种 AloT 场景。该模组具有实时性强,测 距精度高,测距范围大,算法参数灵活配置等特点。
                                                                                 2.png
资料获取

更多点击Rd-03 系列模组



串口工具连接RD-03E

                   F.png
串口工具按如图所示连接雷达模组(请注意RD–03E供电是5V跟RD-03不一样,刚拿到的时候看规格书看错了,一直用3.3V,结果雷达就是连不上)
使用安信可串口助手,并将波特率调为256000,切换至hex显示,勾选自动换行(这里我刷入的是测距的固件,大多数人这一次拿到的都是马桶盖的固件,想要更换的话可以在上面看教程,把固件给刷进去)

                                                         16EA.png

报头(1、2列) 目标状态(3列) 距离(4、5列) 包尾(6、7列)
AA AA  00(没人)或 01(有人大动)或 02 (有人微动) 00 00 到 FF FF(还没见过第五列数据在动) 55 55
其实安信这边还提供了两个不同的上位机,一个是马桶盖的,一个是测距的,不过这两个上位机。对于我来说好像就只有测试雷达功能正不正常的作用。这边就不在帖子里面写了。




序撰写

这里mcu解析串口部分代码我采用的是B站江科大教学里面的串口收发hex的程序,或者在主函数里面进行了部分更改。
  1. #include "stm32f10x.h"                  // Device header
  2. #include "Delay.h"
  3. #include "OLED.h"
  4. #include "Serial.h"


  5. void Init_GPIO()
  6. {
  7.         RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);        //开启GPIOA的时钟
  8.                                                                                                                         //使用各个外设前必须开启时钟,否则对外设的操作无效
  9.         
  10.         /*GPIO初始化*/
  11.         GPIO_InitTypeDef GPIO_InitStructure;                                        //定义结构体变量
  12.         
  13.         GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;                //GPIO模式,赋值为推挽输出模式
  14.         GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0;                                //GPIO引脚,赋值为第0号引脚
  15.         GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;                //GPIO速度,赋值为50MHz
  16.         
  17.         GPIO_Init(GPIOA, &GPIO_InitStructure);                                        //将赋值后的构体变量传递给GPIO_Init函数
  18.         //GPIO_ResetBits(GPIOA, GPIO_Pin_0);
  19. }

  20. int main(void)
  21. {
  22.         /*模块初始化*/
  23.         OLED_Init();                //OLED初始化

  24.         Serial_Init();                //串口初始化
  25.         Init_GPIO();//GPIO初始化
  26.         /*显示静态字符串*/
  27.         OLED_ShowString(1, 1, "Distance");
  28.         OLED_ShowString(3, 1, "RxPacket");
  29.         
  30.         /*设置发送数据包数组的初始值,用于测试*/
  31. //        Serial_TxPacket[0] = 0x01;
  32. //        Serial_TxPacket[1] = 0x02;
  33. //        Serial_TxPacket[2] = 0x03;
  34. //        Serial_TxPacket[3] = 0x04;
  35.         
  36.         while (1)
  37.         {
  38.                 if (Serial_GetRxFlag() == 1)        //如果接收到数据包
  39.                 {
  40.                         OLED_ShowHexNum(4, 1, Serial_RxPacket[0], 2);        //显示接收的数据包
  41.                         OLED_ShowHexNum(4, 4, Serial_RxPacket[1], 2);
  42.                         OLED_ShowNum(2, 4, Serial_RxPacket[2], 2);
  43.                         OLED_ShowHexNum(4, 7, Serial_RxPacket[2], 2);
  44.                         OLED_ShowHexNum(4, 10, Serial_RxPacket[3], 2);
  45.                         if(Serial_RxPacket[2]<100&&Serial_RxPacket[2]>10&&Serial_RxPacket[1]>0)
  46.                         {
  47.                                 GPIO_SetBits(GPIOA, GPIO_Pin_0);                                        //将PA0引脚设置为高电平
  48.                         }
  49.                         else
  50.                         {
  51.                                 GPIO_WriteBit(GPIOA, GPIO_Pin_0, (BitAction)0);
  52.                         
  53.                         }
  54.                 }
  55.         }
  56. }
复制代码
成果展示


遇见的问题

  • 供电用错,用成3.3V,然而实际是五伏。
  • 拿到手马桶盖的固件,用马桶盖的上位机,搞半天读不出来数据,最后换了两个串口。(在群里面问大佬,大佬也非常耐心的为我解答,在此特别感谢他们。👨‍❤️‍👨)
  • 刷固件时,Keil弹窗st-link更新,刚开始看不懂,最后百度得以解决。
  • 最后当我更新完固件,开心的往里面刷固件时发现忘记选芯片的flash出现报错。
  • 在发帖前夕,把昨天晚上好不容易在下载口上面焊上排幕,结果不小心一巴掌盖上去把焊盘干脱了😭

                               
登录/注册后可看大图

串口下载程序(我的雷达有救了🌝🌝)
源码.zip (309.92 KB, 下载次数: 13)
回复

使用道具 举报

曹县 | 2024-3-9 15:48:12 | 显示全部楼层
回复

使用道具 举报

lovzx | 2024-3-9 16:42:42 | 显示全部楼层
学习
回复

使用道具 举报

lza | 2024-3-9 16:57:47 | 显示全部楼层
插个眼,学习了
回复 支持 反对

使用道具 举报

DMJ董 | 2024-3-9 18:11:28 | 显示全部楼层
学习
回复

使用道具 举报

WT_0213 | 2024-3-9 23:53:15 | 显示全部楼层
回复

使用道具 举报

干簧管 | 2024-3-10 13:52:09 | 显示全部楼层
👍
回复

使用道具 举报

望风阁 | 2024-3-10 20:43:22 来自手机 | 显示全部楼层
动作快!!我的要下下周交作业了,
回复 支持 反对

使用道具 举报

wukong50 | 2024-3-12 10:49:17 | 显示全部楼层
赞一下
回复

使用道具 举报

timo | 2024-3-12 12:23:25 | 显示全部楼层
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则