3D-PRT18)チェックと調整を始める。
2016.05.18
前回からかなり日が経ってしましましたね。
今日はRepetier-Host V1.6.1を使用して調整作業を行います。
かなり地味で面倒な作業になりますので
出来れば半日以上余裕ある時にやりたい作業ですよ。

まず調整が終わったらPLAのフィラメントを使います。
オマケで同梱されていることが多いと思いますが、
足りなくなる恐れもあるので、
品質のいいPLAフィラメントを別途用意しておくことをお薦めします。
(ABSは印刷後の歪みが大きいので本体の調整には不向きです。)
今日は使いませんけど・・・

あと、先日発覚した底面のネジが出っ張っている問題で、
簡易的な台座をMDF板で作成して貼り付けました。

調整で本体がガタガタしてたら意味が無いですしね。この段階で仮対策です。

さてKosselの電源を入れてUSBケーブルをパソコンに挿します。

=========================================
【前準備】


ログが見えないと計測情報を
数値化して見ることが出来ないので
消えていたら表示します。
表示方法はRepetier-Hostの上部に
「ログ表示切替」と書いているボタンを押すことで出来ます。



さらに↑写真の○部分を確認して水色のランプが付いていることを確認し、
消えている箇所があったらクリックして有効にします。

左上の「プリンタ接続」のボタンを押してプリンターとの接続を確立します。
無事接続出来れば「プリンタ接続」のマークが赤から緑に変わるはずです。
写真↓では、先日comポートも適切に設定したことで問題なく接続出来てますね。



右側に「オブジェクト配置」「スライサ」「Print Preview」「プリンタ操作」「SDカード」
といったタブがありますが、その中の「プリンタ操作」を選びます。

=========================================
【エンドスイッチのチェック】


エンドスイッチは3Dプリンターが座標を判断するために絶対必要な物です。
このスイッチが押された位置が最大の高さとされます。
この後のあらゆる調整はこのスイッチが有効に働いて初めて行えますので
スイッチの故障が無いか一番最初にチェックします。

まずG-Code枠のところに「M119」と打ちこんで送信。



ログの反応を見ます。

x_max: open
y_max: open
z_min: open
z_max: open
と出たらエンドスイッチは押されていないとKosselが判断しています。

次にX軸のエンドスイッチを指で押さえながら(カチッとするまで押さえる)、

再びG-Code枠のところに「M119」と打ち込んで送信。
ログの反応を見ます。

x_max: TRIGGERED
y_max: open
z_min: open
z_max: open

x_maxがTRIGGEREDになっています。
これはXスイッチが押されていてることをKossellは分かっていますよという表示です。
他のY軸、Z軸にも同じ事を行ってスイッチが正常なことを確認します。
「あれ? ~_maxはエンドスイッチだとしてもz_minはなんだろ?」って思いますが
これはホットエンドに付いているオートレベリング用のスイッチのことです。
ホットエンドを押し上げながらM119の反応を見ると問題が無ければTRIGGEREDが返ってくるはずです。

もしX軸のスイッチを押したのに、x_maxじゃなく、
他が反応するような状況だと、配線の挿し位置を間違っています。他の軸も同様です。

間違いでもなく、反応しないという症状なら、断線や接続の間違いを疑ってみます。

正常に反応するようになったら次のステップに進みます。

=========================================
【XYZ軸用モーターの接続のチェック】


このチェックは判断が遅れると駆動系やカーボンロッドを破損します。
そのため安全対策をしっかり心得てから試したいと思います。
(自信が無い場合は、キャリッジからロッドを外すと安全にチェックできます。)

まず、手でホットエンドの高さを真ん中らへんに移動させます。
カーボンロッドに無理が掛からないようにやさしく移動します。
(何をやっているかというとホットエンドを上方向にも下方向にも
衝突しないように、余裕ある位置に退避させたのです。)


右上の緊急停止を目視で確認します。



次の工程でおかしな挙動をしたときは、直ぐさまこの緊急停止ボタンを押して下さい。
もし自信が無いようなら本体の電源スイッチを直接切ってもいいと思います。

次はホームボタン(家のマーク)を押しますが全てのキャリッジが上に動けば正解。

XYZ軸のうち1つでもおかしな動きをしたときは、間髪いれず緊急停止です。
全てのキャリッジが下に動いたときはモーターの配線全てが左右逆に接続しています。
ちぐはぐに動いたときは、モーター毎に再確認が必要です。

