3Dプリンター Rostock Mini Pro 製作記(5)

前回プリンティングできるようにはなったものの、機械の剛性がなさすぎたり、エクストルーダーとPTFEチューブの取り付けが外れてしまったりと散々な状態だったRostock mini。

今回修理と、いくつかの改良を施してみました。

 5. 修理・改良

5-1. エクストルーダーとPTFEチューブの取り付け修理。

DSCN1421

部品の作り直しも考えてみたのですが、単純にエポキシ接着剤でつけて修理完了。同じデータで印刷する限り、部品の弱点が消えるわけではありませんから。。。

PTFEチューブのアダプターを万力で加えて、エポキシをネジのところに塗っておき、そこにエクストルーダーの部品を上から差し込んで輪ゴムなどで動かないようにして固定しました。チューブの中にエポキシが入ってしまうと困るなと思っていたのですが、重力を使うことで解決。また、ネジ穴全体にエポキシが充填されることで、強固に固定できました。

5-2. フレームの剛性強化

この3Dプリンター、組み立てた状態では、上のアクリルフレームと下のアクリルフレームが平行に動かせるような剛性で、どうしてもホットエンドの位置がピタッと定まりにくいです。ロッドとフレームを留めているのが3Dプリンタで印刷した部品なので、どうしても直交軸が曲がりやすいです。

これを何とかしたいなということで、ちょっと格好は悪くなりますが、アルミアングル材を使ってフレームを固めてみました。

使用したのは、18mm*10mm*2mm厚のコの字アングル2m、25mm*25mm*2mm厚のL字アングル 1m分、それから、角の補強のために、75mm長幅18mmのスチール金折(L字)を使いました。これらを組み付けるのには、プリンター本体でもたくさん使われているM4*10mm長の六角穴付きボルトとナットを使いました。六角穴付きボルトは使いやすいですが、結構値段が高いです。

DSCN1427

フレームはこんな感じで組みました。ちょっと設計ミスもあり、組み付け方を変えたので、下の方でアングル材がちょっと余っちゃってますが気にしない・・・

DSCN1426

2面をこうやって固めてみました。十分に剛性が上がりましたが、やはり残りの1面も強化した方がよさそうではあります。アクリルの3角板でつながっているので、2面強化したら残りの1面も強くなるかなとか思ったのですが、やはり違いはある。

まあ、でもプリントをするのには十分とはいえそうです。

5.3 キャリッジのベアリング交換

アームを支える部品はキャリッジと呼ばれていて、リニアガイドで径8mmのロッドを滑って平行移動するようになっているのですが、そこにオリジナルのRostock miniで使われているのは、30mmの長さのLM8UUというベアリングです。このベアリングの長さが短いためか、キャリッジをねじるような力をかけると結構ガタがあり、ホットエンドの先がそのガタのために動いてしまいます。

キャリッジはベルト駆動なのですがベルトがキャリッジを動かすポイントがキャリッジの中心でなくて少し偏った位置になっています。そのこともあり、結構ベアリングのガタが影響しやすいです。LM8UUの説明書をWebで見ると「モーメント負荷は避け、各ブッシュの取り付け距離は大きくとるように」との注がありますが、今の使い方はそれに真っ向から対決するような使い方ですので良くないと思いました。

というわけで、少しでも注の精神に従おうということで、LM8UU(長さ30mm)をLM8LUU(長さ45mm)に交換してみました。長いのでガタが減ることが期待できます。実際キャリッジの部品は同じままで、LM8LUUに交換してみるとガタがほとんど無視できるまでになりました。OK! ベアリングの重さが倍になるので、駆動に問題が出ないかという不安もありますが、今のところ大丈夫そうです。

DSCN1428

これが取り替えたベアリングLM8LUU

 

というわけで、再びプリントにいそしんでみましたが、改良したあとも、プリントの失敗自体はいろいろとしていて、

DSCN1437

