デュアルトラックボール+LCDタッチディスプレイ付きキーボードについて

2024/12/11に公開

この記事は、キーボード #1 Advent Calendar 2024 の11日目の記事です。
https://adventar.org/calendars/10025
https://adventar.org/calendars/10116

前日の記事はぴろりどんさんの今年設計したキーボードを振り返る(2024)でした。
Tochka52は天キーで触らせていただきましたが、ケースやボタンの質感、打鍵音とすごくよかったのでいつか自分の設計でも参考にさせてもらいたいです!

はじめに

こんにちは。
今回は、自分が作った「デュアルトラックボール+LCDタッチディスプレイ付きキーボード」について書いてみようと思います。
読んでいただいた方に少しでも興味を持ってもらえると嬉しいです!

以前の記事~今の形になるまではここにまとめておきます。(気になる方はこちらもぜひ)

5月の天キーに初設計したキーボードを参加しました。
そこで感じたこと等をつめこんでブラッシュアップしたいな…と漠然に思っていました。
夏頃から設計に取り組み、こんな感じの流れでした。
(以前の記事も今回も通ずる部分はあるのでよかったら読んでください。)

https://twitter.com/mass_0X00/status/1791305449331179956
https://twitter.com/mass_0X00/status/1830151972059824460
https://twitter.com/mass_0X00/status/1831144106808267211
https://twitter.com/mass_0X00/status/1831631010137874551
https://twitter.com/mass_0X00/status/1825115965941821777

デュアルトラックボールについて

※トラボの技術的な記事は過去記事を参照ください。
やっぱりトラックボールあるだけあった方がいいですよね???
ということで・・・
伝わりにくいと思いますが、操作感としてはこんな感じです。
https://x.com/mass_0X00/status/1866143965977927756

二つのトラックボールの割り当ては、カーソルとスクロールが多いと思います。
右と左で役割を分けることでより【直感的】に操作ができ、さらに・・・
同時に動かすこともできるので、プログラミングやモデリングなどPC作業を【効率的】にできます。
大玉をベアリング支持することで、モデリング時の繊細な操作から大画面操作まで快適にできてよいです。

設計面でも一体型・SPI通信でセンサーを載せる場合、二つ目のセンサーは1ピン追加するだけで載せれます。
すごいお得(?)ですよね!!!
ロータリーエンコーダー載せるよりピン数を節約しつつ、XY2軸分制御できます!!!

デュアルトラボはすごく気に入っているのでもっと色んな方に使ってもらいたいし、
デュアルトラボキーボードの設計事例も増えてくれたらいいなと思います。

あと大玉になってくるとこんな感じの補正はいらなくなってくるかも…
(好みがあるので、あってもいいとは思います。)
ジョイスティックにはお勧めです。
https://twitter.com/mass_0X00/status/1858173528408989869

タッチディスプレイについて

あまり使わないコマンドは覚えておくの無理ですよね?笑
そこでタッチディスプレイを搭載して、アイコン表示・マクロの登録できるようにしてみました!
https://x.com/mass_0X00/status/1866144180038455574

実現したいこと

  1. ショートカットを自由に登録したい
  2. アイコンを自由に登録したい
  3. ランチャー機能もほしい
  4. タッチディスプレイのレイヤーが欲しい
  5. その他

どのようにしたか

Vialから設定できるようにしてしまえば大体が解決するのでは?
ということで、出来そうか調べてみました。
タッチ信号をマトリクススキャンの中に組み込めば出来そうだったため、試しに実装したところ上手くいきました。

簡単に書いてしまいましたが、ドライバーやキースキャンをがっつり編集する必要があり、なかなか大変でした。
各詳細は次のようになりました。

1.ショートカットを自由に登録したい

Vialには元々マクロ機能が備わっているため、その機能を使わせてもらうことしました。
コードを書かなくても、Vialで好きなコマンドをタッチディスプレイに登録が可能です。

タッチディスプレイの表示領域を中心+円周上に6カ所分割し、
それを通常のキー入力とみなすようにしました。

2.アイコンを自由に登録したい

頻度の多くないショートカットはキーに登録してもなかなか覚えておくのが大変ですよね。
ということで、アイコンを自由に設定できれば解決するかなと思い実装を予定しています。
自由にと書きましたが、あらかじめアイコンを登録し、Vial上から変更できるようにする予定です。

3.ランチャー機能もほしい

これもマクロ機能で解決しました。
windowsの場合、ショートカット(起動アイコン)のプロパティから起動用のショートカットを登録することが出来ます。
これにより、特別なアプリは入れずにVialのマクロ登録でランチャー機能の実現が出来ました。

4.タッチディスプレイのレイヤーが欲しい

タッチディスプレイをレイヤー管理することで、アプリ毎に切り替えることが出来ます。
こんな感じで複数レイヤーを切り替えることが出来ます。
https://twitter.com/mass_0X00/status/1851618083905159449

5.その他

ディスプレイに色々な情報を表示したり、後は他にもこんなこと出来ないかなぁ…というのは頭の中にあります。
お見せできるように開発を進めていくので、あたたかい目で見守って頂けると幸いです。

6.処理の流れ

上記の処理をフローにまとめると下図のようなイメージとなりました。

設計してみて

デュアルトラックボールとタッチディスプレイということで、もりもり?な仕様になってしまいました。
実際に使ってみると想定以上に快適なため、試作が完成してからメイン機は完全にomni CS 47になってしまいました。
以前は効率重視で考えていましたが、今の形が出来た時に想定以上に見た目に愛着があることに気づいたのは自分としても新しい発見でした。

明日の記事

明日はtechmechさんの「続GH60互換ケース対応キーボード」です。
互換ケースでの設計はしたことないのでどのような記事か楽しみです。
トラックポイント搭載のですかね???

さいごに

キーボードが完成して落ち着いたら、もう少し深掘りした記事も書きたいなと思っています。
現在は機能の作成や筺体の細かな修正などをしています。
進捗等はX(旧Twitter)でもつぶやいています。
よければフォローしてください。
この記事では、omni CS 47で書きました。

GitHubで編集を提案

Discussion