モーターの移動方向が正しければ次のステップに進みます。

=========================================
【ホットエンド/ヒートベッドの動作チェック】


ホットエンドが正確に温まらないと話しになりません。
サーミスタが温度情報を正常に把握できているかをチェックします。
ヒートブロックを触るだけで体温で上昇するので動作確認は簡単ですが、
どうせならABSを使用するときに必要な温度まで上げてみます。
240度まで上げられたらABSでの使用で悩むことはないようです。
(ファームウェアのデフォルト値では275度を上限としているようです)

画面の右下にノズルのアイコンと温度設定枠があります。上昇させたい温度に数字を変えて
(今は240にして)アイコンをクリックすることで温度設定をON/OFFできます。



ホットエンドのヒートブロックは温度がグングン上がっていきます。
余り待つことなく200度を超えていくと思います。
とりあえずテストなので、240位までいけるのを確認したらOFFにして終わらせましょう。

ヒートベッドが付属しているモデルはヒートベッドの動作チェックもしておきます。
ホットエンドのボタンの直ぐ上にヒートベッドのアイコンがあります。
(今は100度にしてためしてみます)アイコンをクリックすることで温度設定をON/OFFできます。
ヒートベッドは時間がかかりますよ。Kosselの構造では余程室温が高くないと
100度まで到達出来ないかもしれません。1度上昇するのに何十秒もかかる状況であれば、
適当なところでやめて温度をメモして終わりにします。
私の場合は室温20度の状況で84度が軽快に上がる最大値でした。1時間くらい粘れば90度くらいは行ったかもしれませんが・・

温度が無事上昇すれば次の工程に進みます。

=========================================
【エクストルーダーの吐出量調整】


エクストルーダーから一旦PTEFのガイドチューブを外します。
エクストルーダーにオマケで付いてきたフィラメントを差込み
指でギアを回してフィラメントをエクストルーダーの出口付近まで持って行き
フィラメントの先をツライチにします。
(もしフィラメントの先が潰れていてツライチにできないときは
フィラメントを多めにだして、ツライチの位置にペンで印を付ける方法でもいいと思います。)


ホットエンドの温度を上昇させます(ホットエンドアイコンをONにする)
175度以上の温度になったら
エクストルーダーにフィラメントを送り出す命令を出しますが、
動作確認しやすいように1cmだけ送り出してみます。
(エクストルーダーはノズルの温度が175度以上にならないと命令を受け付けません)

定規で測ってエクストルーダーが正確にフィラメントを送り出せているかを見定めます。
送り出すどころか、逆に吸い込んだ場合は、配線が逆になっています。

もし送り出す長さが狂っている場合、
・モータードライバーの電圧がおかしい
・エクストルーダーのギアが滑っている
・フィラメントの軸形状にばらつきがある
・エクストルーダーのバネ圧が強すぎる
等が考えられます。

私のエクストルーダーは正確な長さを吐出してくれました。

=========================================
【ホットエンドの温度制御パラメータを再設定する】


ホットエンドが冷めている状態でRepetier-Hostから、「M303 E0 S200 C8」を送信。

<コマンドの意味>
M303 = 自動調整命令
E0 = 温度チェック対象(0:ホットエンド -1:ヒートベッド)
S200 = 目標温度
C8 = 8回測定

ホットエンドが加熱し、ある一定の温度まで上がると、測定が終了します。
終了結果はログに表示されます。

表示されたログ情報を元にConfiguration.hを書き換え、Arduinoに書き込みます。
書き込み方法は先日行った物と同じです。

私の計測結果は以下の通り
13:48:23.167 : Kp: 32.00
13:48:23.167 : Ki: 2.86
13:48:23.167 : Kd: 89.66
13:48:23.167 : PID Autotune finished! Put the Kp, Ki and Kd constants into Configuration.h

=========================================
【ヒートベッドの温度制御パラメータを再設定する】

このモデルはヒートベッドが付属していますので、そのパラメータも設定する必要があります。
ヒートベッドが冷めている状態でRepetier-Hostから、「M303 E-1 S80 C8」を送信。

今回はS80(目標温度を80度)にします。
事前に実験したところ84度までしか到達しませんでしたorz
さらに、ホットエンドのファンがベッドの近くにあると70度くらいまでしか上がりません。
印刷するときは事前にベッドの温度を上昇させてから印刷ボタンを押さないと
いつまでも印刷されないという状況に陥りますね・・
ABSを使う場合は100度くらいまで上がってくれないと困りますね。
今後、何か対策が必要です。


