2019年11月21日木曜日

Anycubic Kossel Plus ホットエンド交換

実は購入して間もないころにヒーターカートリッジが壊れたことがあって、その時にホットエンドのアセンブリを2セット買っていた。

ヒーターは抜けたけど、サーミスタが抜けなくて、ヒーターを固定していたイモネジもバカになっていて新しいヒーターを固定出来そうになかったので、丸ごと交換を試みた訳だけど、色気を出して「使える部品は極力再利用する!」とか思ってたら、今度はスロートで詰まりましたよ?的な事になってて、修理する気力が湧かないと言うか「毎日使うもんでもないし、次に使う時でいいか」という先送りの結果。

なんというか2セット買った内の1.5セット分使った感じで、今度はアセンブリではなくて、ノズル単体とかで補充した方が良いのかもしれない。

まあ、ホットエンドは5個ぐらい持っておいて、フィラメントごとに使い分ける、みたいな、お大尽方式もアリな気がするけど、Anycubic の Kossel Plus はホットエンドの交換が地味に面倒なので、真のお大尽はフィラメントごとにプリンタを丸っと用意するのだと思った。

お金欲しいね。

2019年11月8日金曜日

CNC 3018 X軸もトラブルシューティング

 組み上げた時のチェック不足

ヘッドを右に動かしていくと、残り1/4ぐらいの所で動かなくなる症状が出た。
手で回そうにも、がっちり固定されてるような感触。
「あー、こりゃ脱調する訳だ」って納得。
モーターが相当頑張ったみたいで、右にも左にも動きにくい所に入り込んでしまった感じ。
送りネジの取り付け前に、スライドシャフトの調整の時点では問題なかったので、送りネジを取り付ける際に、モーター寄りの方で並行が出ていないのだと思った。

対策は簡単で、モーターを固定しているブラケットを緩めて、ヘッドを右に寄せてから締め直すだけ。
組む時に左も右もいっぱいに寄せてから固定していれば、こんな事にはならない。
多分、送りネジを手で回すのが面倒で「後で」って思って、それっきり、なパターン。

ダメ人間め!

2019年11月7日木曜日

3DプリントとCNCミリング

3D造形の基本についてメモ

Woodpecker CNC 3018 の調整について考えていて、自分が何も知らない事に気が付いた。
いや、自分が物を知らないという自覚は子供の頃からあるのだけど、単に物を知らないのではなくて、物事に対する理解が浅いというか、見て、知ってはいても、本質に届いていない感じがする。
というよりも明らかに届いてない。

見て、聞いて、試してみても、その先の考察が足りないのが主な原因だと思う。

話が大幅に横道に反れたけど、このブログで取り扱っているテーマについて、少しは掘り下げる努力をしてみたい。
誰かの役に立つかどうか?は問題ではなくて、自分自身を理解を深めるための作業として…。
自分自身の役に立つかどうかも、あまり気にしてはいない。
損得勘定で自分の行動を決めると、大抵のことは無為だったりする事も経験的に知っているから、そうしたくはない。

で、ここからが本題。

現状、私の手元にある機械で、3D造形に使えるのが、3DプリンターとCNCミリングマシンの2つ。
世の中には他にも色々と便利な物があるし、私が知らない機械とか技術とかもあるだろうし、これからも増えていくだろう。
けど、2019年の時点でポピュラーなのは、この2つだと思う。
3Dプリンターは大まかに2つに分けられる。
ここで取り扱うのは、FDMとか略される、溶かしたプラスチックを押し出して積み上げていくタイプのやつ。
FDMでも、いくつかの種類があるけど、いわゆる直交型とか呼ばれるヤツが主流派だと思う。
ちなみに、ここで取り扱ってるのはデルタ型で、直交型とは少しだけ違うけど、使い方には大した違いはない。(というのは乱暴すぎる?)

で、結論を先にいうと、この2つの機械は、本質的には同じ物だ。
3軸の加工機として、何らかの道具をXYZの各軸について、正確な位置に運ぶ。
3Dプリンタは溶かした樹脂を吐くノズルを動かして、造形テーブルの上にニルニル積んでいく。
CNCミリングマシンは、ドリルみたいな回転する刃物を、テーブルに固定された材料に押し当てて、ギョリギョリ削っていく。

