Pc-Trace

<< 2024年4月 >>
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30






Pc-Trace
PC-Trace

2017年2月の記事 prev >
>>2017年2月の記事一覧

「AxiDraw」の安定化対策

アームが前後するたび不安定になる「AxiDraw」を安定化させるために作った、取り付け取り外しが簡単なスタンド。
簡単な割に、抜群の安定感が得られた。(精度が問題なので、反りに注意)
必要があれば、先端に設けた穴に3ミリのネジを差し込んで傾斜を調整する事が出来る。
下側には六角のナットの穴がある。



【安定化スタンド・矢印のヶ所】



思った以上の安定感。


前後で安定を図る場合。





今頃になって出てきたベルトの駆動方式。
引用もとが不明になってしまった。


※添付ファイルは、「AxiDraw」に取り付けるスタンド。(STLファイル)
添付ファイル 添付ファイル


「AxiDraw」 テストプリントで見えてきた課題

使い始めて「AxiDraw」で改善すべき問題がいくつか出てきた。

【問題1】
そこそこの重量があり、重量ゆえの安定感もあるが、平坦な場所で使用しないと一気にバランスが崩れてしまう。
伸びたペンホルダーの先端は僅かな机上のゆがみも大きく影響。
Expanderと同じ理屈だと思って良い。

足の、"踏ん張り幅"6センチに対して、35センチ以上アームが伸びるため、先端に移動した重量で、本体が前のめりになってしまい、本体をしっかり抑えておかないと、アームの後ろと前で2ミリ近くの差がでてしまう。

前に、ペンが紙に触れない動画をアップしたが、まさにそれが原因であった。
伸びた先端(原点)で、隙間間隔を調整する場合、本体をしっかり抑えた状態でやった方が良い。
安定性を保つため、何らかのパーツを作る事になりそうだ。

【問題2】
ヘッドまわりの、パーツの精度。
実はこれが一番厄介!
取り寄せた、直径4ミリ、長さ100ミリのペンキャリッジ用のステンレスバーの精度があまりに酷く、表面の光沢は無くほぼヤスリ状態。
おまけに先端から末端までが不均一なため、滑らかに通ってはくれない。
一本だけを治具に、キャリッジの差し込み穴を調整すると完全に失敗する。
すこしキツメの調整でも、もう片方はストンと落ちてしまうほどの誤差に、こちらの眼球まで落ちてしまう。

【参考画像】


何やかやで、ヘッドを作り替える事3回。
黒 → 白を2個 → 現在黄色
現在使用しているキャリッジは、「SketchUp」で修正したもの。



最初に製作したヘッドは、0.2ミリ程度の隙間を設け、スルスル動いた。
後に、極端に細かい円(0.5φ)程度の円を描画した場合、明らかに誤差が発生。
どれほど時間をかけても、隙間を設けない加工が絶対に必要になる。



現在、追加の問題が発生し、夜と朝の気温差で、平面度が変化する事。
(おそらく気温差によるPLAの膨張?)
精度の問題、いつまで続くのやら・・・。




マジックから、ボールペンまで。
ペンのテストを兼ねたプロット。
ローランドのA3サイズのカラー・ペンプロッター(ペン交換式)でも、精度に対してこれほどの感激は無かった。
何より極細を描けるボールペンや、万年質が使え、原点を自在に設定出来るメリットは大きい。


グレース・ケリーは、「AxiDraw」のテスト画像から拝借。
・・・いつ見ても綺麗ですね。


「Axidraw」のデータ作成と出力について (Inkscape 0.91)

データ作成については様々な方法があるようなので、今回は、「Inkscape 0.91」での書き出しについて。

「Axidraw」の名前のついた、専用の拡張プラグインが存在するが、個人的には"単位"や、"ドキュメント"を自由に選択できる「JTP_Laser_Tool_V1_7」を推薦する。

参考画像(1)
※メニュー項目は個人的に書き変えたもので、実際は英語表記。
Googleで翻訳したものなので、英語のまま利用する事をお勧めする。



設定が解りやすく、シンプル。
参考画像のような日本語の表示は無いが、レーザーの「ON」、「OFF」コマンドを、それぞれの目的に合わせて、自由にコード設定できるところがすごい!
(※日本語の表示で使いたい方は、下の添付ファイルを自己責任で。
Windows の場合、C:\Program Files\Inkscape\share\extensions に解凍したファイルを投げ込むだけ。 :ご自分のインストール環境に合わせて)

「Axidraw」の場合、ペンを持たせて、サーボを制御するため、「M03」をサーボ「ON(ペン・上昇)」、「M05」をサーボ「OFF(ペン・下降)」が割り当てられており、回転角度をレーザーパワー(数字0〜255の間)でコントロールする。

