おもしろ工作・プログラミング動画配信中!せでぃあのYouTube

Arduino UNO R4 MinimaのHID機能を使って、PCのマウスとキーボードをエミュレートする

Arduino UNO R4 MinimaのHID機能を使って、PCのマウスとキーボードをエミュレートする
  • URLをコピーしました!

この記事内には、プロモーションが含まれます。

スマイルSALE!

4/22まで!スマイルSALE開催中

こんにちは、せでぃあ(@cediablog)です。

Arduino UNO R3の後継機種であるArduino UNO R4 Minimaが発売され、本ブログではその新機能を紹介しています。

今回、新機能紹介記事の第三弾として、「HID(ヒューマンインターフェースデバイス)」という機能を紹介します。

Arduinoのタクトスイッチ(押しボタン)を押すことで、パソコン画面上のマウスカーソルが移動し、スプレッドシートのセルに自動で文字入力をさせる動作を行ってみました。

HIDを使って、スプレッドシートのセルに自動で文字入力をさせます
マウスカーソル移動とセルへの文字入力をArduinoから制御します
せでぃあ

この記事を読んだら、一度は試してみたくなる機能だと思いますよ!

この記事を読んでわかること
  • HID(ヒューマンインタフェースデバイス)機能の使い方
  • Arduinoからパソコンのキーボードとマウス操作をさせる方法
  • Arduino IDEでのプログラミング例
この記事を書いた人
せでぃあ

せでぃあはこんな人物です

✅プライム企業に勤める電気・機械設計エンジニア

✅親子の絆を深めるため、夏休みに子供と一緒に電子工作を製作

✅Arduinoプログラミングを用いて作ったプログラミング電子工作「信GO機」が市の発明くふう展で「優秀賞」を受賞

✅本ブログにてArduinoスクラッチプログラミングLESSON記事投稿中

✅YouTubeチャンネル「せでぃあブログちゃんねる」運営中

目次

HID(ヒューマンインターフェースデバイス)機能について

キーボードとマウス
HIDはキーボードやマウスの動作をArduinoから行えます

Arduino UNO R4 Minimaの新機能「HID(Human Interface Device)」は、パソコンのマウスやキーボードなど人間がPCに対して情報を与える機能をArduino本体側に持たせることができる機能です。

これはArduino Leonardo(レオナルド)という、Arduinoシリーズの基板が持っていた機能です。

Arduino UNOシリーズでもUNO R4 Minimaに進化することで、この機能が使えるようになりました。

HID機能でできることの例

・マウスカーソル動かす。
・マウスのクリック動作をさせる。
・文字列を入力する。

せでぃあ

Arduinoがマウスやキーボードの代わりに、PC上で動作させることが可能になるということです。

HID機能を使った動作の説明

今回は、ブレッドボード上のタクトスイッチ(押しボタン)を押してHID機能を実行する回路を作りました。

タクトスイッチを押して、HID動作を行います。
今回、タクトスイッチを押すことでHID機能を実行させます。
タクトスイッチを押すことで、スプレッドシート上のセルに自動で文字列を入力させます。
スプレッドシート上のセルに自動で文字列を入力させます。
HID機能を使った動作の説明
  • タクトスイッチを押す。
  • パソコン上のマウスカーソルが画面右下方向に移動する。
  • マウスカーソル移動後の位置で、クリック動作を行う。
  • 文字列「Hello!」を入力する。

このような、タクトスイッチを押すたびに実行される動作を作っていきます。

あらかじめ、スプレッドシートを開いてマウスカーソルをセル上に配置した状態で動作確認します。

動作確認するためには、Arduino本体とPCをUSBケーブルで接続した状態にする必要があります。

HID機能を使った、マウスとキーボードのエミュレート回路で使うもの

HID機能を使った、マウスとキーボードのエミュレート回路で使うもの
配線が完了しプログラム転送できる状態写真
準備するもの
  1. パソコン
  2. Arduino本体
  3. USBケーブル(typeC)
  4. ブレッドボード
  5. タクトスイッチ
  6. 抵抗(1kΩ)
  7. ジャンパー線(オスーオス)×4本

今回はELEGOO社のスーパースターターキットに含まれる部品を使っています。

キットに含まれる部品は、機器名後に【キット】と記載しています。

コスパ最強のArduinoキットに含まれる、すべてのパーツを紹介しています。

