【最新情報】klipperにUSBカメラ&タイムラプス機能追加!

3Dプリンタ

この記事で解決!

・印刷中の状況をカメラを通して確認したいけど、設定どうするの?

・タイムラプス撮影をして、SNSに投稿してみたい!けどやり方どうするの?

私も導入したけど、ネット情報と最新版のやり方に違いが出ていて困惑します。
皆さんが、そうならないように、最新情報に合わせてサポートします

Klipperでカメラを使用して、モニタリングがしたい。タイムラプスを撮影したい方に向けた記事です。ネットで上位にヒットする情報は、古い情報が多く、戸惑いました。特にカメラの有効化。
新しく導入される方が、スムーズにできるようにサポートします。

Klipper+カメラで検索すると、多くの情報には、KlipperのConfigurationのところに、Webcam.txtがあって設定がもろもろみたいなことが書かれていました。
自分のを確認するとファイルが無い・・・。え?どこから持ってくるん?といった感じで迷ってしまったので、最新情報に合わせて、セットアップしていきます。

こんな状況になっているのは、mainsail(Fluiddでも使える)で提供していたカメラストリーミング機能があり、その設定ファイルがWebcam.txt。
バージョンが変わり、今は違う方法でセットアップする必要があるからです。

前提
Klipperが入っている
USBカメラ、もしくはRaspberryPiカメラがある

参考サイト(英語)

Klipper Webcam Setup using Mainsail | Obico Knowledge Base
Introduction

moonraker-timelapse/docs/installation.md at main · mainsail-crew/moonraker-timelapse · GitHub

カメラを有効化していく

Crowsnestをインストール

RaspberryPiにログイン。Puttyを実行して無線接続してもよいですし、またはHDMIで画面出力してもログインできればOK。
Puttyや、この後のKIAUHがよく分からない方はこちらで、まとめていますのでご覧ください。
誰でもKlipperを確実にインストール(Creality製Ender6)

次は、KIAUHを下記コードで起動

./kiauh/kiauh.sh

今から、黄色矢印のCrowsnestをインストールしていきますが、
すでにInstalledになってたらOK。
KIAUHが起動したら、1を入力してEnterで、1) [Install]を選択

12を入力してEnterで、Webcam Streamer:12) [Crowsnest]をインストール。

Crowsnestのインストールが始まります。終わるまで待機。少しかかります。

Installation successfulの文字と
Reboot NOW?[y/N]:Nが表示されます。
そのままEnter。

Fluiddのコンフィグレーションで、crowsnest.confが増えています。

ここからはタイムラプス機能を追加

RaspberryPiにログインして、下記のコードを実行
(コードはmoonraker-timelapseという機能を公開しているGithub-installation.mdから。)

cd ~/
git clone https://github.com/mainsail-crew/moonraker-timelapse.git
cd ~/moonraker-timelapse
make install

本来は下記ページにあるが、上記のをコピーしてもらえればサイト移動の手間がないです。

注意文と確認がでる。
注意文は3Dプリンタで造形しながらやらないこと。必ず止めてからやってね。
確認はYのままエンター

足らないものが自動チェックされて、不足分をインストールするか確認がでる。
Yのままエンター。

更新を有効にするための下記コードをコピーして
(さっきと同様。コードはmoonraker-timelapseという機能を公開しているGithub-installation.mdから)

# moonraker.conf
[update_manager timelapse]
type: git_repo
primary_branch: main
path: ~/moonraker-timelapse
origin: https://github.com/mainsail-crew/moonraker-timelapse.git
managed_services: klipper moonraker

FluiddのConfigurationにあるmoonraker.confの一番下に貼り付け。
(一番下が分かりやすい。)

保存と再起動したら、貼り付けた内容が反映されます。

設定のアップデートの欄に増えているの確認

プリンターがタイムラプス機能に反応できるようにするための下記コードをコピー
(コードはmoonraker-timelapseという機能を公開しているGithub-configuration.mdから)

# printer.cfg
[include timelapse.cfg]

fluiddのConfigurationにあるprinter.confに貼り付け。
保存と再起動するとコードが反映されます。

タイムラプスをスライサー側に設定

スライサーソフトに移動
(画像はCura5.4.0のものです)

Curaなら
拡張子⇒後処理⇒G-codeを修正クリック

開いた画面でスクリプトを加える

