3Dマウス⑤ 外装の設計・造形
2023.01.29


ファームウェアがだいぶ進展したので
外装をテスト用ではなく実用に向けて設計してみます。



まずUSBケーブルはL字型を採用。これで煩わしいケーブル問題は大幅に軽減。
上蓋との連結はM3ネジ2本で行うことにした。
本音を言えば3本でやりたかったけど、
いろいろと干渉することが分かったから仕方なく(;´Д`)
まぁ、問題ないっしょ。



L字コネクタに合わせて干渉しないように上蓋にカットをいれます。
カットしたところのフタも用意。上蓋と一体化させて造形させます。



ジョイスティックのデュポンコネクタが邪魔になっていた件。
下に折り曲げれば上蓋が干渉せず入ることが分かったので、
1本ずつラジオペンチで曲げて対処。



ボタンはつけなくていいかな~~なんて思っていた時がありました。
でも、ムリ(;´Д`)
ジョイスティックのテストでぐりぐり動かしているとボタンの必要性が沸々と湧いてきます。
まず、ジョイスティックを押しながら方向を操作するのは厳しい。
つまりパンを操作するときは別のボタンを用意するべきかなと思い至りました。
あと、ポイントを複数選択するときにシフトキーを押しながら行いますが、
いちいちキーボードに手を移動してたら面倒で仕方ない。
そのボタンも無いと不便かなと。
つまり最低でも2個は追加しないと実用に乏しいと判断。
ではどんなボタンをどんなふうにつけるのかと考えるに
ORBIONで採用されてるボタンも考えたけど、ちょっと大きすぎてスペースが無い。
あと、やっぱりクリック感がほしいと思いました。
そこでリミットスイッチを採用することに。安いし入手性もいい。
場所は、ロータリーエンコーダーとジョイスティックの間に並べて装備。
リミットスイッチのレバーは上蓋から露出させて直に押すようにします。
使いづらかったらレバーに何か装着しますかね。



ロータリーエンコーダーは上蓋で支えることに。
リミットスイッチも上蓋で。
造形が複雑になるのでFDMだとちょっと苦しいけど、
印刷さえできてしまえば、説明書なしでもすぐに組み立てられるくらい
シンプルなデザインじゃないかなと思う。



印刷は本気モード(;´Д`)
0.2mmノズル装着でベッドの高さもしっかり調整。
強度と長期実用を踏まえABSで印刷。
反り防止のための対策はきっちり。
本来ならば、メッシュベッドを使うべきところだけど、
メッシュベッドはラフトが前提になってしまいます。
ラフトって反りは軽減するけど底面が乱れまくるのよね。
今回は精度重視の印刷なので、ガラスベッドを使いました。
印刷位置が左奥寄りになってますが、
Cetusのようにフレーム片持ちの3Dプリンターは
フレームから遠く離れたところの振動が大きくなりがちです。
印刷物が荒れるので、それを回避するため
なるべく左奥にまとめて印刷を行います。
これも少しでも精度を高めるための工夫です。



完璧です。
7時間のロングランだけども反りはゼロ。
糸引きもなし、底面上面の塗り残しなし。
0.2mmノズルはいいね。仕上がりが美しい。
ただし、詰まり安く、印刷に時間が掛かり、
設定も煮詰めるのにめちゃくちゃ時間が掛かるけど(;´Д`)



バシっと設定が決まっているうちに細かいのも全部印刷してしまいます。



いいね、射出成型みたい(*'▽')



一番の問題は上蓋。
FDMの限界に挑戦といわんばかりの形。サポートは必須になってしまいます。
何回か試したけど、逆さまで印刷したほうがサポートの処理がしやすく
倒壊の心配がなかった。
内側にはロータリーエンコーダーの部分がちょっと制度が必要なので、
サポートがごちゃごちゃつくと整えるのは困難だなと・・。
どうせ磨くのなら外周の方が楽でいいので、
今回は逆さまに印刷したほうがいいと考えた。



でもFDMでこの印刷はやっぱり厳しい。
積層痕が強烈に見えてくる。
球状は0.1mm積層をやめて0.05mm積層ができるならその方が良いと思う。
確実に印刷できるようにするには、パーツを分割して接着剤で連結する形の方がいいかもしれない。
つまりFDM専用のデータを考えるべきと思った。



