tl;dr
- スライドタイプの小型ジョイスティックデバイスを、マイコンを使って、PIMORONI Trackball互換デバイスにしたよ
- KMK Firmwareで動かしていたけれど、QMK Firmwareで動かしたらめっちゃ移動量多くてチューニングしたよ
- Boothにてモジュール販売中
ジョイスティックデバイスをPIMORONI Trackball互換モジュールにする
パレットシステムさんの作っているAZ1UBALLというプロダクトがあります。
こちらは、1Uに収まるトラックボールデバイスを、マイコンを使ってPIMORONI Trackballと同じI2Cプロトコルで動作するようにしたプロダクトです。
以前、こちらを使って操作デバイスを作ってみたことを記事にしました。
この「PIMORONI Trackballと同じI2Cプロトコルを採用する」というアイディアが凄く良いと思いました。QMK Firmwareや、KMK Firmwareでは既にPIMORONI Trackball用のモジュールが作られており、こちらを有効化するだけで使うことができます。さらに、操作感のチューニングをキーボードファームウェアに依存せず、デバイス側のマイコンで行うことができます。
これから、秋月で売られているジョイスティックデバイスを、マイコンを使ってPIMORONI Trackball互換モジュールにしてみたいと思いました。こちらを、実際に作り込み、天キーVol.4にて持ち込みました。
キーボードに付けたジョイスティックモジュールをチューニングした。2回こつこつっとやるとダッシュモードになって早く動かせる。 pic.twitter.com/qUuInTwNs0
— 74th (@74th) March 3, 2023
昨日チューニングした、このトラックポイントもどきも、Chromebook 置いて実際に何人か触っていただいて、操作感実用レベルになってるよねと言ってもらえた。
— 74th (@74th) March 4, 2023
あと結構ゲームパットのやつが通りがけにぺしぺしされていたw https://t.co/bGgT3zTrJY
この制作については既に記事にしました。
マイコンにはCH32V003を利用しました。これは秋月で50円で買える格安なRISC-Vマイコンです。
QMK Firmwareへの最適化
一方、KMK Firmwareで使えることは確認したものの、最もよく使われるQMK Firmwareでどのように使えるかを確認していませんでした。これは、自分がQMK Firmwareを使わずにKMK Firmwareを中心に使っていたため、面倒がったためです。Sparrow62v2が、左右分割にIOエキスパンダーMCP23017を使っていて、QMK Firmwareへの対応が簡単ではなかったのもあります。
しかし、モジュールを販売するためにはやはりQMK Firmwareで動きを確認する必要があると思っていました。そして、副業が一つ片付いたこともあって、やっと手を付けました。
実際にQMK Firmwareで動かしてみると、凄く俊敏に動きました。QMK FirmwareのPIMORONI Trackballには移動量を調整する PIMORONI_TRACKBALL_SCALE
というパラメータがあるのですが、これを最低にしても操作できないほど早く動きました。これは、KMK Firmwareよりも読み取り頻度が高く、移動量ではなく傾きを伝えるデバイスとしては大きくなりすぎたと考えました。
そこで、伝える移動量を分割するパラメータを、デバイスのマイコン側に追加しました。これにより、移動量を細かく制御することができるようになり、QMK Firmwareの標準パラメータで十分利用可能なぐらいになりました。
PIMORONI Trackball仕様のジョイスティックモジュール、細かく調整できるようにして、QMKでも使える感じになった。
— 74th (@74th) January 6, 2024
細かい操作も大きな操作もできて、より大きな操作に2回コツコツッてやるダッシュモードも完備。 pic.twitter.com/dOPOBvilc8
なお、ソースコードはこちらで公開しています。
QMK FirmwareでPIMORONI Trackball互換モジュールを動かすための手順も整備しました。
Boothにてモジュール販売中
QMK Firmwareに対応し、組み込みやすくなったところで、このデバイスをStickPointVと命名し、デバイスの販売を開始しました。
QMK Firmwareで使えるようにしたことで、I2Cが出ているOLED付きのキーボードなどで組み込みやすくなったのではないかと思います。
ぜひ組み込みをトライしてみてください。
対応キーボードと、モジュールはキーケットでも販売予定
このモジュールを作った当初から、より安定するケースつきキーボードである必要があると思い、GH60互換ケースに対応したキーボードSparrow60Cを設計しました。やはり、安定感が強いキーボードとの連携が、ポインターデバイスには最適です。
こちらは、今後キーケットで展示、販売予定です。デバイスと、組み込みキーボードSparrow60Cの両方を扱う予定です。
ぜひ、キーケットでは触って体感してみてください。
繰り返しになりますが、現在モジュール自体はBooth似て販売中です! きになりましたら、トライしてもらえると幸いです。