##はじめに
3DPrinter ATOMを動かすにはPCが常に占有状態になるため、RaspberryPiにWEBベースのプリントアプリ(octoPrint)を入れてスタンドアローン化を図りました。
##インストール
前提としてデフォルトユーザpiにて作業するものとします。
octoprintのwikiにはpySerialのパッチ当て手順があるが現在は不要なようです。
(自分の場合はずっとrasberyPiを放置していたためOSを更新するところからスタートします。)
OctPrintのインストール
sudo apt-get update
sudo apt-get upgrade
sudo apt-get dist-upgrade
git経由でインストールの実行
cd ~
sudo apt-get install python-pip python-dev git
git clone https://github.com/foosel/OctoPrint.git
cd OctoPrint
sudo pip install -r requirements.txt
piユーザにttyとdialoutのグループを追加
sudo usermod -a -G tty pi
sudo usermod -a -G dialout pi
以下のコマンドでテスト実行
実行前にatomの電源を入れてラズパイにUSB接続しておきます。
pi@raspberrypi ~/OctoPrint $ ./run
* Running on http://0.0.0.0:5000/
あとはラズパイにport5000でアクセスしてブラウザ操作できることを確認して下さい
カメラも使う
カメラを使うことで外部から監視も可能になるようです。
使わないならこの章の手順は不要です
なおカメラは通常のWEB Cameraの場合はUVC対応のモデルである必要があります。自分はamazonで一番安いの(C270)を買いました
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
試しに実行します
cd ~/mjpg-streamer/mjpg-streamer-experimental
#WebCameraを接続する場合
./mjpg_streamer -i "./input_uvc.so" -o "./output_http.so"
# rasberyPi cameraの場合
./mjpg_streamer -i "./input_raspicam.so" -o "./output_http.so"
port8080にてアクセス確認してみてください
http://<rasberyPiのip>:8080?action=snapshot
octoprintにログインしてカメラの関連付けを行います。
octprintにログインしてsettings->Webcamにアクセスし以下のように設定します。
設定箇所 | 入力内容 |
---|---|
Stream Url | http://[rasberyPiのip]:8080/?action=stream |
Snapshot URL | http://[rasberyPiのip]:8080/?action=snapshot |
自動実行のためのスクリプトを作成
スクリプトを作成します。
mkdir ~/bin
cd ~/bin
touch octprint.sh
chmod +x octprint.sh
octprint.shを編集します
#!/bin/sh
OCTOPRINT_HOME=/home/pi/OctoPrint
MJPEG_STREAMER_HOME=/home/pi/mjpg-streamer/mjpg-streamer-experimental
# カメラを使わない場合は以降は不要です ↓↓↓
# start mjpeg streamer
# UVC対応 WebCameraの場合
$MJPEG_STREAMER_HOME/mjpg_streamer -i "$MJPEG_STREAMER_HOME/input_uvc.so" -o "$MJPEG_STREAMER_HOME/output_http.so" &
# rasberyPi cameraの場合
#$MJPEG_STREAMER_HOME/mjpg_streamer -i "$MJPEG_STREAMER_HOME/input_raspicam.so" -o "$MJPEG_STREAMER_HOME/output_http.so" &
#カメラを使わない場合はここまで不要です ↑↑↑
# start the webui
$OCTOPRINT_HOME/run --daemon start
上記スクリプトを自動実行されるように設定します。
sudo nano /etc/rc.local
# By default this script does nothing.
# Print the IP address
_IP=$(hostname -I) || true
if [ "$_IP" ]; then
printf "My IP address is %s\n" "$_IP"
fi
##追加箇所ここから↓↓↓↓↓
sudo -u pi /home/pi/bin/octoprint.sh
##追加箇所ここまで↑↑↑↑↑
exit 0
sudo reboot
で再起動後に自動で実行されることを確認して下さい
##参考情報
https://github.com/foosel/OctoPrint/wiki/Setup-on-a-Raspberry-Pi-running-Raspbian
http://arms22.blog91.fc2.com/blog-entry-521.html