3Dプリンターにオートレベルセンサーをつけてみた

更新、期間が開きまして申し訳ないです。
いろいろとごたごたしており、ご無沙汰してしまいました。

3Dプリンターの出力精度ですが、パラメーター設定もさることながら ベッドの水平レベルというものも非常に重要なようです。
我が家のプリンターはベッド4隅にスプリングを挟んだ螺子が設置されておりスプリングのテンションを上げたり下げたりすることで水平調整をする仕組みになっています。
この調整ですが、朝プリンターを利用始める前に必ずするようにしているのですが、治具をつけていても手回しで毎朝ねじ高さ調整をやるのは実は結構な手間です。

いい手はないかと調べたところ、エクストルーダーに取り付けしベットとセンサーの間の距離を測定。測定結果から自動的にレベリングの補正をするセンサーがあるということがわかりましたので早速センサーを取り付けてみました。このセンサー、海外の情報は非常に豊富なのですが、結構面倒な作業をする必要があるためか日本ではあまり情報がないようです。

ざっくり調べると、以下の工程が必要なようです。

・エクストルーダー部にセンサーを取り付ける。場合によってはセンサーを固定するブラケットの作成も必要。

・一般的なセンサーは12V駆動なのでセンサー出力も12V。対して3Dプリンターの制御部(センサー入力部)は5V駆動。
制御部入力許容電圧にもよりますが、大抵は制御部のマイコンが過電圧でこわれるのでIF基板や抵抗などで12Vセンサーアウトを5Vに変換する必要がある。
さらには、センサーは制御方式によってZ-STOPがZ+STOPに接続するが、いずれにしても入力部は5V駆動で設計されています。センサー用の12Vはヒーター電源等から分岐して持ってこないといけない。

・Z-/Z+につなぐにしても、基本的に最初からオートレベルの機能がつけられる前提であってもセンサー種類などにあわせてファームウェアの書き換えが必要。従って自分でソースコードを入手して、コンパイル→書き込み→通常動作を含めた動作確認をする必要がある。

特に、ファームウェアのソースコードが公開されていない場合や、書き換えに対応していない場合。おそらくセンサー後付は絶望的でしょう。こうなると制御ボードをArduino+RAMPSに変えるなどして1から作業をする必要がありプログラミングの知識まで必要になります。こうやって考えると3Dプリンターを改善しながら運用していくには、制御系を生業とした工業高校卒業程度の知識はあったほうが有利なのかもしれないと思いました。

さて、今回入手したセンサーですがネットオークションで入手しました。理由は余っているポイントで支払いが足りたためです。LJC18A3-H-Z/BXというセンサーでした。
我が家のプリンターは2ノズル化改造をした際にZONESTARというメーカーの制御ボードに切り替えています。この制御ボードはメーカー側で組み付けてコネクター接続するだけでオートレベルに対応するように作ってあります。取り付けマニュアルもメーカーサイトに動画付で公開されいました。しかし、私が入手したセンサーはこのメーカー公式のものではないものを買いました。このことによって大ハマリしています。

センサーブラケット

センサーブラケットは上図のようなブラケットを3Dプリンターを使って自作し組み付け。12Vだったセンサー出力も15Kと10Kと抵抗で分圧することで5V(計算上は4.8Vですが・・・)に変換してメーカーマニュアルと同じようにZ+STOPに接続。
ここまでは順調だったのですが、いざオートレベリング実行!したところ所定の動作はするのですが、エラー停止して終了できません。現在メーカーサイトよりソースコードを入手して中身を検証中となっています。おそらくメーカーの設計したZ+入力レベルとセンサーの入力レベルが反対ではないかと思われるのですが、これを修正しようとすると実質ファームウェアのコンパイルしなおしとなり、全パラメータを再度設定していく必要が出てきています。

現状、Z-STOPで原点復帰+手動でのベッドレベル調整にてプリンターとしては使えていますので時間があるときに少しずつ進めていければと思っています。
進展あれば、またブログ更新していきます。

2019/5/15 追記
試行錯誤しましたが、購入したセンサーではオートレベリング機能を完了させることができませんでした。無念ですが現状ヒートベット高さ調整ねじを手動(自分)で調整して使用しています。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です