Arduino Keyboard.hライブラリの7つの関数説明とサンプルスケッチ(ソースコード)

Arduino
Arduino
記事内には広告が含まれています。

ラブラリに関しての説明

Arduino IDEの「Keyboard.h」ライブラリの7つの関数の解説とサンプルスケッチを載せてます。

Keyboard.hとは?

「Keyboard.h」は、ArduinoボードをUSBキーボードとして使えるようにするためのライブラリです。このライブラリを使うと、Arduinoを使ってコンピューターに文字やキーの入力を送信することができます。

単純なマクロキーボードならこのライブラリだけ完結できます。

主な機能

以下は、「Keyboard.h」ライブラリに含まれる主な機能とその使い方です。

1. Keyboard.begin()

この関数を使って、キーボードのエミュレーションを開始します。通常、setup()関数の中で呼び出します。

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

2. Keyboard.end()

この関数を使って、キーボードのエミュレーションを終了します。

void cleanup() {
  Keyboard.end();
}

3. Keyboard.press()

指定したキーを押し続けます。キーは、文字またはキーコードで指定できます。

void loop() {
  Keyboard.press('a');  // 'a'キーを押します
  delay(1000);  // 1秒待ちます
  Keyboard.release('a');  // 'a'キーを離します
  delay(1000);  // 1秒待ちます
}

4. Keyboard.release()

指定したキーを離します。

void loop() {
  Keyboard.press('a');
  delay(1000);
  Keyboard.release('a');  // 'a'キーを離します
  delay(1000);
}

5. Keyboard.releaseAll()

押されているすべてのキーを離します。

void loop() {
  Keyboard.press('a');
  Keyboard.press('b');
  delay(1000);
  Keyboard.releaseAll();  // すべてのキーを離します
  delay(1000);
}

6. Keyboard.write()

指定したキーを押して離します。つまり、キーの入力を1回シミュレーションします。

void loop() {
  Keyboard.write('a');  // 'a'キーを押して離します
  delay(1000);  // 1秒待ちます
}

7. Keyboard.print()

Keyboard.print(text)は、指定したテキストを連続的に入力します。Keyboard.write()とは異なり、複数の文字を一度に送信します。

#include <Keyboard.h>

void setup() {
  // Initialize the Keyboard
  Keyboard.begin();
  delay(2000); // Give some time for the system to recognize the device
}

void loop() {
  // Send the text "Hello, World!" to the computer
  Keyboard.print("Hello, World!");

  // Wait for 5 seconds before sending the text again
  delay(5000);
}

このプログラムは、Arduinoボードを接続したコンピュータに対して、5秒ごとに「Hello, World!」というメッセージを送り続けます。

Keyboard.hを使うときの注意点

  • 対応ボード: このライブラリは、USBキーボードとして機能する特定のArduinoボード(Arduino Leonardo、Arduino Micro、Arduino Dueなど)でのみ使用できます。一般的なArduino UnoやMegaでは使用できません。

ArduinoIDEを利用する場合Raspberry Pi PICOでも動作します。

応用

#include <Keyboard.h>  // Keyboardライブラリをインクルード

void setup() {
  // キーボード機能を初期化
  Keyboard.begin();
  delay(2000); // システムがデバイスを認識するための時間を確保(2秒間待機)
}

void loop() {
  // 例: "Hello World" を送信
  Keyboard.print("Hello World");
  delay(2000); // 2秒間待機

  // 例: 'a'キーを押して離す
  Keyboard.press('a');  // 'a'キーを押す
  delay(100);  // キーを短時間(100ミリ秒)押したままにする
  Keyboard.release('a');  // 'a'キーを離す
  delay(1000);  // 1秒間待機

  // 例: 'b'キーを押して離す
  Keyboard.write('b');  // 'b'キーを押して離す
  delay(1000);  // 1秒間待機

  // 例: 複数キーの組み合わせ(Ctrl + Alt + Del)
  Keyboard.press(KEY_LEFT_CTRL);  // 左Ctrlキーを押す
  Keyboard.press(KEY_LEFT_ALT);   // 左Altキーを押す
  Keyboard.press(KEY_DELETE);     // Delキーを押す
  delay(100);  // 100ミリ秒間待機
  Keyboard.releaseAll();  // 全てのキーを離す
  delay(1000);  // 1秒間待機

  // キーボード接続を終了
  Keyboard.end();
  delay(1000);  // 1秒間待機

  // キーボード機能を再初期化
  Keyboard.begin();
  delay(2000);  // 2秒間待機
}

各部分の説明

  1. ライブラリのインクルード
    #include <Keyboard.h>Keyboard
    • ライブラリをインクルードして、キーボード機能を使用できるようにします。
  2. 初期化 (setup関数)
    void setup() { Keyboard.begin(); delay(2000); }
    • Keyboard.begin()を呼び出してキーボード機能を初期化します。
    • delay(2000)は、システムがArduinoデバイスを認識するための2秒間の待機時間を設けています。
  3. メインループ (loop関数)
    void loop() { Keyboard.print("Hello World"); delay(2000);
    • Keyboard.print("Hello World")は、PCに「Hello World」を送信します。2秒間待機 (delay(2000))

    Keyboard.press('a'); delay(100); Keyboard.release('a'); delay(1000);
    • Keyboard.press('a')で’a’キーを押し、100ミリ秒後にKeyboard.release('a')で離します。1秒間待機 (delay(1000)

    Keyboard.write('b'); delay(1000);
    • Keyboard.write('b')で’b’キーを押して離します。1秒間待機 (delay(1000)

    Keyboard.press(KEY_LEFT_CTRL); Keyboard.press(KEY_LEFT_ALT); Keyboard.press(KEY_DELETE); delay(100); Keyboard.releaseAll(); delay(1000);
    • 左Ctrlキー (KEY_LEFT_CTRL)、左Altキー (KEY_LEFT_ALT)、およびDelキー (KEY_DELETE)を押します。100ミリ秒間待機 (delay(100))Keyboard.releaseAll()で全てのキーを離します。1秒間待機 (delay(1000))

    Keyboard.end(); delay(1000); Keyboard.begin(); delay(2000);
    • Keyboard.end()でキーボード接続を終了します。
    • 1秒間待機 (delay(1000))
    • 再びKeyboard.begin()でキーボード機能を初期化します。
    • 2秒間待機 (delay(2000))

このコードをArduino IDEに書き込んで、対応するボードにアップロードすると、指定されたキー操作がPCに送信されることが確認できます。

まとめ

「Keyboard.h」ライブラリは、Arduinoボードを使ってコンピューターにキーボード入力を送信するための強力なツールです。このライブラリを使えば、手軽にマクロキーボードや自動化ツールを作成できます。

こちらのHID-Project.hライブラリに関しても合わせてどうぞ!

コメント

タイトルとURLをコピーしました