RaspberryPiにoctoPrintを入れて3DPrinter ATOMをスタンドアローン稼働させるまでの流れ

  • 12
    いいね
  • 2
    コメント
この記事は最終更新日から1年以上が経過しています。

はじめに

3DPrinter ATOMを動かすにはPCが常に占有状態になるため、RaspberryPiにWEBベースのプリントアプリ(octoPrint)を入れてスタンドアローン化を図りました。

インストール

前提としてデフォルトユーザpiにて作業するものとします。

octoprintのwikiにはpySerialのパッチ当て手順があるが現在は不要なようです。
(自分の場合はずっとrasberyPiを放置していたためOSを更新するところからスタートします。)

OctPrintのインストール

os更新
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を編集します

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
/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