本系统采用基于边缘AI(K230)与 MCU(STM32H743)的异构双核架构,实现多模态智能家居控制。
| 模块 | 型号 | 功能 |
|---|---|---|
| 视觉AI板 | Kendryte K230 + MIPI 摄像头 | 手势识别,UART 发送指令 |
| 控制底板 | STM32H743IIT6 (反客科技) | 调度中枢,控制所有外设 |
| 语音模块 | HLK-V20 | 离线语音识别,UART2 通信 |
| 光照传感器 | BH1750 | 环境光照检测 (0~54612 lux) |
| 温湿度传感器 | AHT20 | 环境温湿度检测 |
| 继电器 | 5V 单路继电器 | 控制 LED 灯带通断 |
| 步进电机 | 28BYJ-48 + ULN2003 | 窗帘开合驱动 |
| 手势 | 动作 | 说明 |
|---|---|---|
| 五指张开 (PAPER) | 开灯 | 需保持 2 秒 |
| 握拳 (STONE) | 关灯 | 需保持 2 秒 |
| 左挥 (WAVE_LEFT) | 窗帘开 | 位移+速度双判定 |
| 右挥 (WAVE_RIGHT) | 窗帘关 | 位移+速度双判定 |
HLK-V20 3字节帧协议 00 xx yy,波特率 115200:
| 语音 | 帧数据 | 动作 |
|---|---|---|
| "打开窗帘" | 00 01 01 | 窗帘开 |
| "关闭窗帘" | 00 01 02 | 窗帘关 |
| "打开灯光" | 00 01 03 | 开灯 |
| "关闭灯光" | 00 01 04 | 关灯 |
| 条件 | 动作 |
|---|---|
| 光照 < 30 lux + 无手动操作 5 秒 + 未锁定 | 自动开灯 |
| 光照 ≥ 30 lux + 无手动操作 5 秒 + 未锁定 | 自动关灯 |
锁定机制:手动操作后进入锁定状态,防止 LED 自身光照干扰传感器。只有检测到真正的光照变化(lux > 80 或 < 10)才解锁。
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
main.py 到 SD 卡根目录