RaspberryPiの使い道~その3 Octoprint編

前回、RaspberryPiを3Dプリンタのホストにするために、Octoprintをセットアップした。

これでRaspberryPiが3DプリンタにG-Codeを送り込んでくれるので、スタンドアロン動作を除く3DプリンタのためにPCを起動しておく必要はなくなることになる。

この環境に付加価値をつけるために、Webカメラによるリモート監視機能と、G-Codeしか受け付けてくれないOctoprintにSlicerであるCuraの連動機能を設定する。

1.Webcamの設定

 条件としてはUVC対応であること。ここ数年のカメラだと大丈夫だと思う。UVC非対応だと超面倒くさいので割愛

 まぁ普通にWebcamを使えるようにしてるだけなんだけど。。

cd ~
sudo apt-get install subversion libjpeg8-dev imagemagick libav-tools cmake
git clone https://github.com/jacksonliam/mjpg-streamer.git
cd mjpg-streamer/mjpg-streamer-experimental
make

 これでおしまい。3DプリンタとWevcamがUSB接続されることになるけど、電源容量だけは注意。

 で、動作確認。

cd ~/mjpg-streamer/mjpg-streamer-experimental
./mjpg_streamer -i "./input_uvc.so" -o "./output_http.so"

 もし変態解像度とか、画面真っ暗とか言うこと聞かないカメラだったらこんな感じでオプションを明示したら動くことも。

"./input_uvc.so -d /dev/video0 -y -r 640x480 -f 30"

 で、落ちることなく動いてそうだったら、おもむろにブラウザでアクセス。

 静止画キャプチャ http://RaspberryPi'sLocalIP:8080/?action=snapshot

 動画ストリーム http://RaspberryPi'sLocalIP:8080/?action=stream

 とりあえずこんな感じで見れたらmjpg-streamerの設定は終了。このアドレスをOctoprintに設定すると監視できる。

2.Curaの連動設定

 まず、インストールする上で問題になるのがコンパイラ C++11を入れなければいけないということ。環境としてはリポジトリをwheezyからjessieにアップグレードすることになるので、穂なの環境と共存させている人は要注意。

まず、リポジトリを切り替える。

sudo nano /etc/apt/sources.list

"wheezy"を"jessie"に書き換えて保存。

あとはいつものおまじない。

sudo apt-get update

sudo apt-get upgrade

sudo apt-get dist-upgrade

これでC++11が使えるようになったはずなので、Curaをgitしてmake.

cd
sudo apt-get install python-wxgtk2.8
git clone https://github.com/daid/Cura.git
cd Cura
git clone https://github.com/Ultimaker/CuraEngine.git
cd CuraEngine
make
cp build/* -r ./
cd ..
{ echo '#!/bin/sh'; echo 'PYTHONPATH=. python2 -m Cura.cura $@'; } >> cura.sh
chmod +x cura.sh

でCuraのインストールはおしまい。PC上でCuraを使ってた人は設定をインポートするために。Win上のCuraでFile > Save ProfileしてCuraConfig.iniを/home/Pi/Cura/config/に保存。マシン固有設定ファイルのpreferences.iniを/home/pi/.cura/dev/preferences.iniに保存とあるが、ディレクトリが見当たらないので保留中。

で、Octoprint中のCura設定パスに/home/pi/Cura/cura.shを指定すると連携設定完了。

アップロードにSTLを指定できるようになり、アップロード完了後にSliceが自動実行される。

ここまでの作業で、WebUI上からのSTLアップロード、スライス、3Dプリントの動作を確認できた。しかもWebcamで状況把握できるので多少は目を離すことも可能になる(外出は怖くて出来ないが).気になるのはRaspberryPiの負荷だが、Octoprint未使用時にもmjpg-streamerが走るため、VGAなんかでストリーミングするとそれだけでCPUを8割近く食っている。QVGAに落とすなどの工夫が必要。

あとアップロード後のSliceも時間を食うが、遠隔監視できると思えば我慢が出来るレベル。Curaの設定の問題だとは思うが、PCとラフトの生成方法が違うようで妙に反りやすい(剥がすのは楽なのだが)。

まだ数をこなしていないので、フリーズ、途中停止という状況には遭遇できていない。(したくもないけど)

とりましばらくこれでいってみるかな。