3Dプリンタを使い始めると、SDカードに印刷用ファイルコピーして3Dプリンタに入れて->失敗したからもう1回・・・というのを何度も繰り返すのが面倒になったり、印刷が終わるまで結構時間がかかるものなので遠隔で印刷状況を確認したりしたくなります。
最近、「ANYCUBIC MEGA-S」という、コスパがとてもよく初心者にもオススメな3Dプリンタを買いましたので、「OctoPrint」という無償のプリントサーバーソフトウェアと組み合わせて遠隔印刷システムを作ってみたいと思います。

大まかな手順は、
1. 必要なものの準備
2. MEGA-Sの組み立て
3. Raspberry Pi セットアップ
4. OctPrint設定
5. remote.itの導入
6. 動作確認
となります。




1. 必要なもの
  • ANYCUBIC MEGA-S

  • Raspberry Pi 3bか3b+ (4bでも動作可能)
5GHz帯のWiFi(11aや11ac)を利用したい場合、3bは2.4GHz帯(11b等)しか使えませんので下記のような3b+を購入しましょう。
  • microSDカード8GB以上(上記のようなセット品を買った場合は不要)
  • Webカメラ:安いもので大丈夫です。機種によっては非対応(映らない)ものもあるようなので、不安な場合はhttps://github.com/foosel/OctoPrint/wiki/Webcams-known-to-workで確認しておきましょう。
  • 設定用のPC(WindowsやMacなど)
  • 適当なmicroSDカードリーダー(設定用のPCについている場合は不要)

2. MEGA-Sの組み立て
組み立ては割愛しますが、付属の説明書の絵を見れば比較的簡単にでき、完成まで30分もかからないと思います。

3. Raspberry Pi セットアップ
・イメージのダウンロード
Raspberry Piに「OctoPi」という「OctoPrint」がプリインストール済みのイメージをダウンロードします。イメージは以下からダウンロードできます。[Download OctoPi x.xx.x]
https://octoprint.org/download/
ダウンロードしたzipファイルは解凍しておきます。

・イメージの書き込みと設定
書き込みができるソフトはたくさんありますが、[balenaEtcher]が使いやすくておすすめです。
https://www.balena.io/etcher/
①[Etcher for Windows (x86|x64) (Installer)]からダウンロードし、インストールします
②Raspberry Piのイメージ用のmicroSDカードをカードリーダーなどを介しPCに挿入しておきます

③書き込み
[Select image]を選択
etchermain

先ほど解凍したoctopiのイメージファイルを選択
octopi-img

[Select target]をクリックし、挿入したmicroSDカードのドライブを指定。
[Flash!]クリックで書き込み開始。
環境にもよりますが5~10分程度で書き込みが終わります。

⑥初期設定(WiFi接続先とSSHの設定)
書き終わるとbootというドライブができているはずなので、エクスプローラーで開いてください
 octopi-wpa-supplicant.txtの編集
 bootドライブ直下に作成済みのはずなので、テキストエディタで開き、下記のように編集して保存します。(ワードパッドは非推奨)
 ssh設定
bootドライブ直下にsshという空ファイルがあることを確認。
bootdrive



これで初期設定は終わりです。

カメラやケーブルなどを接続後、Raspberry Piを起動します。
・Raspberry PiにWebカメラを接続する。
・作成したmicroSDカードをRaspberry Piに挿入
・Raspberry Piを電源に挿ししばらく待ちます。
Raspberry PiのLEDが点滅し、自動的に設定ファイルに従ってネットワークに接続するはずですが、不安な場合は、HDMIなどをディスプレイに接続し、何が起きてるか確認しながら進めると良いです。
うまくつながらない場合や無線LAN環境がない場合は有線LANで接続しましょう。

・5分ほど待ち、Raspberry Piと同じネットワークにつながったパソコンなどからChromeなどのWebブラウザでhttp://octpi.local(またはルーターの管理画面などで調べたIPアドレス)にアクセス
octo20


4. OctPrint設定
・日本語パックインストール
https://t.ly/BO362 -> [Download]
Downloadしたzipファイルは解凍不要です。
以下の手順で適用します。
①[Settings]アイコンをクリック
octo21

②[Appearance] -> [Language Packs]の[Manage]ボタンをクリック
octo22


③[Browse]ボタンをクリック->先ほどDLしたzipファイルを指定
octo23

