M5StickC Plusとは?
M5StickC Plusは、ESP32チップを搭載したコンパクトながら多機能を備えた開発ボードです。Wi-FiとBluetooth機能が内蔵されており、1.14インチのカラーディスプレイ、加速度センサー、赤外線エミッター、マイクロフォンなどが組み込まれています。このデバイスを使って、Kindleのページ送りデバイスを作る方法を紹介します。
必要な材料
- M5StickC Plus (今回はPlus2を使ってます。どれでもOK)
- USBケーブル
- PC<M1Mac>(Arduino IDEを使用)
ステップ1: M5StickC Plusの設定
M5StickC PlusをPCに接続し、必要なドライバをインストールします。Arduino IDEが未インストールの場合は、公式サイトからダウンロードしてください。
ステップ2: Arduino IDEでのプログラム環境の設定
Arduino IDEを開き、「M5StickC-Plus」をボードマネージャーからインストールし、ツールメニューから「M5StickC-Plus」を選択します。
ライブラリの導入
「BleKeyboard」と「M5Unified」ライブラリをArduino IDEからインストールします。
BleKeyboard
以下のライブラリー(最新版のZipファイル)をダウンロードします。
Arduino IDEの “Sketch” -> “Include Library” -> “Add .ZIP Library…” と進んで、Zipファイルを選択
M5Unified
M5Unifiedはライブラリマネージャーの検索窓に「M5Unified」と入力して、出てきた候補から「インストール」を押します。
ライブラリの導入は以上です。
ステップ3: スクリプトの解説
Arudino言語を使って、M5StickC Plusのボタンと加速度センサーを使用してKindleのページを送っています。
#include <BleKeyboard.h> // BLEキーボードライブラリをインクルード
#include <M5Unified.h> // M5Stackライブラリをインクルード
BleKeyboard bleKeyboard; // BLEキーボードオブジェクトの宣言
void setup() {
auto cfg = M5.config(); // M5Stackの設定を取得
M5.begin(cfg); // M5Stackを初期化
M5.Power.begin(); // M5Stackの電源管理を開始
bleKeyboard.begin(); // BLEキーボードを初期化
M5.Display.setBrightness(20); // ディスプレイの明るさを設定
}
void loop() {
if (bleKeyboard.isConnected()) { // BLEキーボードが接続されているか確認
M5.update(); // M5Stackの状態を更新
static unsigned long lastTime = 0; // 最後の時間を記録する変数(未使用)
float accX, accY, accZ; // 加速度センサー値を格納する変数
M5.Imu.getAccel(&accX, &accY, &accZ); // 加速度センサーの値を取得
if (M5.BtnA.wasPressed()) { // ボタンAが押されたか確認
if (accX > 0) {
bleKeyboard.write(KEY_RIGHT_ARROW); // 加速度が正の場合、右矢印キーを送信
} else if (accX < 0) {
bleKeyboard.write(KEY_LEFT_ARROW); // 加速度が負の場合、左矢印キーを送信
}
}
} else {
M5.Display.println("Waiting for connection..."); // 接続を待っている状態を表示
delay(2000); // 2秒待機
}
}
ステップ4: スクリプトのアップロード
Arduino IDEにスクリプトをコピーし、M5StickC Plusにアップロード「書き込み」をします。その後、M5StickC PlusをmacのBluetoothデバイスとしてペアリングします。
ステップ5: MacとのBluetooth接続
- M5StickC Plusにスクリプトをアップロード。
- Macのシステム環境設定から「Bluetooth」を選択。
- 「ESP32 Keyboard」が検出されたら「ペアリング」をクリック。
- 接続が確立したら、テキストエディタなどでテストします。
- iPadでも基本的には同じです。
応用例
このデバイスを使えば、
- プレゼンテーションリモコン
- 音楽プレーヤーのコントロール
- ゲームコントローラー
- スマートホームのリモコン
など、送信するキーバインドを変更するだけで、色々応用可能です。
他にもアイデア次第で色々なことができるM5stack。ぜひ楽しんでみてください!!