Cafe Cappuccino

かふぇ・かぷちの/新幻想的独り言4 ねふぁの気まぐれな独り言

ハードが組みあがったら、調整を行う。

3Dプリンターを購入する前は調整が必要と言う事すら知らなかったが、これがかなり面倒だ。調整には出力精度のハード寄りの調整と、造形時の出力設定の調整があり、精度調整は一度頑張れば後はほとんど触る事は無いが、造形時の調整はモデルやフィラメント、気候にもよるため都度調整が必要で終わりが無い。ひたすら経験を積んで都度適切な設定をする必要がある。

調整にはファームウェアのソースが必要となるので、ファームウェアのソースと書き込み用のArduino IDE環境を準備しておく。Arduinoに関しては説明割愛する。ここではMarlinをベースに説明する。

プリンターに電源を繋ぐ。LCD画面に温度等の表示が出る事を確認する。ホットエンドの温度が出ていなければ(Err: MINITEMPと出る等)、サーミスタがちゃんと繋がっていないので配線を確認する。

DSC03870

筆者の場合、ファームはMerlinベースのソースが業者から提供されていた。既にある程度の数値が設定されていればとりあえずその値を使って調整を始めても良いし、最初に実測値を入れておいても良い。

設定する数値はConfiguration.hファイルの下記個所。

#define MANUAL_Z_HOME_POS 310

MANUAL_Z_HOME_POSはホットエンドのガラス台から上限(ホームポジション)時のホットエンドの先までの高さ。後で減らして調整するので、少し多目に設定しておく。次に、各所の値。

#define DELTA_DIAGONAL_ROD 223.0
#define DELTA_SMOOTH_ROD_OFFSET 162.0
#define DELTA_EFFECTOR_OFFSET 25.0
#define DELTA_CARRIAGE_OFFSET 30.0
#define DELTA_RADIUS (DELTA_SMOOTH_ROD_OFFSET-DELTA_EFFECTOR_OFFSET-DELTA_CARRIAGE_OFFSET)

この値の意味は、下記サイトで紹介されている図が分かり易い。

http://sky.ap.teacup.com/biyo/124.html

DELTA_EFFECTOR_OFFSETとDELTA_CARRIAGE_OFFSETは実測値を入れておいて、調整はDELTA_DIAGONAL_RODとDELTA_SMOOTH_ROD_OFFSETの数値で行う事になる。

数値設定後、保存して書き込んでおく。ボードはArduino MEGAを選択する事。

PCとプリンターを接続しPC側から制御するが、制御にはRepetier-Hostと言うソフトを使用する。

http://www.repetier.com/download/

インストール後、プリンターの設定でCOMポートをプリンターのポート(デバイスマネージャで確認)、プリンターの種類をデルタ型に設定し、Connectボタンを押下してプリンターと接続できる事を確認する。

もしRepetier-Hostが頻繁に強制終了する様であれば、ビデオドライバーを最新版に更新する事で改善する可能性がある(筆者環境ではオブジェクトロード後強制終了する事が多く発生し、ビデオドライバー更新により治った)

host_1

UIをAdvancedに切り替え、ログ表示ボタンを押下してログを表示させる。

host_2

Manualコントロールタブに切り替え、入力エリアに「M119」と入力し送信する。

host_3

ログ表示に各スイッチの状態が表示されるので、X、Y、Z、ホットエンドのスイッチ(Zmin)を押した状態でM119を実行し、各スイッチのステータスが押下時と離した状態で変わる事を確認する。(コマンドは方向キー上で履歴呼び出しが可能)

電源がすぐに切れる様にACアダプターの口を持っておきながら、ホームボタンを押下する(筆者環境では少しかくれてしまっている)。配線が合っていれば、全体が上に向かって上がり始め、X、Y、Zの順にリミットスイッチの位置確認が行われる。配線が間違っていると下に下がったりスイッチ押下しても止まらなくなるので、その場合はACを抜くかソフト右上のemergencyボタンを押して止める。

host_4

上手くヘッドが上に上がってホームポジションに移動したら、Manualコントロールで少し動かしてみる。ManualコントロールのXY、Zのボタンは中央から外側に向かうと移動量が変わる。中央付近、「1」表示あたりを押下してみて、モーターが動く事を確認する。Extruderはホットエンドが加熱されていないと動かないので、Extruderのボタンを押しても動かないからと言って焦らないように(ログにはcold動作禁止と出るが最初気付かず配線不備かと思って不安になった)。

コマンドウィンドウにヘッドのZ位置を下げるコマンドを入力し、少しずつヘッドをガラス台に向けて落としていく。コマンドは

G1 Z200 F1000

等で、Z#の#が下から何ミリの位置にヘッドを動かすか、F#の#が移動速度を指定する。最初はZ200、F1000あたりでゆっくり動かし、大丈夫そうであればG1 Z100 F3000等位置と速度を上げてヘッドを下に動かしていく。

ある程度までガラス台に近づいてきたら、ManualコントロールのZボタンの下1や0.1を押下してガラス台ぎりぎりになるまで下げる。この時のZの数値をメモしておくと、次から一気にこの位置まで移動出来る(下限時Zが3.4の場合、次から「G1 Z4 Z5000」等とコマンドを入れれば0.6mm上空まで移動できる)

