DAWでワウ・ペダルを物理的なデバイスでコントロールしたくて作った電子工作。 M5StickCというマイコンを使用した、ワイヤレスなMIDIコントローラーです。 M5Stack Innovation Contest に向けて作成したプロジェクトの記録です。
Hacksterに投稿した記事はこれ。
Wireless Expression Pedal HAT for M5StickC
以下は投稿内容の日本語版です。
個人的に「樹脂粘土を使ってHATを作る」というのが一番のポイントなんですが、あまり訴求できなかった気もします。あっちもこっちも推したいというのがだめなのかも。
Story
DAWでギターエフェクトプラグインのワウ(wah)をリアルタイムで操作したいと思ったことはありませんか? 多くのギタリストは、そのためだけに高価なMIDIキーボードや専用のフットコントローラーを用意する必要があります。
もし、お気に入りのエクスプレッション・ペダルを直接PCやスマートフォンに接続できたら、もっと手軽にDAWを楽しめるはずです。
このプロジェクトは、その願いを叶えるために生まれました。
エクスプレッション・ペダルからの信号を読み取り、Bluetooth MIDIに変換するデバイスを、M5StickC用のHATとして設計しました。これにより、わずかなコストで、あなたのペダルをDAWコントローラーとして活用できるようになります。

ユニークな点
M5StickCをBluetooth MIDIコントローラーにするプロジェクトや、マイコンでペダルの傾きを検出するプロジェクトは、コミュニティに多数存在します。しかし、このプロジェクトのユニークな点は、100均で買える樹脂粘土を使ってHATを自作したことにあります。今回使用したのはダイソーで100円で購入した製品です。
3Dプリンタを持っていなくても、そして、市販のProto HATが手に入らない場合でも、この方法を使えばすぐに自分だけのHATを作ることができます。これは、初心者でも手軽にM5StickCの拡張デバイスを作成できる、実用的かつ安価な解決策です。
制作上の注意点
配線したコネクタをポリマー粘土で覆う際には、事前にコネクタを絶縁してください。絶縁しないと、意図しない値が検出される可能性があります。絶縁には、ビニールテープのような手軽な素材で十分です。
ペダルとM5StickCの配線は以下のとおりです。
- Tip: 信号線 → G25 または G36
- Ring: 電源 → 3.3V
- Sleeve: GND → GND


使用した素材: 樹脂粘土(ダイソーで購入)、TRSフォーンジャック、3芯コード、2.54mmピッチのピンヘッダー、M5StickC(M5stickC Plusでも可)。

プログラムの工夫
一般的なエクスプレッション・ペダルは、ポテンショメーターの特性から、最小値と最大値が0から4095のフルレンジにならないことがよくあります(0から4095をMIDIの0から127にマッピングします)。そこで、このプロジェクトにはキャリブレーションモードを設け、ペダルごとの特性に合わせられるようにしました。
Bボタンを押すと数秒間キャリブレーションモードに入ります。その間にペダルを上下に動かすことで、最小値と最大値を自動的に検出し、フルレンジで使えるようになります。ESP32の特性から完全な精度は保証できませんが、ペダルのおおまかな動きを捉えるには十分です。
ぜひ、このアイデアをベースに、あなた独自の工夫を加えてみてください。
応募完了
以上がHackster.ioの記事の日本語版。最初に日本語で書いた文章をGooogle Geminiに添削してもらい英訳もしてもらいました。便利ですね、AIって。
8月18日にHackster.ioに投稿、応募フォームからコンテストに申請。20日に応募が完了したとメールが来ました。このメールはHackster.ioからじゃなくて、M5Stackの担当者(?)からの個人名で届きました。
応募完了後もプログラムのブラッシュアップを続けてて、そのへんはあとで書きます。
プログラムは、GitHubで公開しています。
最後に、プロジェクトの概要や仕様もまとめておきます。以下の内容は、プログラミングの時に手伝ってもらったClaudeに作ってもらったものです。
プロジェクトの概要
プログラムの目的
- M5StickCを使用したワイヤレス(Bluetooth MIDI)エクスプレッションペダルコントローラーの実現
- 楽器用エクスプレッションペダルの信号を読み取り、リアルタイムでMIDI CC信号として送信
ハードウェア構成
- マイコン: M5StickC (ESP32ベース) ※プログラムはM5StickC Plusでも同様に動きます。
- 通信方式: Bluetooth MIDI (NimBLEライブラリ使用)
- 入力: アナログ信号 (G36ピン) – エクスプレッションペダル接続
- 出力: MIDI CC#1 (モジュレーションホイール)、MIDIチャンネル1
主要機能
1. MIDI制御機能
- エクスプレッションペダルのアナログ値 (0-4095) をMIDI CC値 (0-127) に変換
- ノイズフィルタリング機能 (閾値: 5)
- 100Hz更新レート (10ms間隔)
- ボタンAでのノートオン/オフ機能 (C4, Note 60)
2. ペダル校正機能
- ボタンBによる手動校正開始
- 5秒間の校正期間中にペダルの最小・最大値を自動検出
- 校正値の不揮発性メモリ保存 (ESP32 Preferences)
- 校正中の進捗表示とリアルタイム値更新
3. バッテリー監視機能
- 測定方式: 非同期測定 (MIDI処理を妨げない設計)
- 更新間隔: 1分間隔
- 測定精度: 3回平均による精度向上
- 電圧範囲: 3.3V-4.1V (mV単位で処理)
- 表示方式: アイコン + パーセンテージ + 実際の電圧値
- 警告機能: 20%未満で赤、40%未満で黄色、15%未満で点滅
4. ユーザーインターフェース
- 液晶明度: 調整可能 (デフォルト: 64/255で節電)
- 接続状態表示: Connected時は水色背景、Waiting時は黒背景
- リアルタイム値表示: ADC値、MIDI CC値、バーグラフ表示
- デバッグ情報: 電圧値、M5ライブラリ値の併記
5. 電力管理
- 液晶明度調整による節電機能
- 非同期処理によるCPU効率化
- バッテリー残量の正確な監視とアラート
技術仕様
- ADC設定: 12bit解像度、3.9V範囲 (11dB減衰)
- BLEライブラリ: NimBLE-Arduino使用
- 更新性能: リアルタイム性を重視したdelay()フリー設計
- データ保存: 校正値の永続化対応
このプログラムは、プロの音楽制作・演奏環境で使用できる高精度かつ実用的なワイヤレスMIDIコントローラーを実現しています。
コメント