ホットエンドど同じように自動計測が始まりますが、温度上昇が遅いので、暫くかかります。
終了結果はログに表示されます。

表示されたログ情報を元にConfiguration.hを書き換え、Arduinoに書き込みます。

私の計測結果は以下の通り
15:20:46.712 : Kp: 227.15
15:20:46.712 : Ki: 17.77
15:20:46.712 : Kd: 725.72
15:20:46.712 : PID Autotune finished! Put the Kp, Ki and Kd constants into Configuration.h

計測した時のグラフが残ってましたので載せておきます。


=========================================
【高さ調整】


実際に可動部分が上から下までどれほど動けるかを計ります。(0.1mm単位まで精密に)
これがX、Y、Zで違っていると座標ごとに移動できる高さが変わってしまうので
精度において重要度の高い調整です。
本来ならばダイヤルゲージを用意して正確に計らなくてはならない作業なのですが、
今の段階ではダイヤルゲージをエフェクターに固定する部品すら用意できない(作れない)ので、
まずは印刷できるレベルまで手の感覚で調整することにします。

まず適当な厚紙を用意します。だいたい0.1mmから0.2mmのものがあればいいと思います。
私は手元に綺麗な厚紙がなかったので、カタログの表紙を代用しました。(これは0.14mmの紙です)

まずRepetier-Hostのホームボタン(家のマーク)を押します。
3つのキャリッジ全部がエンドストップに接触するまで上昇すると思います。
キャリッジが止まったら、以下のGコードを打ち込んでください。

 G1 X0 Y60 Z30

このコードを打ち込むとエフェクターがZ軸フレーム方向に
寄っていきつつ下降していくと思います。
しばらく待つと止まります。
移動が遅い場合は、Z30の後ろにT1000などと付けて速度指定をするといいと思います。

エフェクターの移動が終わったら、ノズルをボタン操作で下降させて

紙に触れる位置を見つけ出します。
写真の▲▼に○印を付けましたが、
「Z」と書かれている部分の最も近いところを押すと0.01mm刻みで動きます。
(Kosselは0.1刻みが限界のようです)
「Z」から最も離れた部分を押すと10mm刻みで動きます。
つまりはクリックする位置で移動量を決めることができるのです。
移動量はマウスカーソルをボタンの上に合わせるとヒントがでますので、それで確認してください。
調子に乗って1mm刻みでガンガン下降させるとガラス台に激突しますので、
ある程度紙に近づいたら0.1mm刻みで下降させます。



手で紙を左右にフリフリすればノズルの先が触れている感覚がわかると思います。
そのギリギリの感覚の位置を座標値でメモするのです。
値は写真↓の○印Z枠(高さ)を見て下さい。(Kosselの液晶でも見られますが反応が遅いです)


この値はZ軸フレーム側で移動できる高さを意味しています。

次に同じ方法でX軸フレーム寄りの高さを調べます。
Homeボタンを押してエンドスイッチが反応するまで上昇しきったら、

 G1 X-60 Y-35 Z30


を打ち込みます。
X軸フレームに寄っていきつつ下降もしていきます。
移動しきったら同じようにノズルをボタンで下げていって
紙に触れる位置をメモします。さっきと同じようにZ枠(高さ)の値ですよ。

さて、Z軸フレーム側のZ値とX軸フレーム側のZ値を比べて見ます。
違いはどれほどありますか?大きくなってますか?それとも小さい?
もしX軸フレーム側の値が大きいなら同じ値まで下げなくてはいけません。
(どの軸を基準にしてもいいのですが、私はZ軸フレームの値に合わせることにしました)
その調整方法は、キャリッジに付いているネジです。



これです。先日スイッチに触れないので特殊なワッシャーを付けて対応したヤツです。
X軸フレーム側のネジを回してスイッチに触れるまでの高さを調整するわけです。
少しネジを回しては、先ほどの方法で高さを測る。ダメならまたネジ調整、高さを測る
一致するまでこの作業を続けます。

X軸フレームの高さ調整が終わったら、次はY軸フレーム側の調整です。
コマンドを

 G1 X60 Y-35 Z30


これに変え同じ作業を繰り返します。
しんどいですね。結構時間かかります。

全てのフレーム側の高さを合わせ終わったら次の工程です。

=========================================
【ノズル移動の歪み調整】

さきほどXYZフレームそれぞれの高さを調べ、統一させたわけですが、
中央はどうなってるんでしょうかね?

