Steam Controller 自动充电 – 使用计算机视觉引导至磁吸充电座
摘要
一个开源Web应用程序,利用计算机视觉通过光流和WebHID自动将Steam Controller引导至其磁吸充电座。
查看缓存全文
缓存时间: 2026/07/03 23:17
FossPrime/Steam-Controller-Auto-Charge
来源:https://github.com/FossPrime/Steam-Controller-Auto-Charge
Steam Controller 自动充电
Steam Controller 自动充电是一个开源网络应用程序,旨在通过光流计算机视觉和 WebHID 遥测技术,自动引导 Steam Controller 插入磁性充电底座。
功能特点
- 光流追踪: 使用 OpenCV.js 通过顶置摄像头追踪用户在控制器和充电底座上选择的点。
- WebHID 遥测与触觉导航: 通过 WebHID 本地连接 Triton Controller,传输输入和遥测数据(报告 67)。通过内部双线性谐振驱动器(LRA)发射 70Hz 不对称触觉脉冲,将控制器导航至底座。
- 接近蠕行模式: 当控制器距离底座 150 像素以内时,自动将触觉脉冲频率降低 50%,确保轻柔的磁吸对接。
- 电池状态轮询: 拦截报告 ID
121(0x79)以确认磁性充电成功,并解析报告 ID67(0x43)以显示实时电池百分比和电池电压(mV)。
搭建说明
必要条件
- Nix 包管理器(https://nixos.org/download):唯一需要的构建依赖,完美支持 Windows、Mac 和 Linux。
- 支持 WebHID API 的 Chromium 内核浏览器。
- 指向桌面的顶置网络摄像头。
- 将网络摄像头直接安装在桌面上方,镜头朝下。
- 使用一条命令启动项目(会自动获取依赖并构建 WASM 模块):
nix-shell --run "npm install && npm run dev"
使用方法
- 将网络摄像头直接安装在桌面上方,镜头朝下。
- 将 Steam Controller 自动充电底座放在桌面上。
- 将 Steam Controller 直立放置在桌面上。
- 打开网页界面,点击 连接 Steam Controller 通过 WebHID 配对。
- 点击 ✨ 自动追踪 启用自动追踪。按钮将高亮表示已激活,页面重新加载后会自动恢复追踪。再次点击可禁用。
- 控制器将基于 Lucas-Kanade 光流循环以及由浏览器内 Rust/WASM CNN 驱动的避障功能,自主导航至底座!
(注:如果你更喜欢手动追踪,仍然可用。只需依次点击底座、控制器顶部和控制器底部。)
架构
App.vue:Vue 3 应用逻辑,处理摄像头流、UI 响应、PID 追踪回路以及 OpenCV.js 的 Lucas-Kanade 光流(calcOpticalFlowPyrLK)。steamController.ts:WebHID 抽象类,将标准 API 调用映射为 Steam Controller 的特定字节载荷,用于 LRA 脉冲和电池状态轮询。objectDetector.ts和objectWorker.ts:将目标检测卸载到 Web Worker,确保主追踪循环保持流畅。wasm-object-detect/:Rust 实现,编译为 WebAssembly 以实现高性能视觉处理。
致谢
衷心感谢 Very Lazy Pixel 对本项目的启发! 查看他们的视频:https://www.youtube.com/watch?v=g-8S8zk4dn8
许可证
本项目采用 MIT 许可证授权 - 详见 LICENSE 文件。
相似文章
Steam Controller的“即放即充”充电器险些让这位用户家中起火
Reddit用户报告称,Steam Controller的磁吸充电器在接触手表带等金属物体时可能过热并引发火灾风险,促使Valve进行调查并更换受影响的产品。
使用本地计算机视觉通过键盘执行鼠标操作
描述了一种使用本地计算机视觉通过键盘输入实现鼠标操作的方法。
UniSteer:文本引导的激活空间流匹配实现多功能大语言模型操控
UniSteer 提出了一种文本引导的激活流匹配方法,在激活空间中学习通用条件速度场,无需特定任务干预模块即可实现多功能的 LLM 行为控制与分类任务。
我的Steam游戏机是一根50英尺的HDMI线缆
一位开发者分享了他将台式机转变为Steam游戏机的经验,使用一根50英尺的光纤HDMI线缆和Steam Controller 2,运行Bazzite,在电视上获得类似主机的PC游戏体验。
听新Steam Controller嗡嗡作响,奏出《毁灭战士》旋律
一款名为Steam Haptics Singer的全新开源工具,让Steam Controller和Steam Deck通过触觉马达播放MIDI音乐,实现诸如《毁灭战士》主题曲等有趣的定制音效和歌曲。