host_5

ノズルの先端と組み立て時に確認しておいたプリンターの中心位置を確認し、ずれていればノズルが中心に来るように調整する。調整は各支柱駆動部の上部にあるエンドスイッチ押下用のネジを回して調整する。ノズルが中心に無いと、出力の正方形が台形なるなどの歪みに繋がる。

DSC04177

ノズルが手前側に来ていればZ軸のスイッチ押下ネジを右回しに締めればエンドスイッチ押下が遅くなるので、ノズル中心は奥に移動する。少しずつネジ調整しながら、調整後ホームボタン押下→G1 Z# F#でヘッドを落としてノズルが大体中心位置になるまで繰り返す。

大体中心になったら、コピー用紙を外して、今度はZの高さを調整する。ノズル下に厚紙を置き、Z軸を0.1mm単位で下げながらヘッドをガラス台に近づけていく。0.1mm下げては厚紙を動かす、を繰り返し、厚紙がノズルに挟まれた時点で止める。もし厚紙を挟む前にZが0となってしまい下がらなくなってしまった場合は、フォームウェアのConfiguration.hのMANUAL_Z_HOME_POSを足りていない分+アルファのmm分追加して再度挑戦する。

DSC04178

厚紙が動かなくなった時点のZの数値がソフト的に設定しているZ軸高さとのズレになるので、ファームウェアのConfiguration.hのMANUAL_Z_HOME_POSからZの数値を引いた値をMANUAL_Z_HOME_POSに設定し、ファームウェアを書き込む。書き込み後、

G1 Z0 F5000

と入力すれば、ノズルがガラス台すれすれの位置で止まる筈だ。

ノズルを中央に合わせたら、周辺の高さを揃える。オートレベリング機能も使用するが、基本が調整できていないとオートレベリングを使っても上手く出力出来なかった。コマンドを使い、ヘッドを各支柱付近に移動させ、再度厚紙を下に挟み動かしながら少しずつヘッドを下げて厚紙が動かなくなる高さを探す。ヘッドの位置は

G1,Y70,X0,Z2,F2000
G1,Y-35,X-60,Z2,F2000
G1,Y-35,X60,Z2,F2000

を使う(1行づつ)。調整時頻繁にこのコマンドを使うので、スクリプトに設定しておくと楽である。

host_6

中央と、X支柱Y支柱Z支柱3箇所の厚紙ヒット時のZ高さは揃ってなくて良いが、X支柱Y支柱Z支柱付近3箇所の厚紙ヒット時のZ高さを揃えておく。ガラス台高さをネジで調整するパーツもある様だが、筆者はとりあえずテープをガラス台下のビーム上に貼り、かさ上げして調整した。

XYZ支柱付近のZ高さが揃ったら、中央と支柱付近のZ高さを揃える。

http://builda3dprinter.eu/build-manuals/kossel_mini_build_manual/calibration-2/

のconcave / convexの図が分かり易いが、中央と外周の高さずれはDELTA_SMOOTH_ROD_OFFSETの数値で調整する。ここからはひたすらファームの数値を調整、ビルド、上記中央→XYZ付近のZ確認 を繰り返し、4箇所でZ高さを揃える。

これで、ノズルが大体中央付近に配置、ガラス台上のZ位置が水平になっている筈だ。

次に、ホットエンドの係数設定をする。コマンド入力で

M303 E0 S200 C8

と入力すると、ヒーターが入りしばらく自動的に測定が行われる。測定完了後、completeの文字と一緒にKp、Ki、Kdの最終的な数値が表示されるので、ファームのConfiguration.hのKp、Ki、Kdにこの値を書き込み再度基板へ更新ファームウェアを書き込む。

 #define DEFAULT_Kp 18.26
 #define DEFAULT_Ki 1.27
 #define DEFAULT_Kd 65.52

いよいよ実際に3Dモデルを出力してみる。

フィラメントをセットする。Manualタブでヒーターを220度程度(PLAの場合)に設定後、フィラメント送り出し装置(エクストルーダ)にフィラメントを通し、プーリーを手で回してフィラメントをホットエンドまで送り出すか、ヒーターがある程度上がったらManualタブのExtruderのボタンを押してモーターを回しフィラメントを送り出す。

host_7

フィラメントがすんなりとホットエンドに入らない場合、ホットエンド側のチューブを抜いておいて、10センチほどフィラメントを飛び出させておいてからホットエンドに差し込むとセットし易い(ホットエンドの形状による)。

ノズルが十分に熱されていれば、フィラメントを入れて少し押し出せば先端から溶けたフィラメントがにゅるにゅると出てくる。フィラメントが出てきたら、ヒーターを切って出てきたフィラメントを取り除いて準備はOKである。

ガラス台座はこのままだとフィラメントがくっつかず、ノズル付近ににゅるにゅるごみ屑が溜まるだけである。台座にフィラメントを固定させる方法は色々あるが、筆者は別サイトでお勧めされているしわなしPITを使っており、効果は今のところばっちりである。

