arduino - 通过 Arduino 直通用于 USB 的 Diy 可编程宏
问题描述
我有一个允许编程宏的罗技鼠标,但它缺少一些我所追求的功能。我正在寻找的功能:
- 跨平台
- 无需刷新新固件即可轻松更改宏及其绑定
以下是我迄今为止在研究中发现的替代方案:
1) Windows的“AutoHotKey”和 Linux的“AutoKey”。这里的问题是我找不到确凿的证据表明它可以在我的 PC 上的所有游戏中运行,同时不会触发像“VAC”和“Easy Anti-Cheat”这样的反作弊引擎的禁令。人们使用“AutoHotKey”制作机器人脚本,当他们的光标经过敌人时触发,因此它可能会被反作弊引擎彻底禁止。
2) 添加对“GIMX”软件堆栈的键盘和鼠标的支持。'GIMX' 已经建立了用于拦截用户输入和应用宏的代码,因此我可以将现有的 'GIMX' 设置用于我的 PS3 - 如下所示:
keyboard and mouse --> RPi --> 'GIMX' adapter --> PC.
3) 最后,使用微控制器和 USB 主机屏蔽将每个 USB 外设连接到与主 MCU 通信的从 MCU。从属 MCU 单元将转换设备特定的宏触发器(例如,将额外的鼠标按钮重新映射为 FPS 武器的数字键或键盘组合)。主 MCU 将处理由键盘和鼠标触发的宏,然后最终通过内置 USB 串行 CDC 将其传递到我的 PC。
keyboard --> USB host shield --> slave mcu --|
master mcu
mouse --> USB host shield --> slave mcu --|
看看这个例子(源代码),也许我可以将 Arduino 的串行 API 用于主 MCU?另外,我怎样才能让三个 Arduino 兼容的 MCU 进行通信而不导致游戏影响延迟?也许是SPI?我想走硬件路线,使用方法二或三。最好是三个。但是,我不知道如何实施方法三。我不知道 USB 通信是如何工作的,所以我不能推出自己的库——但我知道如何用 C++ 编写代码。所以,如果有人能向我指出一些资源和 Arduino 库,那就太好了。
可能的 Arduino 库:
- 键盘
- Arduino HID 项目https://github.com/NicoHood/HID
- USB 主机屏蔽库 2.0 https://github.com/felis/USB_Host_Shield_2.0
编辑0:
- 网上找到了一个简单的 USB 中继,它通过蓝牙模块捕获和发送 USB 数据包。我将研究它以弄清楚它是如何工作的,以及如何添加可编程宏功能。
- github.com/juancgarcia/HID-Relay
- 为了满足我在主 MCU 上存储宏配置文件的要求,我将为 PC 保留一个特殊的十六进制代码,以向继电器软件发出信号,将配置数据存储在 EEPROM 中。
解决方案
推荐阅读
- amazon-web-services - 我应该使用什么服务器地址(mosquitto 代理 url)将 node-red 连接到 mosquitto?
- reactjs - 当尝试使用 fetch 在 Cypress IO (JS) 中针对 React 应用程序存根请求时,请求仍会调用服务器
- mongodb - 在mongodb中获取最大_id
- arrays - 在数组结构内调用 init
- django - 如何通过模型显示来自多对多的字段值
- python - 从文件读取时删除格式
- sql - 何时将 JOIN 操作从数据库层移动到服务层?
- flutter - Flutter - 图像在 FlatButton 内根本不显示
- r - 如何在 R 中定义一个新的类方法?
- python - PowerBI - Pandas isnull().sum() 索引