サポート面が荒れていたので軽く研磨。
ABSなので簡単に削れる。PLAとは違うのだよ、PLAとは(;´Д`)
研磨すると白く変色してしまう。すると積層がより目立って印刷の荒れが目立つ。
でも予定通り。



光硬化パテで積層の隙間を埋めていく。
ついでに積層割れが原因で起きた印刷ミスをプラモ用接着剤やパテで修正。
1日太陽にあてておけばカチカチです(*'▽')



待っている間に光造形で印刷。こちらもサポート跡がすごい(;´Д`)
見た感じはミスはなさそうだ。



裏面もきれいに印刷できているように見えるが、
角が丸くなったり膨らんだりする現象が起きている。
光造形といえども完璧ではないね。



FDM式、SLA式両方で印刷したものを研磨した様子。
FDM式は400番の耐水ペーパー、
SLAは削れやすいので600番の耐水ペーパーで磨きました。
硬さはレジンの方がある感じ、ABSは柔軟さを感じる。
だけど、1mm厚のパーツなので、
力をいれるとABSは積層割れが起きそうな感じ、
レジンの方は力入れて磨くと割れそうな感じ。
もう少し厚みを付けるべきだったかな(;´Д`)



後々積層割れが起きたらイヤなので内側から対策をば。
3Dプリンター用の電熱ヘラで表面をなぞります。
一度溶けて再溶着するので積層割れの恐れが軽減します。
これを施した後は、驚くくらいフニャフニャ感が消えました。



サーフェイサーを吹いてみた。
左が光造形(レジン)、右がFDM(ABS)
双方、もう少しやすり掛けが必要なことが分かる。
ABSの方は穴の縁をもう少し修正できるかも。



ある程度整ったので塗装。



左が光造形(レジン)、右がFDM(ABS)。
ABSは磨きが足りなかったかな・・少しデコボコが残ってる。
200番で整えてから400番すればよかったかな。
球面だから加減がよくわからん(;´Д`)
まぁ、実用十分だけど。



パーツがそろった(;´Д`) ↑はABS用に用意したパーツ類。
今回ABSとレジンの2種類で印刷したけど、精度的に割と正確なのはABSの方。
上蓋は曲面が多かったので荒まくったけど、
ほかの部品は±0.1mm程度誤差を容認できるなら何も問題はない仕上がり。
0.2mmノズルを使っている効果が絶大、



それに比べレジンはミクロの世界ではかなり美しいけど、
1mmとかいう大きいレベルでゆがみが出ることがある。
ひどいときには3mmも長さが合わないことも。
底板のパーツは綺麗な円になりませんでした。光硬化パテで修正しました。
塗装したから今じゃわからないけどね。
一長一短だなぁ(;´Д`)
3Dマウス④ ジョイスティックの制御
2023.01.20
前回は配線のミスが無いこと、ソースの書き換えが正常に行えたこと、
キーボードとマウスの制御が問題なくできることを確認しました。
今回はある程度3Dマウスに近い動作ができるまで
実験を進めていきたいと思います。

if (Joy_Switch_POS == LOW) {
  Keyboard.press(KEY_LEFT_SHIFT);
  Mouse.press(MOUSE_MIDDLE);
  delay(2);
  Mouse.move(1,1,0);

  Keyboard.releaseAll();
  Mouse.release(MOUSE_MIDDLE);
  delay(2);
  Mouse.move(-1,-1 ,0);
}else{
  Keyboard.releaseAll();
  Mouse.release(MOUSE_MIDDLE);
}
delay(10);

この処理が怪しい(;´Д`)
マウスカーソルの移動が10pxならうまく処理されるが、
1pxにすると、まったく動かなくなる。
なぜだ(;´Д`)
マウスカーソルをもとの位置に戻さなければ1pxでも正常に動く。
なぜだ(;´Д`)
解せぬ・・

厳密には6pxでも動くが、マウスホイールが動いたと錯覚したのか、
拡大縮小現象もおきる(笑)
安定して動くのが10px
意味不明。

拡大縮小が突然おきる原因は時間がかかったけど判明(;´Д`)
犯人はマウスのホイールボタンのダブルクリックに
「モデルを画面に合わせる」が組み込まれているため、
これが反応している模様。こんなん使ったことない。初めて知ったわ(;´Д`)
隠れたショートカットがまだまだあるんだなーと。
6px未満はドライバーによってダブルクリック認定されるかされないか
際どいラインなんだと思う。
これはPCの性能とマウスドライバーの良しあしでだいぶバラツキが出そうだ。
やばい、詰んだか?(;´Д`)

