logo
0
0
WeChat Login

面向智慧居家场景的手势交互式照明与窗帘控制系统 V3.2

1. 系统核心架构概述

本系统采用基于边缘AI(K230)与 MCU(STM32H743)的异构双核架构,实现多模态智能家居控制。

  • 视觉感知层:K230 边缘计算芯片,通过 MIPI CSI-2 摄像头采集视频,利用 KPU 进行手势识别推理
  • 逻辑控制层:STM32H743 单片机为调度中枢,接收手势/语音/传感器信号,控制执行器
  • 协同控制逻辑:手势优先 → 语音辅助 → 光敏自动,三级优先级调度

2. 硬件 BOM 表

模块型号功能
视觉AI板Kendryte K230 + MIPI 摄像头手势识别,UART 发送指令
控制底板STM32H743IIT6 (反客科技)调度中枢,控制所有外设
语音模块HLK-V20离线语音识别,UART2 通信
光照传感器BH1750环境光照检测 (0~54612 lux)
温湿度传感器AHT20环境温湿度检测
继电器5V 单路继电器控制 LED 灯带通断
步进电机28BYJ-48 + ULN2003窗帘开合驱动

3. 交互逻辑

3.1 手势指令(最高优先级)

手势动作说明
五指张开 (PAPER)开灯需保持 2 秒
握拳 (STONE)关灯需保持 2 秒
左挥 (WAVE_LEFT)窗帘开位移+速度双判定
右挥 (WAVE_RIGHT)窗帘关位移+速度双判定

3.2 语音指令(次优先级)

HLK-V20 3字节帧协议 00 xx yy,波特率 115200:

语音帧数据动作
"打开窗帘"00 01 01窗帘开
"关闭窗帘"00 01 02窗帘关
"打开灯光"00 01 03开灯
"关闭灯光"00 01 04关灯

3.3 光敏自动(最低优先级)

条件动作
光照 < 30 lux + 无手动操作 5 秒 + 未锁定自动开灯
光照 ≥ 30 lux + 无手动操作 5 秒 + 未锁定自动关灯

锁定机制:手动操作后进入锁定状态,防止 LED 自身光照干扰传感器。只有检测到真正的光照变化(lux > 80 或 < 10)才解锁。

3.4 K230 手势识别算法

  • 关节角度法:计算 MCP/PIP 关节角度,>140°=伸直,<100°=弯曲
  • 时序平滑:指数滑动平均 (α=0.4),减少关键点抖动
  • 多帧投票:5帧窗口,3帧一致才触发
  • 移动检测:手在移动时只识别挥手,静止时才识别张手/握拳

4. 项目文件结构

code1/
├── main.py              # K230 手势识别 + UART 通信 + OSD 显示
├── readme.md            # 本文件
├── wiring.md            # 接线说明 + 交互逻辑详细文档
├── 语音/                # HLK-V20 语音模块工具和固件
│   ├── HLK-V20-串口升级工具-Update-Tool/
│   └── bin/
└── stm32_src/
    └── gesture_project/ # Keil 工程 (STM32H743)
        ├── Core/
        │   ├── Inc/     # main.h, hal_conf.h, it.h
        │   └── Src/     # main.c, hal_msp.c, it.c, system.c
        ├── Drivers/
        │   ├── CMSIS/   # ARM CMSIS 头文件
        │   ├── STM32H7xx_HAL_Driver/  # HAL 库
        │   └── User/    # led.c/h, usart.c/h
        └── MDK-ARM/
            ├── FK743M2.uvprojx   # Keil 工程文件
            └── startup_stm32h743xx.s

5. 烧录方式

  • K230: 拷贝 main.py 到 SD 卡根目录
  • STM32: DFU 模式(按 BOOT 键连 USB)+ STM32CubeProgrammer 烧录 HEX