https://github.com/FaqT0tum/Orbion_3D_Space_Mouse
良い点・悪い点
良い点
- TPU のクッションでジョイスティックの硬さのサポートをしてるところ
- ありなしで使い比べたらわかるけどジョイスティック単体とはまるで操作感が違う
- オープンソースである
- ND ではあるがオープンではある
- Arduino ベースなので書きこみが楽。挙動を変えたいならコード変えるのが一番楽
- 頑張ればちゃんと使える
悪い点
- 操作できるのはジョイスティック+エンコーダ (上下・左右・回転の3軸)
- そんなにいろんな操作はできない… ジョイスティックを動かすとエンコーダが動いてしまうことがあるので結構むずかしい。あんまり期待しないほうがいい
- ジョイスティックの硬さは上の3本のビスで決まる
- 通常マウスと二刀流になると思うがそれならマウス+キーボードで良くない?という気がしてくる
- カーソルも動いてしまう
- マウス・キーボードとして認識させているだけなので普通にマウスが動いてしまう。マウスが操作範囲外に出ると操作できない
- ライセンス
- CCPL なのは良いが ND (派生不可) なのが致命的に扱いにくい
- 改変したのを github に push することができないので手元で管理するしかない。めんどくさい
- トレランスが厳しい
- FDM 3Dプリント向けじゃないのかな? ってぐらいトレランスが少ない。プリントして無加工で作るのは無理がある
- ジョイスティックやエンコーダーの取り付けは加工しないと入らないと思ったほうが良い
- ファームウェアの品質
- 使えはするけどという感じ。コード見たらわかると思う (byte と uint8_t が混在してたり、無意味なコードがあったりする)
- メニューまわりは自分で直さないとイライラすると思う
- エンコーダーもクリック2回で1つ進むみたいな挙動になってるので直したほうがいい
- TPU のプリント難易度
- TPU でクッションをプリントしないといけないが柔軟素材のプリントは難しい
- 配線が大変
- 柔らかいケーブルを使いましょう。いつものクセでカラーのフラットケーブル(を裂いやつ) を使ったが固めなので大変だった。
- 200mm ぐらいのケーブルを Arduino に全部はんだ付けして、配線していくのが良いみたい
ちゃんと使おうと作ろうとすると以下3つの知識がそれぞれある程度ないと難しい。
- 3Dプリントの知識 (正しい素材で正しくスライサーを使い、正確に出力できること)
- 電子工作の知識 (ちゃんと配線できるか、配線した結果おかしいときデバッグできるか)
- ソフトウェアの知識 (挙動がおかしいときファームウェアのコードを読んで直せるか)
ソフトウェア
Arduino のライブラリごりごりで書かれているのであまりコード量はなく複雑なこともやってない。
メニューを開いたとき、エンコーダの反応がすこぶる悪いが、ビジーループでエンコーダを読む設計なのに、i2c ディスプレイに毎ループデータを送ってるせいなので、そのへんのコードを直すとよくなる。結構同様のロジックがちらばっており、直すのに若干手間がかかる。
エンコーダを読むコード (scroll()) もなんか変なコードになっているので書きなおしたほうが手を入れやすい。
手元で加えた変更
NDでコードを公開できないのでやったことだけ
- エンコーダ読みだし回りを綺麗に
- ディスプレイ表示の効率化 + menu の反応を良くする
- LED関係設定のとき、選択にあわせて光りかたを変えるように
- ニュートラルに戻ったときに、操作した分のマウス移動量をキャンセルするように
- ニュートラルに戻すたびにカーソルが元の位置に戻るので、画面端に到達して操作できなくなることが減る
- 連続して操作するとき、ダブルクリックにならないようにする
感想
あんまり作ってる人がいなくてなんでかなーと思っていたが難易度の高さの割に得るものがそれほどでもない点にあるのかなと思った。ハードウェアの形的にはかっこいい。