8

最近我发现了光学鼠标作为增量位置编码器的美妙之处。

光学鼠标通常包含一个组件,其中相机连接到图像处理器,图像处理器连接到 USB 接口。分辨率取决于相机分辨率。在互联网上很容易找到此类组件的数据表,其中还描述了如何使用它们进行读/写。

我首先需要解决的问题是如何确保在不禁用它所连接的 USB 端口的情况下,笔记本电脑/PC 不会将编码器鼠标视为指针设备。我需要使用 2 个编码器,这意味着我的 PC(运行 Windows XP)需要使用 3 个 USB 端口,一个用于鼠标作为指针设备,两个用于鼠标作为编码器。

第二个问题是如何通过 USB 端口从编码器鼠标读取/写入指令/数据?有人可以给我发一个 C++ 教程/示例的链接吗?

首先十分感谢,

斯特凡

4

2 回答 2

5

USB 鼠标微控制器可能经过硬编码以发送将自身标识为 HID 设备的 USB 帧。在这种情况下,您几乎没有希望成功阻止 Windows 将其用作鼠标。毕竟这是一只老鼠。

如果您在 DIY,您可以尝试通过拆焊组件/电线来破解鼠标板,并使用您的 arduino 直接控制编码器。这样,Arduino 可以从编码器读取数据并使用自己的 USB 串行端口将其发送到 PC。

看一个例子:

http://www.martijnthe.nl/2009/07/interfacing-an-optical-mouse-sensor-to-your-arduino/

有关 HID 设备的更多信息:http ://en.wikipedia.org/wiki/USB_human_interface_device_class 摘录:“与 USB HID 相关的 API 有两个级别:USB 级别和操作系统级别。在 USB 级别,有设备宣布其功能和操作系统解析其获取的数据的协议。然后操作系统为应用程序提供更高级别的视图,这些应用程序不需要包括对单个设备的支持,而是对设备类的支持。这种抽象层允许游戏与任何 USB 控制器一起工作,例如,即使是在游戏之后创建的。”

于 2012-05-03T14:09:13.383 回答
2

查看原始输入API,看看您是否可以通过这种方式接收事件并阻止 Windows 对其进行操作。

于 2012-05-03T16:10:13.353 回答