これは、望遠鏡の接眼部につける部品をプリントしてみたものですが、最初の3層程度がきれいにプリントできず、ずれてしまっています。最初のクリアランスの設定がおかしいのか、ベッドの調整がいまいちで傾いてしまっているのか(こちらに倣って、ダイアルゲージをつけて調整をしてみたのですが、そのあとホットエンドに取り替えた時にずれちゃったかも。やはり辛気臭くても、紙を使ってクリアランスをチェックする方法が一番確実?)、はたまた温度が不適切?・・・

途中からはきれいにできているので、剛性強化などの効果は出ているようです。

ともかく、しばらくは、プリントの設定をいじりつついろいろと試行錯誤してみようと思いますので、これでこのキットの製作としてはひと段落としたいと思います。

この項終わり。

 

 

3Dプリンター Rostock Mini Pro 製作記(4)

3Dプリンター一応動きました。校正やら初期設定やらを今回は書きたいと思いますが、ここまで来るのに予定より少し時間がかかってしまいました。
というのも、別に使っているCNCルーターの動きがちょっとおかしくなってしまっていて、困っているところです。

CNCルーターで切削をしていたら、突然Z軸が上方向に動くべきところを下方向にしか動かなくなったり、途中でエラー停止(?)したりしてしまうようになったのです。
Z軸が下にしか動かなくなると、何が起こるかと言えば、カッターはターゲット(基板)にめり込んでカッターは折れるし、基板は巨大な穴が開いておしゃかになるし、散々です。問題が起こった後しばらくはおかしいままなのですが、知らないうちに治ったりするのでたちが悪くて、治ったと勘違いしてやり直してまたトラブルが再発してカッターや基板をたくさんお釈迦にしてしまいました。トラブルの原因がCNCのモーターや中華なモータードライバーにはないところまでは確認しているのですが、USB-CNCコントローラーがおかしいのか、それともPCがおかしいのか、はたまたUSBケーブルがおかしいのか?ということまではわかっておらず、今のところ、作業もできず悶々としているところです。

ということで、CNCルーター改造の3Dプリンターはしばらくお預けで、中華なRostock miniキットの完成を先に目指すことにしました。

3. フィラメントスプールホルダの作成

キットにはフィラメントはついてきませんので、フィラメントを別に購入しました。とりあえず、白色のPLA樹脂を1本と水色のABS樹脂を1本購入しておきました。また、フィラメントを巻き出すためのスプールホルダもキットにはついていませんので、適当に手元の端材で作成しました。

DSCN1385

これが作成したスプールホルダで、手持ちの1×4やらシナ合板で台を作っただけです。スプールには直径35mmの孔が開いていますので、ダイソーで売っている直径30mm長さ90mmの木の丸棒がぴったりです。

 

反対側から見るとこんな感じ。MDF合板(ダイソーの)で押さえをしています。取り替えるときはこちらの押さえを外して差し替えるだけです。

プリンターと合わせた様子は下の通りですが、結構スムーズに滑りますのでOKかなと思います。

DSCN1357

4.調整、テストプリント

いよいよ、調整とテストプリントをやります。

4-1. 水平調整

まず、XYZ軸の水平調整、寸法調整なのですが、プリントベッドとして、キットには丸いアクリル板がついてきましたので、これをフレームに置いて固定します。

固定には、3Mの343マスキングテープ 60mm幅をプリントベッドに張りますが、ついでに余ったテープを切らずにフレームに張り付け固定、という横着な方法をとりました。こんないい加減な方法でいいのかなと思いますが結果からいえば全く問題なし。

DSCN1341

この状態で、キャリッジに取り付けられている3本のネジを回して水平を調整するのですが、下記のような順序でやりました。

1. Repetier-Hostからホーミング指示をだすと、ネジがスイッチに触れることで原点が出る。

2. X,Y=0の状態でZ軸を下げ、ノズルがぎりぎりプリントベッドに触れない高さを出します。高さを出すのには、紙を使いました。紙の厚さ0.11mmで、紙が摩擦する高さまで下ろし、その高さをぎりぎりの高さとしました。最初にやった時、2.2mm (Rostock Mini Pro のマニュアルに書かれた手順で値を設定するとこのあたりの値となる)となりました。

