返回

文章详情

Steam控制器自动充电 - 使用CV引导到磁性充电盘

Hacker News2026年7月3日 22:39

Steam控制器自动充电是一个开源网页应用程序,旨在使用光流计算机视觉和WebHID遥测自动引导Steam控制器进入其磁性充电盘。特点:光流跟踪:利用OpenCV.js通过顶部摄像头跟踪用户选择的控制器和充电盘上的点。WebHID遥测和触觉导航:通过WebHID原生连接到Triton控制器,流式传输输入和遥测(报告67)。通过内置双线性谐振驱动器(LRA)发射70Hz不对称触觉脉冲来导航控制器到充电盘。接近爬行模式:当控制器距离充电盘150像素以内时,自动将触觉脉冲频率降低50%,确保轻柔的磁性对接。电池状态轮询:拦截报告ID 121 (0x79)以确认成功的磁性充电,并解析报告ID 67 (0x43)以显示实时电池百分比和电池单体电压(毫伏)。设置要求:Nix软件包管理器:您所需的唯一构建依赖项。它在Windows、Mac和Linux上无缝工作。支持WebHID API的基于Chromium的浏览器。一个指向桌面的悬挂摄像头。将摄像头直接悬挂在上方,指向桌面。使用单个命令启动项目(这将自动获取依赖项并构建WASM模块):nix-shell --run "npm install && npm run dev"。使用说明:将摄像头直接悬挂在上方,指向桌面。将Steam控制器自动充电盘放在桌面上。将您的Steam控制器直立放置在桌面上。打开网页界面并点击连接Steam控制器,通过WebHID进行配对。点击✨自动跟踪以启动自动跟踪。该按钮将高亮显示以指示其处于活跃状态,并将在页面重新加载时自动恢复跟踪。再次点击以取消激活。此时,控制器将使用一个结合了对象避免的在浏览器中的Rust/WASM CNN的Lucas-Kanade光流循环自主导航到充电盘!(注意:如果您更喜欢,仍然可以手动跟踪。只需点击充电盘,然后控制器顶部,再控制器底部)。架构:App.vue:处理相机流、UI反应、PID跟踪循环和OpenCV.js Lucas-Kanade光流(calcOpticalFlowPyrLK)的Vue 3应用程序逻辑。steamController.ts:WebHID抽象类,将标准API调用映射到Steam控制器的LRA脉冲和电池状态轮询的特定字节负载。objectDetector.ts和objectWorker.ts:将对象检测转移到Web Worker,以确保主跟踪循环保持流畅。wasm-object-detect/:为高性能视觉处理编译为WebAssembly的Rust实现。感谢:特别感谢Very Lazy Pixel为本项目提供灵感!请查看他们的视频:https://www.youtube.com/watch?v=g-8S8zk4dn8许可证:本项目根据MIT许可证进行许可 - 详情请参见LICENSE文件。

赞助内容

NordVPN Next-gen Antivirus

本站免费、广告极少。如果觉得有帮助,可以请我们喝杯咖啡 —— 任何金额都对持续运营有实际帮助。

请我喝杯咖啡