失敗の原因が知りたい
3Dプリンターの出力に失敗はつきものです。
数多のもじゃもじゃ出力の末にパーツが完成します。
寝る前にプリントを始めた結果、朝には樹脂の塊と向き合う。
そんなことも少なくありません。
失敗するのはいいのですが、せめてどこで失敗したのか?が分からないと改善することができません。
タイムラプス撮影できるカメラを作り、 失敗する瞬間を見て悲鳴をあげましょう 失敗を分析してみましょう。
OctoPrint のタイムラプス撮影を使用する
OctoPrintにはタイムラプス撮影機能があります。
印刷中に一定時間ごと、またはレイヤごとに1枚の写真を撮影し、動画を作成してくれます。
こんな感じ。
やっと成功した。ポイントはケープとベッド温度下げることだったみたい。 pic.twitter.com/3suIF2R7BF
— あおせ (@i_aose) 2022年2月12日
OctoPrintで使えるカメラは以下の通り。
- Raspberry Pi カメラモジュール
- USB接続のWebカメラ
- ネットワークカメラ
Raspberry PiにOctoPrintをインストールしている場合、カメラモジュールを取り付けるだけで撮影できるようです。
しかし、私のOctoPrint環境はRaspberry Piではなく普通のPCなのでカメラモジュールが利用できません。
また、USB接続のWebカメラを持っていません。
今回はRaspberry Piとカメラモジュールを使ってネットワークカメラを作り、OctoPrintから使用することにしました。
Raspberry Pi が手に入らない!
昨今の半導体不足により、Raspberry Piが入手しづらい状況です。高いし売り切れてるし…
今回は使い道がなくて死蔵していた 初代 Raspberry Pi を使用します。
カメラモジュールは余っていたAliExpressで300円程度で購入したものを使用します。
ケースを作る
初代Raspberry Piを使用したいい感じのケース…というのはモデルが見つけられなかったので、適当に作成します。
- カメラモジュールが搭載できる
- 三脚固定用にアルカスイス互換のクイックシューが使用できる
- 自然空冷で冷やせる通気性のよいデザイン
GrabCADで見つけた初代Raspberry Piのモデルをもとに、Fusion360でケースをモデリングします。
https://grabcad.com/library/raspberry-pi-model-b
WIP pic.twitter.com/svRBCXzggM
— あおせ (@i_aose) 2022年1月29日
ピタリとハマった! pic.twitter.com/GeSm0EWoZW
— あおせ (@i_aose) 2022年1月30日
Raspberry Piがカンタンに手に入らなくなったので、仕方なく引退していた初代を引っ張り出してケース作ってる。2011年て… pic.twitter.com/oc1H7VFTyX
— あおせ (@i_aose) 2022年1月30日
フタとカメラホルダーできた。 pic.twitter.com/CGKU1GOIPb
— あおせ (@i_aose) 2022年1月30日
今回は結束バンド固定。ネジよりカンタンに設計できるのでラク。 pic.twitter.com/sIS9BGsf6G
— あおせ (@i_aose) 2022年1月30日
カメラモジュール付ケース完成! pic.twitter.com/cx3eTzQFSW
— あおせ (@i_aose) 2022年1月30日
アルカスイス互換なので、三脚取付もカンタン。 pic.twitter.com/4L3opLBQ5r
— あおせ (@i_aose) 2022年1月30日
ケースのモデルは Prusa Prints に登録しました。https://www.prusaprinters.org/prints/136584-raspberry-pi-model-bfirst-gen-casealca-swiss-style
Raspberry Piをネットワークカメラにする
OctoPrintはmjpeg配信してくれるカメラに対応しているので、今回用意したRaspberry Pi をネットワークカメラとして公開できるようにします。
- Raspberry OSをインストール
- mjpg-streamを導入
Overlay FSを導入失敗
raspberry OS
ここを参考にインストールします。
mjpeg-stream
カメラモジュールで撮影した画像をストリーミング配信します。
https://github.com/jacksonliam/mjpg-streamer/tree/master/mjpg-streamer-experimental
git clone https://github.com/jacksonliam/mjpg-streamer/tree/master/mjpg-streamer-experimental
start.shを修正して、systemdに登録しました。
start.sh
#!/bin/sh export LD_LIBRARY_PATH="$(pwd)" ./mjpg_streamer -o "output_http.so -p 8080" -i "input_uvc.so -r SXGA -hf true -vf true"
mjpg-streamer.service
[Unit] Description=mjpg-streamer After=network-online.target Wants=network-online.target [Service] Type=simple User=pi WorkingDirectory=/home/pi/mjpg-streamer/mjpg-streamer-experimental/ ExecStart=/bin/sh start.sh [Install] WantedBy=multi-user.target
これで以下URLから映像が確認できます。ブラウザーやVLCで開いて確認します。
http://[IPADDRESS]:8080/?action=stream
overlayFS
電源を雑にON/OFFしてもいいように、ReadOnlyのファイルシステムにしておくとよいでしょう。
ですが、今回は初代RaspberryPiだったのでメモリが足りず起動できなくなったので断念しました。
壊れたら次のSDカードを用意しましょう…
OctoPrintに設定する
こんな感じ
完成
おめでとうございます。もじゃもじゃが生まれる瞬間を目にすることができましたね!
タイムラプス撮影できる環境ができあがりました。
ホントは成功する動画が撮れたほうがうれしいんだけど…