3. いったん10mm Zを上にあげ、X,Y,Zモーターの近くにもっていき、Z軸を下げてぎりぎりノズルが触れない高さを同様に出します。最初の調整では、Xモーターの近くでは2.1mm Yモーターの近くでも2.1mm Zモーターの近くでは、2.3mmが出ました。この時、私のRostock miniでは、各モーターの近くで値を出してまたX,Y=0に戻して同様に高さを出すと最初の2.2mm から外れた小さな値(=1.8mm など)になってしまいます。これを繰り返すとX,Y=0での高さがだんだん小さくなっていき、元の2.2mmには戻りません。このことは再現性もあるようなので、機械の遊びが原因のようです。仕方がないので、毎回ホーミングした後にX,Y,Zモーター近くに移動させることで、モーター近くのポイントでのずれを調べてみました。

各軸でのずれがわかったらそれを修正する方向に3本のネジを回します。ネジは3mm のネジなので、ピッチは0.5mmゆえ、0.1mmの修正をするには0.1/0.5=0.2回転させます。今回Zモーターの軸だけを修正することにして、ネジを回したところ、各軸での中央(X,Y=0)からのずれは-0.1mmとなったので、これで良しとしました。

さて、3Dプリンターのソフトでは、ノズルがプリントベッドに触れる高さをZ=0とするようなので、測定した値(今回の場合2.2mm)の分、Arduino firmwareのプログラムRepetier.ino のConfiguration.hの

#define Z_MAX_LENGTH を、初期値-測定した高さ に設定することで修正し、Arduino Mega 2560に書き込みました。

また、Repetier-hostのprinter settings -> Printer Shape -> Printable height も同じ値に設定しました。

念のため、もう一度ノズルをプリントベッドぎりぎりに動かしてZ=0を確かめておきます。

4-2. Extruderの校正

Extruder に10mmExtrudeの指示を出したときに10mm出てくるかRepetier-host のmanual controlで動かすことによって確かめました。

DSCN1334

上は、10mm Extrude したときに実際には11.83mm出ていることを示します。今回は、flowrate をこの分やノズルの径の違いの影響を勘案して調整することで対応することにします。ノズルの径にエラーがなければ、85%程度のレートで出せばよいということになります。

4-3. テストプリント

テストプリントとして、Thingiverseのキャリブレーション用20mm角キューブをプリントしてみることにします。

stlファイルをダウンロードし、slic3rでg-codeを作成してプリントします。設定はインストールしたままのものを使ってみました。プリント速度30mm/sec 層厚0.4mm、ホットエンド温度200℃の設定です。

実際には、溶けたフィラメントがノズルの先から出てくるのに非常に苦労しました。どうもBowden extruderのPTFEチューブとホットエンドの軸が少しずれていたようで、ホットエンドにPLAフィラメントがすっと入っていかず引っかかっちゃったりして調整に苦労しました。引っかかった場合には、エクストルーダーのギアが滑りますのでそうならないようにホットエンドマウントのネジを緩めたりして調整しました。

さて、最初のプリントですが、大失敗でした。

プリントしている途中で、フィラメントのExtrudeする速度が大きすぎたようでエクストルーダーのギアが滑るのはいいのですが、PTFEチューブをエクストルーダーに留めている部品のネジがバカになっていたこともあり、外れてしまい、さしなおしてもすぐ抜けるようになってしまいました。慌ててPTFEチューブを差し直して、また抜けてしまうので、かなり焦り、結局は、最初のテストプリント中ずっと手でPTFEチューブをエクストルーダーに手で挿して押さえているという力技で切り抜けました。が、プリンターの剛性も弱いため、プリント結果がガタガタ(下の図)。

まさに、「なんじゃこりゃあー!」と松田優作が出てきそうな感じです。

そもそも、エクストルーダーの部品からPTFEチューブが外れた時点でアウトなのですが、それでもこの程度出たので良かった?

替えの部品は当然持っていませんので、PTFEチューブを針金で無理やりエクストルーダーの部品に固定しました。

