こんばんは、文京ウインドです。
以前に、QUADERNOの BluetoothがクラシックからBLE対応になる神アップデートについて投稿をしました。
あのときは合宿直前で見送りにしていましたが、M5Stack core2 を使って開発に成功いたしました!!
・M5Stack core2のプログラムは Arduino IDEを使用する
・ボードの選択は、「M5Stack 2.1.4 by M5Stack official」にします。(最新版ではない)
・ESP32 BLE Keyboard library をダウンロードしておきます。
https://github.com/T-vK/ESP32-BLE-Keyboard?tab=readme-ov-file
以下のコードを使ってください。
// QUADERNO 用 PAGER リモコン
// Arduino IDE 2.3.6
// BOARD: M5Stack 2.1.4 by M5Stack official
#include <M5Core2.h>
#include <BleKeyboard.h>
BleKeyboard bleKeyboard("M5Pager");
TouchPoint_t atTouchPoint;
void setup() {
M5.begin();
bleKeyboard.begin();
M5.Lcd.drawRect( 0, 130, 155, 100, WHITE); // back button
M5.Lcd.drawRect(165, 130, 150, 100, WHITE); // next button
M5.Lcd.setTextSize(5);
M5.Lcd.setTextColor(WHITE);
M5.Lcd.setCursor(20, 160);
M5.Lcd.println("BACK");
M5.Lcd.setCursor(180, 160);
M5.Lcd.println("NEXT");
}
void loop() {
M5.update();
if (bleKeyboard.isConnected()) {
if( M5.Touch.ispressed()) {
// タッチしたX座標、Y座標を取得する -> atTouchPoint.x, atTouchPoint.y
atTouchPoint = M5.Touch.getPressPoint();
//SEND (back)
if(atTouchPoint.x > 0 && atTouchPoint.x < 155 && atTouchPoint.y > 130 && atTouchPoint.y < 239) {
bleKeyboard.press(KEY_UP_ARROW);
bleKeyboard.release(KEY_UP_ARROW);
delay(100);
}
//SEND (next)
if(atTouchPoint.x > 165 && atTouchPoint.x < 320 && atTouchPoint.y > 130 && atTouchPoint.y < 239) {
bleKeyboard.press(KEY_DOWN_ARROW);
bleKeyboard.release(KEY_DOWN_ARROW);
delay(100);
}
}
}
delay(20);
}
コンパイルして書き込めば準備OKです。

QUADERNO とペアリングします。(第2世代、第3世代どちらにも対応しています)
楽譜を開いて、M5Stack のボタンに軽くタッチすると、譜めくり/戻しができます。QUADERNOの画面を指で触ってスワイプする必要がなくなり、めくりミスも無くなります。
M5Stack core2 の背面にはマグネットが埋め込まれていますので、譜面台に工夫して貼り付けることもできるでしょう・・

ボタンの位置が下に偏っているのがちょっと不自然に感じますよね?
そのうち画面の上半分にメトロノーム機能を追加したいので、わざと開けてあるのです。
5秒後、10秒後に譜めくり機能、ダルセーニョやコーダ対策の複数ページめくり機能など、あったら便利かもしれませんね?
ちなみに、2枚の QUADERNO を並べて同時に譜めくりはできません(試してみた)
それと、第一世代のQUADENROは Bluetooth classic なので、掲載したコードじゃ動作しませんのでご注意を・・。