DSC03965

DSC03966

ガラスにしわなしPITを縦、横、斜めとひたすら塗りまくる。塗った後乾燥させ、触ってみて少しごつごつするくらいでも良い。少なすぎると造形中にフィラメントが剥がれてしまい、多すぎるとフィラメントがしっかりついてしまい剥がすのに苦労するが、多めにしておいても失敗する事はない。結構減りが早いので、数本ストックしておくと良い。

ではいよいよサンプルのモデルを出力してみる。寸法とゆがみを確認するので、Thingiverseから寸法が確認できるモデルをダウンロードする。筆者は9cm四角と4.5cm円形、3cm柱の組み合わせの下記モデルを調整用に使用した。

http://www.thingiverse.com/thing:13441/

Slic3rを使った場合の手順で説明する。

まず、出力するモデルを追加する。+ボタンを押し、ダウンロードしたSTLファイルを選択する。

host_8

Slicerタブに移動し、Configurationボタンを押下する。少ししてSlic3rの設定画面が表示されるので、G-Code設定でオートレベリングを有効にする(ファームウェア側のCofiguration.hでAuto検索し、G29のオートレベリングが有効になっていなければ有効にしておく。ただ、業者から提供されたソースは既にG29が有効になっていたが、オリジナルのMarlinソースを元に修正しようとした所、15年6月時点のソースでもオリジナルのソースはDelta型はG29未対応のコメントがあり上手く有効にできなかった。中華ソースでもG29が効果あるのかいまいち不明)。

host_9

host_10

G-CodeのG28の次の行に、G29を入れておく。

G28 ; home all axes
G1 Z5 F5000 ; lift nozzle
G29; auto leveling
G1 Z5 X0 Y-70 F4000

オートレベリング後にノズル加熱待機しその後出力が始まるが、中央で待機するとその時に少しフィラメントが溶け出て中央にゴミが落ちてしまう為、「G1 Z5 X0 Y-70 F4000」コマンドで少し手前にホットエンドを動かしている。

後は適当に設定(0.2mm厚、フィラメント1.75mm、PLAなら温度220度程度)し、出力実行する。Slic3rの細かい設定については割愛。

Sliceボタンを押し、解析後Start Printを押すとヘッドがホームポジションに移動した後、ガラス台の9ポイントで高さ確認が行われる。その後、ホットエンド加熱を待った後、造形が始まる。

host_11

DSC04187

ちなみに筆者が初めて3D Printer組立後に出力したのはこのモデルではなく、2.5cm角のキューブだった。

DSC03887

DSC03888

一応動いた感動と、かなりボロボロな出力だったので調整で綺麗になる物だろうか?と言う不安があった。Slic3rの設定でエクストルーダのフィラメント押し出し速度、温度あたりを調整する事で大分改善される。

テストサンプルだが、5~10層ぐらい上手く出力出来たら、一旦出力を中断する。

DSC04186

一番下の層がつぶれていたり、隙間だらけになってる場合は、Configuration.hのオートレベリング後のZ戻り量を調整する。

 #define Z_PROBE_OFFSET_FROM_EXTRUDER 0.4

出力したモデルの中央、手前、奥、左右をノギス等で計測し、サイズや歪みを確認する。

DSC04216

出力サイズがモデルのサイズと異なる場合は、Configuration.hのDELTA_DIAGONAL_RODを調整する。この調整により出力サイズが変わる。

縦横のアスペクト比が異なる場合や前後・左右端でサイズが異なる場合、ノズルのホーム中央位置がずれているので、支柱のキャリア上部のエンドスイッチ押下ネジを調整する。

ひたすら出力→調整を繰り返し、精度を上げて行く。DELTA_DIAGONAL_RODやエンドスイッチを調整した場合、Z高さ(MANUAL_Z_HOME_POS)もずれるので、こちらも合わせて調整しておく。

フィラメントは熱により伸縮するので、ある程度まで調整できたら妥協しよう。でないと延々と調整にはまり続けてしまう。筆者は調整が落ち着くまで3週間程かかった。未だ改造中ではあるが。

これでハード的な調整は終わりである。後は造形時のSlicer調整であるが、これはモデル・フィラメント・気候に左右されるため経験と勘を積んでいくしかない。

次回からは各種改造・改良編や失敗編をお届けする。


デルタ型3Dプリンター出来るかな 調整編」 に3件のコメント

  1. aham より:

    私も先週ハードが組みあがりこれから調整というところで躓いていました。
    海外サイトばかりで情報収集が手間だったのでとても勉強になります!
    ありがとうございます!!

    • ねふぁ より:

      まだまだ3Dプリンター関係の情報は少なく、掲示板の情報を見ても世界中で試行錯誤していますよね。調整を始めるとなかなか終わりが見えませんが、少しでも良くなると楽しくなりますので色々試してみて下さい(^-^)

  2. […] の前にarduinoで基本的な設定をしなければならない、というのがオチでした。この辺のやり方は先駆者のブログで詳細に解説されているので非常に助かりました。(特にこちらのサイト) […]

コメントを残す

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


*