Pc-Trace

<< 2025年3月 >>
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 31






Pc-Trace
PC-Trace

< next 最新の記事 prev >

宝の見落とし如何許?

「Drawing」関係のサイトで、たまたま見かけて、よく分からずに落とした「Python」のスクリプト。

起動して、たった一つのパラメータをセットすると、"svg"ファイルとして模様を書き出してくれる。
「Inkscape」で開き、後は「EggBot」でプロットするだけ。

二種類のスクリプトをそれぞれプロットしてみた。


右と、中央のタマゴに描かれた模様はまるで別物に見えるが、パラメータを変えただけの、まったく同じもの。

うまく探せば、ネットの中は宝の山。
添付ファイル 添付ファイル


いつまでかかる 「coffee break」

暇つぶしに、映らなくなったモニターの分解


裏パネルを取り外した状態
メーカーは三菱だが、中身はLG そして MADE IN CHINA とややこしい。
パネルの周囲はやたらテープで止めている。ビスはたったの2本だけ!


MADE IN CHINA・・らしい。


アルミシールドをひっくり返して・・


高熱になっていたのか、かなり変色している。
ついでに怪しいパーツも2つ3つ。


少し煮え切らないが、この後、パネルを閉じてコーヒーブレイク終了。
もう、若く無い。


coffee break




手動レベル補正した、3Dプリント動画

前の続きから・・

手動レベル(ベッド9ヶ所の測定ポイント)設定でのプリント動画。

今回行った手動レベルの設定手順は以下の通り。
プリンターのZ軸(Z-MIN側)のリミッターをそのまま利用し、LCDのコントローラ(カナ表示に設定している場合)から「ジュンビセッテイ」→「ベッドレベリング」→「ベッドレベリング」と進み、原点移動が始まった後は、コントローラのプッシュポタンで、測定ポイント一箇所ごとクリックし、紙1枚が入る程度の隙間にダイヤルを回して昇降調整する。
各ポイントの調整を指定ヶ所ほど繰返して最後のポイントの調整が終わると自動で原点に復帰し、プリント待ちの状態で待機する。

コントローラのダイヤルは1クリックで0.025ミリの解像度で昇降の調整が出来る。(Merlinで設定可能)
次の位置に移動する際、前の最終調整位置が記憶されるようである。

説明では「M500」のG-Codeを送る事で設定を記憶できるらしいが、上手くEEPROMに保存出来ない。

※PCからのベッドレベルの調整は「G29」のコードを送信する事で実行できるが、LCDと比べてとてもやり難い。
PCからのコードは「G29 S1]から始まり、原点以降は「G29 S2」で最後のポイントまで調整を繰り返していく。
原点に復帰する際、プリンターのZレベルがゼロのまま移動するようなので、リミッターを予め高めに設定していた方がよさそうである。




【スライスした、花びらのジャギー状態】



【ほぼ、そのまま再現された仕上がり】


2分程度の初期設定で失敗の無いプリントが保証されるなら、レベル補正プリントの価値は高い。


ベッド・レベリングの重要性

写真を見て一目瞭然。

【左はベッドから剥離し、ホッとエンドのノズルに大きく振り回されていた鉢受け】


左右並べて撮ってはいるが、どちらもプリンターのベッドの同じ位置、同じ温度、同じフィラメントでプリントしたもの。
(ベッド50度、ホットエンド218度、材質PLA、サポート無し)

直径10センチに満たない鉢の受け皿(Thingiverse:モチーフはバラ?)だが、プリント時間が2時間近くかかるため目を話した隙に起こった事故。

プリントとは関係ないが、去年の夏に買ったまま植え替えを忘れ、"カピカピ"に枯れた「POT」に水をやってみた・・結果、 一週間足らずで徐々に復活し、花が咲いた!

【プリントするきっかけをくれたポットの花】


同じ条件のプリントなら、たまたま"タイミング"で上手くいく場合もある。・・が、今回はハッキリと違いが出る根拠があった。

モデルをプリントする際、貼り付きを良くする幾つかの方法がある。
個人的にベッド全面に貼り付ける「ビルドタック」や、「プラットフォームシート」などを利用しているが、この「プラットフォームシート」は貼り付きの良さとは裏腹に、耐熱ガラスに貼った状態でも均一では無く、気泡無しで貼っても実測最大0.1ミリのムラ!が確認された。

