【M5Stackで遊ぼう】M5AtomをBLEキーボードにするアプリの作り方(BLE Keyboard)

ATOM Matrix/Lite
けんろう
けんろう

M5Stackには、様々なライブラリーがあります

今回は、BLE Keyboardライブラリを使ったBLEキーボードアプリの作り方を紹介します。

M5StackをBLEキーボードに変えることができます。 

この記事に載っているサンプルコードをコピーして、Arduino IDEでコンパイルしM5Stack(M5Atom)に書き込めば、簡単に動きを確認できますので、是非試してみて下さい。

この記事では、初心者にもわかりやすいように、各処理の内容を、サンプルコード内にコメントとして載せています。

スポンサーリンク

今回作成するアプリ

今回紹介するアプリは、2つ

アプリ1
M5Atomのボタンを短押しすると、”Hello World”を入力
M5Atomのボタンを長押しすると、「Return」キーを入力

アプリ2
M5Atomのボタンを短押しすると、選択範囲をコピー(「Ctrl」+「C」を入力)
M5Atomのボタンを長押しすると、コピーしたものを貼り付け(「Ctrl」+「V」を入力)

環境準備

本アプリを動かすために、以下のライブラリが必要です。

ESP32 BLE Keyboard library:M5StackシリーズをBLEキーボードとして扱うためのライブラリ

公式サイト

ESP32 BLE Keyboard library の公式サイトは、こちら。

ライブラリのインストール方法

インストール方法は、以下です。

公式サイトから ESP32-BLE-Keyboard.zip をダウンロード

②ArduinoIDEに、ライブラリを登録する

Arduino IDE のメニューで [スケッチ] – [ライブラリをインクルード] – [.ZIP形式のライブラリをインストール…] をクリック
さきほどダウンロードした ESP32-BLE-Keyboard.zip を選択

サンプルコード

アプリ1

#include "M5Atom.h"
#include <BleKeyboard.h>  // https://github.com/T-vK/ESP32-BLE-Keyboard

BleKeyboard bleKeyboard("M5ATOM KB");  //デバイス名

const int longPress_ms = 300;  // 長押し判定時間(ms)

void setup() {

  M5.begin(true, false, true);
  M5.dis.drawpix(0, 0x000000);  // LED OFF

  Serial.begin(115200);
  Serial.println("BLEキーボードアプリ開始");
  bleKeyboard.begin();
}

void loop() {

  M5.update();

  // BLE接続中かどうか
  if(bleKeyboard.isConnected()){
    // ATOMのボタンを押下されているか
    if(M5.Btn.wasPressed()){
      // M5ATOMのボタンが押されたら一定時間待つ
      delay(longPress_ms);
      // // キーが押されたままだったら長押しと判定
      if(M5.Btn.read() == true){
        // 長押し時の処理
        M5.dis.drawpix(0, 0x00f0f0);  // LED MAGENTA

        Serial.println(" 長押し時は、Returnキー押下 を送信 ");
        bleKeyboard.write(KEY_RETURN);
        delay(100);
      // キーがリリースされていたら短押しと判定
      }else{
        // 短押し時の処理
        M5.dis.drawpix(0, 0xf00000);  // LED GREEN

        Serial.println(" 短押し時は、文字列 Hello World を送信 ");
        bleKeyboard.print(" Hello World ");

        delay(100);
      }
    }
    // BLE接続であることを、ATOMのLED(青)を知らせる
    M5.dis.drawpix(0, 0x0000f0);  // LED BLUE
  }else{
    // BLE未接続であることを、ATOMのLED(赤)を知らせる
    M5.dis.drawpix(0, 0x00f000);  // LED RED
  }
  delay(10);
}

動かし方

①Arduino IDEにつないで、サンプルコードをM5Atomに書き込みます。

②パソコンのメモ帳を開いてください。

③M5Atomのボタンを短押しすると、メモ帳に、”Hello World”が入力されます。

④M5Atomのボタンを長押しすると、改行が入力されます。

アプリ2

#include "M5Atom.h"
#include <BleKeyboard.h>  // https://github.com/T-vK/ESP32-BLE-Keyboard

BleKeyboard bleKeyboard("M5ATOM KB");  //デバイス名

const int longPress_ms = 300;  // 長押し判定時間(ms)

void setup() {

  M5.begin(true, false, true);
  M5.dis.drawpix(0, 0x000000);  // LED OFF

  Serial.begin(115200);
  Serial.println("BLEキーボードアプリ開始");
  bleKeyboard.begin();
}

void loop() {

  M5.update();

  // BLE接続中かどうか
  if(bleKeyboard.isConnected()){
    // ATOMのボタンを押下されているか
    if(M5.Btn.wasPressed()){
      // M5ATOMのボタンが押されたら一定時間待つ
      delay(longPress_ms);
      // // キーが押されたままだったら長押しと判定
      if(M5.Btn.read() == true){
        // 長押し時の処理
        M5.dis.drawpix(0, 0x00f0f0);  // LED MAGENTA

        Serial.println(" 長押し時は、Ctrl+C を送信 ");
        bleKeyboard.press(KEY_LEFT_CTRL);
        bleKeyboard.press('c');
        delay(100);
        bleKeyboard.releaseAll();

        delay(100);
      // キーがリリースされていたら短押しと判定
      }else{
        // 短押し時の処理
        M5.dis.drawpix(0, 0xf00000);  // LED GREEN

        Serial.println(" 短押し時は、Ctrl+v を送信 ");
        bleKeyboard.press(KEY_LEFT_CTRL);
        bleKeyboard.press('v');
        delay(100);
        bleKeyboard.releaseAll();

        delay(100);
      }
    }
    // BLE接続であることを、ATOMのLED(青)を知らせる
    M5.dis.drawpix(0, 0x0000f0);  // LED BLUE
  }else{
    // BLE未接続であることを、ATOMのLED(赤)を知らせる
    M5.dis.drawpix(0, 0x00f000);  // LED RED
  }
  delay(10);
}

動かし方

①Arduino IDEにつないで、サンプルコードをM5Atomに書き込みます。

②パソコンのメモ帳を開いてください。

③メモ帳に、なにか入力してください。それをマウスで選択してください。

③M5Atomのボタンを短押しすると、選択した範囲がコピーされます。

④M5Atomのボタンを長押しすると、選択した範囲をメモ帳に貼り付けされます。

\ M5Stackで遊ぶなら、AWS連携が可能な以下のキットがお薦め /

まとめ

今回は、BLE Keyboardライブラリを使って、M5AtomをBLEキーボードに変えるアプリの作り方を紹介しました。

コメント

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