PASS(Z軸)のトレース回数を指定できるが、Drawing系の場合、一回のトレースのみでOK!。
・・なので設定は参考画像の通り。

パスの項目に数字を設定した場合、Z軸の深さ分を、パスで設定した回数分で分割してトレースするようなので、NCルーターやレーザーなどを用いる場合、ここの設定が重要になる。

データを出力する際の参考画像。

添付ファイル 添付ファイル


「AxiDraw」で利用した主なソフト

「AxiDraw」を動作させるために必要なソフトのまとめ。

「GRBL」コントロールソフト
「UniversalGcodeSender」
「GRBL」コントロールソフト2
GrblController

実際のプロットはカーソルキーで制御のできる「UniversalGcodeSender」で実行し、コマンドラインからの設定変更は「GrblController」を利用した。

「Inkscape 0.91」への拡張機能「Plugin」
「JTP_Laser_Tool_V1_7」
かなり優秀なソフトで、お絵かきから、NCルーター、レーザー加工機でも利用できる。

レーザーコマンドの「M3」でサーボ「ON」
レーザーコマンドの「M5」でサーボ「OFF]
回転角度は0〜255の間で調整。

「ArduinoIDE」から、「UNO」へ「grbl-servo」の書き込み
https://github.com/robottini/grbl-servo
「AxiDraw」で利用する場合、駆動方式に合わせたソースの変更が必要。
今回は、「config.h」の "COREXY" のコメントアウトを変更。

サーボ制御の調整や、回転を反転したい場合は、「spindle_control.c」を変更。


「AxiDraw」 ついに完成! そして初プリント

結局、ソースを見つける事ができずに、自力で解決。(根性無し!)

描画対象は10年ほど前に蒔絵用として描いた「天人」を選択。
時間をかけて幾度もテストしたくないので、最初から細々した絵で試してみる事に。

今回、テストするベクトルデータ。
10年ほど前に蒔絵用として「Illustrator」で起こして、そのままだった。



「GrblController」で読み込み、「Begin」!
コマンドラインから、「UNO」への書き込み変更は6ヶ所。
※設定は次回変更まで保持されるため、初回だけ。
$100=80.000 (x, step/mm)
$101=80.000 (y, step/mm)

$110=3000.000 (x max rate, mm/min)
$111=3000.000 (y max rate, mm/min)

$120=300.000 (x accel, mm/sec^2)
$121=300.000 (y accel, mm/sec^2)





紙を引きずり回し、素人丸出しのプロット(汗;)
ペン調整では予測を外してしまったが、描画については思惑通り振る舞ってくれた。

初テストで書き上がったものがこちら。
紙とボールペンの相性が悪く、次第に薄くなっていった。
(天人の顔の一部はインクがのっていない。)


この後100×100のボックスを描画し精度をチェック。
全くの誤差無しで、「AxiDraw」はこれで完成!。
分解能は0.1ミリ程度。
「EggBot」と比較すると断然精度が高い。

※添付ファイルは 704×400 サイズのmp4 動画

添付ファイル 添付ファイル


「AxiDraw」製作再開 その5

ハードウェアより厄介なのがソフトウェア。

「GRBL」での制御を、個人的には大きく2つに分けて考えている。
「AxiDraw」を駆動するには2つのモーターと、一本のベルトでX軸とY軸を自由に制御するための「CoreXY」という方式が必要になる。

通常のNCであればX軸とY軸を独立した軸として考えるので、理解しやすい上、「GitHub」などで公開されている「GRBL」のソースもそのまま利用出来る。

素人の説明は往々にして間違っている場合があるので、動きや理論に関して、詳しくは下のリンクを参考にしてほしい。

形は異なるが同じ駆動方式の「CoreXY」系の説明動画を「YouTube」で見つけた。


「YouTube」から、スクリーンショット
https://www.youtube.com/watch?v=8WLZ8OesMF4


デカルト座標について直交座標系

ハードは完成間近だが、「AxiDraw」をうまく駆動出来るソースを半月探し求めて、未だに見つけられずにいる。
このままだと、また勝手で強引な手法を取らざるを得なくなりそうな予感がする。


「AxiDraw」製作再開 その4

3から続き。

ベース(キャリッジ)部分のベルトの様子


モーターに取り付けた20歯のタイミング・プーリー(GT2)
歯の数に合わせたソフト側の調整が必要になる。


ボートを取り付ける側の、シャフトの端を2センチ程度出しておく。


グリップ(黄色のパーツ)に取り付けたボードをマウントした状態