そう、積み上げるか削るのか、道具で「足す」のか「引く」のか、の差しかない。
もちろん、フィラメントを押し出して、木材とか金属とかを削ることは出来ないし、逆に、刃物を振り回して何もない空間に何かを形成することも出来ないので、そういう意味で言えば2つの機械は決定的に違う。
それでも、「足す」か「引く」かの違いであって、どこをどのように加工するか、という指示で動いているという点は共通している。

では、得られる結果が全く同じになるか?というと、そこは全く違う。
CNCミリングマシンでは、中が空の物体を作ることは不可能で、中空に限らず、元々の材料を削るための刃物が通る場所のない形状を削り出す事は出来ない。
3Dプリンターはミリングマシンより、いくらか自由度が高いが、こちらも全くの空中に造形するとか、思いっきり細長い物体なんかは苦手だ。

どちらの場合でも、出力したい形状を指定する所は共通している。
立体の形状をPC内で表現するために何らかのモデリングツールを使用する。
広い意味では、CADと呼ばれるツールがそれで、DXFとかSTLとかの形式でデータを受け渡す。
モデリングして得られたデータを、プリンタなりミリングマシンに渡す形式に変換する。
ちなみに、3DプリンタとかCNCミリングマシンには、Gコードと呼ばれる形式のデータを渡すことになる。

この変換が肝で、ここで、積み上げるのか、削るのかが決まる。
もう少し正確に言うと、どちらに適したツールを選ぶのが先で、大抵の場合は何を作りたいかで、データを作るツールが半ば自動的に決まってしまう。
ツールにも色々あるけれど、全部を使うことは出来ない。
無料のものもあれば恐ろしく高価なのもあるし、使い易さとか好みとかも加味すると、自ずと使えるツールは絞り込まれる。

んー、ちょっと、話が見えにくくなってきた気がする。
整理すると
  1)形状を作る
  2)形状をGコードに変換する
  3)機械にGコードを送り込んで加工する
という、3つのステップに分かることが出来るだろう。
それぞれ、単体/単機能のツールもある。
1と2がくっついているもの。
2と3がくっついているもの(この場合は3が主体)。
1と2と3の全部入りってのもある。

WebサイトでもBlogでも、色々なツールが紹介されていて、多機能なものになるほど、上記の3つの境界が曖昧になっていたり、「そんなの常識だから」説明が省略されていたりすることも少なくない。

そこら辺についても、今後も機会があればメモを追加していこうと思う。
とりあえず、今回のエントリのまとめは

「盛る」のと「削る」のの差があるので、ツール(プログラム)は使い分けよう。
という一点。

長々書いて、たったこれだけ。
書き手のセンスのなさが丸出しだね。
落胆しつつ、今回はここまで。

2019年11月6日水曜日

Woodpecker って

CNCそのものの名前ではなくて、コントローラーの名前なの?
3Dプリンターで言うところの、LAMPSとか、そんな感じ??

つか、うちに来た中華CNCキットは、基板とか微妙に違ってるから、Woodpecker のパチモンだったりするのかな?

元々は、Arduino + A4988モータードライバーシールド だった所に GRBL がデファクトスタンダード化して、CNCシールドは GRBLシールドになった?
GRBLシールドの亜種として、A4988モジュールが載る基板に Arduino 相当の機能も押し込んだり、Arduino Nano (または互換機)をモジュールとして搭載する製品が出てきて、そのコピー品が出回るようになった。

亜種から、さらに派生して多様な商品が売られてはいるものの、ソフトウェア的には Uno 相当の AVR Mega328 で、A4988 を制御する、という辺りで互換性が保たれているように見える。

ただ、今回、テストにあたって、GRBLControl の他に試してみた Candle だと何故か動かなかったりした。
Y軸の問題解決が優先だったので、PCサイドのソフトを追うのは後回しにしたが、ぶっちゃけ、シリアルポートに向かってGコードをえっちらおっちら投げるだけの作業が何故できないのかが不明。
まあ、その辺は後で時間を取って調べる事にして、とりあえずは、SVGのデータとか作って、G-Codeを生成させて、カマボコ板かなんか彫ってみるとこまで進みたい。

