もっとも参考になるのはこちら。
その前にMarlin等ファームウェアにデルタ特有の値の初期値を入力する必要があるが、文章の説明だけでは意外とわかりにくい。こちらのページはドイツ語なのでチンプンカンプンだがページ中ほどの図はとてもわかりやすい。問題点は一つだけ。アセンブリしたモデルがないと個々の値を測定できない。個々のパーツだけをSketchUPで作成していたが、急遽ナンチャッテアセンブリを実行。測定した値がこちら。
#define DELTA_SMOOTH_ROD_OFFSET 131.0 // mm
#define DELTA_EFFECTOR_OFFSET 32.4 // mm
#define DELTA_CARRIAGE_OFFSET 19.5 // mm
結構真面目に測定したのだが、実は内部で最初の値から残りの二つを引いた値を計算した後はその値しか使っていない。定規で適当に測定する程度で良かったかもしれない。
次に3本のレールの真ん前にエフェクターを持ってきてエンドストップ位置のキャリブレーションだが、Rostockと比べて、ベッドが小さいため、座標を計算しなおす必要がある。久しぶりに三角関数使っちゃったぜ。
sin 30°が0.5, sin 60°が0.866なので
x座標: ±ベッドの半径×0.866 mm
y座標: -ベッドの半径×0.5
の2点と
x座標: 0(ゼロ)
y座標: ベッドの半径
の1点の三か所を使う。直径170mmのベッドを使っている場合半径85mmだがベッドのヘリになってしまうので80mmで計算した方がいい。
私の場合は(-69.28,-40), (69.28,-40), (0, 80)の3点を使用した。
z座標は0としている例が多いが、まだ高さ方向のキャリブレーションが終わっていないはずなのでファームウェアの
#define MANUAL_Z_HOME_POS
に大きめの値を入れておき、0よりも大きいzの値で調整した方が楽だと思う。3点でのエフェクターとベッドの距離が等しくなるようにエンドストップを調整。
次にx,y座標0の位置にエフェクターを持ってきて(zの値は上記で使用した値)同じくエフェクターとベッドの距離が上記の3点と等しくなるようにファームウェアの設定値を調整。
エフェクターの位置を下げるには
DELTA_SMOOTH_ROD_OFFSET を増やす。
エフェクターの位置を上げるには
DELTA_SMOOTH_ROD_OFFSET を減らす。
できれば誤差0.05mm未満にしておきたい。
0 件のコメント:
コメントを投稿