【Home Assistant(Hass.io)】
3Dプリンター(LABISTS X1)でIoTデバイスのケース作り(後編)
「Home Assistant(Hass.io)でホームオートメーション 再起動!」シリーズです。
NodeMCU-E32のケースを作らないと、と始めた3Dプリンターですが結構面白くてハマっています。前回は印刷(造形)できるところまできました。今回は、設計と造形です。
前回は下記で、印刷できるようになるところまで何とか設定しました。 maky-ba.hatenablog.com
今回は、以前ESPHomeの回で使ったNodeMCU-ESP32sの幅の狭い奴(下記)が入るケースを設計し、印刷(造形)してみましょう。
この記事の前提条件 | |
---|---|
Home Assistant | 0.114.4 |
HassOS | 4.12 |
Server | Raspberry Pi 4(2GB) |
この記事を書いたときは上記の状況。ですが、今回もHome Assistantは一切出てきません。悪しからず。
1. 準備
1.1. デジタルノギス
まずは、もの(今回はNodeMCU-ESP32s)のサイズを細かく測る必要があるので、ノギスがあると便利です。特にデジタルノギスは、ずばっと数字で長さが測れるので便利です。安物買いの好きな私は下記のデジタルノギスを買いました。
mm単位で小数点以下二桁まで表示されますが、そこまで精度あるの?という作りです。 まあ私は実は精度とかは気にしていない(どうせ測るときに「びしっ!」とノギスをあてる事が出来ない)ので、これでも十分役に立っています。それに当面使うプリンタも、そんなに「びしっ!」とした物が作れるわけではありませんからね。
1.2. 3Dモデリングソフトのインストール
前編でも触れましたが、立体モデルを作るにはモデラ―と言われるものやCADと言われるものを準備する必要があります。前編で紹介したFusion365は、3D CADの系譜を汲むものです。「Autodesk Fusion360」の「無償体験版をダウンロード」から進むと「非商用目的」を選んでインストールを進めます。
上の画面がFusion360の画面ですが、こちらは機能は満載なのですが、モードによってメニューリボンを切り替える方式なので、画面上はすっきりしています。Microsoft Officeと同じで「あの機能はどこだ!?」は発生しますが…。
ちなみに今は非商用目的の無償版と有償版との機能的な違いはありませんが、2020/10/1より無償版は機能制限されるようです。まあ、ずるっこしている人がいるらしいので、仕方なしかと思います。私にとって大きな影響は「Active Documentが10まで」の制約ぐらいでしょうか。でもまあ、どうやらArchiveとActiveの出し入れできるらしいですし、Archiveは無制限なので、手間を厭わなければ今まで通り使えそうです。本当のところは2021/10/1の移行待ちですが。
なんて下書きをしているうちに2021/10/1が過ぎてしまいました。プロジェクトにはアーカイブというメニューが出るのですが、それぞれのファイルにはアーカイブの文字はありません。アーカイブプロジェクトを新しく作ってそこに放り込むのでしょうか。2021/1/19までにアーカイブせよ、とWebサイトでは言っているので、そのうちやり方のガイドがでるでしょう。
1.3 Fusion360使い方自習
Fusion360は商用でも使えるソフトなので機能が豊富で、どこをどう触ったら良いか直感だけではどうにもなりません。使い方の自習が必要です。
【Fusion360公式チャンネル】
www.youtube.com
ここには、初心者からその上まで、色々な公式動画やユーザ動画などが上げられています。
その中でも「ビギナー向けレッスン(初心者の方はこちら!)」は、とりあえずFusion360を使えるようにするための基礎の基礎を教えてくれる良い動画かと思います。
【ビギナー向け1】ユーザーインターフェースとビュー操作(10分強)
まずはFusion360のアプリとしての基本操作方法です。ファイルの作り方などの基本操作を教えてくれます。
【ビギナー向け2】モデリング -前編-, -後編- (30分弱 x 2本)
次の動画では3Dのモデルを作る方法を教えてくれます。
まだまだ動画は続きますが、とりあえず私はこの3つの動画を見てFusion360の操作を覚えました。2時間弱ですね。世の中には本やらセミナーやらもあるので体系的に学びたければそちらをぜひ。
【ビギナー向け5】図面(20分強)
これはおまけですが、サイズや何かを図として残した方が良いケースが多いと思います。この動画では図面の起こし方の基本操作を教えてくれます。
1.3. スライサーソフトのインストール
「スライサー」とは、その名の通り3Dモデルをスライス(薄切り)にするソフトです。LABISTS X1のような積層型3Dプリンターは、溶けたプラスチックを薄い層として積み重ねて立体をつくります。ですのでモデリングされた立体(stlファイル)を、プリンタが理解できる薄切りのファイル(gcodeファイル*1 )に変換してあげる必要があります。立体の方はどんなソフトでもまあ良いのですが、スライスは3Dプリンターの事をわかっていないと困るので、だいたいプリンターに付属しています。
LABISTS X1にも「LABSLICER」なるスライスソフトが付属しています。それから汎用スライスソフト「Cura」も付属しています。Curaは色々細かく設定できるのですが、LABSLICERも結構健闘していると個人的には思うので、まずはこれを入れておきましょう。付属のMicroSDカードに入っているので、そこからインストールします。
上の画面がLABSLICERの画面ですが非常にシンプルです。左のコマンドホイールには、上から時計回りに「ファイル読み込み」「スライス」「削除」「保存」のボタンが配置されています。スライスには「Fast」「Standard」「Optimize」の段階あります。上の「Custom」ボタンを押すとさらに細かい設定が可能です。
2. ケースの設計
さてNodeMCU-ESP32の幅細い版のケースの設計に入りましょう。どんなケースがよさそうかは、下記の3Dプリンターのデータ共有サイトの様なところで「NodeMCU-ESP32」などど検索してみてあたりをつけましょう。
万が一(というかもっと確率は良いと思う)ピッタリの物があったら、設計せずにデータを貰いましょう。今回は残念ながら、ぴったりのはありませんでした。
似た感じのケースを眺めてみて、ケースの寸法を割り出しました*2。
まずは本体側は下記のような感じにしました。放熱用のスリットはこのぐらいの幅でも3Dプリンターの調子が悪くなると潰れたれりします。ううむ。側面の大きな穴はMicro USBケーブルを繋ぐ穴で、反対側の小さな穴はフタを外すときに使う穴です。
次にフタです。フタと本体の底にあるマッチ棒みたいな出っ張りは、上下からNodeMCU-ESP32のピンを押さえて位置を安定させるためにあります。Thingverseにあったケースでは、ピンが刺さる小さな穴が空いているものもありましたが、残念ながらLABISTS X1はそこまでの印刷精度はありません。
(注:これらの図面は実は順番は逆になりますがFusion360で設計した下記モデルを基に起こした2次元図面を2021/10/1以前にPDF変換し、それをJPEGにしたものを貼っています。2021/10/1以降は、図面は印刷以外は出来なくなりました。ファイルに保存したい場合には、「Microsoft Print to PDF」とかで印刷経由でPDFにしないといけなくなりました。ちょっと面倒ですが致しかたなし…)
断面図を書いたり、押し出したり、削ったりで、3Dモデルを書き上げました!
出来上がったらstlファイルとして書きだすのですが、ふつーのセンスでは[ファイル]→[エクスポート...]→[STLファイル(*.stl)]を選んで書き出すと思うのですが、これはダメ。何だか知りませんが、やったらめったら時間がかかるのです。図面エリアの左上の色々書いてあるところの一番上のモデル名「NodeMCU-ESP32…」の上で右クリック→「SLT形式で保存」を選択して保存すればOKです。私は、形式「ASCII」、リファインメント「高」で変換してます。
それからモデリングは本体とフタを同じファイルで設計しましたが(Fusion360の画面を参照)、造形はX1の造形能力を考えて別々にしました。Fusion360で表示するボディを選んで(目のアイコンをOnにして)それから上記様にSTLファイルで書き出せば、本体だけ、フタだけのSTLファイルをして書き出すことができます。
まだまだ改良の余地はあると思いますが、一応、ファイルをThingiverseに置いておきました。
www.thingiverse.com
3. 印刷(造形)
STLファイルまでは、プリンターに依存しない一般的な3Dモデルです。次にスライサーで自分の3Dプリンターにあった加工制御ファイル(gcodeファイル)に変換する必要があります。
さきほど保存したSTLファイルをLABSLICERで読み込んで、[One-key]→[Standard]を押して一旦スライスします。さらに[Custom]を押して設定の微修正をします。
Support: Support typeの所を[Everywhere]から[None]に。Adhersionの所を[Raft]から[Brim]に変更します。こうすることで印刷時間がぐっと短くなります。ちなみにSupport typeは、今回基本箱型で側面の2個の穴もどちらもサポート無くても印刷できるぐらいの大きさなので、サポート除去の手間削減と時間短縮のために、サポート無にしました。底面が冷えて縮んで剥がれないように土台を印刷するのが「Raft」です。一方「Brim」は印刷物の周りにうっすい縁を印刷して底面積を増して剥がれないようにする作戦。こちらの方が時間短縮、フィラメント節約になるのでBrim設定にしています。
こんな感じに造形できました。
4. おわりに
ケースに入れたNodeMCU-ESP32sは、こんな感じで使ってます。
白色のフィラメントだと稼働を示す赤色LEDが透けて見えますね。なおUSB電源を取っているのは、ファーゴ*3社製壁さし電源タップ(下記)のCOSTCO版です。USB電源が2個とコンセント2口が使える便利ものです。本来は上の部分にスマホを置いて充電するもののようです。高速充電出来ないっていうレビューも見かけますが、今回の用途ではまったく問題なし。
ケーブルはあまり出っ張らないように、L字で短い(もう少し短くても良いのですが)下記のやつです。
さあ次はXiaomiの四角い温湿度計を接続するぞ。