以前にキーボードを制作しましたが、今回は「3Dマウス」です。
前回と同じく左手用デバイスです。少し解説すると、
- 3D-CAD作業において、通常のマウスを操作する右手の負担は非常に高い。
- 「3Dマウス」を併用すると、ビューを変える操作を左手に分散できるので、作業効率が上がる。
- 通常のマウスでのビュー操作では不可能な、ズーム/移動/回転の同時操作が可能。
らしいです。
Fusion360スペシャリストの方々と会話する機会がありました。多くの方々が
3Dマウスをオススメされており、興味湧いてきたのですが、大きなハードルもあります。
- 代表的なメーカー(3Dconnexion)さんの最も安いモデルでも15k円くらい
(5k円のマウスでも躊躇するチキンな私には高価過ぎる) - 操作に慣れるまでが「とにかく大変」らしい
- メーカーの方も認めるほどで、挫折して使わなくなる人も多いとか(!)
デモ機を試しに触らせてもらいました。
すぐには感覚と操作が一致せず、画面からオブジェクトが見切れがちで、なかなか
難しい。。。。練習してみたいけど、無駄になるかも知れないし、高いよなぁ。
と云う訳で?作ってみる事にしました。
構想
自作キーボードを組み立てた時に、使用マイコンProMicroについて調べてたら
キー押下だけでなくマウス挙動も可能という事が分かりました。
ProMicroを使えば、3Dマウスも作れるんじゃないか?と考えた訳です。
2タイプ作ってみた
次の2タイプを制作しました。
- (写真左)ゲームコントローラ風
- (写真右)市販の3Dマウス風
「ゲームコントローラ風」は、ズーム/移動/回転のボタンを押しながら
ジョイスティックを倒すだけの仕様です。
設計も簡単そうだし、むしろ操作しやすいのではと考えていました。
実際に使ってみると、単機能のみなら簡単ですが、ズーム&移動など同時操作は大混乱。
「市販の3Dマウス風」は、つまみを動かして操作する仕様です。
デモ機では苦戦しましたが、やはり、こちらの方が操作しやすいですね。
流石、メーカーさんの設計は正しい(そりゃそうだ)
ただし、どちらも中身は、実は普通のマウスのエミュレーターです。
Fusion360の場合、移動も回転も真ん中ボタンとマウス操作が必要ですが、
重複するので同時に命令できません(少なくとも私のスキルでは不可能)
ズーム&移動、ズーム&回転は理論上可能。
本物の3Dマウスを完璧に再現するのは無理でした。メーカーさんスゲー。
部品構成
どちらも部品点数としては少なく、シンプルな構成です。
アイテム | 数量 | 備考 |
---|---|---|
マイコンProMicro | 1個 | |
大きめタクトスイッチ | 3個 | |
スイッチカバー | 3個 | |
ジョイスティックモジュールA | 1個 | 傾けるタイプ |
ボルト&ナット | 数本 | |
3Dプリンタ部品 | 2点 | 右側と左側に分割 |
- 市販の3Dマウス風
アイテム | 数量 | 備考 |
---|---|---|
マイコンProMicro | 1個 | |
タクトスイッチ | 1個 | |
ジョイスティックモジュールA | 1個 | 傾けるタイプ |
ジョイスティックモジュールB | 2個 | 平行移動タイプ |
ボルト&ナット | 数本 | |
3Dプリンタ部品 | 数点 | 詳細は後述 |
どの部品も調達方法などで単価が大きく変わります。今回は合計で8k円くらいかな。
作る手間を考えたら、本物の3Dマウス買った方が早かったんとちゃうかな(白目)
以下、「市販の3Dマウス風」に絞って説明します。
電気回路
次のブレッドボード図を参考お願いします。
可変抵抗(ボリューム)が2個並んでいるのは、ジョイスティックB(平行移動タイプ)
1個の意味です。丁度良い素材が無く、回路的に等価なので、このような表現に
させていただきました。
基板は3枚構成で、ジョイスティックAだけの基板、ジョイスティックBを2個並べた
サブ基板、マイコンを乗せたメイン基板、です。
各基板は、ブレッドボード図と同じピン配置になるよう、リード線で繋ぎました。
メカ構成
次の断面図を参考お願いします。
全てFusion360で設計しましたが、今回は公開していません。
電気部品が購入先によって微妙にサイズが異なっており、都度修正してました。
そのままでは使えないデータになってしまうので、公開を見送った次第です。
拙い文章メインの説明では分かりにくいかもですが、御容赦ください。
①箇所にメイン基板が、②箇所にサブ基板が入ってます。
3Dプリンタ部品2パーツで、基板を挟み込んで固定。
上からカバー部品を被せて、USBケーブル以外の穴を目隠ししています。
③箇所にジョイスティックA基板が入ってます。上記の部品の間で、
水平移動および少し回転できるようにしています。
この部品をジョイスティックBのつまみと接続する事で、移動量を読み取る仕組みです。
コード内容
Arduino IDE 1.8.0 を使用しました。
スケッチ例 => 09.USB => Mouse => JoystickMouseControl を参考にしました。
詳細な手順については、リンクのQiita記事にしましたので、こちらを参考お願いします。
センサー | 操作 | 命令 | 挙動 |
---|---|---|---|
ジョイスティックA | 一定以上傾ける | Shift+マウス中央ボタン+マウス移動 | 3Dモデル回転 |
ジョイスティックA | 押し込む | マウス中央ダブルクリック | 全画面表示 |
ジョイスティックB | 2個共同じ方向に移動 (=水平移動) | マウス中央ボタン+マウス移動 | 3Dモデル移動 |
ジョイスティックB | 逆方向に移動 (=ひねる動き) | マウススクロール | 3Dモデル拡大縮小 |
最も便利そうな「ズーム&移動」の同時操作だけは実現しました!
まとめ
最後まで読んでいただき、ありがとうございました。
制作中、思うように動かず苦戦した時もありました。Qiita記事にも書きましたが
他のブログ記事や、自作キーボード(Self-Made Keyboards in Japan)の有識者の
方々のアドバイスにより完成させる事ができました。感謝いたします!
今回の3Dマウス 2タイプと、前回作ったショートカットキーボードを
横浜ガジェットまつり2019に出展する事になりました。
ぜひぜひ触りに来てみてください。
作ってみた感想=さっさと本物を買った方が良かったかも(笑)
制作の過程で、Fusion360のマウス中央ダブルクリック機能を初めて知りました。
これは便利ですね。今回得た中で最も(?)有益な情報でした。