Insert at layer changeを選択

同じ画面内の右に項目が増えるので
Beforeのまま、TIMELAPSE_TAKE_FRAMEを追加して、右下の閉める

スライサー側の準備はOK。画面にScriptが設定されているメッセージが出ています。

これでレイヤー(積層分)毎のBefore(印刷終わり)に写真を撮ってくれます。

次はプリンター側

プリンターがタイムラプス機能に反応できるようにするための下記コードをコピー
(さっきと同様。コードはmoonraker-timelapseという機能を公開しているGithub-configuration.mdから)

# moonraker.conf
[timelapse]
##   Following basic configuration is default to most images and don't need
##   to be changed in most scenarios. Only uncomment and change it if your
##   Image differ from standart installations. In most common scenarios 
##   a User only need [timelapse] in their configuration.
#output_path: ~/timelapse/
##   Directory where the generated video will be saved
#frame_path: /tmp/timelapse/
##   Directory where the temporary frames are saved
#ffmpeg_binary_path: /usr/bin/ffmpeg
##   Directory where ffmpeg is installed

コードを貼り付けて、

保存と再起動
タイムラプス機能を有効化します。

再起動されると
メニューの中にタイムラプスの項目が増えています。

タイムラプスの映像設定

レンダリング設定から、タイムラプス撮影の設定を変更できます。
取り合えず、デフォルトでいいんじゃないかなと思います。
こだわりがある人は変更する、ぐらいの設定です。
サイトトップのタイムラプスはデフォルト設定です。

上から。
バリアブルFPS:可変レート。定期的なFPSじゃなくて、場面に応じてフレームレートを変えてくれますが、固定で良し

フレームレート出力:固定時いくつにするか、撮影の感覚になるので、お好みですが。まずは30で取ってみてください。

フレームを保存する:タイムラプスを作成したのちに、一枚一枚の画像をどうするか、できあがったものが気に入らなかったとき用に残しておいて、自分でタイムラプス作り直すなら有効化。

最後のフレームを複製:タイムラプスで造形が進んだ後が動画的に見えるようになりますが、その最後の数瞬。出来上がった瞬間、タイムラプスが終了になるか、どれぐらい調整。

定率係数:出来上がった映像の品質とファイルサイズに影響。値が小さい(0)ほど、きれいにはなるけど、ファイルサイズが増えます。大きい(51)ほど、荒くなるけどサイズは小さい。デフォルト(23)で十分。

タイムラプスの撮り方設定

機能の設定ここにあるよと記載がありますが

下記の画像の、設定のタイムラプスの項目です。

・カメラ:複数のカメラを使うこともできます。私ひとつだけつけて、初期値空欄でしたが撮影できました。カメラ複数の時は明示的にした方が撮影ミスはないでしょう

・モード:「レイヤーマクロ」と「ハイパーモード」の2種類。
レイヤーマクロは、積層毎に撮影する。ただスライサー側の設定が必要。
ハイパーモードにすると指定時間が現れ、その時間の間隔で撮影を繰り返します。

・パークヘッド:撮影時にプリンタヘッドが造形にかぶらないように退避させる。
オンにすると設定が現れ、どの位置に退避させるか、フィラメントの引き戻し、送り関係の指定ができます。ただ、撮影のたびにヘッド移動が入るので移動距離に応じて印刷時間は伸びます。

・遅延補償:画像取得のタイムラグを埋める、初期値50のままで気にしない。

・詳細なGコード:私では不明でした・・・

・レンダリング設定:一個前のブロックの内容(タイムラプスの映像設定)と同じ

おわり

カメラが導入できたので、今度はObicoを導入してみようかな。
画像認識による撮影の監視ができます。ベッドからの剥離、印刷ミスによるスパゲッティを検出でき、印刷を止めることができるようになるシロモノ。材料費、時間浪費、あなどれませんからね。。。

この記事を書いた人
ユカタキ

私、気になります!
自分でやってみたくなる性格の私は、電子工作、プログラム、3Dプリンター関連の事などの情報を発信しています。
社会人から電子工作を始め14年、電験3種一発合格、2021年から3DプリンタをDIYに活用。
そんな私が、まだまだ調べながらではありますが、ほかのDIYユーザー皆さんのためになるようなことを心がけています

ユカタキをフォローする
3Dプリンタ
ユカタキをフォローする

コメント