DustinYe/gesture-media-controller
硬件与物联网把 ESP32 手势传感器做成蓝牙媒体遥控器,用手势控制已连接的电脑或手机。
这是一个老实交代边界的硬件原型:AtomS3R 搭配 PAJ7620U2 红外传感器,把手部动作转换成标准 BLE 媒体按键。适合已经拥有或打算购买这两块硬件、想要一个有版本记录和测试证据的基线版本,而不是通用手势平台的爱好者。
解决什么问题
切歌、调音量、暂停播放时,手常常正忙着做饭、焊接或演示,不想再去碰键盘和手机。普通遥控器需要手拿,摄像头或机器学习方案又增加成本和调试。这个项目让小块开发板用红外传感器观察手在它前面做出的短促动作,再通过 BLE 发送消费者控制类 HID 命令给当前连接的设备。流程很直接:做手势,主机播放器响应;至于快进、上一首和音量步长,最终由播放器决定。
有什么不同
最有意思的是固件如何把不稳定的传感器数据变成少量稳定事件。中值滤波之后分给三个跟踪器:水平扫动、抓握(手掌收拢成拳)、以及根据运动朝向变化累计的转圈;再加一层仲裁,保证同一时间只产生一个事件,并处理主机切换的守卫逻辑。HID 侧采用只包含两个字节的消费者控制报告,自动释放按键,蓝牙部分没有另起炉灶。屏幕正面同时是实体按键,可暂停手势控制、切换主机、长按清除已保存的蓝牙绑定。
代价是:PAJ7620U2 并不真正“认识”手势,它报告的是中心、面积、存在等运动特征,固件再根据动作近似判断。README 明确说这个传感器无法数手指、也无法区分握拳和张开手掌;v24 里握拳横向移动仍可能触发切歌命令,后来的握拳/拍打过滤只作为未经验证的实验保留。因此使用体验更像原型,阈值和你的安装角度、距离、动作幅度直接相关。
谁值得试
适合:手里已有 AtomS3R、Unit Gesture 传感器和 Grove 线的嵌入式爱好者,想要一个能烧录、说明清楚的基线版本,并清楚知道哪些能用、哪些不能,或许再针对某个房间或无障碍场景做修改。仓库保留了 v13–v23 的历史源码和记录下来的轨迹样本,便于动手改和回放。
不适合:期待手指级手势控制、成品配件、带外壳和完整说明书的人;以及期待小米米家 / Home Assistant 集成的人——README 把这项列为尚未实现。需要同时控制多台设备的人也不合适:固件同一时间只控制一台主机。
使用条件与边界
硬件是固定的:AtomS3R 开发板、基于 PAJ7620U2 的 Unit Gesture U127、Grove 线、兼容的 BLE 主机,以及 USB-C 供电和烧录。固件使用固定版本的 M5Stack ESP32 Arduino core 3.3.9、开发板目标 M5AtomS3R;附带脚本是 PowerShell,IDE 方式见构建指南。验证证据是不同开发阶段的一组检查,不是“平台 × 功能”的完整认证矩阵,也没有声称准确率百分比或延迟数字。
日常维护也要考虑:识别效果取决于你实际的安装位置和距离,阈值可能需要重新调整;重新上传固件会替换板上的程序;项目尚未选择整体许可证,在其他项目里复用会受到限制。Python 回放测试是独立的参考实现,不是执行 C++ 二进制;其中一个预期失败用例记录的是尚未解决的握拳扫动误触发。
HotRepo 点评
HotRepo 从 2026-10-24(仓库创建次日)开始跟踪,2026-10-25 记录到 cpp 新项目榜 #20、共 204 星——这是带日期的快照,不是日增。已存样本只覆盖两天,目前无法判断热度是否持续。动手前建议先看验证说明,判断文档中承认的握拳扫动误触发对你的用途是否可以接受。
本文由 AI 根据项目 README 生成,更新于 2026年10月25日,以项目官方文档为准。