3Dプリンタ Prusa i3 MK3S を監視する方法(OctoPi編)

Prusa i3 MK3Sで印刷を始めて2ヶ月近く経ちますが、ほぼ毎日20時間以上は稼働している状態です。

そのため、1000時間以上は印刷しているワケです。

日夜ずーっと印刷を続ける中で、とにかく沢山の成功失敗を繰り返しました。

その中で、かなり面白くてハマっている OctoPiというオプションデバイスについて紹介したいと思います。

OctoPiは3Dプリンタに備え付けられる機器のことです。
OctoPiはこんな感じで3Dプリンタに備え付けた機器です。

Original Prusa i3 MK3S 3Dプリンタ

利用しているプリンターはこちら。

組み立て済みのものとで数万円の価格差あります。

組み立てには平均16時間かかります。(同機種を買った同僚たちから総合的に判断)

組み立て後のトラブルを考えると、この価格差は妥当だろうなと今は感じます。今は。

3Dプリンタをネットワークから管理したい

3Dプリンタを利用していると、次のようなことを感じ始めます。

  • 印刷が完了したり、エラーになったら通知して欲しい
  • わざわざ覗き込まなくても状況を把握したい
  • SDカード経由じゃなく、ネットワーク経由でGcodeファイルを渡したい
  • 印刷している様子を動画撮影してみたい などなど

こういった要望に応える方法が、実は用意されています。

OctoPrint / OctoPi を使い始めよう

次のソフトウェアを利用することで、先程の要望に応えることが可能です。

OctoPrint.org
OctoPrint is the snappy web interface for your 3D printer that allows you to control and monitor all aspects of your printer and print jobs, right from your bro...

このソフトウェアは、Raspberry Pi 向けのOSです。

この OctoPrint を組み込んだ Raspberry Pi 向け OS のこと、あるいはこのOSをインストールしたRaspberry Pi機そのものを OctoPiと呼びます。

なお、Windows や Linux, Mac でも構成できるようですが、これらを長時間の印刷の間にずーっと付き合わせおくのはちょっと微妙ですよね。

そのため、Raspberry Pi がオススメされていますし、当方も OctoPi にしました。

OctoPi に必要な物

この OctoPi を構成するには、Raspberry Pi 機としてそれなりにキチンと構成する必要があります。今ちょっと価格が高騰してますが…

  • Raspberry Pi 4 (3以前だと能力不足になることも)
  • マイクロSDカード(32GBは最低ライン、できれば耐久性の高いものを)
  • ヒートシンク(稼働時間が長く、負荷も高いので)
  • ラズパイカメラ(目視での監視は重要)

ケースは3Dプリンタで印刷する方が良いので、買わないことをオススメします。(後述)

なお、マイクロSDカードと通常のSDカードはサイズが違うので、持ってるつもりで持ってない!みたいなことがないようにご注意を。

OctoPi のインストール

この OctoPi のインストール自体は、非常に簡単です。

こちらの「Setting up OctoPi」に手順が記載されています。

Download & Setup OctoPrint
Learn how to setup OctoPrint using the preinstalled OctoPi image for Raspberry Pi, or how to install from source on Windows, Linux and Mac.

英語が苦手な人は、Google Chrome や Microsoft Edge の翻訳機能を活用してください。そんな難しい英語は無いですが。

また、下記の動画を見ながら実施しても良いでしょう。英語だけど。

インストールが終わって、一旦 Wi-Fi 経由で下記に接続できるようになったらインストールは終了です。

http://octopi.local

OctoPi の設置

OctoPi 機は、3Dプリンタ本体とUSBケーブルで直接接続します。

そして、注意したいのは電源は本体と別に確保しなければならないというところです。USB-Cケーブルで、別途電源を確保してあげる必要があります。

本体接続と電源は異なるので注意。

この電源がくせもので、キチンとした電力供給が無いとすぐにハングしますので、注意が必要です。スマホとかの安くて小さいUSB電源とかだと、大抵アウトです。

これ、印刷中にハングすると印刷が異常終了するので、細心の注意が必要なポイントといえます。

また、先にご紹介した通りに 3Dプリンタに備え付けてあげることを推奨します。

備え付けたラズペリーパイ

こちらは下記のように備え付けられるケースが既に公開されているので、そちらを印刷して使用するのが無難です。

OctoPrint Raspberry Pi 4 B Case for Prusa MK3S by brawfx
I mixed the mount arm I liked with the case I liked for the Prusa MK3S and Raspberry Pi 4 to use with OctoPrint. I created a basic mesh case, one with a ribbon ...

