USB HID

Arduino Uno R4 WiFiは、強力な開発ボードだけでなく、Human Interface Devices(HID)の内蔵サポートも備えています。これにより、このボードをマウスやキーボードなどのデバイスのエミュレーションに使用し、プロジェクトに新たな対話性を追加することができます。

HID、またはHuman Interface Devicesは、通常は入力目的で設計された、人間と直接対話するためのコンピュータデバイスのカテゴリです。このカテゴリにはキーボード、マウス、ゲームコントローラなどのデバイスが含まれます。Arduino Uno R4 WiFiを使用すると、これらのデバイスをエミュレートでき、DIYプロジェクトの可能性が広がります。

マウスコントロール

Arduino Uno R4 WiFiを使用してマウスを制御するのは簡単です。 Mouse.move(x, y) コマンドを使用すると、マウスの移動を簡単に制御できます。カーソル位置を更新する場合、常にカーソルの前回の位置を基準にします。

ここに、ボタンを使用してマウスカーソルを制御する単純な例があります。

回路図

../_images/06_hid_1_bb.png

コードのアップロード

elite-explorer-kit-main\r4_new_feature\06-hid_mouse にある 06-hid_mouse.ino ファイルを開くか、以下のコードをArduino IDEに貼り付けてください。

警告

Mouse.move() コマンドを使用すると、Arduinoがコンピュータのマウスを制御します!この機能を使用してスケッチを実行する際に、コンピュータの制御を失わないように、 Mouse.move() を呼び出す前に信頼性のあるコントロールシステムを設定してください。このスケッチには、マウスを切り替えるためのプッシュボタンが含まれており、ボタンを押すとスケッチが実行されるようになります。

警告

UNO R4 WiFiボードのマルチプロセッサアーキテクチャのため、HID機能を使用するコードをアップロードする際には、 「No device found on...」 のエラーが発生する場合があります。

このような状況でアップロードするには、以下の手順に従ってください:

  1. ボード上の「RESET」ボタンを2回速く押してリリースします。 「L」 と表示されているLEDが点滅し始めるはずです。

  2. Arduino IDEメニューから、ボードのポートを選択します。リセット後、ポートが変更されることがあるため、正しく選択されていることを確認してください。

マウスの移動を制御するだけでなく、マウスのクリックも扱うことができます。詳細については、 Arduino Reference - Mouse を参照してください。

キーボード制御

Arduino Uno R4 WiFiは、キーボードエミュレーションの機能も提供しています。これにより、個々のキー入力だけでなく、複雑なキーコンビネーションも送信できます。

警告

Keyboard.print() コマンドを使用すると、Arduinoがコンピュータのキーボードを制御します!この機能を使用してスケッチを実行する際に、コンピュータの制御を失わないように、 Keyboard.print() を呼び出す前に信頼性のあるコントロールシステムを設定してください。このスケッチには、キーボードを切り替えるためのプッシュボタンが含まれており、ボタンを押すとスケッチが実行されるようになります。

ショートカットキーを送信するためのサンプルコード

この場合、Arduino Uno R4 WiFiは、よく使用される2つのキーボードショートカットをエミュレートするように構成されています。「Ctrl+C」はコピー、「Ctrl+V」は貼り付けです。 Arduinoに接続された2つの物理ボタンがトリガーとして機能します。ピン7に接続されたボタンはコピー操作を開始し、ピン8に接続されたものは貼り付けをトリガーします。

ボタンを押すと、Arduinoは Keyboard.press() および Keyboard.releaseAll() 関数を使用して、それぞれのキーボードショートカットを模倣します。この例は、特定のタスク用の専用ハードウェアインターフェースを設計する方法を示しており、キーボードを介さずに繰り返しのアクションを実行し、キーボード操作が不要な場面で特に有利です。これは、データの迅速な操作が必要な職場や、簡略化されたコントロールが有益なアクセシビリティの設定で特に有益です。

回路図

../_images/06_hid_2_bb.png

コードのアップロード

elite-explorer-kit-main\r4_new_feature\06-hid_keyboard にある 06-hid_keyboard.ino ファイルを開くか、以下のコードをArduino IDEに貼り付けてください。

注意事項とヒント

  1. マウスとキーボードライブラリに関する注意: マウスまたはキーボードライブラリのいずれかが連続して実行されている場合、ボードのプログラムに干渉する可能性があります。 Mouse.move()Keyboard.print() などの機能は、接続されたコンピュータを制御するとみなされ、それらを管理する準備ができているときにのみ呼び出すべきです。この機能をトグルするための物理スイッチや特定の入力コントロールなどのコントロールシステムを使用することをお勧めします。

  2. コードのアップロードに関する問題: UNO R4 WiFiボードのマルチプロセッサアーキテクチャのため、HID機能を使用するコードをアップロードする際に 「No device found on...」 のエラーが発生する場合があります。

    このような状況でアップロードするには、以下の手順に従ってください:

    1. ボード上の「RESET」ボタンを2回速く押してリリースします。「L」 と表示されているLEDが点滅し始めるはずです。

    2. Arduino IDEメニューから、ボードのポートを選択します。リセット後、ポートが変更されることがあるため、正しく選択されていることを確認してください。

参考