CNCシールドは V3.0 以前と V3.1 以降では、少し仕様が異なっている。
V3.0以前だと、スピンドルを単純にON/OFFするだけだったが、V3.1以降だと PWM制御でスピンドルの回転数を調節可能になった。
うちに来た中華CNCは、スピンドルの回転数調整が出来ている感じなので、V3.1互換なんだろう。

CNC 3018 Y軸のトラブルシューティング

問題はY軸(テーブル)が一方向にしか進められない事。
PC画面のボタンで、手前への移動を指示しようが奥への移動を支持しようが、実際のテーブルの動きは、手前か奥かの一方通行で方向が逆転することはない。

確か、ArduinoからA4988への結線で、DIRとSTEPという信号線があって、今回の場合、DIRがLだかHだかに固定されてしまっていて、反転できなくなっているのではないかと推測してみる。

X軸のA4988モジュールを引っこ抜いて、Y軸のとこに挿す。
この状態でY軸を振ってみると正しく動く。
で、Y軸のとこにあったA4988モジュールをX軸のとこに挿してX軸を動かしてみると、左右どちらに振っても右にしか動かなくなった。

これで、A4988モジュールの不良が確定。

DIRビットが伝わってないのは単にヘッダーピンのハンダ付け不良の可能性もあるので、試しにあっためて、なんか汚いハンダをコテ先で掬った分だけ追いハンダ。
これをダメ元でX軸のところに戻してテストしたら無事に動いた。

面倒だったけど、動いたのでヨシとする。
中華キットだし。

A4988モジュールは、何個か手持ちがあるので、ぶっ壊れてても何とか出来たのだけど、備えは往々にして無駄になる、というアレな展開は割とありがち。

いきなり何か彫るのも怖いので、ペンとか持たせてテストと調整を行えないものかと思案中。

CNC 3018 試運転の覚書

ちょっと前にテストした時の記録
上げておかないと多分忘れるし、ファイルも無くしそうなので…。

USBシリアル変換のCH340だったかのドライバーは既に導入されていて、コントローラ基板とPCをUSBケーブルで繋いだら、普通にCOMポートが追加された。

ソフトはGRBLControl 0.8.1 で、GitHub からコンパイル済みのバイナリを ZIP で入手したもの。
https://github.com/trasz/grblControl

ZIPのアーカイブを展開すると、exe ファイルが含まれているので、それをダブルクリックするなりして実行。

初回起動時は COMポートの設定が空欄になっていて、「おめーが指示したとこには何にも繋がってねぇ!」的なメッセージが出て、何もできない。
メニューから、Service → Settings だか Options だかを選んで、それらしく設定。
ボーレートは115200のままで普通に動く模様。

後はスピンドルの項目で、スピンドルの回転を制御できるか? と
モーターが正しく動作して、XYZそれぞれの軸で移動できるか? を確認する

画面上に表示されている 上下左右の矢印ボタン で X軸とY軸 の移動。
X軸ではキャリッジが左右方向に動き、Y軸はテーブルが前後に動く。
少し離れた上下の矢印ボタン で Z軸 が動き、スピンドルを上げ下げする。

一応、動いてはいるしスピンドルモーターも回ってはいる。

ここで問題発生というか、まあ事前に分かっていた事ではあるけれども、どうやら、軸が反転していて気持ち悪いというか、このままだと切削はムリ。
なので、適切に移動してくれるように手配する必要がある。

X軸とZ軸は、普通に反転していて、Y軸は少し困ったことに、一方向にしか動かない。
Y軸について、もう少し追いかけると、コントローラ基板上には、Y軸のモーターに接続するコネクタが2個ある。
どちらに繋ぐかで、進行方向が決まっているようで、一方のコネクタだと、テーブルは手前にしか動かせず、他方では奥にしか動かせない。
これはファームウェアの仕様というよりも、この基板に固有の事情があるんじゃないか?って気がしているが、追いかけるための手がかりがない。よって少し先送り。