横から


ボード側モーターのプーリー


本体全体を上から


サーボ側のヘッドは未実装


本体の完成度は9割程度。
モーターを接続するケーブルも不足している。


「AxiDraw」製作再開 その3

2からの続き。

パーツ不足のため、なかなか完成まで漕ぎ着けない。
「EggBot」のモーターを取り外し、先にこちらの組み立てを優先することにした。

基板側のモーター取り付け


ベルト通し


キャリッジに通すベルトの隙間が少なく、ドライバーを利用すると楽。


ベルトのエンド処理
タイトに張ると、シャフトを引き寄せ、抜け出る可能性があるので、何らかの対策が必要。
ベルトの末端処理は3ミリの鍋ネジを利用した。


急遽、SketchUpで抜け防止のエンドを作成。


これで突き抜ける事は無い。


ボードをマウント。
今回は「SHIELD」を付ける事が出来た。



「AxiDraw」製作再開 その2

「AxiDraw」製作の続き。

本来なら今日で本体が完成していたはずだった。
"だった"・・と言う過去形を使わなければならなくなった理由は長尺ボルトの購入ミス!
山勘が外れ、ボルトの直径寸法を完全に外してしまった。
まぁ、ステッピングモーターの購入がまだなのでそれほど慌てる事も無いが。(言い訳)

反り無しでプリント出来るようになったの良いが、無駄にパーツの予備をプリントするようになった。
無意識にテストしている?


固定ボルト無しでシャフトを仮組み。


シャフトにベース(キャリッジ)を通して・・。


反対側には「UNO」をマウント。(この時点で「SHIELD」無し!)


リニアだけを組むとこんな感じ。
X,Y軸ともよく転がる(表現が適当では無いが)


基板側から
「UNO」の固定は、専用のマウンターに、片側二本のネジで固定する


ベース拡大



「AxiDraw」製作再開

ヒートベッドが完成した事で、また「AxiDraw」の製作に逆戻り。
製品の詳細は、本家サイトで詳しく説明されているので省略。

今回は、製作過程の写真だけを掲載。

本日の組み立ては、Y軸のみ。「ベアリング」と、「サーボ」の取り付けだけを行う。


ガイド付き(つば付き)のベアリングをセット。


シャフト用のベアリングを上下のベーツに取り付け。


両方をクロス(X軸とY軸を90度で交差)させて組み立て、ベースの完成


仮組みしていたペンホルダーにサーボを取り付けるため、一旦分解。


サーボ取り付け完了。
もし、方向が逆ならソースの極性を変更するか、取り付け直すかのどちらか!(当たり前)


リニアシャフトを通してエンドを取り付け、Y軸の完成。
思ったより重量があり、少し傾けると思い切りレールを滑り込んでくるので要注意!


正面から。 

今日はここまで。
何せ進む早さが"カメ"なので。


ヒートベッド、PLAでの有効性も

先月購入したPLAフィラメントの中で、どうしても一つだけプリント出来ないものがあった。

ショップのレビューで、"PLAでは無いのではないか?"と疑問の声が上がっていた商品だったにも関わらず、色が好みだったため気にせず"ポチリ!"

届けられたフィラメントにはしっかりと「PLA」のラベルが貼ってあり、まずは一安心。
早速これまでと同じ「PLA」の設定でプリントを開始。

・・ララ?
テーブルに貼りつかないわ、エクストルーダーが押し出せないほどネバルわで、プリント温度をいつもより20度以上上げる事で何とかプリント出来るようになったものの、面積が広いモデルだったため、三層目あたりから激しく反りだし、続行不能に。
その後、色々と設定を変更してチャレンジしたが、無駄な時間に終わってしまった。
他のメーカーと見分けがつかないほど同じ色でも、質はまったくの別物。

しかし、ヒートベッドを装着した今日より状態が変わった!
(これまで付けて無かった方がおかしいが)
廃棄予定のフィラメントを再度押入れから引っ張り出し、20度以上高目で設定してプリントしていた温度を一般的な値に戻し、ベッドの温度だけを60度近く上げてプリントしてみた。

結果は写真の通り、あっけなくプリント出来てしまった。


これまで、反りが原因で季節待ちだったモデルもことごとくプリント成功。
まだまだ安心は出来ないが、PLAでのプリントにもヒートベッドの有効性は確認できた。


ヒートベッド完成

ゆっくりするつもりが、完成までこぎつけた。

【キャリブレーションを済ませ、真新しいシートを貼って初プリント】
この時点で、まだヒートベッドの配線は済んでいない。



