自作キーボードにトラックパッドとロータリーエンコーダーを増設する(M5Dial使用)
M5Dialは、中国深圳に拠点を持つスタートアップ企業M5Stack社が開発した小型のマイコンモジュール。1.28 インチの円形タッチスクリーンと、本体の周囲を取り囲む大きなダイヤルを備えています。
今回はこのM5Dialを、自作キーボードErgoArrowsと組み合わせて、後付けのトラックパッド+ロータリーエンコーダとして活用したいと考えました。
実際の作業時間は1時間足らず。電子工作というのもおこがましい素人工作ですが、お手持ちの自作キーボードにポインティングデバイスを取りつけたい方の参考になればということで、作業の手順を書き記しておきます。
M5Dialをトラックパッド化する
M5Dialのトラックパッド化手順については、74thさんが詳しく解説してくださっており、必要なコードも公開されています。
基本的にこの手順に従って作業すれば、問題なく動作すると思われます。
今回私はUSBポートを上向きに出したかったので、180度回転させた状態で動作するようにコードを少しだけ修正して使わせてもらいました。
電子工作は初めてで、プログラムの転送方法などがまったくわからないという方は、こちらの本がオススメです(私が調べた範囲では、M5Dialの使い方について解説している書籍はこれだけでした)。
また、PlatformIOを使うことで、VSCodeから直接M5Dialにプログラムをアップロードできるようになります。自分の環境に合わせてプログラムの修正などを行う場合はオススメです。
M5Dialを自作キーボードに取りつける
M5Dialの固定方法は簡単で、直径45mmの穴があれば、本体そのものをネジのようにしてそこに取りつけることが可能です。
実際にはM5Dialをマウントするプレートを作成して、そのプレートをどうにかしてキーボード本体に固定することになるでしょう。
自設計のキーボードであれば、スイッチプレートを拡張してM5Dial用のマウント穴を空けるなり、キーボードケースにM5Dial固定用の空間を設けるなり、好きな方法が選べるのですが、すでに組み立て済みのキーボードに後付けするのは、ちょっとした工夫が必要になります。
今回のErgoArrowsへの取りつけに当たっては、blockさんが考案した方法を参考にさせていただきました。
このようにスイッチプレートと本体の基板の間にM5Dial取り付け用のプレートを差し込んで、後からキースイッチを射しこむことで固定するという方法を私もそのまま踏襲させてもらっています。
(私の場合は人差し指で操作したかったのでM5Dialの取りつけ位置がキーボードの側面になっています。)
とりあえず現在は位置決めのための仮設状態なので、3mm厚のプラダンで固定しています。しばらくこれで使ってみて、問題なければアクリルプレートを発注する予定。
PCとの接続および電源をどうするのか問題
今回M5への電源供給とPCへの接続は、USBケーブルで行っています。キーボード本体とは別にケーブル接続が必要なので正直見映えはあまりよくないのですが、私のErgoArrowsは有線仕様のため、左右間接続用のTRRSケーブルもあって元々ごちゃごちゃしているので今さら気にしないことにしました。
ErgoArrows、M5DialともにBluetooth接続に対応しているので、これらのケーブルをすべて排除することも可能です。ただしその場合にも、M5Dialを駆動するための電源はなんらかの形で供給してやる必要があります。
後付けトラックパッドとしてのM5Dialの使用感
トラックパッドとしての性能は、正直「普通」です。
さすがにMagicTrackpadあたりと比べると厳しいです。2本指のジェスチャーにも対応してないですし、そもそも画面サイズが小さいので。
ですが、メインではない補助的なポインティングデバイスとして見れば、充分に実用的な性能を備えていると思います。
ホームポジションから最小限の手の移動でトラックパッドの操作が行えるというのが、キーボードにポインティングデバイスを搭載したときのメリットなのですが、その役目はきっちり果たしてくれます。
また、ErgoArrows側のキーのひとつをマウスボタンに設定することで、M5Dialの本体だけでは困難なドラッグアンドドロップの操作もストレスなく行えるようになりました。ErgoArrowsは本体のキー数に余裕があるので、こういうときに便利です。
M5Dialを取りつけた理由
そもそもなんでErgoArrowsにM5Dialをくっつけようと思ったのかというと、実はトラックパッドではなくロータリーエンコーダー機能が欲しかったんですよね。
私が愛用している他のキーボード、N51GLやcocot46plus、Atalanteはすべてキーボードの中央に大径のロータリーエンコーダーを搭載しており、これでスクロール操作を行うのがとても快適なのです(マウスなどのスクロールホイールよりも少ない力で回すことができるので)。
とはいえ、ErgoArrowsのキー配列を私は最高に気に入っており、ErgoArrowsにロータリーエンコーダーがあれば最高なのにと常々思っていました。
そして付いてないなら付けてしまえ、ということで目をつけたのがM5Dialだったのです。
なのでM5Dialがトラックパッドとしても優秀だったのは、わりと予期せぬ副産物というか嬉しい誤算でした。
ちなみにM5Dialのロータリーエンコーダー機能は、文句なしにめちゃめちゃいいですよ。ダイヤル径がでかいので軽い力で回せますし、回転の速度に応じてスクロール量が変化するので、狙ったとおりの位置にスクロールすることができます。もう本当これだけでもM5Dialを取りつける価値があるかも。
終わりに
ここ数年、自作キーボード界隈の技術の進歩はグリプス戦役末期のMS並に凄まじく、トラックボールやトラックパッドなどのポインティングデバイスを搭載したキーボードも多くなりました。
とはいえ、ポインティングデバイス付きのキーボードのキー配列が必ずしも自分の希望に添うとは限りませんし、今使っているキーボードに愛着のある方も多いと思います。
そんなときに気軽に後付けできるポインティングデバイスとして、M5Dialはひとつの選択肢になるのではないでしょうか。
その際にこちらの記事が参考になれば幸いです。
最後になりましたが、M5Dialトラックパッド化の手順を公開してくださった74thさん、先行事例としてErgoArrowsへのM5Dialの取りつけ方法を公開してくださったblockさんに深く感謝いたします。
この記事はもちろん ErgoArrows + M5Dial で書きました。