2239| 0
|
AI视觉手势/人脸跟踪传感器——手势控制频道切换 |
本帖最后由 云天 于 2025-4-13 12:43 编辑 【项目背景】 近日,DF创客商城推出了一款新型AI视觉手势/人脸跟踪传感器,具备3米远距识别能力,支持5种手势和10个人脸追踪功能,并兼容Arduino、micro:bit及树莓派平台,适用于智能家居、无接触交互及人体感应等场景。秉持“为创客探路”的精神,我购买了这款传感器进行深度测试。经过两天的密集调试(恰逢张家口大风天气,蜗居在家),我发现传感器在IIC通信上存在部分问题,并已与DF技术支持团队沟通,期待后续优化。同时,我通过修改扩展代码,成功实现了在Mind+图形化编程环境下通过UART通信使用该传感器(官方仅支持IIC通信),为更多开发者提供了灵活的使用方式。 ![]() 【硬件介绍】 ![]() 【项目设计】 基于传感器的人脸检测和手势识别功能,我设计了一套手势控制家用电视机频道切换的系统。为减少误触发,系统采用“人脸优先”逻辑:仅在检测到人脸时启动手势识别功能。通过红外接收模块捕获机顶盒遥控器的按键编码,再结合手势识别结果,利用红外发射模块向机顶盒发送对应指令,实现频道切换。该方案不仅提升了交互的自然性,还通过人脸检测机制有效避免了误操作,为智能家居场景提供了一种创新的无接触控制方案。 【项目制作】 1.获取机顶盒遥控器的按键编码,列表只用于保存编码。 ![]() 红外接收模块接Arduino UNO的引脚2。 ![]() 2.硬件组装 ![]() ![]() ![]() ![]() 3.加载扩展 通过“扩展”——“用户扩展"——输入“https://gitee.com/yuntian365/GestureFaceDetection” ![]() 4.示例程序 ![]() 用于控制AI视觉手势/人脸跟踪传感器和红外发射模块。以下是程序的逐步分析: (1 )初始化部分 AI视觉手势/人脸跟踪传感器初始化: 使用UART模式,地址为0x72。 设置人脸检测灵敏度为60,手势检测灵敏度为60,头肩检测灵敏度为100。 (2) 循环执行部分 程序进入循环执行,主要逻辑如下: 1) 人脸检测 条件判断:如果检测到人脸数量大于等于1,则继续执行后续操作。 人脸得分判断:如果人脸得分大于80,则继续执行。 手势得分判断:如果手势得分大于80,则继续执行。 2) 手势类型获取 获取当前手势类型并存储到变量手势类型中。 3) 手势类型判断 根据手势类型的值,执行不同的红外发射操作: 手势类型 = 1:发射红外编码0xCD3249B6。 手势类型 = 2:发射红外编码0xCD32C936。 手势类型 = 3:发射红外编码0xCD233CC。 手势类型 = 4:发射红外编码0xCD32718E。 手势类型 = 5:发射红外编码0xCD32F10E。 4) 红外发射操作 每次红外发射后: 设置数字引脚13为高电平。 等待1秒后切换为低电平。 红外发射模块使用NEC协议,管脚为5,发射的编码为32位。 (3) 循环间隔 每次循环结束后,等待0.2秒,避免程序运行过快导致信号冲突。 程序功能总结 人脸优先逻辑:只有检测到人脸且人脸得分和手势得分都高于80时,才会进行手势识别,避免误触发。 手势控制:根据手势类型(1到5),发射不同的红外编码,用于控制机顶盒或电视机。 红外发射:通过红外模块发送预设的编码,实现远程控制功能。 硬件交互:通过数字引脚13的高低电平切换,控制UNO板载LED亮灭。 【演示视频】 |
© 2013-2025 Comsenz Inc. Powered by Discuz! X3.4 Licensed