ただし、備え付ける位置によってはケーブルが邪魔になったりするので、その当たりを考慮したケースを選択するのが良いでしょう。当方の位置は、意外と邪魔…

あと、カメラをどうするか問題があります。カメラケーブルの長さに依存するのですが、長いケーブルを利用すれば正面から撮影も可能です。

実際に備え付けると、こんな感じです。これは横ですが。

このカメラケーブルのたるみが重要。なぜならベッドが移動するため、必要なケーブルの長さが変わるためです。

ちなみに、カメラをヒートベッドに備え付けることも可能です。いくつか公開されていますから探して見ると良いです。しかし、動く度に上下動く不安定さから、当方は備え付けることは諦めました。

備え付けた方が土台の前後に左右されず、安定した形で撮影できて良いのですけどね。

ここまで準備が整えば、OctoPiを実際に使用することができます。

OctoPi で印刷しよう

OctoPi コンソール( http://octopi.local )に接続すると、次の画面になります。

OctoPiの管理コンソールは初期状態では英語です。
OctoPi 管理コンソール(英語)

この画面で基本的な操作は行っていきます。

日本語化

右上のスパナアイコンをクリックすれば、設定画面が開きます。

OctoPrint Settingsダイアログから日本語化する設定を選択することができます。AppearanceからDefault Languageで日本語を選択します。

「Appearance」を選択して、「Default Language」から「日本語 [ja, Japanese]」を選択して、「Save」ボタンを押下します。

この後ブラウザをリロードすると、画面が日本語化されます。

OctoPi 管理コンソールが日本語化できたら完了です。
OctoPi 管理コンソール(日本語)

接続

この状態では、OctoPi (Raspberry Pi) は3Dプリンタと接続されていなくて、操作できない状態です。そのため、次のように左上の「設定」パネルで設定した状態で接続ボタンを押下する必要があります。

OctoPiが未接続状態だと、「接続」ペインで「接続」ボタンが押下できます。
OctoPi 接続設定(未接続)

接続ボタンを押下して接続されると、「切断」ボタンに変更すれば成功です。

OctoPiが接続状態だと、「接続」ペインで「切断」ボタンが押下できます。
OctoPi 接続設定(接続完了)

これで OctoPi 管理画面から3Dプリンタを操作できるようになりました。

印刷

予め用意したGcodeファイル(3Dプリンタで印刷できるファイル形式)をアップロードします。

「ファイル一覧」ペインからGcodeをアップロードすることができます。
Gcodeアップロード

アップロードボタンを押下して、ダイアログからGcodeを選択すればアップロードできます。

ファイル一覧からプリンタアイコンを押下すると、印刷できます。

アップロードしたファイルがファイル一覧に現れたら、右のプリンタアイコンをクリックします。

「ステータス」ペインで「造形」ボタンを押下すると印刷を開始することができます。

ステータスペインで「ステータス」が「造形中」になったら、印刷開始です。

もし「造形中」にならない場合は、「造形」ボタンを押下すれば開始します。

これで印刷が完了するまでひたすら待つだけです。

印刷が始まると、メインのペインで温度が上がり始めていることが確認できます。

右側のペインで温度状態が確認できますので、キチンと温度が上がっているか確認することができて便利です。

もっと細かく印刷温度も調整できますが、最初は利用することはないと思います。

これで印刷開始~印刷完了のステータス管理が、このOctoPiコンソールに接続さえできれば、どこからでもできるようになりました。

押し入れや離れに配置しておいても、状態がある程度管理できます。

OctoPi を印刷結果を通知しよう

ただ、このままでは印刷が完了しても、管理コンソールを見ないと分かりません。

そこで、印刷開始/完了/エラーになったら通知してくれる機能を追加できるプラグインを追加します。

先程の設定画面からプラグインを追加します。

プラグインマネージャーの設定画面

左のメニューから「プラグインマネージャー」を選択して、右ペインで「プラグイン追加…」を押下します。

プラグインマネージャーから、直接インターネット経由でプラグインをインストールすることが可能です。

「プラグインの追加」ダイアログで、検索フォームに「Octoslack」と入力します。

表示された選択肢から、右の「インストール」ボタンをクリックします。そうすると少し待てばプラグインのインストールが完了します。

ここでインストールしたプラグインはこちらです。

Octoslack
An OctoPrint plugin for monitoring your printer and prints via Slack, Mattermost, Pushbullet, Pushover, Rocket.Chat, or Riot/Matrix

プリンタと印刷物を Slack、Mattermost、Pushbullet、Pushover、Rocket.Chat、Discord、Riot/Matrix、またはMicrosoft Teamsで監視するための OctoPrint プラグイン。

Octoslack

こちらを使えば、何かのイベントを通知することが可能です。海外製なので、LINEに対応していないのが残念ですが、WebHook URLに通知が飛ばせるのでカスタマイズ次第ということです。

こちらをプラグインの設定画面から設定します。

OctoSlackの設定は、 OctoPi設定画面から実施することが可能です。

下記の選択肢で通知先のサービスを選択できます。

OctoSlackのConnection typeで接続先サービスを選択することができます。

この中から自分が使いたいサービスを選択します。当方は Pushbullet ユーザーであって iPhone/Apple Watch通知もできるため、Pushbulletを選択しました。

例として、OctoSlackのPushbullet接続設定を行うところを説明します。

次の設定箇所では、それぞれのサービスに連携するための設定をします。

Pushbulletの場合、Pushbulletサービスから取得してきたAccess Tokenを入力して、通知先のチャンネルを指定します。

この辺は各サービスで大きな差があるわけではないため、英語ですが表示されている手順に従って行えば、すんなり設定できるはず。

これ以降は通知内容の設定になります。どの場合に通知するかなどを選択します。個人的には、下記以外は通知するとうるさいので外しました。

  • Print started
  • Print failed
  • Print cancelled
  • Print finished
  • OctoPrint error

この辺は、使いながら調整した方が良さそうです。

また、通知内容の中でも特に注目したいのが、次の設定項目「Snapshots」です。

OctoSlackのSnapshotsによって、印刷完了の状態を撮影して送信することが可能です。

ここで印刷開始時や完了時の状態をカメラで撮影して、通知することが可能です。

例えば、印刷完了するとこんな感じで送られてきます。

印刷完了後の状態を撮影して、Pushbulletで画像を受信できます。

これで無事に印刷完了したことを確認できて、非常に安心です。絵文字に対応していないところが Pushbullet のイケてないところですが。ひとりSlackより使いやすいのでつい…

ちなみに、エラーになるとこんな感じ。

印刷エラーを撮影して、Pushbulletで画像を受信できます。

エラーで無残な状態になっていることがわかります(涙)
またエラーメッセージと写真から、だいたい何が起こっているかがわかります。

ただ、あくまで完了通知としては、これ以上は求めなくて良いだろうとは思います。

OctoPi で撮影しよう

印刷経過を監視する

そもそも印刷している様子をカメラで捉えられると、非常に便利です。

毎回わざわざ3Dプリンタを覗き込まずにすみますし、タブレットなどを監視モニターとして配置しておくと離れた場所から常に状況把握できて安心です。

これにはWebカメラ、もしくは先に紹介したRaspberry Pi 用カメラを、それぞれの方法でOctoPi本体に接続します。

このカメラの設置位置が非常に曲者です。

様々な場所に設置可能ですが、それによって見える位置が変わってきます。そのため、次のようなカメラアームを印刷して、設置すると良いでしょう。

Raspberry Camera Prusa Mk3 v.4 by Bogdanko
I redesigned everything from the scratch. Improved many things i thought did not work so well. This is the best raspberry camera mount I ever made. Design impro...
Modular Mounting System by HeyVye
This project is a mounting system for lightweight objects such as phones and small cameras. The joint is compatible with GoPro mount. Phone clamp assembly video...
Ender 3 Raspberry Pi Camera Mount by austin3dprinting
Mixed Mixed Waverunner62’s thing: 2996256 and Scruffy-3D’s thing: 2262040 to make my own little Raspberry Pi Camera mount for the Reality Ender 3. Use m3 screws...

これらはそれぞれ下記の通りに長所短所があります。

カメラアーム種類長所短所
プリンタ備え付け最も安定して設置できる
撮影角度の自由度が高い
印刷タイミングによって印刷物と距離が異なってしまう
印刷の振動でズレ安い
ヒートベッド備え付け印刷物と常に同じ距離で撮影可能アームが安定して設置しにくい
印刷の振動でズレやすい
印刷物と距離が近すぎる
Z軸モーター備え付け印刷物の高さに合わせて印刷可能
振動でズレにくい
Z軸モーターへのねじ止めで安定する
印刷角度が微妙
印刷物の高さが低いとキレイに撮影できない
最も自然な3Dプリンタ部品に見える
見下ろし位置備え付け高さに関係なく、安定して撮影可能
印刷物との距離が一定
印刷物が小さかったり、ヘッドの位置によって、ヘッドが邪魔で印刷物が見えない
独立スタンド撮影角度の自由度が高い
振動の影響を受けない
スタンドが必要
設置場所を安定させにくい

そんなわけで試行錯誤した結果、我が家ではこちらのアームを採用しました。

Prusa I3 MK3 Raspberry Pi Camera Mount by lab27
There are many different mounts available, but I was missing a clean and simple design for a x-axis Raspberry Pi camera mount. Designed for the Prusa I3 MK3, th...

全体像は印刷できないこともありますが、Z軸の高さに合わせて印刷できるし、印刷毎に振動を気にする必要ないのが良いと感じたためです。

設置したら、設置画面の下記を有効にします。

WebカメラはOctoPrint Settingsで設定を行います。WebカメラとタイムラプスからWebカメラサポートを有効にするを選択します。

こうすることでカメラでの撮影ができるになり、下記のように見えます。

OctoPiでのカメラ監視ができる様子

左のメニューから「Webカメラとタイムラプス」を選択して、「Webカメラサポートを有効にする」にチェックを入れて保存します。

カメラの設置方向に合わせて、下記のいずれかにチェックを入れることで正位置に見えるように調整することも可能です。

  • Webカメラの映像を水平に反転
  • Webカメラの映像を垂直に反転
  • Webカメラの映像を反時計回りに90度回転

これでリモートから印刷状況を、リアルタイムで監視することができるようになりました。

これで3Dプリンタの場所を離れても安心です。

ちなみに、3Dプリンタの状態とは関係なく撮影できるので、最悪燃えてる時も把握できます。(いや、そんな最悪は嫌ですが)

なお、監視している間は電気が暗くなると見えなくなるので、ライトをつけたままにするか、暗視カメラを利用するか、考えておく必要があるのも注意です。

印刷経過を録画する

ここからは完全に趣味の領域に入ってきますが、印刷経過をタイムラプスで撮影することも可能です。

設定画面で、下記の項目を有効にします。

タイムラプス録画はOctoPrint Settingsで設定を行います。Webカメラとタイムラプスから、タイムラプス機能を有効にするを選択します。

「タイムラプス機能を有効にする」チェックボックスにチェックを入れる以外は、特に設定不要です。これで毎回印刷するときに、自動でタイムラプス録画を行ってくれます。

撮影完了したタイムラプス録画は、タイムラプスタブで選択することができます。

「タイムラプス」タブから録画したデータを選択できます。失敗した時も保存されるので、ちょっと無駄だなとは思いますけどね。

見ているとだんだんハマってきます。不思議なもので。

デフォルトでは640×480の低画質でしか撮影できませんが、うまく調整すればフルHDや4Kで印刷することも可能です。その方法はまた別途。

なお、録画後の動画変換(ffmpeg)に高い負荷がかかるため、Raspberry Pi ZEROや古いRaspberry Piでは利用するのが難しいみたいです。せっかく撮影したのに、処理でこけて台無し…というのは痛いですからね。

そのため、当方は最新のRaspberry Pi 4を利用しており、快適に録画できています。

OctoPi は3Dプリンタを楽しくアップグレードする

以上で紹介した通り、3DプリンタにOctoPiをアドオンすると、かなりやれることが広がってきて非常に楽しくなります。やる気になればタッチパネルを実装することも可能だそうです。

OctoScreen - a new software to use OctoPrint with LCD
Hi there. I want to share with you a new software for LCD for OctoPrint - OctoScreen: OctoScreen is LCD touch interface for our OctoPrint based on GTK+3, th...

正直なところ、OctoPiでリモート管理できるようになるとタッチパネルは必要ないのですが、こんな感じで色々拡張できるのが良いですよね。

しかも、必要なパーツは3Dプリンタで印刷すれば良いわけです。

また、下記のページで様々なプラグインが公開されているので、片っ端からインストールしてみると更にさらに楽しくなります。

OctoPrint Plugin Repository
The official OctoPrint Plugin Repository

ぜひ一緒に楽しい3Dプリンタ+OctoPiライフを送りましょう。

いつもの 匠

3Dプリンタの製作物を投稿するエンジニアです。
1年で1500時間300種類超を印刷してみました。(2021年2月時点)
趣味の3Dプリンタ印刷の楽しさを伝えたいと思って、このブログを始めました。

I want to share the fun of 3D printer printing as a hobby.

【保有する3Dプリンタ】
Prusa i3 MK3S+Ender 3 Pro

いつもの 匠をフォローする
3Dプリンタ
気ままにDIY生活
タイトルとURLをコピーしました