今年購入した3Dプリンタでマウスのボディー作成に着手します。
足掛け3年のこのマウス製作、やっと完成できそうです(放置してただけですが…)
後ろ側はRX-7 FD3Sのような美しい流線型!!
ですが、前の方は80年代のカマロ(3rdカマロ)のよう、いやもっと角張ってしまいました (;´Д`)
Fusion360を使いこなせていないため、角張ったところの「折り目」を外すと何故か全体が変な形になるし、後で「フィレット」で丸くしようとしてもエラーになってしまいます。直し方がわからず一旦これで妥協することに。。
ボタンはボディーに切り込みを入れるだけにしました。
だいぶ手抜きになってしまいましたが、見た目がシンプルになるのでいいですね。
サイドボタンの仕組みは色々試行錯誤しましたが、最終的には下図のようにしました。
ボディーとボタンは別のパーツにして、ネジで止めます。
PLA素材は思ったよりも柔らかいので、横から位置を固定するだけで十分ボタンぽく動作します。
マウスカーソルを細かく動かすときは指先でコントロールするので、センサーの位置は指の付け根よりも指先の方にあった方が、意図したとおりに動かしやすいのではと考え、CMOSセンサーの位置をマウスの中央ではなく指の第一関節と第二関節の間付近に持ってきました。
もう少し指先側(図では左)にできますが、まずはこのあたりに配置して使い勝手を試してみます。
この際なのでボディーだけでなく、縦と横のホイールも3Dプリンタで作ってみます。
こういう形は印刷しやすいし、CADを作るのも簡単ですね。
ホイールを印刷することにしたので、LED回路は取っ払いました。
ベンツのマークのようにすれば、もっと軽量化できたのかも。
シャーシにネジ穴を印刷したので、作成したユニバーサル基盤をネジ止めすれば組み立てられます。
基板側の穴を少し大きめにして位置を調節して、ホイールがいい位置にくるようにします。
サイドホイールを固定するため、
このような部品を作ります。
の3つを担っていて、ホイールをロータリーエンコーダで挟むようにして固定します。
ホイールの位置の微調整は、図の部品の左側の穴を軸に回転させて、サイドホイールを横方向に出したり引っ込めたりできます。
実装すると↓のようになりました。
USBケーブルを通して、全て配線してシャーシをネジ止めすれば完成です。
長かった。。
きっとまた気に入らないところが出てきて印刷し直すだろうからと、あまり使わなそうな赤のPLAで印刷しています。
最終的にはPETG素材を使って0.2mmノズルで印刷し、さらにヤスリで整えて綺麗にしたいですね。
USBケーブルは、パラコードに 36AWGコード x 4本 + タコ糸を入れて作りました。
とても柔らかくて、マウスを動かしたときにケーブルの抵抗が全くないので、ワイヤレスマウスと変わらない操作感です。
買うと高いので作りましょう。
400円前後で1mのケーブルが2本作れます。
3ヶ月前(36AWGコードは2年前)に買ったときの値段です。
コロナや円安等もあってかAliExpressの品も全体的に値上がりしていますね。
パラコードはフィラメントが黒でも白でも似合いそうな 色を選びました。赤には合わないですねw
太さは4mmだと少し余るので3mmがちょうどいいかも。
あと、36AWGコードは210mAまで流せるので電気的には問題ありませんが、細すぎたので34AWGあたりがよかったかもしれません。
チャタリングの発生有無は、
で確認できます。
ブラウザで確認できるのは便利ですね。
サイドボタンも含め全ボタンを確認できるサイトです(サイドホイールは確認できませんでした)。
Mouse Testerというセンサーの精度を視覚化するソフトウェアを使ってみます。
まずは Measure ボタンで CPI をチェックします。
定規に当てながら10cm動かすと 1290 ~ 1310 に収まりました。
PMW3360の初期化処理で、CPIに1300を指定しているため一見問題はなさそうに見えたのですが、速くマウスを動かしてCPIを測定すると結果は1100に落ちてしまいました。(これは、マウスの移動速度が速いとマウスカーソルの移動量が少なくなることを意味します)。
例えば、マウスを素早く右に動かした後に元の位置にマウスをゆっくり戻すと、マウスカーソルは元の位置から左にズレてしまいます。
マウスを速く動かすとCPIが落ちたというよりは、マイコン側ではPMW3360から取得した16bitのマウスの移動量を8bitに丸めてレポートを作成しており、素早く移動したら移動量が-127~127を超えてしまってCPIが低くなることが直接の原因だと考えます。
ここは改善の余地ありですね。(改善しました → こちら)
さて、CPIのことは一旦忘れて、今後はセンサーの精度を見てみます。
となりました。
なんだか青い点が線からはみ出ていますが、
に結果の見方が書いてあり、ここの説明によれば上図の結果で問題はないみたいです。
普段は邪魔にならず、親指の第一関節を曲げるとサイドホイールを回転できます。
このホイールでExcelシートを左右にスクロール移動できたらすごく捗りそうです。
実際どんな感じかな? と、Excelを起動し、
サイドホイールを回してみたところ・・・
ん!? スクロールしない…
全く無反応でしたw
どうやらExcelは横方向のスクロールには対応していないようです。
サイドホイールの実装には結構苦労しただけに、ショックです…
何とかできないものかと、少し調べてみました。
Shift + ホイール で横方向にスクロールできるようになるOfficeのアドイン。
こちらはMicrosoft純正。
Office 2019から Shift + Ctrl + ホイール で左右にスクロールできるようです。
キー組み合わせ+縦方向のホイールはありますが、サイドホイールに対応しているものは見つかりませんでした。
Excelで左右にスクロールできないとなると、サイドホイールの存在価値が半減してしまいますので、何とかしましょう。
上記の OfficeScroll では、Shift + ホイール で横方向にスクロールできたので、リポジトリを clone してマウスフックの部分で WM_MOUSEHWHEEL メッセージも処理するように変更しました(WM_MOUSEHWHEELを使うには _WIN32_WINNT 定義を 0x0600 に変更します)。
ソースコードは、ビルド後イベントの AutoVer.exe のコマンドを削除すれば Visual Studio 2019 でビルドできました。
ついでに色々と気になった部分を修正して完成。
差し替えてみたところ、無事サイドホイールで左右にスクロールできました♪(Office 2016, Office 365で動作確認)
めでたしめでたし
しばらく使っているとイマイチなところが出てきます。
ボタンの構造を手抜きしたせいで、下図の水色部分を押さえた場合は普通にクリックできるのですが、 付け根(ピンク色のあたり)をクリックしようとすると支点に近いため結構な力が必要になってしまいます。
デザイン時は、マウスを普通に握ったらピンク色の部分をクリックすることはないと思っていました。
でも実際は キーボード ⇔ マウス 間で手を行き来させると2~3cmは普通にズレるもので、マウスに手を移動してすぐクリックした時などはピンク色の部分をクリックしてしまうことがよくあります。
今まで気にしていませんでしたが、市販のマウスはボタンのどこを押してもほぼ同じ強さでクリックできるように作られています。すごい。
当たり前なんでしょうけど今さら気付きましたw
また、ボタンクリックが重いので併せて改良したいところです。
マウス底面の角が床に対して鋭利なデザインになっているため、マウスを持ち上げた際に角が布製マウスパッドと擦れて音がします。耳障りだし操作性も悪いです。
シャーシの外側にボディーを被せるような作りなので、ヤスリをかけてもあまり改善されませんでした。
市販のマウスを見ると、底面から側面にかけて段階的だったりなめらかになったりしています。これには意味があったんですね。
今回のような構造は大失敗でした。
デザイン時には分からず、作って使ってみないと気付かないところですね。
力を入れて使っていなくても、1年ほど経過するとボディーの側面やボタンの付け根が積層痕に沿って割れてきました。
1mm厚のボディーでは力が加わる部分には補強を入れないとだめなようです。
印刷し直した時にノズル経を0.4mmから0.2mmに変更してみたところ、積層間の結合が弱くなってしまい印刷後のサポートを外す途中で割れてしましたw
仕方がないのでボンドでくっつけて使っています。
0.2mmノズルでも印刷パラメータを調節すると強度は改善できたかもしれません。
印刷物の強度については
・Nature3D - 造形品の積層強度は結局どうすれば上げられるのか
・Nature3D - 積層ピッチと造形品強度の関係
に分かりやすく記載されていました。
温度と積層ピッチなら簡単に調節できるかも。
マウスを持つ時は手首を浮かさずにマウスパッドに付けて操作するんですが、マウスの後ろの方が少し高めなので手のひらが圧迫されて長時間使っていると疲れてしまいます。
手とマウスの間には隙間があったほうが使いやすいようです。
次作るときはこのあたりも見直したいですね。