ぴあぴあゆーとぴあ

雑記ブログ

トラックボールマウスを分解してArduino Microで動かした話

キーボード Advent Calendar 2019 の2枚目、24日目の記事です。
キーボード #2 Advent Calendar 2019 - Adventar
今日はcorne cherry設計者のfoostanさんと同日に記事を公開するということで恐縮しております。
また本記事の内容で、なにかの損害を生まれたとしても責任は負いません。
今時間的余裕がないのでとりあえず公開するのですが、全然推敲できていないのであとでこの記事は修正する予定です。
申し訳ない😢

はじめに

さて、著者の自作キーボードの遍歴なのですが、自作キーボードを今年から作り始めました。
最初はmint60を作り、次に左右分離が試したくなりcorne cherryを作りました。
すると、どんどん自作キーボードの沼にハマっていき、キーボードにポインティングデバイスをつけたくなりました...
ポインティングデバイスを調べたところ、サイズや慣れからトラックボールにすることに。
最初はBlackBerryトラックボールを購入して試したんですが、分解能がよろしくなく、他のものを調べました。
ブラックベリーのトラックボール--販売終了 - スイッチサイエンス
そこで既製品を分解して再利用することに

ELECOMのトラックボールマウスの分解

メルカリで中古のELECOMのトラックボールマウスを購入し分解しました。
分解は以下の記事が詳しいです。
マウスM-XT3DRBKの使用・分解について - HAVRMの空空活動誌
すると以下の画像のようなトラックボール部分を取り出すことができます。
f:id:nanabyo:20191224014054j:plain
裏側の光学式エンコーダ部分を見ると、以下の画像のようになってます。
f:id:nanabyo:20191224014100j:plain
エンコーダの印字を調べると、PMW3320DB-TYDUというセンサ(?)を使っているようです。
こいつからはフラットケーブルが伸びてるので、PMW3320DB-TYDUをフラットケーブル読み取り基板をarduinoに繋げてやれば読み取れそうですね。

PMW3320DB-TYDUをArduino Microで読む

データシートは調べるとすぐ出てきました。
https://www.epsglobal.com/Media-Library/EPSGlobal/Products/files/pixart/PMW3320DB-TYDU.pdf?ext=.pdf
仕様を見ると、3.4Vで動くのでArduino Microで動かせそうですね。
ただ3-wired SPIという通信方式がデフォルトのArduinoのライブラリにないので自分で実装する必要がありそうでした。
今回はソフトウェアSPIで実装しました。
調べたところ、トラックボール側基板からのフラットケーブルの6本の信号は、SCLKピン、MOTIONピン、GNDピン、VDDピン、NCSピン、SDIOピンという順番並んでいるようでした。
そこでSCLKをSCK、MOTIONをDATA3、GNDをGND、VDDを3V、NCSをDATA4、SDIOをMIという風にピンを繋げます。
繋げた画像は以下になります。
f:id:nanabyo:20191224015910j:plain
またコードは以下になります。Arduino IDEで書き込めば動くと思います。


動作例は以下みたいな感じで動くと思います。


終わりに

Arduinoを介することで、マウスの動き方を自由に変えられるのがいいですね。
製品の方を動かした時はトラックボールの動きが鈍いかなと思ったんですが、センサの検出量に定数をかけることでマウスをぬるぬる動くようにできます。
PMW3320DB-TYDUをpro microで読み取って、qmkで動かすのところまでやりたかったのですが、余裕がなくてarduino microで動かして満足しました。
(すでにやってる人がいるかも?)

ところで最近せきごんさんのKugel-1を購入して触ってるんですが、やはりキーボードにポインティングデバイスがついてるのはいいですね。
Kugel-1 - のぎけす屋 - BOOTH
面白いキットをありがとうございます。
BLE Pro Microも初めて触ったんですが、電池もキーボードに載せることでケーブルレスにできるのは非常にいいですね
ただちょっと自分の組み立てが悪いのか、センサの精度の問題なのかときどき反応が悪くなって、小さいボールの動きをセンサで読み取るのが難しいのかな?とか思ってます。

修論が終わったら、PMW3320DB-TYDUで早く自作キーボードの設計がしたいです...
Corne Cherryの右手親指部分に今回のボールが来るようなのを作りたいと思ってます

最後に本記事はCorne Cherry+IMK Corne Caseで執筆されました。 f:id:nanabyo:20191224020105j:plain