Program Resource

開発者向け各種コード、アルゴリズム、リソース情報ライブラリ もしくはねふぁの覚え書き

ESP32系はBluetoothマウスやキーボードとして動作させる事が出来る。少し前は処理の組み込みがやや面倒であったが、最近は便利なライブラリも出てきている。

今回はM5Stackを使って、Bluetoothキーボードとして動かし簡単なパワーポイント操作マシンとして動かしてみる。

Bluetoothキーボードとして動かすために、下記ライブラリをインストールしておく。残念ながら2020/4/9時点ではライブラリマネージャからはインストールできないので、zip形式でインストールする。

https://github.com/T-vK/ESP32-BLE-Keyboard

後は簡単。beginで初期化してpress/releaseを呼び出すだけ。M5Stackには3つボタンがあるので、それぞれを押した際にHome、Page Up、Page Downを送信する様にしてみた。ボタン長押し等でさらに違う動きを付けたりできるが、分かり易い様基本的な処理のみにしている。

#include <M5Stack.h>
#include <BleKeyboard.h>

BleKeyboard bleKeyboard("M5 Presenter");
bool blestate = false;

void showstate(char *txt) {
	M5.Lcd.setCursor(0, 120);
	M5.Lcd.fillRect(0, 120, 320, 20, BLACK);
	M5.Lcd.printf(txt);
}

void setup() {
	M5.begin();
	M5.Power.begin();

	bleKeyboard.begin();

	M5.Lcd.clear(BLACK);
	M5.Lcd.setTextSize(2);
	M5.Lcd.println("Presenter");
	M5.Lcd.println("A: Home");
	M5.Lcd.println("B: Page Up");
	M5.Lcd.println("C: Page Down");
	showstate("Disconnected");
}

void loop() {
	M5.update();

	if (bleKeyboard.isConnected()) {
		if (!blestate) {
			blestate = true;
			showstate("Connected");
		}

		if (M5.BtnA.wasPressed()) {
			bleKeyboard.press(KEY_HOME);
			bleKeyboard.release(KEY_HOME);
		} else if (M5.BtnB.wasPressed()) {
			bleKeyboard.press(KEY_PAGE_UP);
			bleKeyboard.release(KEY_PAGE_UP);
		} else if (M5.BtnC.wasPressed()) {
			bleKeyboard.press(KEY_PAGE_DOWN);
			bleKeyboard.release(KEY_PAGE_DOWN);
		}
	} else {
		if (blestate) {
			blestate = false;
			showstate("Disconnected");
		}
	}
}

スケッチ書き込み後M5Stackが動き始めるとBluetoothデバイスとして認識出来る様になる。Windows PCから検索するとM5 Presenterのデバイスが見つかるのでペアリングする。

後はM5Stackのボタンを押すとキーボードのHome、Page Up、Page Downキーを押したのと同じ動作になる。

動画に撮ってみた。

Print Friendly, PDF & Email

This post is also available in: 英語

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です


*

CAPTCHA