3Dプリンターは通常のインクジェットプリンタと違いプリントスピードが遅い!
数時間〜時には数十時間かかるものもある。
なので直接パソコンと繋いで動作させているとその間パソコンの電源を落とす事は出来ない。
SDカードにG-codeデータを保存しておき、後は3Dプリンターにおまかせという機能の付いたプリンターも存在するしPepRapの自作機でもArduino制御でそのような機能を持たせることも出来る。プリンターの機能としては十分でプリント中にパソコンを付けておく必要が無いので省エネである。
しかしプリントデータの移動や監視は実際のプリンターでダイレクトに行う必要があり、遠隔監視ということは出来ない。
ということで、遠隔制御が出来るのか?を調べると
・OctoPrintのOctoPiプロジェクト
・AstroPrint
というものがあるということがわかった。
どちらもオープンソースで無料。RaspberryPiをプリンタ制御マシンとして、制御インターフェースをブラウザで提供出来る仕組みだ。
しかもカメラで現在どのような行程なのか見えるのでその場に居なくても良い。
「ブラウザ」から操作出来るということはパソコンが手元に無くてもスマホでもタブレットでも制御可能ということだ。
(僕はお値段の手頃さもありAmazonのFireタブレットを3Dプリンター制御専用機として愛用している。)
どちらもRaspberryPi用に予めSDカードにシステムがインストールしているものをキットとして購入出来るという超お手軽仕様の本体自体も提供しているので初心者でも安心だ。
僕の所持した3Dプリンターを調べるとOctoPiの実働実績情報が得られたのでOctoPiを使うことにした。
OctoPiはOctoPrintというどんなマシンからでもWeb制御を提供するというプロジェクトのラスパイバージョンのようだ。
まずはダウンロードページに行き、OctoPrintのイメージをダウンロードしてくる。
既存のラズパイがあればそれに機能追加としてOctoPrintをインストールする方法もあるが、プリント中にバックでイロイロ動くより3Dプリントに専念してほしいから専用マシンとして動かすことにした。
RaspberryPiはバージョン1、2、3全て対応しているので1つ余っていた1を使う事にした。
スライスには時間がかかるがプリント中はG-codeを走らせるだけなので1でも充分だ。
インストール方法はこちらのブログを参照させていただいた。
ラズパイのシステムインストールに関しては以前に書いた記事の通りなので、コレと同じ。
ーーザッックリおさらいーー
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
の最終行を編集(#を削除)
auto eth0:1
iface eth0:1 inet static
#address ***.***.***.***
netmask 255.255.255.0
#broadcast ***.***.***.255
これでブラウザからラズパイのあるアドレスを入力
するとラズパイで動いているOctoPiのページが表示されるようになる。
で、このままだと英語。そのままでも使えるけど不安な場合は
GoogleChromeブラウザで開くと自動翻訳が選択出来るので翻訳させる。
直訳だけど日本語化成功!
ログインしてユーザーとパスワードを入力して準備完了。
ここまで出来たらプリンタにブラウザから接続出来るんだけど、その前にもう一手間。
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翻訳を使っての説明です。
右上の「設定」を開いて
インストールされたブラグインを下にスクロールすると
「もっと見る」ボタンがあるので押すと
必要なプラグインを簡単にインストール出来るようになっている。
RepRapで使われるMarlineのEEPROMの値の取得から変更まで可能になる。
試しに作って放置していたMarine基盤に繋いでみた
おおっ!初期値がちゃんと読み出せてる。
かなり高機能だ。
これでプリント中もスマホから作業状態をチェック出来るようになる。便利〜♫
遠隔監視操作が出来るというメリットは他にもある。
3Dプリンターでプリント中は人体に有害な微粒子が放出される。
ABSでは特に顕著で、簡単に言えばあのプラスチックの溶けた「クサイ」臭いである。
3Dプリンターの設置条件によっては気管支炎や喘息などの原因になることもあるので要注意だ。
「遠隔監視してプリント中は部屋に入らない。」これだけでも微粒子を吸入するリスクは大幅に減らせるはずだ。