キャリブレーションで吸収出来ないベッドのムラをどう克服するかは、人それぞれだが、割と多く目にするのが「オート・ベッド・レベリング」と言う手法。
前々から興味はあったが、Zプローブも追加のパーツも不要な、既存の「Z_MIN」リミッターを兼用してレベリングする簡易な方法があり、今回の鉢受けのプリントは、それを使う事で上手くプリントする事が出来た。

【Merlinの、Configuration.hにあるMesh Bed Leveling】

今回使ったのはこの部分だけ!

//================================================
//=============== Mesh Bed Leveling===================
//================================================
//#define MESH_BED_LEVELING // Enable mesh bed leveling.
#define MESH_BED_LEVELING

#if ENABLED(MESH_BED_LEVELING)
#define MESH_MIN_X 10
#define MESH_MAX_X (X_MAX_POS - (MESH_MIN_X))
#define MESH_MIN_Y 20
#define MESH_MAX_Y (Y_MAX_POS - (MESH_MIN_Y))
#define MESH_NUM_X_POINTS 3 // Don't use more than 7 points per axis, implementation limited.
#define MESH_NUM_Y_POINTS 3
#define MESH_HOME_SEARCH_Z 4 // Z after Home, bed somewhere below but above 0.0.

//#define MANUAL_BED_LEVELING // Add display menu option for bed leveling.
#define MANUAL_BED_LEVELING

#if ENABLED(MANUAL_BED_LEVELING)
#define MBL_Z_STEP 0.025 // Step size while manually probing Z axis.
#endif // MANUAL_BED_LEVELING

#endif // MESH_BED_LEVELING

//================================================

※設定は個人の環境に合わせたもの。

実際のプリントの様子は次回に続く。


モニター届くも不良品。

新しいモニターが到着して早速セットアップ。
前と同じ画質と解像度が戻って安心したのもつかの間、スピーカーから音が出てこない。
たった一つしかない音声入力ジャックなので、接続を間違いようも無いのだが、付属のケーブルに付け替えても、音量100%に上げて、ヘッドホンジャックにヘッドホンを差し込んでもノイズ一つ聞こえて来ない。

何かの見落としか、間違いであってほしかったが、別のモニターに繋ぐとキチンと音は出てくる。
良品との交換手続きを取るつもりが、カード利用に限定されており、できるのは返金処理のみ。

再度購入手続きを取らなければならなくなった。


突然のモニター故障

ここ数日、不調だったモニターがついに逝ってしまった。
急遽、予備のモニターを繋ぐも画面が小さく、ひどい老眼持ちでは役不足。

「Amazon」から新規モニターが到着するまでの辛抱となった。


「AxiDraw」 power-delayでの問題

「AxiDraw」の調整が尽きない。

ペン先の精度が影響するほど精巧な図が書ける事は分かった。
しかし、注意しなければならない次の問題も出てきた。

フィードレート2000(mm/min)でのプロット。
拡大すると、特定のサイズの図形では、閉じた図形の書き始めと書き終わりが繋がっていない。
下の拡大図を見て分かる通り、「power-delay」による「サーボ」のタイムラグが問題となり、開始点と終了点で切れてしまっている。


ダイアログでの調整は(ms or s)となっているが、実際の入力は"int"で処理されるため、設定は整数値しか扱えない。
最小値「1」の入力が「1s」で処理されてしまい、端点が繋がらない問題は解決されるものの、1passごとに1sもの時間を費やされては、作図時間に大きく影響してしまう。

「laser_power」で、サーボの動作角度を調整しても根本的な解決には至らず、不安が残ったままになる。
勇気のある人は、「C#」や「Python」の書式寛容性に甘え、「laser.inx」の「power_delay」を"String"型の変数で扱うのも手だと思う。

「power_delay」を"String"型で扱った場合のダイヤログの表示
小数点以下の数字が扱えるため、"Delay"タイムの微調整ができる。


現在、サーボの動作角度を45度で設定し、Delayタイムは 0.2(200ms)で良好な画像が得られている。
下は、細かい図だが、描画フィードレートは 2000mm/min とやや高めでプロット。

【参考画像は、粗品で頂いた水性ボールペン】


これで「AxiDraw」の完成となった。
奥が深く、限界が無いのがデータ作成。
今後、どう生かすかが課題となった。


「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割程度。
モーターを接続するケーブルも不足している。


< next prev >