DSCN1354

こんな感じで。

もう一度同じ20mm角キューブをプリントしなおします。

DSCN1353

今度はだいぶましそう。

DSCN1359

左が手で押さえながらなんとかプリントした最初のもの。右が修理後のもの。かなりマシになりました。プリントが終わった後なぜかノズルがその場所に居たままになったため型がついてしまった・・・G-codeの設定を変えないといけません。

20mmのプリントしたキューブの寸法をノギスで測ってみました。

DSCN1361

お。思ったより精度いい。

DSCN1363

厚み方向もそれなり。

これをみて結構元気がでて、壊れたエクストルーダーの部品をプリントしてみることにしました。

slic3rの設定がよくわからなかったのでとりあえずサポートを付加せずプリントしてみます。

サポートなしだとどうなるか興味もあってサポートを付加しないで作ってみましたが、やっぱりサポートは必要そう。サポートがないとその間のフィラメントが乗っかるところがないので、実質プリントアウトされない部分ができてしまいます。

DSCN1381

また、温度管理は重要で、プリント途中換気のため部屋のドアを開けたら、温度が急変したせいか、少し段が(真ん中より下)できてしまいました。

それと、Extruderの押し出し速度は、85%に最初設定してみましたが、速すぎるようで、私のRostock miniでは75%程度がエクストルーダーのギアも滑らずいい感じでした。ということは、ノズルが0.4mmより細めなのかな・・・

まあ、最初の数回としては合格点かな。

一通り動くようにはなりましたので、これから、マシン剛性の改善、ABS樹脂のプリントに必要な、ヒーテッドベッドの取り付けと配線等をやっていきたいと思っています。

 

 

 

3Dプリンター Rostock Mini Pro 製作記(3)

2. 組み立ての続きです。

ホットエンド周りを組み立てます。

Bowden エクストルーダーからのPTFEチューブは手持ちのM5ナットで固定しました(キットに入っていなかったような気が。。。)

DSCN1307
ホットエンド(J-head MKIV hotend)は、ホルダーがホットエンドの溝に横からしっくりハマります。

DSCN1308

2つのホルダーを重ねて、central platform にM4のネジとナット、それからワッシャーで留めました。

DSCN1310
上から見た様子。配線はキット付属のスパイラルチューブでまとめます(ファンの配線をまとめるのを忘れていたので後でやり直した)

 

DSCN1312

下から見た様子がこれです。ファンはM3-16ねじでファンマウントに固定できます。ファンマウントのcentral platform への固定はM4ねじでやりましたが、例によってタップを切ることが必要でした。

ちゃんとファンが固定できれば、J-type hotend のノズルのわずか上にファンの一番下が来て、ファンがプリントベッドにあたらないようになっているようです。

 

DSCN1323

最後は全体の配線引き回しをしました。

このキットは、エクストルーダーを3軸のステッピングモーターの近くに置く前提になっているようなのですが、central platformに余計な力がかかるとプリントの結果がずれる原因になるようなので、配線もPTFEチューブも上から素直に下ろすようなアレンジにしてみました。そのため、エクストルーダーのステッピングモーターは上の面に乗せています(タイラップ止め)。

配線の長さがいろいろと足りない(ファン、ホットエンドヒーター、サーミスター、エクストルーダーモーター、エンドストップスイッチのいくつか)ので、AWG24あたりの線を使って延長をしました。

ほとんどの配線は上の面でまとめて下に置いてあるコントローラーまでつなぎますので、手持ちのスパイラルチューブ(黒)を使ってまとめました。

 

DSCN1319

RAMPSボードに配線をしますが、これもマニュアルに記載が全くないことの一つですが、Reprap wikiには書いてあるので問題ないでしょう。

