雑食エンジニアの気まぐれレシピ

日ごろ身に着けた技術や見知った知識などの備忘録的なまとめ.主にRaspberry Piやマイコンを使った電子工作について綴っていく予定.機械学習についても書けるといいな.

Precision Piezo Orionを導入しようとして諦めた話

3Dプリンタの造形において,ベッドのレベリングは最重要といっていいほど大きなファクターだと思います.最近の3Dプリンタはオートレベリングを標準搭載しているものも多いですが,ここで重要になるのはベッドを検出するセンサの精度になります.ベッド検出センサには電磁誘導式,静電容量式..etcと様々な種類がありますが,最も高精度を謳っている方式の一つにピエゾ式があります.
今回はこのピエゾ式のセンサである「Precision Piezo Orion」を導入しようとした際の顛末をまとめました.
なおタイトルの通り結果は失敗に終わっています.結論を先に書いておくと,

  • 筐体の剛性不足でピエゾセンサが反応しないことがある

ためです(たぶん).
ただPrecision Piezo Orionの日本語記事はあまり見ませんし,後世の役に立つこともあるかもと思い,一応まとめてみることにしました.

f:id:shikky_lab:20201103144635j:plain
Prescision Piezo Orion

なお,当方が使用している3DプリンタはFlsun prusa i3という機種です.

Precision Piezo Orion とは

公式ページはコチラ.
www.precisionpiezo.co.uk

Precision Piezo Orionはピエゾ式のz軸プローブ用センサのキットです.ピエゾ式センサについてさっくり説明すると

  • ノズルの上部に取り付け,ノズルがプレートに触れた瞬間の接触(圧力変化)を検出する
  • 非常に高精度(accuracyは0.005mmとか.)
  • 物理的に接触を検知するので,ビルドプレートの材質を問わない
  • ノズルとセンサが一体化することになるため位置ずれがなく,プレート全面でレベリングできる
  • 小型軽量のため,ホットエンドの慣性が抑えられる

などのメリットがあります.列挙するとすごいですね.是非とも採用したかった.
なおデメリットとしては,

  • ノズルの接触を検出するため,先端にゴミがついていると値がずれる
  • 直接プレートが触れるため,ノズルが傷つく可能性がある
  • 筐体の剛性が足りないと,うまく検知できないことがある.

といったところでしょうか.あとデメリットに挙げるべきかは微妙なところですが,"接触が検出できなかった時に大惨事になる"という側面はあります.非接触式の場合は目を凝らしていれば異常(検知位置にあるはずなのに検知されていない)は目視できるのですが,接触式では気づいた時にはすでに若干手遅れになります(泣).

取り付け方

E3D v6ノズルの上部に取り付ける用のマウンタのSTLThingiverseに公開されているので,それをプリントして使います.なお,初めからマウンタ付きで買うこともできます.
Precision Piezo Orion Module Parts by Moriquendi - Thingiverse
ただ私の場合はこのモジュールを導入すると同時にmosquito hotendというホットエンドを導入することにしたので,上記モデルを使用することはできませんでした.
なのでこのモデルを参考に,mosquito用にマウンタをモデリングしました.なお,公開されているSTLファイルから寸法値を取得する方法は前回の記事をご参照ください.
shikky-lab.hatenablog.com
さて,色々コネコネして完成したマウンタがこちら.

f:id:shikky_lab:20201103162958j:plain
mosquitoホットエンド+Precision Piezo Orion

これをセットしていくわけですが,当方の3Dプリンタ(Flsun prusa i3)のホットエンド固定部分は↓のようになっています.

f:id:shikky_lab:20201103164915p:plainf:id:shikky_lab:20201103165010p:plain
Flsun prusa i3でのホットエンド固定方法(公式マニュアルより抜粋)
黒いタイヤみたいなものがX軸のレールを通る形となっています.画像で分かるように,黒いタイヤ部分とノズルとの距離がかなり近く設定されています.Precision Piezo Orionは40mm程度の矩形なので,このままだと干渉してしまいます.そのためこの固定用の板から作り直す必要があります.
なお元の各パーツのモデルはThingiverseSTLを上げてくれている方がいたので,それを使わせてもらいました.
FLSUN Prusa I3 2017 - Acrylic / Injection Molded Parts Collection by lembasbrot - Thingiverse
そんなこんなあって完成.
f:id:shikky_lab:20201103170212j:plain
マウントした様子

使い方

ここからはPrecision Piezo Orionの使い方編です.といっても下記マニュアルから重要なポイントを抜粋&所感を述べるだけですが.
https://docs.wixstatic.com/ugd/e08222_ae707c20a0cf418b8393b44368370576.pdf

  • 接続端子にDとAがあるが,Aはアナログ値が取得できるので,感度調整をソフト側で行うことができる.
    • スイッチ代わりに使う場合はDの方を使う.
  • センサの締め付けは強すぎると感度が落ちる印象.可能ならナイロンナットとか使って締めつけ過ぎずに固定するのが良さげ.
  • プロービング速度は4~7mm/s.これ以上に遅いと検出に失敗することがあるとのこと.
    • なおFlsun prusa i3はファーム側でZ軸の速度上限が2mm/sになっているので,configuration.hをいじる必要あり.
  • 基板の半固定抵抗で感度調整ができる.下記動画を参考.
  • ノズル温度が低いと内部でフィラメントが固まる影響か,センサ感度が少し変わる
    • ノズル温度を上げた状態で感度調整をした方がいい.
    • ただしその場合,低温時にAutoHomeとかすると検出ミスって死亡したりする.悲しみ.

こんなところでしょうか.

不採用に至った理由

初めに書きましたが,筐体の剛性不足でピエゾセンサが反応しないことがあるためです.
ピエゾセンサは圧力の瞬間的な変化で接触を判定するので,じわじわと圧力が変化する場合は検出に失敗してしまいます.そのため,プロービング速度に4~7mm/sと下限が設定されているわけですね.
しかし筐体の,特にノズル固定部分とビルドプレート部分の剛性が低いと,ノズルを押し付ける際にじわじわと弾性変形していくことになります.そのため検出に失敗するわけですね.とくに私の場合,プレートの端付近での測定に失敗することが多かったです.Flsun prusa i3ではアクリルプレートでビルドプレートを支えているので,端の方ほど弾性変形が強く起こるためと考えられます.またX軸側のホットエンド固定部も,レールを通るタイヤ部分にわずかな隙間があるため,こちらも接触時に変形してしまいます.
一応プロービング速度を上げれば検出は確実にできるようになるんですが,その場合は検出時のブレが大きく,結局従来のセンサ(静電容量式)のほうが精度が良くなってしまいました.
ちなみに,静電容量式でも±0.02mmくらいの精度は出てるように思います.ピエゾの謳う精度とは一桁違いますが,ぶっちゃけこのくらい出ていれば問題にならないのでは?とも思っています.
この辺の検証のためにもピエゾを試してみたかったところですが...無念.

おわりに

今回は残念な結果に終わりましたが,これは安物筐体の業によるもので,センサ自体は非常にいいものだと伺っています.ご興味ある方はぜひ試してみてほしいと思います.
また私は剛性問題として片づけましたが,実は純粋に何かやり方が間違っていたのかもしれません.同じような環境での成功例などあれば教えて頂けると幸いです.
それでは.