その筋の人には今頃何言ってんだと言われそうですが、とうとうWiFi対応のPi Zero Wが発売されましたね♪
かねてから、3Dプリンタのidbox!をWiFi対応にしたいと思っていた処に、実に具合が良い商品だったので、OctoPrintを使って環境構築してみました。
ついでに、Piカメラも使って画像監視が出来る様にもしてみました。
オリジナルの専用ケースも用意してみましたので、idbox!ユーザーの方は、是非お試し頂ければと思います。(BS01+ユーザーも是非!)
【2018/03/20追記】OctoPrintのアップデート方法について追記しました
「OctoPrintのアップデート」の項を参照ください。
先に完成した姿をお見せすると、こんな感じになります。
idbox!ユーザーにはお馴染みの青い専用カバーを被せておりますが、idbox!の上に乗っかってる黒い物体が今回の成果物です。
上にあるちょっと傾いてる部分がPiカメラ。
このカメラで斜め下のプリントテーブルを撮影しており、離れた場所のPCのブラウザでプリント状況を確認することが出来ます。
タイムラプス動画になりますが、このカメラで撮ったプリント中の様子はこんな感じになります。ご参考まで。
という事で、とても便利に使えております。
では、本題に入りましょう。
対象環境
対象ハードウェア: Pi Zero Wと互換Piカメラモジュール
実は今まではPi2とGW-450D2を使っておりました。(過去記事でGW-450D2のセットアップ記事があるのはその関連です)
カメラI/F付きのPi Zero rev1.3がリリースされた際にも一時検討したのですが、WiFi通信のUSBアダプタと3Dプリンタ制御用のUSBケーブルを繋ぐには、USB HUBを追加しないとポートが足りない(Pi Zeroには一つしかUSBポートが無いのです)ので、折角Pi Zeroでミニマム感出したいのに意味がないというか、そんならPi2使った方がマシという結論に至っておりました。
この度、Pi Zero Wにアップデートされた際にWiFiが内蔵されましたので、遂にUSB HUB無しでPi Zeroのミニマム感を維持したままの環境構築が可能になったのです!!
うん、ここまでお膳立てが揃えばやるしかないでしょ!!
ということで、今回はPi Zero W一択です。
前回記事でも書きましたが、Amazonのマーケットプレイスでも出品されているのですが、非常に割高な値付けになってるので、個人的にはあまりおススメしません。
日本国内だとコチラ↓のスイッチサイエンスさんあたりが安心。 まぁいつも在庫無いんですけどね。(;^ω^)
どうしても割安でという事なら、海外通販になりますがPayPalも使えるPimoroniあたりがおススメです。 私はいつもPimoroniで買ってますが、一番安い発送方法でも1~2週間で手元に届きます。
Piカメラは敢えて純正は使いません。 そう、Piカメラは敢えて互換品を使います。
何故かというと、純正PiカメラをPi Zeroに繋ぐには別売のPi Zero専用フレキの購入が必要(Pi ZeroのカメラI/Fコネクタが特殊な為)となっており、コレがまた異常に長いのです。
参考までに、以前作ったPi Zeroカメラシステムはこの純正Piカメラとこの長いフレキを使ってます。リンク先画像見ると分かりますが、無駄にフレキ長いですよね??(^^;)
更に言うと、最近売られてるRaspberryPi財団公式のPi Zeroケースには短いバージョンのPi Zero用カメラフレキが付属しており、とてもコンパクトに純正Piカメラが収まります。
なら、公式Pi Zeroケースで良いじゃんという話もありますが、この公式ケースに合わせて使うとカメラの角度が完全に固定されてしまうという使い難さも一緒に付いてきますので、今回は却下しております。
ということで、出来るだけ小さく収めたい関係上、このミニカメラモジュールというPimoroni製の互換Piカメラ商品を使います。
あ、勿論、フレキ込みになるので、純正Piカメラよりとてもお安く買えるというメリットも大きいです♪
Amazonでも取扱ありますね。ちと高いけど。
個人的には、Pi Zero Wと一緒にPimoroniで直接買うのをおススメします。
ちなみに、NoIRタイプが赤外線カメラ仕様です。
今回の用途では普通のヤツ(NoIRじゃない方)で良いと思いますが、お好きな方を選んでください。
あ、そうそう、純正Piカメラでもソフトウェア的には問題なく動きます。はい。
ただ、この記事中で公開しているケースは互換カメラ用となっていますので入りません。
オリジナルでケース起こすぞ!!という気概のある方は、純正で揃えてみるのも良いかもしれません。
microSDカードは信頼?の東芝製 8GBです。
なぜ8GBかは・・・前回記事でも触れましたが、イメージバックアップする時に小さい容量の方が良いという考えからです。
有線LAN USBアダプタ
物ぐさ太郎として、今回もキーボード・モニタレスでセットアップする関係上、最初は有線LANベースで作業を行います。
Pi Zeroで遊ぶなら有線LANアダプタくらい持っておいても損はないと思いますので、紹介しておきますね。
ちなみに、USB HUBタイプなら、作業途中で無線LAN USBアダプタが正しく動いているかを差し替えずに一緒に確認出来るので、オススメです。
私が使ってるのはコレ。USB3.0対応な上コンパクトなのでノートPCのお供にも使えるので便利です。(USB3.0対応ですが、Piで認識してくれました )
尚、有線LAN USBアダプタは、お使いのルーターのDHCP機能でMACアドレスからIP割り当てしておきましょう。
IP指定しない場合は、Pi ZeroへHDMIモニタを繋いでコマンドラインでIP取得する必要が出ますので、とても面倒です。 なので、本記事上では、IPアドレスが事前に分かっている物としています。 悪しからずご了承ください。
microUSBホスト変換ケーブル
Pi ZeroへUSBアダプタ機器を繋ぐのに必要です。
通常のホスト変換ケーブルも良いのですが、超小型のホスト変換アダプタだと、よりPi Zeroの小ささを活かせます。 凄くミニマム感が出ますので個人的にはお勧めです。
但し、この超小型ホスト変換アダプタを使うと、給電用のmicroUSBケーブルと若干干渉しますので、注意が必要です。 給電用microUSBケーブルにはL型タイプを使った方が良いでしょう。 ※L型の向きに注意です!逆向きだと余計に干渉します
私が使ってるのはコチラ↓です。 30cm、91cm、1.8mと幾つかのケーブル長が選べますので、お好みに合わせてチョイスしましょう。
対象RASPBIAN: STRECTH LITE
2017年8月のメジャーバージョンアップで登場した最新RASPBIANのSTRECTH LITEを使います。
事前に公式↓からダウンロードしておいてください。
尚、9/18時点では9/7付け版が最新でした。
3Dプリンタ制御用ソフトウェア: OctoPrint
「OctoPrint」というその筋では非常に有名なオープンソースソフトウェアを使います。(無料で使えますが、気に入ったなら開発者へ寄付して先々の進化の糧にして貰いましょう♪)
この「OctoPrint」とラズパイ用OSまで丸ごとパッキングされたインストールイメージが、「OctoPi」という名前で公開されています。
ただ、タイミングが悪かったのか、9/18時点ではメジャーバージョンアップされたSTRETCHではなく、まだ旧版のJESSIEが使われている様です。
よって、今回は「OctoPi」は使わず、普通にコマンドラインで「OctoPrint」をインストールすることにしております。
作業概要
大雑把な流れはこんな感じです。
- microSDカードへRASPBIAN STRETCH LITEを書き込む
- 有線LANでSSH接続して初期設定
- WiFi環境設定
- セキュリティ設定
- OctoPrintのインストール
- MJPG-Streamerをインストール
- OctoPrintの設定
- 専用ケースのプリントと設置
専用ケースのプリントを除いて、所用時間は2時間掛かってないと思います。
あ、専用ケースのプリントを事前に行っておくのはアリだと思いますので、しっかり下準備して進める方は是非そうして下さい。 STLデータはこの記事の後ろの方にあります。
尚、今回も当然の様に、物ぐさ太郎の矜持として、キーボード、モニタレスでセットアップ作業しております。
なので、事前に有線LANアダプタのIPアドレス、無線LANドングルGW-450D2のIPアドレスは把握しておく必要が有ります。 ルーターなどで、MACアドレスからIPを固定割り当てする様にしておけば問題ないでしょう。
では、作業を始めましょう。
microSDカードへRASPBIAN STRETCH LITEを書き込む
イメージファイルの書き込み
公式からダウンロードしたRASPBIANをmicroSDカードへ書き込みます。
私は、イメージ書き込みには「Win32DiskImager」というアプリを使っておりますが、使用方法が分からない場合は、コチラ↓を参考に。
SSH接続の為の事前準備
最近のRASPBIANでは、そのままだとSSH接続が使えない状態になっています。(セキュリティ対策の一環??)
コチラによると、microSDカードの/boot/直下にsshという名前で拡張子無しの空ファイルを作っておけば、RaspberryPiで起動させた際に自動的にSSH接続が有効になるみたいなので、PCから外す前にファイルを作っておきましょう。
有線LANでSSH接続して初期設定
有線LANを繋いで起動させ、PCからSSH接続する
先程イメージファイルを書き込んだmicroSDカードを対象のPi Zeroへセットし、有線LANアダプタを繋いで、有線LANも繋いで起動させます。
写真では裸のまま互換Piカメラまで繋いでセットアップしてますが、剥き出しが不安な方は、先にケースを用意してから行ってください。
事前に判明している有線LANのIPアドレスに対し、PCからTera TermなどのターミナルソフトでSSH接続します。(正しいIPアドレスで、先のSSH有効化処置を行ってあれば、ちゃんと繋がる筈です)
ターミナルソフトが分からない方は、コチラ↓を参考に。
初期設定を行う
SSH接続で初期ユーザー「pi」でログインしているものとします。
下記コマンドで初期設定を行います。
$ sudo raspi-config
下記の項目を修正してください。
[Change User Password]
「pi」ユーザーのパスワードをデフォルトのまま使うのは、セキュリティリスクとなります。
後ほど、ユーザー名を「pi」から変更する作業なども行いますが、初期工程は「pi」ユーザーで進めますので、最初にデフォルトパスワードを変更しておきましょう。
[Localisation Options] ->[Change Locale]
「en_us.UTF-8」「ja_jp.UTF8」「ja_jp.EUC-JP」を追加して、
default system localを「ja_ja.UTF8」に変更します。
[Localisation Options] ->[Change Timezone]
「Asia」→「Tokyo」を選択。
[Localisation Options] ->[Change WiFi Country]
「JP Japan」を選択。
[Interfacing Options] ->[P1 Camera]
Pi Camera I/Fを使いますのでEnabelにして下さい。
以上の項目を修正したら、Finishを選んで再起動しましょう。
一通りアップデートを掛ける
再起動後、もう一度「pi」ユーザーでSSH接続します。(パスワード変更した場合は新しいパスワードを入れて下さい)
まずは、下記コマンドで一通りアップデートをしておきます。
$ sudo apt-get update $ sudo apt-get -y dist-upgrade $ sudo rpi-update
rebootを促されるので、一応再起動しておきましょう。
$ sudo reboot
WiFi環境設定
Pi Zero WはWiFi内蔵ですので、2.4GHz(801.11bgn)なWiFiへ繋ぐ事が出来ます。
まずはPi Zero WのMACアドレスを確認しましょう。
$ ifconfig
ネットワーク設定を行う
$ sudo sh -c 'wpa_passphrase SSID パスフレーズ >> /etc/wpa_supplicant/wpa_supplicant.conf'
尚、このwpa_passphraseコマンドは、パスフレーズを暗号化してくれるのは良いのですが、何故か暗号化されてない平文のパスフレーズをそのまま併記してくれるとても親切且つ危険なコマンドなので、作成された「wpa_supplicant.conf」ファイルの平文部分を削除しておいた方が良いです。
$ sudo vi /etc/wpa_supplicant/wpa_supplicant.conf
$ sudo vi /etc/network/interfaces
auto wlan0 allow-hotplug wlan0 iface wlan0 inet dhcp wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf
$ sudo shutdown -h now
(基板剥き出しだけど、ケーブル減ってスッキリ!!)
上手く接続出来たら、続いてセキュリティ設定を行います。
セキュリティ設定
諸々インストールした後に、ユーザー名変更したりすると、上手く動かなくなることが多いので、OctoPrintのインストール前に行ってます。
rootパスワード設定
$ sudo passwd root
ユーザー名「pi」をオリジナルのユーザー名へ変更
$ sudo vi /etc/ssh/sshd_config
PermitRootLogin yes
$ sudo service ssh restart
$ exit
# usermod -l newuser pi # usermod -d /home/newuser -m newuser # groupmod -n newuser pi
# vi /etc/ssh/sshd_config
PermitRootLogin yes
# service ssh restart
# exit
OctoPrintのインストール
Python2.7と関連パッケージのインストール
下記コマンドを実行します。
$ cd ~ $ sudo apt-get install python-pip python-dev python-setuptools python-virtualenv git libyaml-dev build-essential
多分、さっき行ったセキュリティ対策(rootパスワード設定)のせいで、sudoコマンドを使うと警告メッセージと共にパスワード要求されると思いますので、パスワードを入れて実行してください。
暫し待たされます。
OctoPrintのインストール
下記コマンドを実行します。
$ git clone https://github.com/foosel/OctoPrint.git $ cd OctoPrint $ virtualenv venv $ ./venv/bin/pip install pip --upgrade $ ./venv/bin/python setup.py install
暫し待たされます。
続いて、.octoprintディレクトリを作成。
$ mkdir ~/.octoprint
3Dプリンタの制御の為にシリアルポートにアクセス出来る様に、ユーザー権限にdialoutとttyを追加します。(piユーザを別なユーザー名に変更している場合は、赤字を新しいユーザー名に読み替えて実行して下さい)
$ sudo usermod -a -G tty pi $ sudo usermod -a -G dialout pi
OctoPrint自動起動の設定
ブート後にOctoprintが自動起動される様に設定します。
まずは、initスクリプトファイルを関係フォルダへコピーします。
$ sudo cp ~/OctoPrint/scripts/octoprint.init /etc/init.d/octoprint $ sudo chmod +x /etc/init.d/octoprint $ sudo cp ~/OctoPrint/scripts/octoprint.default /etc/default/octoprint
/etc/default/octoprintを修正します。
$ sudo vi /etc/default/octoprint
DAEMONの先頭#を削除してコメントアウトを解除します。(piユーザを別なユーザー名に変更している場合は、赤字を新しいユーザー名に読み替えて実行して下さい)
OCTOPRINT_USER=pi DAEMON=/home/pi/OctoPrint/venv/bin/octoprint
自動起動スクリプトのシンボリックリンクを作成します。
$ sudo update-rc.d octoprint defaults
sudoする度にパスワードを要求される様になっている場合は、/etc/sudoers.d/octoprint-shutdownにルールを追加します。
$ sudo vi /etc/sudoers.d/octoprint-shutdown
下記を追加します。(piユーザを別なユーザー名に変更している場合は、赤字を新しいユーザー名に読み替えて実行して下さい)
pi ALL=NOPASSWD: /sbin/shutdown
OctoPrintからシャットダウン出来る様に修正
最近のOctoPrintでは、ブラウザ上からアクセスするとシャットダウンなどのコマンドが使えなくなっている様です。
いちいちSSH接続してシャットダウンするのは面倒ですので~/.octoprint/config.yamlを編集してコマンドを追加します。
$ sudo vi ~/.octoprint/config.yaml
以下を追加します。(新規ファイルの場合はそのままコピペしてセーブ)
system: actions: - name: Shutdown command: sudo shutdown -h now action: shutdown confirm: You are about to shutdown the system. - name: Reboot command: sudo shutdown -r now action: reboot confirm: You are about to reboot the system
尚、このconfig.yamlファイルはスペースが重要とのこと。スペースが間違っていると、Octoprintが上手く動かなくなることがある様です。 編集時には気を付けましょう。
MJPG-Streamerをインストール
Pi CameraをOctoPrintで扱うにあたって、MJPG-Streamerが必要になります。
MJPG-Streamerのインストール
別途インストールが必要なので、下記コマンドでインストールします。
$ cd ~ $ sudo apt-get install subversion libjpeg8-dev imagemagick libav-tools libv4l-dev cmake $ git clone https://github.com/jacksonliam/mjpg-streamer.git $ cd mjpg-streamer/mjpg-streamer-experimental $ export LD_LIBRARY_PATH=. $ make
因みに、Pi Cameraを使う場合はMJPG-Streamerのオプションを別途コンパイルしないといけないみたい。(それでmakeしてる訳です)
OctoPrintにビデオストリーム開始・停止メニューを用意
Octoprint内からmjpeg-streamerを起動したり停止したりさせる為の2つのスクリプトファイルを作成します。
まずは、スクリプト「webcam」を作成します。(piユーザを別なユーザー名に変更している場合は、赤字を新しいユーザー名に読み替えて実行して下さい)
$ sudo mkdir /home/pi/scripts $ sudo vi /home/pi/scripts/webcam
次のように記述します。(piユーザを別なユーザー名に変更している場合は、赤字を新しいユーザー名に読み替えて実行して下さい)
#!/bin/bash
# Start / stop streamer daemon
case "$1" in
start)
/home/pi/scripts/webcamDaemon >/dev/null 2>&1 &
echo "$0: started"
;;
stop)
pkill -x webcamDaemon
pkill -x mjpg_streamer
echo "$0: stopped"
;;
*)
echo "Usage: $0 {start|stop}" >&2
;;
esac
以上の様に記述したら、保存します。
続いて、スクリプト「webcamDaemon」を作成します。(piユーザを別なユーザー名に変更している場合は、赤字を新しいユーザー名に読み替えて実行して下さい)
$ sudo vi /home/pi/scripts/webcamDaemon
次のように記述します。(piユーザを別なユーザー名に変更している場合は、赤字を新しいユーザー名に読み替えて実行して下さい)
#!/bin/bash
MJPGSTREAMER_HOME=/home/pi/mjpg-streamer/mjpg-streamer-experimental
MJPGSTREAMER_INPUT_USB="input_uvc.so"
MJPGSTREAMER_INPUT_RASPICAM="input_raspicam.so"
# init configuration
camera="auto"
camera_usb_options="-r 640x480 -f 10"
camera_raspi_options="-fps 10"
if [ -e "/boot/octopi.txt" ]; then
source "/boot/octopi.txt"
fi
# runs MJPG Streamer, using the provided input plugin + configuration
function runMjpgStreamer {
input=$1
pushd $MJPGSTREAMER_HOME
echo Running ./mjpg_streamer -o "output_http.so -w ./www" -i "$input"
LD_LIBRARY_PATH=. ./mjpg_streamer -o "output_http.so -w ./www" -i "$input"
popd
}
# starts up the RasPiCam
function startRaspi {
logger "Starting Raspberry Pi camera"
runMjpgStreamer "$MJPGSTREAMER_INPUT_RASPICAM $camera_raspi_options"
}
# starts up the USB webcam
function startUsb {
logger "Starting USB webcam"
runMjpgStreamer "$MJPGSTREAMER_INPUT_USB $camera_usb_options"
}
# we need this to prevent the later calls to vcgencmd from blocking
# I have no idea why, but that's how it is...
vcgencmd version
# echo configuration
echo camera: $camera
echo usb options: $camera_usb_options
echo raspi options: $camera_raspi_options
# keep mjpg streamer running if some camera is attached
while true; do
if [ -e "/dev/video0" ] && { [ "$camera" = "auto" ] || [ "$camera" = "usb" ] ; }; then
startUsb
elif [ "`vcgencmd get_camera`" = "supported=1 detected=1" ] && { [ "$camera" = "auto" ] || [ "$camera" = "raspi" ] ; }; then
startRaspi
fi
sleep 120
done
以上の様に記述したら、保存します。
作成した2つのスクリプトファイルに実行権限を与えます。(piユーザを別なユーザー名に変更している場合は、赤字を新しいユーザー名に読み替えて実行して下さい)
$ sudo chmod +x /home/pi/scripts/webcam $ sudo chmod +x /home/pi/scripts/webcamDaemon $ sudo chown pi:pi /home/pi/scripts $ sudo chown pi:pi /home/pi/scripts/webcam $ sudo chown pi:pi /home/pi/scripts/webcamDaemon
先程の~/.octoprint/config.yamlを編集してWebカメラデーモン操作コマンドを追加します。
$ sudo vi ~/.octoprint/config.yaml
system: actions:セクションに以下を追加します。(piユーザを別なユーザー名に変更している場合は、赤字を新しいユーザー名に読み替えて実行して下さい)
- name: Start video stream command: /home/pi/scripts/webcam start action: streamon confirm: false - name: Stop video stream command: /home/pi/scripts/webcam stop action: streamoff confirm: false
※補足: actions: []となってた場合は、「 []」を削除しましょう。
これでOctoPrintとMJPG-Streamerのインストールは完了です。
OctoPrintの設定
シャットダウンさせてから3DプリンタのUSBケーブルを接続し、3Dプリンタを起動させた後、Pi Zero Wの電源を入れます。
$ sudo shutdown -h now
さあ、いよいよご対面!
OctoPrintへPCブラウザからアクセスしてみましょう。
アクセス先は「ラズパイのIPアドレス:5000」です。
Pi Zero Wだと起動にちょっと時間がかかります。(数分レベル)
起動してしまえば普通に使えるので、最初だけ儀式と思いましょう。
セットアップウィザードでの設定項目
ブラウザでアクセスすると、初回起動の時のみ下記の様なセットアップウィザードが立ち上がります。
指示に従って、自分の3Dプリンタに合わせた設定を行います。
Nextを押すと、次にユーザーアクセス制限の画面になります。
お好みに合わせて制限掛けるか選択し、Nextを選びます。
次の画面ではスライサーのCuraEngineのセットアップを行います。
OctoPrintではスライサーとしてPi Zero上でCuraEngineを使うことも出来るんですが、Pi Zeroでスライス処理させても重たいだけだと思いますので、私は使ってません。
私はPCのスライサーSimplify3Dでスライス処理してから、G-CodeファイルをOctoprintに渡す様にしています。(ちなみに、Simplify3Dは有料のスライサーソフトですが、非常に優秀なのでオススメ♪)
ということで、OctoPrintのスライサーは使わないので、そのままNext。
次に接続する3Dプリンタの基本情報を入力していきます。
Generalタブのnameの項にプリンタ名称を入れます。(あ、idbox!じゃなくてBS01+になってる!? 気にしない気にしないw)
うっかりNextしてしまわない様に。
このSet up your printer profileでは横にタブがありまだ設定項目があります。(尚、うっかりNextしても後からprinter profileの修正は可能ですw)
Print bed & build volumeタブに3Dプリンタに合わせた設定値を入れていきます。
素のままのidbox!の場合は、
- Form Factor(方式): Rectangular
- Origin(原点): Lower Left
- Heat Bed(ヒートベッド有り無し): チェック無し
- Width(X): 150 mm
- Depth(Y): 130 mm
- Height(Z): 100 mm
になります。
ヒートベッド付きのBS01+のシングルノズルモデルの場合は、
- Form Factor(方式): Rectangular
- Origin(原点): Lower Left
- Heat Bed(ヒートベッド有り無し): チェック有り
- Width(X): 150 mm
- Depth(Y): 130 mm
- Height(Z): 102 mm
になります。
使う3Dプリンタに合わせて設定しましょう。
続いて、Axesタブに移動します。※添付画面は設定ミスってますので参考にしない様に!
idbox!、BS01+共に
- X: 4800 mm/min
- Y: 4800 mm/min
- Z: 200 mm/min 、 Invert controlにチェック
- E: 1200 mm/min
になります。 使う3Dプリンタに合わせて設定しましょう。
続いて、Hotend & extruderタブに移動します。
お使いのプリントノズル穴径とエクストルーダ―の数を入力します。
idbox!は0.4mmノズル装備でシングルノズルなので、
- Nozzle Diameter: 0.4 mm
- Number of Extruders: 1
と設定しました。
因みに、私のBS01+は0.3mmノズルを装着してるので、添付画面上では0.3mmとなっています。 使う3Dプリンタに合わせて設定しましょう。
ここでようやくNextを押します。
特に設定項目はありませんので、そのままNext。
特に設定項目はありませんので、そのままNext。
次の画面はカメラ関係のセッティング項目ですが、後ほど設定し直すので、ここではスルーします。
なので、そのままNext。
Finishを選択。
尚、シャットダウンやリブートは右上の電源アイコンから行えます。
3Dプリンタとの通信設定
コレで繋がる筈ですが、通信設定が初期値のままだと、ボーレート設定などが合わずに不都合がありますので、修正しておきます。 この状態↓が初期の状態。
なので、一度Disconnectして、接続設定を修正します。
画面の様に、Serial PortやBaudrate、Auto-connect on server startupの設定を行い、Save connection settingsにチェックを入れてもう一度ConnectすればOKです。
カメラ設定
右上のスパナマークを押し、OctoPrint Settingsを表示させ、Webcam & Timelapseの設定をラズパイのIPアドレスに合わせて修正します。
この記事の流れで設定してる場合は、下記の様に入力してください。(ポート番号の変更などカスタムされてる場合は、併せて修正してください)
- Stream URL: http://ラズパイのIPアドレス:8080/?action=stream
- Stream aspect ratio: 4:3
- Snapshot URL: http://ラズパイのIPアドレス:8080/?action=snapshot
- Path to FFMPEG: /usr/bin/avconv
一度Saveしてから、右上の電源ボタンより、Start video streamを実行します。
これで、基本画面のControlタブを移動するとカメラの映像が映ってる筈です。
既にお分かりだと思いますが、Stop video streamで映像配信が止まります。
何故こんな設定になっているかというと、プリントの映像記録を行う必要性ってそんなに無いので、出来るだけSDアクセス量を減らしたい(SD寿命を延ばしたい)という考えがベースにあります。 また、常に映像配信してる状態はちょっと気持ち悪いという理由も。。
使いたい時に、PCのブラウザ越しでStart video streamすればいつでも状況監視する事が出来ますので、実害はないと考えてます。
OctoPrintを起動させる度に、毎回Start video streamをするのは面倒という方は、公式のセットアップ手順を見て設定してみてください。
タイムラプス撮影などしたい場合は、Timelapseタブで設定が可能です。
此方は、お好みに合わせて設定してください。
基本的な使い方
通常画面の右側(添付画面の緑枠付近)にスライス済みのG-Codeファイルをドラッグアンドドロップすると、ファイルリストに追加されます。
後は、各ファイルのプリンタアイコン(添付画面の青丸)をクリックすればプリントスタートです。
画面が狭い場合は、各タブ先頭(添付画面の赤丸)をクリックすれば、その項目を最小化出来ます。
などなど、ぶっちゃけとても分かりやすい画面構成になってますので、見たままのイメージで扱えると思います。
OctoPrintのアップデート【2018/03/20追記】
先日、OctoPrint 1.3.6がリリースされた際に、ASAP(as soon as possible:出来るだけ速やかに)の文言が付いた公式案内が出ました。
セキュリティ対策のアップデートなどは出来るだけ速やかに行いたいものですね。
このブログでご紹介してる内容は、インストールイメージなOctoPi方式ではなく、マニュアルインストール方式なので、下記のやり方でアップデートを行いました。(先程のOctiPrint公式案内にもやり方が書かれてますが、自分への覚え書としてここにも記載しておきます)
OctiPrintマニュアルインストールのアップデート方法
赤字は自身のOctoPrintのインストールパスに置き換えて実行して下さい。
$ cd OctoPrint/
$ source venv/bin/activate
$ git pull
$ pip install .
一通り実行出来たら、再起動しましょう。
$ sudo reboot
再起動したら、ブラウザ越しにOctoPrintに繋いで、左下のVerを確認しましょう。
無事アップデートされました♪
初回起動時に設定ウィザードが立ち上がって、幾つかの新たな設定項目について設定を要求されましたが、以前設定した他の設定項目はちゃんと引き継がれている様です。
設定ウィザードらしき画面が出た時に、一瞬ドキッとしましたが、ホッとしました。(笑)
専用ケースのプリントと設置
専用ケースのダウンロードリンク
今回のオリジナル専用ケースの3Dデータ(STLファイル)はコチラ↓に置きました。
3Dプリント時の注意点と併せてご参照ください。
専用ケース部のプリント
BS01+やidbox!であれば、全パーツまとめて一度でプリント出来ます。(サポート無しでも可の筈・・・)
プリント後にバリを取って並べてみます。 専用ケース部は合計4パーツですね。
あ、言い忘れてましたが、可動部を実現する為、M3×5のトラス小ネジが2本必要です。
Amazonでも扱いありますが、プライム対応だと結構お高いし量が多過ぎ。(^^;)
ホームセンターとかで手頃な量で売ってると思いますので、調達してみてください。
専用ケース組み立て
まずはM3×5のトラス小ねじ2本を使って、背面パーツを組み立てます。
ネジに付属してたワッシャーを締め過ぎ防止として間に挟み込んでます。(無くてもOK)
ネジはあまり強く締めるとネジ穴がバカになってしまいますので、慎重に締めましょう。
Pi Zero Wを互換Piカメラモジュールを接続した状態で、背面パーツに載せます。
上手くプリント出来てればパッチンと噛み合わせして嵌る筈です。
横のmicroUSBやHDMIコネクタへケースが干渉して無いことを確認します。
うん、イイ感じ♪
指でつまんでmicroSDカードが出し入れできるか確認しましょう。
続いてカメラ可動部の確認です。
指でそおっと押して角度を付けてみます。ここは無理するとフレキ断線しますので慎重に!
回転軸をフレキ面と合わせてあるので、出来るだけフレキへ無理なテンションが掛からない様にはしたつもりですが、プリント状況によっては軸位置のばらつきはあり得ます。
写真の右赤丸部分のフレキコネクタは非常に脆いです、カメラを無理に曲げると引き抜き方向のテンションが掛かりますので、無理は禁物です。
また、左緑丸部分にケースのバリなどが当たると可動部で抉って断線する危険もあります。バリ取りはしっかり行って下さい。
尚、互換Piカメラはロットによって部品の実装状態が違うものがある様です。今のところ、2種確認してますが、2種とも外観形状は共通みたいでこのケースに入れるには支障ありませんでした。
ただ、先々の変更でケースに収まらないモノが絶対現れないとは言い切れません。 その辺、悪しからずご了承下さいます様お願いします。
idbox!へ装備する
っとその前に、ホルダー部をプリントする必要が有ります。
初期にテストプリントした時の写真しかないのですが、右の2パーツがホルダー部品です。
こんな感じで専用ケースを装着します。パンツ履かせるイメージですね。(笑)
idbox!の右上辺りが収まり良いです。こんな感じですね。(写真サンプルが初期試作品になってます ご了承くださいませ)
後は、給電用のmicroUSBケーブルと、3DプリンタのUSBケーブルをmicroUSBホスト変換アダプタ越しに繋ぐと完成です。
起動させてOctoPrintでカメラ映像を確認し、角度を微調整しましょう。
イイ感じに収まるとこんな画像になります。
以上で完成です。 Let’s 3D Print!!
まとめ
・Pi Zero WとPi CameraにOctoPrintを使って、映像監視機能付きWiFi対応3Dプリントサーバーを超ミニマム構成で構築出来た!
・PCレスでプリントさせれるというのはとても快適!!
・idbox!の岡持ちの完成度が更に向上!!!(今はこんな感じ↓で電源さえあればどこでもプリントOKです♪)
Pi Zero W
microSD 8GB 東芝製
GW-450D2
USB3.0対応 有線LANアダプタ付きUSB HUB
超小型microUSBホスト変換アダプタ
microUSB 左向きL型ケーブル
明成化学さんの高品質フィラメント 3D Prinstar ナチュラル
明成化学さんの高品質フィラメント 3D Prinstar ホワイト
明成化学さんの高品質フィラメント 3D Prinstar ブラック
コメント