今回、ラップトップ用の12V 10A電源を使用しているので、RAMPS1.4ボードの電源は、ArduinoのDCジャックからマニュアルに指示のあるように引き回した配線を通って供給されます。モーターの結線は、モーターは4本の配線のうち2本づつがペアなので、テスターなどでペアを見つけます。RAMPSボードにはそのペアペアがならんでつながっていたらそれでOKのようです。キットに付属のモーターは、3軸のはどれも同じ色の組み合わせでOKなのですが、エクストルーダー用のモーターは色が違っていて、またペアの色の組み合わせも異なっていたので要注意です。

モーター4式(X,Y,Z,E0)の配線をします。

エンドストップ3式(X_MAX, Y_MAX, Z_MAX)は左からコネクターがX_MIN,X_MAX, Y_MIN,Y_MAX, Z_MIN,Z_MAXとなっているので場所を間違えないように、また、Sと記載されたピンと-と記載されたピンにスイッチがつながるように気をつけます。

サーミスターはT0につなぎます。

ホットエンドのヒーターはD10につなぎます。また、ファンは、D9につなぎますが、極性があるので気をつけます(ボード上の+サインに赤線をつなぐ)。

以上で一応配線終わり。こちらのソフトウェア設定マニュアルに従って、ArduinoMega2560のファームウェアをアップロードし、Repetier-host ソフトをPCにインストールしてUSBでPCにつなげばテストができます。

私のところでは、ホットエンドのノズルとプリントベッドの間の距離は最大185mmでした。

その他の校正の手順もソフトウェア設定マニュアルに従えば特に注意する点もないと思います。

ヒーターの温度調整ができることを確かめ、ファンを動かしたり、XYZの動きを確かめたりしてみましたが、特に問題はありませんでした。

一通り、動かしてみた感想。

まだプリントをしていない現段階ですが、これじゃあ精度の高いプリントは難しそうで、フレームその他の剛性を高めたいなあという印象が強いです。ちょっと遊びでプリントしてみた後は、フレーム剛性の強化、キャリッジのリニアベアリング周りの改良をしたいな、と計画しているところです。

次回は、実際にプリントをしてどんなひどい結果が得られたかが書けるといいなと思っています。まだフィラメントのテストは全くやっていません。スプールのホルダーを木で作ろうと思ってまだやっていないので、まだ実際にプリントするところまでは行っていないのです。

続く。

 

3Dプリンター Rostock Mini Pro 製作記(2)

Rostock Mini のキットの製作の続きです。

2.組み立て

製作は、こちらのマニュアルに従ってやるのですが、このマニュアルというのが、途中までしか書いてないんですよね・・・初心者には厳しすぎる。。。

ともかく、書いてあるところをマニュアルに従って組み立てていくことにします。

組み立て方はマニュアルにまず書いてあるので、書いてあるところが間違っていたり、悩んだり、失敗したところだけ。

まず、ステッピングモーターを台座の下にプリント部品と一緒に取り付けるのですが、ステッピングモーターをつけた台座(橙色の部品)とアクリル板をM4のネジで取り付けるのが難しすぎます。何と言ってもM4のネジ穴はタップが切っていないので、力を入れて押し込め。と書いてありますが力を入れて押し込んでみても滑るばかり。。。というわけで、私は道具を持っているオトナなので、M4のタップを使ってネジを切ってから組みました。他にもM4のネジのところは大変なのでタップを切って組みました。

DSCN1264

次に、アームの組み立てのところ。

なんと、マニュアルには、ネジ袋の材質をジョイントのネジに巻き付けて、そいでもってカーボンファイバーのチューブに差し込んで固定してね、っていうすごい指示が書いています。接着剤とか使うと思ったらよりによって、袋巻くだけ?ということで巻いてみたのですが、巻けやしない。というわけで、私は、手元にあったセロハンテープを巻いて組みました。それなりにしっかりと固定できているので、接着剤なしでもいいのかも(半信半疑)。

DSCN1274

 

マニュアルにはネジの記載の間違いがちらほらありますので、現物と写真を見ながら組み付けられるように組んでいきました。だんだん後になってくると、数量の記載が省略されていたり、ワッシャーを入れる入れないの記述がなくなっていたりするのは、ご愛敬?

