M5Stack Core2 を使った、タッチ操作対応の BLE ショートカットデバイスです。
画面をタッチして PC にキーボード入力を送信し、利用シーンに応じてレイアウトプロファイルを切り替えられます。
現状の実装では M5Unified を前提に、以下の構成で動作します。
- タッチパネル上のグリッドをキーとして扱う
- BLE キーボードとして PC にキー入力を送る
- 画面上に現在のレイアウトとアクティブセルを描画する
- タップ時にスピーカー音とプログラマブル LED アニメーションで反応する
- ボタン
A/Cでプロファイルを切り替える
- デバイス:
M5Stack Core2 - ライブラリ:
M5Unified - スケッチ:
ShortcutCore2.ino - ボード設定:
sketch.yaml
sketch.yaml では以下の FQBN が設定されています。
default_fqbn: esp32:esp32:m5stack_core2起動後はタッチグリッドが表示され、各セルに割り当てられたラベルが表示されます。タッチ中のセルはハイライトされ、対応する HID キー入力が BLE 経由で送信されます。
- タッチ: 対応セルのキーアクションを送信
- 長押し:
repeatEnabledが有効なアクションのみリピート送信 BtnA: 前のプロファイルへ切り替えBtnC: 次のプロファイルへ切り替え
現在のデフォルトプロファイルは次の 2 種類です。
EAGLE SchematicEAGLE Board
src/Profiles.cpp では、用途別にキーアクションをまとめたレイアウトを定義しています。
2 行 x 3 列、合計 6 アクションです。
| ラベル | 入力 |
|---|---|
ESC |
Escape |
MOVE |
Ctrl + M |
NET |
Alt + N |
ADD |
Shift + Ctrl + A |
COPY |
Shift + Ctrl + C |
DEL |
Ctrl + D |
2 行 x 2 列、合計 4 アクションです。
| ラベル | 入力 |
|---|---|
ESC |
Escape |
ROUTE |
Ctrl + 1 |
RIPUP |
Shift + Ctrl + R |
MOVE |
Ctrl + M |
ショートカット内容を変更したい場合は、主に src/Profiles.cpp を編集します。
基本的な流れは次のとおりです。
KeyActions::SINGLE/CTRL/ALT/SHIFT_CTRL/TEXTを使ってアクションを定義するLayoutProfileのrows、cols、actionCountをレイアウトに合わせて設定する- 必要なら
src/DeviceConfig.hでデフォルトプロファイルや長押しリピート設定を調整する
アクション定義の例:
eagleSchematic[1] = KeyActions::CTRL("MOVE", HidKeyCode::M, false);
eagleSchematic[2] = KeyActions::ALT("NET", HidKeyCode::N, false);- 画面更新は状態変化ベースで行い、常時全面再描画を避けています
- タッチ入力、描画、キーボード送信、LED / 音は分離された構成です
- 将来の左手デバイス機能追加を見据えて、プロファイル差し替えしやすい構造になっています