はじめに
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用のシールドなどがそのまま使えるようなので(※ 全てではないかも?)、自分が既に持っているシールドなどとの組み合わせを試せればと思います。