8

最近、インクリメンタル ポジション エンコーダとしての光学式マウスの優れた点に気付きました。

通常、光学式マウスには、USB インターフェイスに接続されたイメージ プロセッサにカメラが接続された 1 つのコンポーネントが含まれています。解像度はカメラの解像度に依存します。インターネットでは、このタイプのコンポーネントのデータシートを簡単に見つけることができ、コンポーネントの読み取り/書き込み方法も説明されています。

私が最初に解決しなければならない問題は、エンコーダ マウスが接続されている USB ポートを無効にすることなく、ラップトップ/PC からポインティング デバイスとして認識されないようにする方法です。2 つのエンコーダを使用する必要があるため、PC (Windows XP を実行) で 3 つの USB ポートを使用する必要があります。1 つはポインティング デバイスとしてのマウス用、2 つはエンコーダとしてのマウス用です。

2 番目の質問は、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 レベルとオペレーティング システム レベルの 2 つのレベルがあります。USB レベルでは、デバイスがその機能をアナウンスするためのプロトコルと、オペレーティング システムが取得したデータを解析するためのプロトコル. オペレーティング システムは、個々のデバイスのサポートを含める必要はなく、デバイスのクラスのサポートを含める必要がない、より高いレベルのビューをアプリケーションに提供します. この抽象化レイヤーを使用すると、ゲームの後に作成されたものなど、任意の USB コントローラーでゲームを動作させることができます。」

于 2012-05-03T14:09:13.383 に答える
2

Raw Input API を調べて、その方法でイベントを取得し、Windows がそれらに作用するのをブロックできるかどうかを確認してください。

于 2012-05-03T16:10:13.353 に答える