Raspberry pi picoを使ったトラックボールモジュール設計1(基板・筐体編)

2024/05/11に公開

はじめに


この記事では、トラックボールを二つ搭載したキーボードのトラックボールモジュール部分の実装例について解説したいと思います。
マイコンボードにはraspberry pi pico、センサーはPMW3360を使用しています。

基板設計

pinout(pico)

SPI通信を行うは場合、ピンの組み合わせに制限があります。
割り当ては下記になり、SPI0、1は使用するところに応じて接続する必要があります。
NCS:CSn
SCLK:SCK
MISO:RX
MOSI:TX
今回はGP9、GP12、GP13、GP14、GP15を使っていきます。

回路図

データシートとこちらを参考にしました。
色々情報を上げてくれてる方が多いですね。感謝しながら知恵をお借りしたいと思います。

  • pico側の回路になります。

  • sensor側の回路になります。
    基本的には上下同じですが、NCSの接続先が違います。

PCB

メイン基板とトラックボール基板は切り離して使います。
幅を狭くしたかったので、パッドや部品は上下に配置しています。

筺体

TB基板の固定方法

  • 基板はボールケースの土台にねじ止めしてます。
  • XHコネクタと配線を使って、パームレスト内部で接続できるようにしています。
    圧着工具はこちらの物が、お値段の割に使いやすく失敗もなくできているので、重宝しています。

ボールケース

  • ボールサイズは22mmと55mmを使用しています。
  • 内側の隙間はケースサイズにより微妙に変えています。
  • 支持にはそれぞれセラミック球とベアリングを使用し、均等になるように3箇所配置しています。
  • センサとの距離は7mmとしていますが、データシートでは7.4mmとなっています。
  • ケースでセンサーのレンズを抑え脱落しないようにしています。

右手側は大きいボールを掌の中に収めるため、左手側は親指キーが押せるように、可能な限りボールが低くなるようにしています。



  • 組み立てるとこんな感じです。

ベアリングについて

  • ベアリングの軸はh7のシャフトを使用しています。用途的には-公差の軸ならなんでもいいと思います。
  • ベアリング内輪のみ当たるように溝の側面を凸形状にしています。
  • ケースへの取り付けいい感じにスナップフィットに出来ないか検証中です。
    (現状きつめの溝に押し込んでいます。)
  • ベアリングはシールドor非接触シールがよいと思います。
    私は今の所シールドを使用しています。
    シール無しはごみがはいる環境なので良くなさそうですし、接触シールは静摩擦が大きくなるのでベアリングにしたメリットが薄れてしまいます。

まとめ

この記事では、自作キーボードのトラックボールモジュール部分で設計中に調べたり試行錯誤したところを中心にまとめました。
ファームウェアに関しては、後日まとめたいと思います。

参考資料

データシート

RaspberryPiPico
PMW3360

さいごに

  • 今は試作が一旦完成したところなので、進捗等はX(旧Twitter)でもつぶやいて行きます。よければフォローしてください。
  • 不明点などあればお気軽にコメントやDMいただければと思います。
  • このブログ記事の内容によって生じた損害等の一切の責任を負いかねますので、ご了承ください。使用の際は問題ないことを確認の上ご利用ください。
GitHubで編集を提案

Discussion