今回の完成形はこんな感じでWiFi越しにブラウザでプリント状況を確認しながら
3Dプリンタの操作ができるようにするところまでです。
頑張ればタッチパネルモニタで本体操作することもできそうですがそれはまたいずれ。
※茶色いPLAが見てはいけないものに見えてしまった方は軽く目を閉じてページをスクロールしてください。
材料
材料は過去に紹介したこいつらです。
【3Dプリンタ】
M3D The Micro
Kickstarter で歴史的人気を得た超小型3Dプリンタ。
いつの間に Amazon でも取り扱いが始まっていたようです。
小さくてカッコいい以外に何の取り柄もないので通常であればPCの接続が必須。
【コントローラ】
Raspberry Pi 3 + LCD ディスプレイ
Raspberry Pi 2 以前ではだめです。Raspberry Pi 3 推奨。
何故なら、2以前は WiFi ではないから。
そして、USBに色々繋ぐため消費電力的にしんどいから。
ちなみに、今回は LCD ディスプレイは無くても構いませんが、
OctoPiPanelを使うとタッチパネルでプリンタを操作できるようになるようです。
【USBカメラ】
LED付きUSBデジタル顕微鏡
敢えての顕微鏡。
実用上は普通の Web カメラを使った方が便利です。
Web カメラの場合は UVC 対応で LED 付きのタイプを推奨。
個人的にはこのあたりとか怪しさ満開でそそられます。
Raspberry Pi に OctoPrint をセットアップする
今回はOctoPrintを使います。
Raspberry Pi で動作する3Dプリンタサーバには他にも
Repetier-Serverというもっと高機能なものがありますが
M3D The Micro のプロファイルがあるのは OctoPrint だけだったので断念。
Raspberry Pi3 を OctoPrint 専用にセットアップする場合は
Raspbianの代わりにOctoPiを使えばいきなり設定完了です。
今回は LED モニタを残したかったので稼働中の Raspberry Pi に追加インストールします。
Raspberry Pi3 に Raspbian を入れて WiFi 化するところまでは過去記事で説明してあります。
前置きが長くなりましたが、このあたりの記事を参考に OctoPrint を設定します。
「RaspberryPiにoctoPrintを入れて3DPrinter ATOMをスタンドアローン稼働させるまでの流れ」
git から clone して OctoPrint 本体をインストール。
clone する場所はどこでも良いです。
私は home 直下が汚くなるのが嫌なのでサブディレクトリを掘っています。
pi@raspberrypi: ~ $ mkdir git pi@raspberrypi: ~ $ cd git pi@raspberrypi: ~/git $ sudo apt-get install python-pip python-dev git pi@raspberrypi: ~/git $ git clone https://github.com/foosel/OctoPrint.git pi@raspberrypi: ~/git $ cd OctoPrint pi@raspberrypi: ~/git/OctoPrint $ sudo pip install -r requirements.txt
piユーザをグループに追加して一旦ログアウト。
OctoPrint はユーザ権限で起動するので、これをやっておかないとエラーになります。
また、グループの追加が反映されるのは次回ログイン時なので、
OctoPrint の起動前にログアウトしておく必要があります。
pi@raspberrypi: ~/git/OctoPrint $ sudo usermod -a -G tty pi pi@raspberrypi: ~/git/OctoPrint $ sudo usermod -a -G dialout pi pi@raspberrypi: ~/git/OctoPrint $ sudo usermod -a -G staff pi pi@raspberrypi: ~/git/OctoPrint $ exit
M3D The Micro の USB ケーブルを Raspberry Pi に接続してから OctoPrint を起動。
pi@raspberrypi: ~/git/OctoPrint $ ./run
この状態で WiFi に繋がっているPCのブラウザから
http://{Raspberry PiのIPアドレス}:5000/ にアクセスして
画面が表示されたら成功。
OctoPrint と M3D The Micro を接続
画面上部の「Settings」から設定画面に入ります。
左側のメニューから「Plugin Manager」を探します。
Plugin の検索フォームに「M3」と入力すると「M33-Fio」というプラグインが見つかります。
古いBlog記事などでは「M3D-Fio」と紹介されていますが、どうやら商標絡みで名前が変わったようです。
もし、PluginManager に何も出てこない場合は権限が足りません。
pi ユーザを tty , dialout , staff グループに追加し
ログアウト/ログインしてから OctoPrint を再起動すれば直るはず。
pi@raspberrypi: ~/ $sudo chmod g+w /usr/local/lib/python2.7/dist-packages/octoprin t_setuptools/
CuraEngine でスライスする
実はこのままでは GCode を直接送らないとプリントできません。
CuraEngine というプラグインを入れて STL をスライスできるようにします。
CuraEngine のインストールの仕方はサイトによって色々な手順が書かれていますが、
上手くいかないものもあったりして地味に苦戦します。
まず、プロファイル等を持ってくるためにUltimakerのページからdebパッケージをダウンロードします。
このとき、必ず ver 15.04.x をダウンロードします。
新しいものは OctoPrint が対応していないので駄目です。
https://ultimaker.com/en/products/cura-software/list
ダウンロードしたパッケージを解凍します。
pi@raspberrypi: ~/ $ sudo dpkg-deb --extract cura_15.04.5-debian_amd64.deb /
このとき /usr/share/cura/ に入る CuraEngine バイナリは ARM 用ではないので、
このままだと動作しません。
次に、OctoPrint の github に載っている手順で
CuraEngine をビルドしなおして上書きます。
pi@raspberrypi: ~/git/ $ sudo apt-get -y install gcc g++ pi@raspberrypi: ~/git/ $ git clone -b legacy https://github.com/Ultimaker/CuraEngine.git pi@raspberrypi: ~/git/ $ make -C CuraEngine pi@raspberrypi: ~/git/ $ sudo mkdir -p /usr/share/cura/ pi@raspberrypi: ~/git/ $ sudo cp CuraEngine/CuraEngine /usr/share/cura/
CuraEngine のバイナリをビルドした後、OctoPrint の Plugin Manager で
「Cura Engine」をインストールし、さらに左メニューに追加された
「Cura Engine」というメニューを開きます。
OctoPrint が自動で Cura Engine を見つけてくれていれば
何も入力しなくてもこのようになるはずです。
プロファイルは M33-Fio が入れてくれたっぽいです。(たぶん)
プリントしてみる
ここまでくればリモートからプリントが可能です。
トップ画面で「Connect」ボタンを押して「Machine State」が
「Operational」になることを確認します。
Operational にならないようなら接続が悪い、電源が入っていない、
プラグインが上手くいっていない、のどれかではないかと思います。
Operational になったら、左下のメニューから STL ファイルをアップロードします。
一旦アップロードしたファイルは保管してくれるので、後から iPad などで
プリント操作することも可能。
STL ファイルを slice して gco ファイルにする必要があります。
非常にわかりづらいですが、ファイル名の右下にある
小さいボタン(赤丸のところ)をクリックして slice の設定をします。
このあたりの画面が出てくるまで、これが M3D だったことを忘れていました。
この後、slice するのですが、「slicing (0%)」という表示のまま
動かなくなったら Cura Engine のビルドに失敗しています。
試しに Shell 上で CuraEngine ファイルを実行してみるとエラーになると思います。
その場合、CuraEngine をビルドしなおしてビルドエラーになっていないことを
確認してからバイナリを差し替えます。
カメラと接続する
実は、過去記事で説明したカメラのストリーミング配信の設定をそのまま使えます。
「USB顕微鏡をRaspberry Pi3 でストリーム配信」で説明した設定のまま。
起動スクリプトもそのままでOKです。
OctoPrint の settings メニューから「Webcam」を選びます。
URL の入力欄に次のように入力。
・Stream URL : http://{Raspberry PiのIPアドレス}:8080/?action=stream
・Snapshot URL : http://{Raspberry PiのIPアドレス}:8080/?action=snapshot
上手くいくとトップページの「Control」タブでプリントの様子が
ストリーミング表示されるようになります。
FFmpeg を設定しておくとプリント中のタイムラプス動画を作ってくれるようです。
Raspberry Pi に FFmpeg を入れるのは少々面倒なのでまた後日。
自動起動
Raspberry Pi 起動時に OctoPrint も起動するようにします。
/etc/init.d/octoprint に次のスクリプトファイルを置きます。
#!/bin/sh ### BEGIN INIT INFO # Provides: octoprint # Required-Start: $local_fs $remote_fs $network $syslog $named mjpg # Required-Stop: $local_fs $remote_fs $network $syslog $named mjpg # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 ### END INIT INFO OCTOPRINT_HOME=/home/pi/git/OctoPrint case "$1" in start) /usr/bin/sudo -u pi $OCTOPRINT_HOME/run --daemon start ;; stop) /usr/bin/sudo -u pi $OCTOPRINT_HOME/run --daemon stop ;; restart) /usr/bin/sudo -u pi $OCTOPRINT_HOME/run --daemon stop /usr/bin/sudo -u pi $OCTOPRINT_HOME/run --daemon start ;; esac exit 0
4行目と5行目の末尾にある「mjpg」はカメラの mjpg-streamer を
自動起動しているスクリプトのProvides名です。
mjpg-streamer の起動スクリプトについては過去記事参照。
この起動スクリプトが起動時に実行されるようにします。
$ sudo -s # apt-get install chkconfig # chkconfig -add mjpg # update-rc.d mjpg defaults # chkconfig -add octoprint # update-rc.d octoprint defaults # ls /etc/rc5.d/*octoprint /etc/rc5.d/S04octoprint # ls /etc/rc5.d/*mjpg /etc/rc5.d/S03mjpg # reboot
mjpg の後に octoprint が起動するように設定できました。
たいしたスクリプトではないので、1つの起動スクリプトにまとめることもできますが、
それぞれを別々に起動/停止できるようにしておくのが Linux っぽいかと思います。
完成
長々と記事を書いている間にプリントが終わりました。
左のライトが顕微鏡、右下のRaspberry Piがコントローラです。
完成品。カメラのレンズキャップホルダーです。
サイズぴったり。
0 件のコメント:
コメントを投稿