コントローラのファームウェアは GRBL らしいので、何かコマンドを叩いて
「違うよ」って教えるだけで、逆方向に動いてしまうのは修正できる。
もちろん、モーターの結線を変えて反対に回るようにする、って手もある。

キットには中文主体(一部英文)の紙で、軸の反転についての説明もあったのだけど、それは、特定のアプリの設定で反転させる、というものなので、違うアプリでは通用しないというか、まあ、アプリごとに違う方法で設定しなくてはならない。

与えられた GCodeに対して、どっちにモーターを回すか?ってのは、割と普遍的というか、系全体で統一されているべきなので、アプリでひっくり返す、というのはちょっと違う気がする。
私の理解としては「小手先の対処」であり、「正しいとは言えない」ので避けたい事柄。
いや、まあ「使えるなら何でも良い」といえば、それも正解ではあるけれど、そこは個人的な好みを優先したい。

ともあれ、現状把握のために設定?をダンプする。
$$ コマンドの結果は
$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=800.000 (x, step/mm)
$101=800.000 (y, step/mm)
$102=800.000 (z, step/mm)
$110=800.000 (x max rate, mm/min)
$111=800.000 (y max rate, mm/min)
$112=800.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)
単なるダンプではなく、何を意味しているかの説明が加えられているのが有り難い。
とは言え、それほど詳細ではないので、参考程度。
XYZのそれぞれの軸を反転させるかどうかは $3 で決まるらしく
00000ZYX でビットマスクというか、1に設定した軸が反転する模様。

最初に起動した直後はZ軸を動かすたびに、コキコキと音がしていたのが、何度かテストしているうちに静かになった。
ほんの数回で慣らしが終わるとは思えないので、何かしらのトラブルが起きるかも知れない?

2019年11月3日日曜日

OK,グーグル

部屋に Google Home mini を置いて結構経つけど、部屋が暗いときの時刻の確認と、カップ麺作るときのラーメンタイマー程度にしか使えていない。

要するに「今何時?」と「3分後にアラーム」が主な用途。
まあ、日付時刻は正確に返ってくるし、アラームもほぼ正確。
なので、これはこれでいい。

で、アラームが鳴っている時に「ストップ」とか「アラーム止めて」とか言うだけじゃなくて、「ありがとう」でも、アラームを停止する事ができる。
これって AI でも何でもなくて、単にアラーム鳴動中には「ありがとう」が「停止」系のワードの1つ、あるいはエイリアスとして働いているに過ぎないのだろう事は容易に想像がつく。

それが悪いとは全く思わないし、むしろ技術云々よりも前の段階での話として、そういう実装は素晴らしいと思う。
ただ、できれば「ありがとう」に対して「どういたしまして」的なリアクションが無いのだ。
「停止」には「停止しました」、「止めて」には「止めました」のように、基本的にオウム返しで良いので、貴方のボイスコマンドを受け付けましたよ、という反応が欲しいのだ。
もっと言えば、単にビープ音でもいい。
「ピ」「ブブー」だけでも、それなりの応答が可能になる。

スタンスとしては、子供だまし的でいいから、もう少しだけ、人に寄り添う感覚が欲しい。

2019年11月2日土曜日

愛すべきキ○ガイと愉快なナカマたち

汎用ロジックICで頑張るキチ○イジンさん


チャンネルは↓
https://www.youtube.com/user/eaterbc/videos

2019年10月23日の時点で、チャンネル登録者が 38.6万人 もいるという現実。
こんなニッチそうな動画を見たいというアタマのおかしい人達(褒め言葉ですヨ?)が、こんなにも沢山いるのだから世界は広い。

まあ、日本でも「TTLでCPUを作ろう」みたいな本が結構な数売れたようだし、関心を持っている人は多いのだな…とは思った。

パソコン以前、マイコンの黎明期には、こういう事をやっていた人たちもいただろう。
もう、みんな爺ちゃん婆ちゃんになってると思うけど、お達者でがんばって頂きたい。
とか言うと、まるで他人事だけど、私もアッチ側が近い方だと思う。

ちょっと気が滅入る話になったけれども