さて、この3DプリンターがオリジナルのRostock miniから改良したと言っているところはいくつかあるのですが、このエクストルーダーの作りがその一つ。遊星ギアで減速して歯車でフィラメントを押し出す構造になっています。また、ベアリングも使っていて高級品という感じ。

DSCN1298

ですが、M5のネジを締めすぎて、ABSの樹脂の弱いところにヒビ(白っぽくなっているところ)ができちゃった。うーむ。やばい。

DSCN1297

まあ、プリンタが動けば、プリントして作ればよい(?)ので心配ないかな。。。

DSCN1301

ということで、マニュアルに書いてあるところは組み終わりました、がまだやることがたくさん残っているように思われます。まず、エクストルーダーの取り付け場所、基板の取り付け場所、ホットエンドとファンの取り付けと配線、ホットエンドへどう配管をするか、など、うーむ、たくさん書かれていないね。Rostock Miniのwikiを端から端まで読めってことでしょうね。

さて、ここまで組みあがったものを触ってみて、感じたことは、「ガタが多い」ということで、このまま組み上げてまともな精度でプリントできる気がしません。こりゃーえらいもんを買っちゃったな。スーパー泥沼だなというのが正直な実感です。まずタワーが手の力で変形できるような強度なのと、リニアガイドとCarridgeの取り付けにガタがあるし、などなど。改良点がたくさんありそうな気がします。

次回は、一応完成まで何とか持って行って試しに動作した結果を報告できるといいですね・・・

続く。

 

3Dプリンター 温度コントローラーを作る

3Dプリンターづいている今日この頃。みなさんいかがお過ごしでしょうか。

先日3Dプリンターのキットが届いたと書きましたが、そのあとキットの組み立てはまだしてないんです。並行してCNCルーターで3Dプリンティングをしよう!とか、思い付きプロジェクトをやっていて泥沼に入っております。

その泥沼プロジェクトで毎日朝晩シコシコ作業していたのが、温度コントローラーを作るということでした。

CNCルーターで3Dプリンティングをするにあたっては、プラスチックを溶かす関係上、温度の管理をすることが必要なのですが、そういう道具立ては残念ながら持っていないので作んなきゃな、ということで作りました。

このページで紹介されているものと、まあ似たようなものです。

出来上がったものは、

DSCN1245_caption

こういうもので、ホットエンドとヒートベッド、それからホットエンドに付属のファンを接続して、温度制御、ファンのON/OFF制御ができます。設定温度の変更や各制御、それから設定のセーブ(EEPROMに)などが、本体の3つのボタンだけでできるようになっています。また、シリアルでPCに接続ができるようになっていて、サーミスターの定数や、温度制御のパラメターは、PCから変更でき、また、動作状況をPCからモニターできるようになっているのが特徴です。

基板の回路図を貼っておきますが、

基板のハードウェアとしてはおおむねArduino ボードにサーミスター入力、LCDとボタン3つ、MOSFET3つをつけただけ、みたいなシンプルな構成です。IC基板で配線してもいいのですが、ここはいつもの習慣通り切削で基板作成しました。

温度の制御は、接続したヒートベッドなどへの電流をMOSFETでPWM的にスイッチングして調節するようになっています。PWMの周波数はあまり高いと、音がしてあまりよろしくないので、周期は1秒程度のゆっくりとしたPWM制御をしています。最初PWMは、ArduinoのanalogWrite() を使ってみたら、ビービー音がして落ち着かないので、今のようなゆっくり制御になっています。たぶん、使用した電源はアナログメーターで電流を見ているので、メーターから可聴域の音が出ているんでしょう。

また、温度のフィードバック制御は、ありきたりですが、PID制御を実装してみました。

ユーザーインターフェースはそれなりに凝ったものに作りました。ファンはアニメーションでONにしたときLCD画面内で回りますし、ヒートベッドへの電流量(PWM値)をLCDの外字を定義することでグラフィカルに表示したりしています。

さて、出来上がった温度コントローラーを、亀甲型ヒートベッドに接続して制御してデータどりをしてみました。というより、PID制御のテストをしてみた、といった方が良いかもしれない。