今回は紙を使いません。適度に厚みがあり、小さいモノを使います。
私は台座作成で余ったMDFを適当なサイズに切って代用しました。


ホームボタンを押して、位置情報を一度リセットしたあと

G1 Z30

を打ちこんで、エフェクターをまっすぐ下降させていきます。
さっきの作業とまったく同じですね。
MDF板とノズルが触れた位置をメモっておきます。
メモったらMDF板を取り外し、

G1 X0 Y60

と打ち込みます。
中央にあったキャリッジがZ軸フレーム側にスライド移動します。
この状態で先ほど用意したMDF板をノズルの下に横から差し込んでみます。
ノズルにMDFがぶつかったりMDFがゆるゆる入るようであれば、
中心と外周側は高さがおかしいということになります。

MDFがスカスカ入るようならガラスの上を「∨」の形ににノズルが移動していることになります。
キツキツもしくは入らないようなら「Λ」の形ににノズルが移動しています。

ガラスの外周と内周ではノズルの高さが狂っているということですね。
調整はファームウェアでConfiguration.hの
DELTA_SMOOTH_ROD_OFFSETの値を書き換えるのが筋ですが、
DELTA_SMOOTH_ROD_OFFSETは変数としか使って無く、
最終的にDELTA_RADIUSを導き出すだけにしか使っていない関係上、
DELTA_RADIUSそのものに計算結果を入れて、
この値を微調整した方が早いし見やすいです。

数値の弄り方ですが、
Λなら数値を増やし、∨なら減らします。
0.1刻みで値を増減して、いいところまで近づいたら0.01刻みで調整してください。
Arduinoに書き込んではMDF板チェックを何度も繰り返し、中央と外周の高さを調整します。
Arduinoの書き込み回数上限は10万回といわれているので、いくら行っても大丈夫(笑)

このDELTA_RADIUSの値は一度見つけたら、
フレームを組み直しでもしない限り変わりません。
これから先、ヒートベッドやガラスをとり外しても
一つ前の工程で行った「高さ調整」だけでOKなハズです。
ちなみに私のKosselは何度も何度もバラして調整しているのですが、
今のところ103.51で動かしています。
図面から導き出した理論値では100.94だったのですが、
2.57mmもの差がでるとは・・ 工作精度というより部品精度の問題かな?
金属の切削パーツだとどうなんでしょうかね。

後日追記
あとから検証した結果、上記の調整では不十分でした。
テスト印刷程度に耐えればいいというならまだしも
キッチリと精度出すには、MDF板を差し込んで調整というのは甘かったようです。
詳しい調整方法は後日書きますが、
DELTA_RADIUSを弄ったら、中央,X,Y,Z軸寄りの値も同時にとって、
値の変化を事細かくメモするべきです。
なぜなら、キャリッジの真下にエフェクターがこれない以上、
DELTA_RADIUSの値を変えると、中央,X,Y,Zの全ての値も連動して変化するからです。
X,Y,Zの値をキャリッジのネジで揃えれば安心というわけでは無かったのです。
そのことに気がつくのに私は時間が掛かりました。


中央と外周の高さが合致したら、
念のため、X軸フレーム寄りの座標、Y軸フレーム寄りの座標でも確認してみます。
一致しているのが当たり前なはずですが、もし狂っているならば、
前工程も含めてきっちり調整ができていません。

X、Y、Z、中央の高さが一致したら、最終作業です。

=========================================
【高さ情報をファームウェアに書き込む】

X、Y、Z、中央の高さが一致ということは
上下に移動できる量が確定したことを意味します。
先ほどの厚紙でノズルが引っかかる高さを再度計測してください。
例えば、その値が18.10だったとします。
先日テスト用の値として320をMANUAL_Z_HOME_POSに指定して書き込みを行いました。
この320はダミーですので正しい値を入れる必要があります。
320から18.10を引いた値、つまり301.9が正解の値になります。
私のKosselでは302.95でした。この値は作り具合で微妙に変わるモノなので、
他人が導き出したのを使っても意味がありません。
自分で見つけ出した値をMANUAL_Z_HOME_POSに入れて書き込んで下さい。

無事書き込み終わると、Z座標の0がガラスから紙一枚分高い位置になるはずです。

これで、ひとまず調整は終了です。
かなり長丁場になりましたね。

次回は、テストデータ印刷で本体がもつ問題を暴いていきますよ。
ではまた。
トラックバックURL
トラックバック一覧

- CafeNote -