DreamerDreamのブログ

夢想家の夢です。

3DプリンターをOctoPiで制御し、Webブラウザで設定や監視が出来るようにする

3Dプリンターは通常のインクジェットプリンタと違いプリントスピードが遅い

数時間〜時には数十時間かかるものもある。

なので直接パソコンと繋いで動作させているとその間パソコンの電源を落とす事は出来ない

SDカードにG-codeデータを保存しておき、後は3Dプリンターにおまかせという機能の付いたプリンターも存在するしPepRapの自作機でもArduino制御でそのような機能を持たせることも出来る。プリンターの機能としては十分でプリント中にパソコンを付けておく必要が無いので省エネである。

しかしプリントデータの移動や監視は実際のプリンターでダイレクトに行う必要があり、遠隔監視ということは出来ない。

 

ということで、遠隔制御が出来るのか?を調べると

 

・OctoPrintのOctoPiプロジェクト

octoprint.org

 

AstroPrint

www.astroprint.com

 

というものがあるということがわかった。

どちらもオープンソース無料。RaspberryPiをプリンタ制御マシンとして、制御インターフェースをブラウザで提供出来る仕組みだ。

しかもカメラで現在どのような肯定なのか見えるという。

ブラウザから操作出来るということはパソコンが手元に無くてもスマホでもタブレットでも見れるということだ。

どちらもRaspberryPi用に予めSDカードにシステムがインストールしているものをキットとして購入出来るという超お手軽仕様の本体自体も提供している。

 

僕の所持した3Dプリンターを調べるとOctoPiの実働実績情報が得られたのでOctoPiを使うことにした。

OctoPiはOctoPrintというどんなマシンからでもWeb制御を提供するというプロジェクトのラスパイバージョンのようだ。

 

まずはダウンロードページに行き、OctoPrintのイメージをダウンロードしてくる。

octoprint.org

既存のラズパイがあればそれに機能追加としてOctoPrintをインストールする方法もあるが、プリント中にバックでイロイロ動くより3Dプリントに専念してほしいから専用マシンとして動かすことにした。

RaspberryPiはバージョン1、2、3全て対応しているので1つ余っていた1を使う事にした。

スライスには時間がかかるがプリント中はG-codeを走らせるだけなので1でも充分だ。

インストール方法はこちらのブログを参照させていただいた。

Octoprintのインストール方法

 

ラズパイのシステムインストールに関しては以前に書いた記事の通りなので、コレと同じ。

dreamerdream.hateblo.jp

 

ーーザッックリおさらいーー

piユーザーでログイン

パスワードは初期"raspberry"

rootとpiユーザーのパスワードの変更(OctoPiのデフォルトユーザーなので消さない)

sudo passwd root

sudo passwd pi

一般ユーザーの追加

sudo adduser [username]

ユーザー権限の追加

visudo

[username] ALL=(ALL) NOPASSWD: ALL

初期sshポート変更
sudo nano /etc/ssh/sshd_config
の22ポートを任意に設定
sudoログイン禁止
PermitRootLogin yes を PermitRootLogin noへ変更

ストレージ容量拡張

sudo raspi-config

アップデート

sudo apt-get update

アップグレード

sudo apt-get upgrade

再起動

sudo reboot

と、ここまでが初期設定

ーーーーーーーーーーー

 

有線LAN接続しておく。

次に、OctoPiの接続設定

sudo nano /boot/octopi-network.txt

の最終行を編集(#を削除)

uto eth0:1
iface eth0:1 inet static
#address ***.***.***.***
netmask 255.255.255.0
#broadcast ***.***.***.255

これでブラウザからラズパイのあるアドレスを入力

http://192.168.0.13

するとラズパイで動いているOctoPiのページが表示されるようになる。

f:id:DreamerDream:20170207130903p:plain

で、このままだと英語。そのままでも使えるけど不安な場合は

GoogleChromeブラウザで開くと自動翻訳が選択出来るので翻訳させる。

f:id:DreamerDream:20170207131225p:plain

直訳だけど日本語化成功!

ログインしてユーザーとパスワードを入力して準備完了。

 

ここまで出来たらプリンタにブラウザから接続出来るんだけど、その前にもう一手間。

 

Raspberry Pi Model B+の場合USBポートの電力量が少ないので安定させるために1.2Aの電力供給を許可する。

sudo nano /boot/config.txt

に次の3行を追加

#USB Port 1.2V Up
safe_mode_gpio=4
max_usb_current=1

 

無線LANのパワーセーブモードを解除

(ここで無線接続の設定は面倒なので割愛)

sudo nano /etc/modprobe.d/8192cu.conf


# Disable power saving
options 8192cu rtw_power_mgnt=0 rtw_enusbss=1 rtw_ips_mode=1
を追記。

再起動させる。

sudo reboot

 

で、もう一度OctoPiに繋いでログイン

 

参考にさせて貰ったページには

STL形式ファイルやOBJ形式ファイルをインポートすればスライスまで完了してくれる便利機能があるんだけど、CuraEngine というプラグインを入れて STL をスライスできるようにする必要があり、

https://ultimaker.com/en/products/cura-software/list

からver 15.04.x をダウンロードしてARMようにビルドして〜云々〜と書いてあった。

面倒くさいなーと思っていたが今はブラウザ上でプラグインをインストール出来るっぽい。

以下google翻訳を使っての説明です。

右上の「設定」を開いて

f:id:DreamerDream:20170207132555p:plain

インストールされたブラグインを下にスクロールすると

「もっと見る」ボタンがあるので押すと

f:id:DreamerDream:20170207132726p:plain

必要なプラグインを簡単にインストール出来るようになっている。

RepRapで使われるMarlineのEEPROMの値の取得から変更まで可能になる。

試しに作って放置していたMarine基盤に繋いでみた

f:id:DreamerDream:20170207133027p:plain

おおっ!初期値がちゃんと読み出せてる。

かなり高機能だ。

 

これでプリント中もスマホから作業状態をチェック出来るようになる。便利〜♫