dfejza.com
制作物一覧
組み込み

USB HID入力自動化ツール

開発中· プレアルファ

Seeed Studio XIAO RP2040のハードウェア改造:マイクロコントローラーをマウスのスイッチ接点に直結し、ランダム間隔でクリックを発行。USB HIDタイミング、ハードウェアレベルのイベント注入、RP2040上のCircuitPythonを探求するプロジェクト。

CircuitPythonRP2040USB HIDHardware

AI生成: この技術解説はプロジェクトのソースコードからAIが作成したもので、不正確な記述を含む場合があります。

USB HID入力自動化ツールは、Seeed Studio XIAO RP2040上のハードウェア改造です。USB経由で仮想マウスを合成するのではなく、マイクロコントローラーを物理マウスのスイッチ接点に直接はんだ付けし、ランダムな間隔でその接点を短絡させることで、指で押したのと区別できない本物のクリックを発生させます。これは進行中の学習プロジェクトです。USB HIDディスクリプタ、ハードウェアレベルのイベント注入、RP2040上の組み込み電源管理を理解するために意図的に小規模に作った作品であり、完成品ではありません。

仕組み

クリックを自動化する方法は2つあります。仮想デバイスからUSB HIDレポートを発行するか、ホストの実際の入力ハードウェアを駆動するかです。この作品は後者を採ります。XIAO RP2040をマウスのボタンスイッチ接点に配線し、GPIOラインをトグルすると物理ボタンと同じ回路を閉じます。そのためクリックは、別途列挙されたHIDデバイスとしてではなく、マウス自身のコントローラーを経由してホストに届きます。基板は内蔵LiPoセルで駆動し、電源をホストに依存しません。

  XIAO RP2040 (CircuitPython)

        │ GPIO でスイッチ接点をトグル

  マウスのスイッチ接点 ──► マウスのコントローラー ──► ホスト(本物の HID クリック)
 
  内蔵 LiPo ──► XIAO RP2040(自己給電)

タイミング

クリックは固定スケジュールではなくランダムな間隔で発火するため、明らかな周期パターンを形成しません。間隔はアナログフロアノイズをシードとしたPRNGから得ます。アナログ入力のノイズフロアをサンプリングすることで、固定の定数に頼らず、起動時に非決定的なシードを得られます。

ステータス

これはprealphaであり、進行中の作品です。目的は出荷可能なツールではなく学習そのものにあります。USB HIDディスクリプタ、ハードウェア層での入力注入の仕組み、CircuitPythonでRP2040を内蔵バッテリー駆動させること、これらに実際に手を動かして取り組むことが狙いです。維持管理されたプロジェクトというより、これらのトピックに関するノートの一項目として捉えてください。