LoginSignup
22
15
お題は不問!Qiita Engineer Festa 2023で記事投稿!

新型の Arduino(Arduino Uno R4 Minima)を入手したので HID を早速試す! 【キーボード・マウスとして動かす】

Last updated at Posted at 2023-06-28

はじめに

Arduino の新型「Arduino Uno R4 シリーズ」が出て、日本では「Arduino Uno R4 Minima」の発売が開始されました。

自分は、スイッチサイエンスさんのサイトで購入し、それが手元に届きました。
秋月電子さんのサイトでも販売され始めたようです

早速、Arduino Uno R4 Minima を使ってみようと思います。今回、旧版にはなかった機能の 1つ「HIDサポート」を試します。

公式ドキュメントを見てみる

ドキュメントなどに関して、スイッチサイエンスさんの販売サイトに、公式ページなどへのリンクが掲載されています。
公式のドキュメントなどへのリンク

個人的に気になるのは、スタートガイドと HID の 2つです。

スタートガイド

スタートガイドのほうは、以下のページにリンクされています。

●Getting Started with Arduino UNO R4 Minima | Arduino Documentation
 https://docs.arduino.cc/tutorials/uno-r4-minima/minima-getting-started

ガイドに掲載されている手順は、シンプルに「IDE のインストールとボードマネージャーでのボードの追加」の 2つです。

HID について

HID に関するドキュメントは、以下へリンクされています。

●Arduino UNO R4 Minima USB HID | Arduino Documentation
 https://docs.arduino.cc/tutorials/uno-r4-minima/usb-hid

内容は、Arduino Uno R4 Minima をキーボード・マウスとして振る舞わせる方法で、こちらもシンプルな内容です。

実際に試してみる

スタートガイドの内容で準備を進める

IDE の準備

Arduino IDE をインストールしてない方は、公式の「Software」のページからダウンロード・インストールを行ってください。

自分は、Arduino IDE 2.1.0 がインストール済みなので、それを使っていきます(※ 環境は Mac です)。

ボードの追加

IDE で、以下の赤矢印で示した部分を選び、検索用のテキストボックスに「uno r4」などのキーワードを入力します。
ボードの追加
そして、「Arduino Uno R4 Boards」が出てくるので、それをインストールします。

ボード・ポートの選択

ボードの追加が完了したr、ボード・ポートを IDE の左上のプルダウンメニューから設定します。
ボード・ポートの選択
これで準備は完了です。

HID をを使ったサンプルを試す

Arduino Uno R4 Minima に搭載された「HIDサポート」を試してみることにします。

元にするサンプル

上で掲載したサンプルで、キーボードかマウスのどちらかの動きをさせるコードが出てきていたのですが、自分の何らかの入力に反応してキーボード・マウスの動きをするものを試すことにします。具体的には、以下のサンプルを使います。

●Keyboard Serial | Arduino Documentation
 https://docs.arduino.cc/built-in-examples/usb/KeyboardSerial

上記サンプルを選んだ理由は、「ボード単体で試すことができて、なおかつボードへの外部入力に対してキーボード・マウスの処理を実行させることができる」ためです(※ とりあえずのお試しに、電子工作パーツを取り出してくるのが面倒だったとも言う...)。

上記のサンプルは、シリアル通信で「a」という文字を送ると「その次の文字 b」のキー入力が行われたりするものです(※ 次の文字というところは、実装的に以下となっています)。
キー入力を返す部分

サンプルに少しだけ手を加える

このサンプルの処理に、マウスカーソルを動かす処理を付け加えてみることにします。

具体的には以下のとおりで、冒頭の #include "Mouse.h" と下から 3行目の Mouse.move(5, 0); を追加しています。

#include "Keyboard.h"
#include "Mouse.h"

void setup() {
  Serial.begin(9600);
  Keyboard.begin();
}

void loop() {
  if (Serial.available() > 0) {
    char inChar = Serial.read();

    Keyboard.write(inChar + 1);
    Mouse.move(5, 0);
  }
}

動作確認

上記をコンパイルしてボードに書き込み、動かして見た時の様子を動画で示します。

最初に「1」をシリアル通信で送ると、「2」が入力されて、それと合わせてマウスカーソルが少し右へ移動します。さらに、キー入力されたものをシリアル通信で送ると、数字は「3⇒4⇒5⇒...」とカウントアップしていき、マウスカーソルもどんどん右へと動いていきます(すごく地味なのですが...)。

シリアル通信経由の入力に対して、Arduino Uno R4 Minima がキーボード・マウスの操作の処理を行っていることが確認できました。

おわりに

今回、入手したばかりの Arduino Uno R4 Minima の、HIDサポートを試しました。

Arduino Uno R4 Minima は、Arduino Uno R3用のシールドなどがそのまま使えるようなので(※ 全てではないかも?)、自分が既に持っているシールドなどとの組み合わせを試せればと思います。

22
15
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
22
15