パソコン

プログラムを作成するために必要です。

プログラム制御の演算はArduino側で行うため、パソコンのSPECは一般的なモデルで十分対応可能です。

パソコンのOSはWindows、Macどちらでも対応可能です。

Arduino UNO R4 Minima本体

Aruino Uno R4 minimaの本体写真
Arduino UNO R4 Minima本体

今回は、Arduino純正品の「Arduino UNO R4 Minima」を使用します。

私は秋月電子通商にて購入しましたが、スイッチサイエンスやAmazonでも購入が可能です。

R4 Minimaが買える国内サイト

Amazon
スイッチサイエンス
秋月電子通商

Arduino UNO R4 Minimaの始め方は、こちらを参考にしてみてください。

せでぃあ

ピン配置などの基本的な仕様は、UNO R3と同じです!

USBケーブル(TypeC)

TypeC USBケーブル
TypeCのUSBケーブル

UNO R3は本体に接続する側の端子形状が(TypeB)でしたが、R4 MinimaではTypeC形状になります。

パソコンとArduinoを接続してプログラムデータのやり取りをするために必要です。

せでぃあ

USBケーブルは別売りなので、買い忘れに注意してください。

ブレッドボード【キット】

ブレッドボードの機能説明図
ブレッドボードの機能説明図

たくさんの穴が開いていて、部品の端子を穴に差し込むだけで電気的に接続が可能な板です。

説明図は30列のショート版ですが、スーパースターターキットに含まれる63列タイプでも機能は同じです

ブレッドボードだけの購入も可能です。

タクトスイッチ【キット】

押しボタンの説明
押しボタンの説明

今回の回路では、タクトスイッチ(押しボタンスイッチ)を使用します。

押しボタンは押されている間のみ、上記写真での2点が内部でつながります。

このようなボタンをモーメンタリボタンといいます。

今回は扱いませんが、ボタンから手を離してもONしたままになるボタンをオルタネイトボタンといいます。

モーメンタリ・オルタネイトボタンについては以下記事にて詳しく説明しています。

抵抗(1kΩ)【キット】

1kΩ抵抗と色による見分け方
1kΩ抵抗と色による見分け方

1kΩの抵抗を1本使用し、押しボタンスイッチに接続します。

抵抗を接続するのは、押しボタンがOFFのときにArduino本体がノイズによる誤検出することを避けるためです。

この記事では詳しく説明しませんが、ボタンを押していないのに押されたと誤認識されることを避ける目的であるということだけ覚えておいてください。

抵抗カラーコードの見分け方については、こちらの記事で詳しく説明しています。

ジャンパー線(オスーオス)【キット】

キットに同梱されているジャンパー線(オスーオス)の説明
ジャンパー線

ジャンパー線を4本使用します。

Arduino本体とブレッドボードの接続や、ブレッドボードの共通電源ライン(GNDまたは5V)からブレッドボード内の配線系統穴に差し込んで接続するのに使います。

HID動作確認回路の配線図

タクトスイッチを使ったHID動作確認回路の配線図
タクトスイッチを使ったHID動作確認回路の配線図

今回はタクトスイッチを押すことで、

これは、押しボタンを押すことでメロディー演奏を開始させるために使用します。

1kΩ抵抗もタクトスイッチに接続していますが、スイッチOFF状態では確実に電位が0Vになるようにしています。

HID機能を使ったマウスとキーボードのエミュレートプログラム

配線が完了した状態
配線作業が完了した状態

配線が完了したところで、HID機能確認プログラムを作っていきます。

マウスとキーボードのエミュレート方法

Arduino本体からPCに対して、マウスとキーボードの動作を行うためには、以下のオブジェクトを使います。

使用するオブジェクト

・Keyboardオブジェクト
・Mouseオブジェクト

それぞれのメソッドについて、詳しく説明していきます。

Keyboardオブジェクト

Keyboardオブジェクトはキーボードの役割をArduinoから実行する機能です。

スクロールできます
メソッド機能
begin()キーボードエミュレートを開始
end()キーボードエミュレートを終了
press()キーの押し下げキープ
print()文字列を入力
println()文字列を入力して改行する
release()キーの押し下げ解除
releaseAll()全キーの押し下げ解除
write()1つのキーストロークを送信
Keyboardオブジェクトのメソッド