【SketchUpでリミッターの図面を起こし、急遽プリント。】
すでにテーブルを組み立ててしまったため、後付 + 配線も裏側から。
 すべてのハンダ付けを終え、これで完成!




【最初のミス!】
当初、ベッドの半分しか温まらなくて困ったが、全体を加熱するには2と3をショートする必要があるようだ。(電圧は12Vのまま)



プリンターBED作成で、息抜き

ようやくベアリングなどの部品が到着し、3Dプリンターのベッド製作を再開。
丁度良い息抜きだが、ついでにヒーテッドベッドに昇格。

これで造形中の反り防止や、ABSでのプリントが可能になるが、既製品のためベッドのプリントエリアが200×200に制限され、一回り小さくなるという犠牲も伴ってしまった。
(200ミリを超えたプリントは一度しか無かったので良しとすることに。)

これまでのプリントから、ベッド回りの強度が如何に重要であるか経験済みであるため、リニアシャフトや支持ガイド、ベッドの支え等、サイズを一回り大きくして、金属に変更出来るところは変更。
ベッドの土台の四隅はアルミチャンネルを入れて多少の力を込めて曲げても撓まないほどの強度に仕上げた。

サイズが変わった分、リミッターや、ベルト回りのいくつかのパーツを作り変えなければならなくなったが、面倒なのでゆっくりやることにする。

【リニアシャフトを付け替え、ベッドにベアリングを取り付け、テーブルのセットだけ完了。】


【裏側:ベルトのガイドはこれからプリント】



「Arduino UNO」で、GRBLコントローラアプリケーションを試す その5

手順を踏まえず勝手に始めた「GRBL」を試すシリーズ。

素人にとって、結構面倒な事が判ってきた。
疑問だらけの「GRBL」となってしまったが、レーザー、ミル、ペン・・等々、ヘッドに取り付けるオプションが異なれば、「ハードウェア」の違いにあわせた、ソースやアプリの選択もしなければならない。

「GRBL」を利用して、3Dプリンターを「お絵かきマシン」にも「レーザー加工機」にも変化させる事が出来るため、目的を絞らないと、混乱の原因にもなってしまう。

今回、「UNO」に書き込んだ Servo 対応 GRBL の設定事項で分かった事

「UniversalGcodeSender」のコマンドラインや、「GrblController」のコマンドラインに「$$」を打ち込んで表示させたもの。
詳しい説明は他のサイトにお任せすることに。
(備忘録にならないって!)


$0=10 (step pulse, usec)
$1=25 (step idle delay, msec)
$2=0 (step port invert mask:00000000)
$3=0 (dir port invert mask:00000000)
$4=0 (step enable invert, bool)
$5=0 (limit pins invert, bool)
$6=0 (probe pin invert, bool)
$10=3 (status report mask:00000011)
$11=0.010 (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=0 (homing dir invert mask:00000000)
$24=25.000 (homing feed, mm/min)
$25=500.000 (homing seek, mm/min)
$26=250 (homing debounce, msec)
$27=1.000 (homing pull-off, mm)
$100=250.000 (x, step/mm)
$101=250.000 (y, step/mm)
$102=250.000 (z, step/mm)
$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=10.000 (x accel, mm/sec^2)
$121=10.000 (y accel, mm/sec^2)
$122=10.000 (z accel, mm/sec^2)
$130=200.000 (x max travel, mm)
$131=200.000 (y max travel, mm)
$132=200.000 (z max travel, mm)

この設定から分かるように、このまま製作予定の「AxiDraw」を自作して描画を実行した場合、ハードウェアとの整合性がまったく取れておらず、悲惨な結果を招くのは必至である。

幸いな事に、ArduinoIDEを介さず「GRBL」コントロールソフトのコマンドラインから「UNO」への書き込み($100=XXなど)が出来るため、タイミングプーリーの歯数に合わせたステップ調整など、面倒なスケッチを弄る機会は減りそうである。(下の画像)

【ボード(UNO)を接続し、変更値を書込中】



「Arduino UNO」で、GRBLコントローラアプリケーションを試す その4

UNOにUSBケーブルだけ繋いでNCデータをトレースするシミュレーション。

【トレースのシミュレーション。 写真のようにUSBケーブルを繋いだ状態で実行】
UNOには、事前に「GRBL」のファームウェアを書き込んである。



「Candle」を起動し、「Settings」で、接続したUNOのポート番号を指定。
雑だが、細かい設定はまだ出来ないため、そのままトレースだけを実行してみた。



「UniversalGcodeSender」の場合



※上の動画では画面が小さいため、等倍のmp4動画を添付。
添付ファイル 添付ファイル


prev >