キーボード自作したこと無いけどアレより簡単でしょ。
Why
今ノートパソコン使っていますが速度に限界を感じてきました。 なので新しいのが欲しいのですが別にノートじゃなくてもいいかなと思っていたのでデスクトップを組もうと思います。 そこで問題になるのが今使っているノートパソコンがThinkPadということです。そう、トラックポイントからは離れられないのです。 Think Keyboard使えばいいのでは?と思う方もいるでしょうが、あれはFnとCtrlが入れ替えられないのでダメです。 ついでに肩も疲れるので分割キーボードであるErgoDox EZを使おうかと思っています。 トラックポイントはキーボードのホームポジションから手を離さずにカーソル操作が可能です。 というわけでキーボードから手を離さずにカーソル操作ができるデバイスを作らなけれなならないと決心しました。
Do
部品
ボード
ファームとか面倒なんでArduinoを使います。Arduino Leonardo、又は互換を使用しましょう。普通のArduinoはダメです。それ知らなくて1000円ドブりました。
まぁブートローダーぶっ壊れた時に直せるという用途があるのでいいんですけどね。
Arduino LeonardoはUSB機器としてPCに認識させることができますのでUSBキーボードにもUSBマウスにもできちゃうのです。
Arduinoを刺すブレッドボード、とかピンとかそこらへんの説明は端折ります。Arduinoスターターキットみたいなのに入ってるでしょ。
カーソル
スライドパッド又はジョイスティックは好きなものを選んでください。多分これ一択。
そこに替えのトラックポイントの中をくり抜いて装着しました。
ボタン
ボタンもお好きなのを選びましょう。今回は適当にこちらを購入。
ただこれ押しにくいのでプラバンを固定して軽い力で入力できるようにしました。
その他
指に固定するのはベルクロを使いました。
ユニバーサル基板の下にはプラ板を敷いています。近くの模型屋で購入しました。
マスキングテープで巻き付けています。
工夫した所
ボタン入力は押し込むだけだから指からずれないんですがカーソル入力は360度グリグリいくので指の皮がたるんで入力しづらいのでガッチリ固定するためにプラ版を重ねて固定しています。
ベルクロの裏が痛いのでマスキングテープを貼っています。
指から減らす線を減らすために+と-をそれぞれ手元側で繋ぎました。
部品は大体秋月電子で揃います。店行って選んだほうがいいかなって思います。
それからはんだは良いものを使ったほうが良いです。それと変調機能がある半田ごて使ったほうが良いと思います。半田吸収する時に温度上げると楽だったり。良いもの使おう。
ソフトウェア
ここに置いてあります。
https://github.com/matsudamper/Arduino
横スクロールはここを参考にしてください。
https://arduino.stackexchange.com/questions/46055/can-the-mouse-library-scroll-horizontally
CとかC++で書けます。ココらへんは説明端折ります。
Visual Studio Codeで書くと良いですよ。 そのための設定もリポジトリにありますので参考にしてください。
Kotlinっぽく書きたくて一部クソコードになってます。お遊びです。
完成品
まだErgoDox EZが届いてないのでこんな感じで使っています。
欠点は外さないとストレッチとかできないことでしょうか。
マウス使わなくていいのでなかなか楽です。早くErgoDoxと一緒に使いたい。
おわり
欲しいものが無かったらどうするの?
無いものは作るしか無い。