以前とても悩んだ、Robo3DのAutolevelingでの不具合動作があったのだが、原因が不明のまま解消していた。そして今回それが再発したのだった。
Robo3Dに搭載されているReprapの制御ファームウェアはMarlinなのだが、自動ゼロ点調整で9か所測定して補正をかけてということなのだが、計測する都度においてプレートまで下がらずに途中で打ち切ってしまい、前列から後列に向けてのプロットごとに徐々に高くなっていくような動作になってしまっていたのだった。
reprapでは構造上二つののZ軸モーターをパラレル運転して吐出口(x軸構造)のフレームを持ちあげるのだが、Robo3Dでは、このフレームを支えている部分(Z軸)に宙づりになっている検知センサーが双方ついていて、ノズルがテーブルに当たりそれ以下に下がらなくなった場合には、この宙づりセンサーが上からフレームに挟まれて検知するという構造になっている。
一般的なモデルでは、ノズルブロックにオートレベル測定時のみにセンサーを下げるメカを搭載していて検知するということになっているようだ。
さて、このRobo3Dの場合には、左右のZ軸のセンサーが同様に浮いているということが必要であって、そのことはマニュアルで両Z軸を回してノズルを左右に振った位置でそれぞれのZ軸が同程度にセンサーを最下部で押し付けるようにして、結果として同等に浮いている状態を作り出す必要があったのだった。これが中途半端になっていると上がる過程下がる過程であっても不用意にセンサーが検知することになりAutolevelingが失敗する原因となっていたのだった。
下の写真がセンサ(マイクロスイッチ)支えている部品が、X軸のフレーム部品から懸垂していて、さらに長めのナットの部分で上下に稼働するになっていて、ノズルとプレートが当たった場合にはフレームが止まり、センサーだけが下がることでセンスする。
次の動画を見てもらえれば、通常の動作はわかるかと思います。
スムーズに左右のセンサーが下りるようにするには、確実に懸垂されている状態にしないといけないわけですね。左右のバランスがずれていると懸垂が浅いほうが上下動の途中で検知してしまうことになります。