使用例など詳しく知りたい方は、こちらを参照してください。

Mouseオブジェクト

Mouseオブジェクトはマウスの役割をArduinoから実行する機能です。

スクロールできます
メソッド機能
begin()マウスエミュレートを開始
click()クリック動作をさせる
end()マウスエミュレートを終了
move()マウスカーソルを移動
press()マウスボタンを押し下げキープ
inPressed()マウスボタン押し下げ状態確認
release()マウスボタン押し下げ解除
Mouseオブジェクトのメソッド

マウスカーソルの移動はmove()を使って、現在位置からの相対距離を指定して実行します。

Mouse.move(X移動量、Y移動量、ホイール移動量);

せでぃあ

クリックボタンのデフォルトは「左クリック」になります。

使用例など詳しく知りたい方は、こちらを参照してください。

Arduino IDEを開く

Arduinoの開発環境ソフトウェアである、Arduino IDEを開きます。

Arduino IDE2.2の画面
Arduino IDE2.2の画面

今回Arduino IDE2.2を使ってプログラムを作成しました。

プログラムを作成していきます。

USBケーブルで、Arduino UNO R4 Minimaと接続した状態で開くと、プルダウンから機種選択が可能です。

せでぃあ

機種選択は、プログラム作成後でも問題ありません。

Arduino IDE2.2のインストール方法については、こちらの記事で紹介しています。

動作プログラム

/* 作品名:UNO R4 Minima HID */
/* 作成者:せでぃあ https://cediablog.com */
/* HID機能を使ったキーボード・マウスエミュレート */

#include <Mouse.h>     // マウスHID制御用ライブラリの読み出し
#include <Keyboard.h>  // キーボードHID制御用ライブラリの読み出し

void setup() {
  pinMode(2, INPUT);  //2番ソケットを入力ピンとして使用

  Mouse.begin();     //マウスエミュレートを開始
  Keyboard.begin();  //キーボードエミュレートを開始
}

void loop() {

  //タクトスイッチが押されたときの動作プログラム
  if (digitalRead(2) == HIGH) {

    Mouse.move(50, 15, 0);  //マウスカーソルをXY方向に移動
    delay(300);             //0.3秒ウェイト
    Mouse.click();          //マウスクリック動作を実行

    Keyboard.print("Hello!");  //文字列"HELLO!"を出力
    delay(500);                //0.5秒ウェイト
  }
  delay(100);  //0.1秒ウェイト
}

タクトスイッチ(押しボタン)を押すと、マウスが移動してクリック⇒文字列入力を実行します。

せでぃあ

マウスの移動量や文字列をアレンジして、遊んでみてくださいね!

動作確認

せでぃあブログちゃんねる」より

プログラムをArduino本体に転送したら、動作確認します。

スプレッドシート画面上にマウスカーソルを配置されたら、タクトスイッチを押して動作確認してみてください。

せでぃあ

ArduinoからPCを操作できるなんて、楽しいですよね!

HID動作させるためには、USBケーブルでPCと接続した状態にしておく必要があります。

PCを制御できるとArduinoの世界が広がる!【まとめ】

Arduino UNO R4 Minimaになって、HID機能を使ったマウス、キーボードのエミュレートが出来るようになりました。

この機能を使うことで、スプレッドシートへの文字入力など作業の自動化も可能となります。

人の手によって操作されてきたことが、自動化できることで何かの作業をArduinoにお任せしたりできたらと思うと、一気にArduinoが活躍できる世界が広がった気がしてワクワクしますね!

以上で、Arduino UNO R4 MinimaのHID機能の紹介を終わります。

せでぃあ

HID機能は、Arduinoの活躍場面が広がったと感じられる機能でした!

最後まで読んでいただき、ありがとうございました。

Arduino R3互換品キットなら、本体と30以上の電子パーツが入って5,000円程度と高コスパです。

ELEGOOのArduino互換キットは本ブログのLESSONシリーズでも活用しています。

Arduino UNO R4 Minimaの新機能を紹介しています。

応援ありがとうございます(^^)/

Arduino UNO R4 MinimaのHID機能を使って、PCのマウスとキーボードをエミュレートする

この記事が気に入ったら
フォローしてね!

よかったらシェアしてね!
  • URLをコピーしました!

コメント

コメントする

CAPTCHA


目次