10pxを最小として組んでいけば?となるが
でもこれだと最小なのに目で追えないほど回転速度が速くて実用的じゃない。
じゃdelayを変化させて速度をコントロールするか?
そうなるとなめらかさを失うしな・・・ 困った。
しかもX、Yの両方向を同時に動かすのにdelayだけで管理するのは無理がある。
ORBIONがなぜマウスカーソルの動きに補正を入れないのか疑問だったが、
ようやく理解した(;´Д`)

3日間悩みに悩んだが、1pxレベルのオービットは必要。これは避けられないと思った。
7pxや10px刻みだと、複雑なものを作っているときに、
狙った角度を正面にできないことが多いからだ。
そこでどのように解決するかというと、1px~7pxまでの動きはカーソルが動くのを許容した。
8~10pxの場合は移動量が多すぎてすぐ画面端に激突したり、
FUSION360のウインドウからはみ出たりするので
元の座標にとどまるように位置修正を施す。
これでお茶を濁す。



ジョイスティックと移動量の関係は計算式ではなく、
表管理することにした。
思いついた当初は、配列で管理するつもりだったけど、
微調整するとき見づらく面倒だったので、
とりあえずIF文の羅列で実験してみたが、処理落ちもしないし、
可読性も高いしこのままでいいかもしれない(;´Д`)



マウスの中央ボタンがダブルクリックになってしまう問題。
これを解決するために、「カーソルは移動させるがボタンは押さない」
という処理を中間に挟んで回避する策を採用。
マウスはクリックとクリックの間に大きいカーソル移動があれば
いくら連射速度が速くともダブルクリックにならないという性質を利用してます。



動作を動画にとって見ました。
なめらかさと速度のバランスを取るのに苦労したけど
これからループ内に他の処理が加わっていくので動きは若干速めに調整。
まぁいいところに落ち着いたんではないかと思う。
ジョイスティックの傾斜が緩いときはカーソルも動き、
急なときはカーソルは止める。割と違和感ない。
回転を遅くしたい時というのはは微調整の為がほとんどなので、
よほど狭いモニターを使っていない限り端に激突することは珍しい。
問題点があるとすれば高速回転をさせたとき、
マウスカーソルがチカチカするくらいか。
高速で行ったり来たりしてるからね、仕方ないね。
ま、これは妥協(;´Д`)


ロータリーエンコーダーは特に工夫もなく、
前回コーディングしたものを入れ込むだけで動いた。
拡大縮小とオービットが実装されたことで、
だいぶ3Dマウスっぽくなってきた。

ファームウェアで残す部分は
パン操作と、ボタンを追加した時の処理、
あとFusion360に合わせて作っているけど、
2,3種は別ソフトでも動くようにしておきたいな。
とは言っても液晶を付けてないので、ソースファイル内で選択させる形だけど。

次は外装のデザインを進めるかな。
TPMSからのエア漏れ
2023.01.14


最近、左リアタイヤのエア漏れが激しい。
空気圧が1週間で0.3は下がる。
これはタイヤのリムからか、バルブコアから漏れているのか?
いや、パンクでもしているのか?
などと思っていたけども、石鹸水チェックしても漏れは見つからない。
思い起こせば夏タイヤの時も左リアの空気圧が減っていた。
これはもしかしてTPMSから漏れてるんじゃ?!
確実なところを知りたいので、あえて左リアのTPMSを左フロントにつけてみる。
するとエア漏れを起こすタイヤは左フロントに変わった。
犯人はTPMSである(;´Д`)
さて、どうしたものか。



TPMSの裏側を見ると、赤いパッキンゴムが固定されている。
おそらくこれが原因なのではと。
TPMSは空気圧をチェックするために虫ピンを押した状態を維持していますが、
その空気はこのパッキンでせき止めていると思う。
このパッキンを新しくすれば直る、そんな気がする。



新しいパッキンをどうやって入手するのか、
まだ思いつきもしないけど、
サイズだけは図っておきたいと思う。
外径はおよそ8mm



内径は3mm
このサイズで探してみよう。



新しいパッキンが手に入るか不明なので、
それ以外の処置も考えてみる。

ゴム製品は柔軟性を失ったとき、
熱湯で、ある程度回復すると聞いたことがある。
沸騰した水が冷めるまでパッキンを温めてみた。

このパッキンをもとに戻して2週間後・・
しばらく使っているが、エア圧は0.1減った程度。
かなり回復したぞ。
これは使える(;´Д`)

- CafeNote -