发帖
15 0 0

【雷达灯控】安信可Rd-03E+RGB灯+小程序蓝牙控制【1/3】

AndyL
论坛元老

6

主题

14

回帖

4261

积分

论坛元老

今日待办

积分
4261
雷达灯控教程 1531 15 2024-3-28 20:43:52

[i=s] 本帖最后由 AndyL 于 2024-3-31 18:42 编辑 [/i]<br /> <br />

一、涉及的相关硬件设备

1、CH583M(主控设备)

2、RD-03E(雷达模块/手势识别模式)

3、LED(RGB三色灯)


二、(雷达人体识别蓝牙灯控)主要功能

1、测距模式:在设定的距离范围内,LED会根据雷达识别到人体的范围分别显示出不同的颜色(R,G,B)三色,并在串口中输出当前的距离。(当超出指定范围,将会关闭灯光 (节能))

2、手势模式:当雷达首次识别到手势时,根据蓝牙发送的指令,LED显示设定的颜色(常亮/测距模式失效)。

3、手势模式:当雷达再次识别到手势时,LED熄灭,并重新变为测距模式。


三、具体代码分析如下:

1、主函数(基于TMOS蓝牙任务调度机制):

int main(void)
{
    SetSysClock(CLK_SOURCE_PLL_80MHz);
#ifdef DEBUG
    GPIOA_SetBits(bTXD1);   //prinf到串口1中 PA8/9 115200
    GPIOA_ModeCfg(bTXD1, GPIO_ModeOut_PP_5mA);
    UART1_DefInit();
#endif
    CH58X_BLEInit();//BLE库初始化
    HAL_Init();//硬件初始化
    GAPRole_PeripheralInit();//GAP角色初始化,初始化为外围设备,协议栈API函数
    Peripheral_Init();//外围设备,自定义参数初始化,自定义函数
    app_uart_init();//蓝牙串口初始化
    Pwm_Init(); //LED的PWM模式初始化
    Main_Circulation();
}

2、LED(RGB)相关处理函数:

(通过PWM模式控制LED灯的亮灭,以及任意颜色的实现)

由于主控设备的硬件PWM模式只有8位,所以PWM周期会较短,但刚好8位可以实现Plusewidth为0-255取值范围,刚好对应RGB(R,G,B)的三个参数的取值范围,从而实现五颜六色。 image.png

3、雷达数据(串口3)发送到蓝牙上(在串口1输出相关数据)

对收到的雷达数据进行相关处理,首先判断是否为有效数据,然后再进行相关处理(对FIFO中数据滤波/测距模式下显示指定颜色,并在串口1(上位机)中打印出距离/将蓝牙发送的数据保存在全局数组中,当识别到手势时,将数据传入到PWM函数中,实现指定颜色常亮/再次识别时手势时,指定颜色熄灭重新变为测距模式)

image.png

4、蓝牙发送数据到主控芯片(串口3)

(初始颜色为白光,当蓝牙发送数据时,将数据存入全局数组中当识别到手势时,更改LED颜色(arr_color中的值))

image.png

三、关于蓝牙(TMOS处理机制/事件处理/收发数据)、串口收发数据(FIFO)更多细节内容(后续...)

后续将通过小程序连接设备,实现实时距离显示以及灯光交互等效果。

(🤥未完待续...?😴)

──── 0人觉得很赞 ────

使用道具 举报

2024-4-8 21:55:10

[i=s] 本帖最后由 AndyL 于 2024-4-8 22:00 编辑 [/i]<br /> <br />

小程序控制(第二篇)

2024-3-29 08:22:25
2024-3-29 08:54:40
2024-3-29 09:07:57
这个图片配色很好看
2024-3-29 09:47:49
期待后续!
2024-3-29 12:50:09
很棒,大佬带我玩!
2024-3-29 16:55:18
学习学习
2024-3-29 21:44:42
很棒
2024-4-2 12:22:44
xktx09 发表于 2024-4-2 09:47
这个背景色怎么搞的

Codepng
2024-4-8 10:29:01
您需要登录后才可以回帖 立即登录
高级模式
12下一页
统计信息
  • 会员数: 28290 个
  • 话题数: 40266 篇