大詰めを迎えたチルトキット追加作業
前々回、光造形方式の3DプリンターLittleRPにチルトキットを追加するために電子部品をはんだ付けして追加し、前回には本体の器械的な部品を追加交換した。それにより物理的にはチルト機構が完全に備わったことになる。そして今回は情報空間のお話である。チルトキット追加前のセッティングでは、チルトキット追加後の機体を正常に動かすことができない。LittleRPのファームウェアであるGBRLでモーターの回転を反転させて、制御ソフトであるCreationWrokshopでチルト機構の動きのG-Codeと、チルト幅の設定を行う必要がある。CreationWorkshop上でチルトの設定があるが、LittleRPでは今回追加したチルトキットのステッパーモーターはあくまでY軸として認識されており、CreationWrokshop上でもチルトとしては制御できず、Y軸として制御する必要がある。この辺がはまるポイントだ。文字でつらつらと説明してもわかりにくいかもしれないので、実際の設定画面を見ていこう。
ファームウェアGBRLの設定
LittleRPでは、システムボードにArduinoを使用しており、そこに書き込まれているファームウェアはGBRLが採用されている。今まではZ軸しかなかったので、ちゃんとセッティングされているのはZ軸に関する部分だけだ。X軸とY軸用の設定部分は気にされていない。今回追加したステッパーモーターはY軸となるので、Y軸用の設定をちゃんとしてやる。まずは、ターミナルエミュレーターから、コマンドラインでArduino上のGBRLにアクセスしてみよう。今回も、以前GBRLをバージョンアップした記事「光硬化式3DプリンターLittleRPのメインボードをArduinoに変えてGBRLもバージョンアップしてみる。」の時と同様にターミナルエミュレーターPuttyを使用するが、シリアルポート接続できるものなら何でも構わない。操作する端末とLittleRPのシステムボードをUSBケーブルで接続し、Puttyを起動して”シリアルポート”に接続するCOM番号を”COMn”の形で入力する。nは環境ごとに各自読み替えていただきたい。”スピード”の欄には下の画像では”115200”が入力されているが、この設定はGBRL0.9以降の物に入れ替えているからだ、デフォルト状態では使われているGBRLのバージョンは8.0aなので、ここの値を”9600”にしないと接続できない。
GBRL v0.8aの場合、”$”+ Enterキーで現在の設定値一覧が表示される。v0.9の場合には”$$”+Enterキーである。値の変更には、”$設定番号=設定値”と入力しOKとプロンプトが帰ってくれば設定コマンドが成功している。入力中の値が画面に表示されないので、値を変更したら”$”+ Enterキーで意図した値にちゃんと変更できているか確認する。LittleRPのテクニカルサポートのページにチルトキット用のGBRL v0.8aのセッティング値一覧が載っていた。デフォルト状態から変えるべきポイントに色を付けてみた。Y軸の動く幅を大きくし、軸の反転をZ軸のみ反転するように修正している。
$0 = 200.00 (steps/mm x) ←ステッパーモータードライバーで1/16μstepに設定している場合は"400"に設定する。
$1 = 415.00 (steps/mm y) ←ステッパーモータードライバーで1/16μstepに設定している場合は"830"に設定する。
$2 = 200.00 (steps/mm z)
$3 = 30 (microseconds step pulse)
$4 = 200.00 (mm/min default feed rate)
$5 = 200.00 (mm/min default seek rate)
$6 = 0.10 (mm/arc segment)
$7 = 128 (step port invert mask. binary = 10000000)
$8 = 25.00 (acceleration in mm/sec^2)
$9 = 0.05 (cornering junction deviation in mm)
上記の設定をv0.9用に読み替えると以下のようになる。”$7″の”step port invert mask”の設定が、”$2″と”$3″の2つに分割されている。こちらもv0.9への換装作業をした後の変更点だけ色を付けている。やっていることはv0.8aの場合と同じで、Y軸の動く幅を大きくし、動作の反転をZ軸だけに限定している。
$0=10 (step pulse, usec)
$1=25 (step idle delay, msec)
$2=0 (step port invert mask:00000000)
$3=4 (dir port invert mask:00000100)
$4=0 (step enable invert, bool)
$5=0 (limit pins invert, bool)
$6=0 (probe pin invert, bool)
$10=15 (status report mask:00001111)
$11=0.020 (junction deviation, mm)
$12=0.002 (arc tolerance, mm)
$13=0 (report inches, bool)
$20=0 (soft limits, bool)
$21=0 (hard limits, bool)
$22=0 (homing cycle, bool)
$23=1 (homing dir invert mask:00000001)
$24=200.000 (homing feed, mm/min)
$25=200.000 (homing seek, mm/min)
$26=250 (homing debounce, msec)
$27=1.000 (homing pull-off, mm)
$100=200.000 (x, step/mm)
$101=415.000 (y, step/mm) ←ステッパーモータードライバーで1/16μstepに設定している場合は"830"に設定する。
$102=200.000 (z, step/mm) ←ステッパーモータードライバーで1/16μstepに設定している場合は"400"に設定する。
$110=500.000 (x max rate, mm/min)
$111=500.000 (y max rate, mm/min)
$112=500.000 (z max rate, mm/min)
$120=50.000 (x accel, mm/sec^2)
$121=50.000 (y accel, mm/sec^2)
$122=50.000 (z accel, mm/sec^2)
$130=225.000 (x max travel, mm)
$131=125.000 (y max travel, mm)
$132=170.000 (z max travel, mm)
これでv0.8,v0.9のどちらを使う場合も、ステッパーモーターの動く幅と、動く方向が正しく設定できたはずだ!
制御ソフトウェアCreationWrokshopの設定
続いて制御ソフトウェアであるCreatiionWorkshopの設定を行う。LittleRPのテクニカルサポートのページからチルト用に設定されたCreationWorkShop RC54がダウンロードできるが最新版はCreationWrokshopR75なので、チルト用に設定されたCreationWorkShop RC54の設定を参考にしつつ、CreationWrokshop R75を設定してみる。
CreationWrokshopを立ち上げて、”Configure”を選択し、”Configure Machine”をクリックする。”Machine Controls”から”X Y Axis”にチェックを入れて、”Aplly”ボタンをクリックする。
これで、”Control”をクリックしてみると、X軸とY軸をコントロールする画面が表示されるようになっている。X軸の機構は無いので、上部の接続アイコンをクリックしてY軸を上下させてみると、チルト用のステッパーモーターが動く。テストで上下させてみるときは”0.1”か”1”にしておくといい。”10”など大きな値のところをクリックすると大きく動きすぎてガガガガ!とLittleRPが悲鳴を上げることだろう。ちなみに、”Configure Machine”の”Machine Controls”で”Tilt Control”をチェックすると、チルト用のコントロールバーが表示されるが、それをいじくってもLittleRPのチルト機構は反応しない。LittleRPのチルト機構はあくまでY軸として扱われている。
その状態で、”Configure Slicing Profile”をクリックし、”Lift and Sequence”欄の項目を以下の値に設定して、”Auto Calc”ボタンをクリックする。”Slide/Tilt Value”の値については、TiltバージョンのR54では”2.5”となっていたが、当方の環境ではその値でチルトさせると大きく動きすぎて可動域を越えガガガ!と不吉な音を立てモーターが滑ってしまったので機械が壊れないうちに”1.5″に修正した。
- Z Lift Distance(mm) 4
- Z Lift Speed(mm/m) 200
- Z Bottom Speed
- Z Retract Speed(mm/m) 200
- Slide/Tilt Value 1.5
- Build Direction Bottom_Up
”Image Reflection”欄の”Reflect X”と”Refrect Y”の両方にチェックを入れておく。これは別に両方外していてもいいのだが、両方チェックを外した状態だと、造形物が背中を向けて出来上がってくる。両方にチェックを入れておけばX軸方向とY軸方向の両方に反転させるので、造形物が正面を向いた状態で造形されてくるようになる。
そしてちゃんと”Apply Changes”ボタンをクリックして変更内容を確定させるのを忘れないようにする。
さらに、そこから”GCode”タブをクリックして、”Lift”を選択して、リフト動作時のGCodeに以下を入力する。
入力したGCodeはこちら。
;********** Lift Sequence ********
G1{$SlideTiltVal != 0? X$SlideTiltVal:} Z($ZLiftDist * $ZDir) F{$CURSLICE < $NumFirstLayers?$ZBottomLiftRate:$ZLiftRate}
G1{$SlideTiltVal != 0? X($SlideTiltVal * -1):} Z(($LayerThickness-$ZLiftDist) * $ZDir) F$ZRetractRate
;<Delay> %d$BlankTime
;********** Lift Sequence **********
入力したGCodeはこちら。
;********** Footer Start ********
;Here you can set any G or M-Code which should be executed after the last Layer is Printed
M18 ;Disable Motors
;<Completed>
;********** Footer End ********
入力後、SAVEボタンをクリックするのを忘れないようにする。この設定後にスライスすると、チルト動作が含まれた形でGcodeがCWSファイルへ出力される。この設定をする前にスライスしたCWSデータを使ってもチルトされないので、出力されたCWSファイルはチルト動作を含んだものか、含まないものか、ちゃんと管理する必要がある。これで、チルト機構を使って出力できるようになっているはずだ。出力の前に、チルト台を押し上げる二股のパーツがちゃんとチルト台に接触する位置まで引き上げられていることを確認する。さあ、テスト出力してみよう。
テスト出力とプロジェクターのリマウント
まず、セッティングそのままでテスト出力してみた。出力したのは例によってキャリブレーション用の3Dモデルだ。それがこちら。
なんか、ぼやけている。一番右の細い溝がつぶれてしまっているし、上部の小さい方の”123”の数字もつぶれている。一番小さな穴も開いていないし、一番細い角に至っては途中までしか出力されていない。これは、チルト台の厚さ6mmぶん、ペトリ皿が遠くなってしまったので、プロジェクターから出された光が反射する鏡とペトリ皿の底の距離がのび、ピントが合わせられなくなってしまっているためだ。プロジェクターのレンズで何とかピントを合わせられないかと触ってみたが、プロジェクターと鏡の距離は変わっておらず、鏡からペトリ皿の距離のみ遠ざかっているのでそこにピントを合わせようとすると、もっと近くにピントを合わせる方向に調節する必要があり、プロジェクターのピント合わせの限界を超えた。なので、プロジェクターの位置を写真の①から②へと一つ後ろに下げてピント調整をした。
後ろに下げた状態でテスト出力してみたのがこちら。手前がプロジェクタの一時調整後で、奥にあるのがプロジェクター調整前のものだ。
ぐっとシャープになった。一番細い角がまがっているのは、出力後の洗浄時にうっかり触ってしまったからだ。底面がまがっているのも剥がす時に無茶をしたからだ。慣れてくると作業が雑になっていけない。それ以外は細かい溝も再現できているし、悪くないできだと言えそうだ。スケールがちょっと大きくなってしまったのでまたそこはCreationWrokshopでアジャストの項目から調整していけばいい。やり方は過去の記事のどこかにあったと思うので探してみてほしい。
一連の作業を終えて
チルト機構を導入したことで、面積の多い層の造形時にずっぽん!という音を発することが無くなった。一定の効果があるとみてよさそうだ。だがチルト機構も万能ではない。チルト機構導入後も、ビルドプレートからはがれて造形失敗すると言うケースはまれに発生している。そんな時は大抵、ペトリ皿とビルドプレートの平行がずれてしまっている事が原因であることが多い。造形前にはちろっとチェックしてから造形するといいかもしれない。これでこれまでにも増して安定した出力が期待できる。バンバン出力して行こうと思う。そのための3Dデータ作成のお勉強に励まねばと決意を新たにするのであった。とりあえず、チルト機構のシリーズはいったん終了だが、3Dプリント戦士に休息は無い。おちゃめな面白造形を目指してアイデアを練る日々は続く。