Ender-3で、Auto Bed Leveling(ABL)に挑戦しました。
オート・ベッド・レベリングとは、ベッドの高さ調整を自動でやってくれるやつです。
あの面倒なベッドの高さ調整が必要無くなります。
前回ファームウェアの書き換えに挑戦したのは、ほぼこれが目的な訳だったのです。
近接センサー / Proximity Sensor
自動でベッドの高さを調整する為には、当然ですがベッドの高さを検出するセンサーが必要です。
今回、私が使ったのは、LJ18A3-8-Z/BXと言う磁気誘導型のセンサーです。
日本のAmazonで1000円程で買いました。海外の通販だと$2~3程度で売られています。
ケーブル付け根には、LEDのインジケーターがあります。
センサーが金属に反応すると点灯します。
このセンサーは検出距離が8mmと言うことで選んだのですが、届いたセンサーで実際に試してみると4mm程の距離でした。
Ender-3のベッドのテーブルはアルミ製のようですが、このセンサーは非鉄金属だと検出距離が短くなるらしいです。
(でも鉄板で試してもあまり変わりませんでしたが)
尚、3DプリンタのABLに利用する場合、検出距離は長いものの方が調整が楽です。
あと、同形状のセンサーで、静電容量型のセンサーもありますが、距離の検出精度は誘導型の方が良いらしい。
あと、サーボモーターを使ってスイッチを上げ下げするセンサー(BLTouch等)もありますが、サーボを動かす為にコントローラーのI/Oピンが必要で、Ender-3で余裕の無いI/Oピンを消費するのは今後の拡張を考えると嫌だなと思い、サーボを使ったセンサーは避けました。
回路 / Wiring
このセンサーの出力は、NPN-NOタイプです。
同様のセンサーでは、色々なセンサー出力の種類があるので注意が必要です。
ケーブルの色の表示が、見慣れない漢字と見慣れない略語なので、ちょっと謎だったのですが、
BN=Brown=茶色=+電源(VCC)
BK=Black=黒=信号線(Signal)
BU=Blue=青=-電源(GND)
と言うこです。
(上の写真のケーブル先端のコンタクトピンは自分で圧着しました。)
本体には上図のような参考回路が示されています。
まずセンサーの電源(BN)ですが、このセンサーは6~36Vに対応しています。
Ender-3の電源ユニットの出力は24V、Ender-3のメインボード(コントローラー)の動作電圧は5Vとなっています。
本当はメインボードに流れる5Vに接続したいのですが、センサーの電源にはわずかに低いので24Vに繋ぎます。
しかし、センサーの出力はメインボード内の回路に接続する為に、5Vに合わせなければいけません。
ちなみに、上に参考回路を見るとセンサーの出力は、電源(BN)と信号線(BK)の間に負荷を繋いで駆動させるようになっています。(その時に流せる電流は300mAまで)
参考回路を見ると、オープンドレインの様な物かと思ったのですが、信号線には未検出時にセンサーの出力端子(BK)を調べると、電源電圧である24Vがかかっていました。
そして、検出時にはGNDに接続されるようなので、出力端子(BK)は内部で電源にプルアップされているような感じでした。
オープンドレインなら5Vの信号線を繋いでも大丈夫ですが、電源(24V)にプルアップされている為に信号線をメインボードに直接繋ぐと24Vが流れて壊れてしまいます。
なので、電圧変換する為の回路が必要です。
これは色々な繋ぎ方がありますが、私は以下のようなフォトカプラを使った回路にしました。
U1はフォトカプラ(一般的なものなら何でも良いと思います)
R1は3KΩの抵抗(適当に選びましたが、もう少し高い値のほうが良いかも)
フォトカプラ TLP785(GBランク) – 秋月電子
カーボン抵抗(炭素皮膜抵抗) 1/2W 3kΩ (100本入) – 秋月電子
近接センサーを接続する回路の部品
近接センサーを接続する回路は、こんな感じに作りました。
写真右側、2本のピンが飛び出してるのは、Ender-3のZ軸のリミットスイッチのコネクターに直接差し込めるように。
実態配線はこんな感じ。
上の回路図そのままです。
メインボードの端子はこんな感じ。
24Vの電源は、メインボードの一番端の端子から取得(基板には12Vと印刷されていますが、テスターで計るとしっかり24V出ています)
実際に接続するとこんな感じ。
これで、配線は完了。
センサーの取り付け / mount
以前、ケーブルピラーを公開したときに、一緒にセンサーを取り付けられる物も作ってThingiverseにアップロードしていました。
が、この時は実際にテストせずにアップしていたのですが、実際に使われた方から「端が当たって使えない」とコメントが寄せられました。
で、その方は、私のアップした物を使えるように再加工してremixとしてアップしてくれました。
それがこちら
Ender-3 cable pillar with 18mm sensor holder – Thingiverse
ただ、これはオプトエンドストップを付けていると当たるかもしれません・・・
ヘッドに取り付けるとこんな感じになりました。
ケーブルが邪魔なので、エクストルーダーのモーターへケーブルを取り付けられるホルダーを作りました。
これは、ケーブルピラーと一緒のところへアップしてあります。
そして、大事なのはセンサーの高さです。
近接センサーは、ビルドシートの下のアルミのテーブルに反応します。
前述しましたが、私が用意した近接センサーの検出距離は約4mm程。
そして、Ender-3のビルドシートですが、サインスマートのEnder-3はグラスファイバーのシートにビルドシートが貼り付けてあり、約2mm程の厚みがあります。(写真参考)
なので、近接センサーの先端からビルドシートまで約2mm。
また、センサーの先端はノズルよりなるべく高くしないと、プリント中に造形物にぶつかってしまいますので、2mmの中間ぐらいかそれよりちょっと下ぐらいにノズルの先端が来るようにセンサーの高さを調節したい。
これがなんだかんだ難しい。
近接センサーの検出距離は長い方が調節がしやすい理由はこういったことです。
ガラスのビルドプレート等厚みのあるものを利用している方は、もっと距離の有るセンサーを探すかBLTouchとかの機械式スイッチを利用したほうが良さそう。
あと、Z軸のリミットスイッチは邪魔になるので取り外しておきます。
あまりにも長くなったので次のページに続きます。