##前説
自作のトラックボールを考えてたのは結構前からだけど、単純にマウスを流用すると動作が逆になってしまうので、これじゃ無理かなと思ってました。
ここ最近自作キーボードを始めたので情報収集でぐぐってると、トラックボールもインプリしているキーボードの作例もあるし、トラックボール単体の作例も見つけることができました。
中でもボール単体で使う作例のaballやPloopy Nanoは、キーボードにキーを割り当てて本体を小さく収めるという構想で作成されているトラックボールで、初めて見た時はとてもインパクトがあるものでした。
aball
https://github.com/brickbots/aball
Ploopy Nano
https://ploopy.co/shop/nano-trackball-kit/
自作してみようと思った時の一番の問題は光学部品の入手と思います。aballで使われているものはADNS-9800のブレイクアウト基板ですが、国内で入手するのが難しそうでした。
Ploopy Nanoはキットなので海外通販で買えそうなんですが、まぁまぁな送料となるから購入をためらってしまいました。
##下調べ
aballで使っている光学部品は入手し難いし、Ploopy Nanoで使われている光学部品はビット・トレード・ワンで購入できるのですが、単体で購入したあとの構成が難しそう...
と思ってたところ、@ataruno_keyさんのつぶやきが目に入ってきました。
これで光学部品の確保は確実になりました。しかも税込み330円。
@ataruno_keyさんが使われてるちいさなトラックボールはビット・トレード・ワン,遊舎工房で販売されています。このトラックボールはPAW3204というセンサーが使われていて、QMKに組み込んで使用できるライブラリも公開されています。
近所のダイソーで購入し、動作確認もせずにセンサーICの刻印を確認するとMX8650とみえました。データシートを見るためにMX8650をキーワードに検索をかけたら、すぐにでてきました。
すでに@ataruno_keyさんが組み込まれていたので、信号系はおなじになっていると推測してましたが、確認のためにビット・トレード・ワンからPAW3204のデータシートを入手してみると同じなことが分かりました。
##試作
実現性を確認するためにブレッドボードで実装してみました。
必要な物品は以下の通りで、適当な配線や半田道具を別途用意しました。
|物品|入手先など|URL|
|:|:|:|
|ブレッドボード|Amazonや電子パーツやさん|https://amzn.to/3ivSHPT|
|ダイソーマウスから引っぱがした光学部品|ダイソー|https://bit.ly/3owIciX|
|ProMicro|小さいのが欲しかったからAmazon|https://amzn.to/2WCaU6m|
|双方向レベルシフト|Amazon|https://amzn.to/3BeIeiY|
|トラックボールの玉|手持ちがなければAmazonで|https://amzn.to/3owXNik|
ダイソーマウスは、廃盤になったり、仕様が変わったりするかもしれません😅
光学部品とProMicro間の接続を簡単な回路図を書いてみて、それをもとにブレッドボードで試作回路を作成しました。
回路図
回路図で省略して書いていないのが、電源と双方向レベルシフトです。
電源5VとGNDはUSBからの給電で、3.3VはProMicroから給電をしています。
今回使用の光学部品は3.0Vが定格ですが、10%には収まっているのがんばってもらいます。もし定格を超えるようでしたら、レギュレータで降圧すると良いと思います。
双方向レベルシフトの接続は、マイコン側がHVで光学部品側がLVとなります。電源はHVは5V、LVは 3.3Vへ接続します。
すべての部品のGNDは共通でUSBへ接続します。
ブレッドボードの試作回路
回路図をもとにブレッドボードに組んでみたのが上の画像で、QMKでプログラムを書いてあげると無事動作することが確認できました。
プログラムはビット・トレード・ワンのトラックボールを組み込んでいるキーボードのものを参考にして書いてみました。
引き続き組み込みの検討です。つづく。