DSCN1241

これがテストの風景で、コントローラーの電源は、ずーっと倉庫で塩漬けになっていたアマチュア無線用の電源を使いました。20A以上流せるので大丈夫でしょう。

このヒートベッドを12Vで使うとおおむね7A程度の電流が流れますので、それなりに電源の配線は気を使います。少し電流容量が不足するかもしれませんが、配線は、18AWGのPC電源用の90cm延長ケーブルから線を切り取って行っています。

MOSFETは通電時かなり発熱しますので、このままではNGで放熱板をつける必要がありそうです。使用したMOSFETのON抵抗が最大0.08オーム程度あるとすると、7A通電時は4W弱のMOSFETでの損失になります。パッケージ(TO220)と外気の熱抵抗は63℃/W程度とすると、そのまま通電し続けると温度上昇は250℃以上という計算になり、チップの動作温度150℃を超えちゃいますのでアウトということになります。実際、MOSFETの発熱で、チップのON抵抗が高くなり、連続的に電流を流すと、電流値がだんだんだれてくるのが観察できます。無限大の放熱板をつけた場合には、これは、熱抵抗3.6℃/Wとなるようなので、14℃程度の上昇ですみます。

6/1に手持ちの3mm厚のアルミ板を25mm幅 100mm長さに切り出してMOSFETに取り付けてみました。結果は良好で、ヒーテッドベッドを120℃に調節した際も、MOSFETは手で触れる程度の温度に維持されているので、これでよさそう。

Reprapのコントローラー(RAMPSとかSanguinololu)を見ると、特にMOSFETに放熱板などはついていないので、どうなってんだろ。ヒーテッドベッドは直接つけられないんじゃないかな(とりあえず動くがそのうち壊れるパターン)。

コントローラー自体の消費電流は、17mA程度でしょうか。バッテリーにつないでいるわけではないので、特にCPUをスリープさせるなどの所作はしていません。

ヒーターのPID制御は下記のように行っています。

Terr(誤差) = T_target(設定温度) – T (現在温度) として、

pwm値(0-255) = Kp * Terr + Ki * ∫ Terr dt +Kd * dTerr/dt

でpwm値を計算して制御にかけています。∫Terr dt の項は、どんどん累積しても困りますので、-300~300の範囲にArduinoのconstrain関数を使って制約しています。

設定温度を70℃として、PCから動作状況をモニタリングしつつ実験をしてみました。

Ki_R4

これは、積分の項Ki=0.4としたとき、Kp(比例項)の係数を70~500で変化させて状況をみたもので、Kpが大きいと、温度変化が振動的になることがわかります。Kpはばね的な動きの強さに関わると考えることができそうです。

Kp_70

一方、Kp は同じで、Kiを変えた場合には、余り小さなKiでない限り動作は似ていますね。

Kiが0だと、ターゲット温度より低い温度にしかいかない。Kiを設定すると最初オーバーシュートしますが、おおむね安定な制御ができているようです。

実験の結果から、今の場合、Kp=70, Ki = 0.4あたりが無難なパラメターと言えそうです。

また、10℃温度を上げるのに、15秒ほどかかっています。

120℃にヒーテッドベッドを維持する試験もやってみましたが、結構大変で、少し風が吹くと温度が低下してしまってちょっとぎりぎりだなという感じがしました。高温を維持するにはヒーテッドベッドの電力が不足している感じで、みなさんベッドの下側の保温材とか遮熱版とか苦労されているようですが、単純にヒートベッドに加える電圧をあげるというのも解の一つかなという感じがします。(台座が樹脂でできていることが多くあまり熱を加えられないということもあるとはおもいますが)。運用するときは、コントローラーに加える電圧を15V程度まで上げるということをやるのがよさそう。MOSFETの放熱には少し気を使っておかなければいけませんが。

というわけで、温度コントローラーはおおむねよさそうなので、別に入手したキットを組み立てつつ、こちらのホットエンド・エクストルーダーを組み立ててテストしてみるつもりです。