④[Upload]ボタンをクリック
octo24


⑤[Close]で画面を閉じる
octo25


※今回は上記の言語パックを利用していますが、別の言語パックを適用する際は、「delete」ボタンで削除後、同じ手順でインストールすることができます。

・rebootコマンド指定
[Server]をクリックし、[Commands]の設定項目にそれぞれ以下のように設定します。
・Restart OctoPrint
sudo service octoprint restart 

・Restart System
sudo shutdown -r now 

・Shutdown System
sudo shutdown -h now 

octo26


最後に[Save]をクリックして設定画面を閉じます。

OctoPrintサービス再起動
[Commands]の設定をすると[System]アイコンが新たに表示されます。
Restart OctoPrintをクリックし、OctoPrintを再起動します。
octo27



これで初期設定は終わりです。

⑤Webカメラ設定
ひとまず[コントロール]タブを開きます。下記のように映像が表示されていれば特に設定は必要ありません。
octo04


出ない場合はSSHでRaspberry Piにログインして設定が必要です。
・TeraTermのようなターミナルソフトをインストールします。
・TeraTerm等を用い、ルーターの管理画面などで調べたRaspberry PiのIPアドレスにアクセスします。
octo06

・ログインIDとパスワードは初期値(pi/raspberry)となります。
・lsusbコマンドでusbデバイス一覧が表示されるので、接続したWebカメラを特定する。(Webカメラの機種によって表示が異なる)
次のファイル編集で使うので赤字箇所を控えておく(Webカメラの機種によって表示は異なる)
Bus 001 Device 005: ID xxxx:yyyy Logitech, Inc. HD Webcam C525 
octo07


sudo vi /boot/octopi.txtでファイルを開き、以下の2行を追記。
camera="auto"
additional_brokenfps_usb_devices=("xxxx:yyyy")
xxxx:yyyyの箇所には先ほど控えた赤字箇所の文字を入力
octo08

[Escキー]を押下してInsertモードを抜け、[:wq]->[エンターキー]で保存

・最後にOctoPrintサービスを再起動し、再度[コントロール]タブを開いて映像が表示されるようになったか確認する。
octo09


5. remote.itの導入
外部からRaspberry Pi上のOctoPrintにアクセスするためのサービスです。

※外部から接続できるようにするとセキュリティリスクが高まりますのでログインパスワードを変更する必要があります。
octo02

新パスワードを入力し、確認ボタンをクリック。
octo01


・remote.itアカウント登録
https://remote.it/
①[Sign up]->emailアドレスを入力し、仮メール登録。
認証コード付きメールが届くので、URLから本登録。

②[ADD DEVICE+]をクリック
screencapture-app-remote-it-2019-12-03-15_31_16

③Raspberry Piをクリック
os


④以下のようなコマンドが表示されるので、コピーする。
sudo apt update
sudo apt install connectd
sudo connectd_installer

⑤TeraTermのようなターミナルソフトをインストールします。
ルーターの管理画面などで調べたRaspberry PiのIPアドレスにアクセス
octo06
ログインIDとパスワードは初期値(pi/raspberry)となります。

先ほど控えたコマンドを上から順に1行ずつ実行します。
sudo apt update
sudo apt install connectd
sudo connectd_installer

sudo connectd_installerは以下のように設定していきます。
octo10

octo11


6. 動作確認
ANYCUBIC MEGA-S付属のUSBケーブル(Type-B)でMEGA-SとRaspberry Piを接続します。
OctoPrintの管理画面に戻り、[電源アイコン]->システムの再起動でRaspberry Piを再起動します。
octo03



remote.it経由のアクセスの場合、恐らくアクセスURLが変わりますので、再度remote.itの管理コンソールを表示し、リロードしてからRaspberry Piにアクセスします。

ポート:auto
ボーレート:250000(Mega-Sは現行最新FWで左記のボーレートです。)
[接続]をクリック。
(ボタン名が[切断]と変われば接続成功です。)

ここまで出来たら、Ultimaker Curaなどのスライサーソフトウェアで作成したモデル(stlファイルなど)をスライスし、gcodeファイルを直接アップロード、印刷することができます!
stlファイルはFusion 360で3Dモデリングすることで作成できますし、Thingiverseなどの有名サイトから無料でダウンロードすることもできます。

octo05

また、remote.itを導入したのであれば、外出先からも印刷指示が行えるようになっているはずです。