2021-08-22
3DプリンターはNCルーターと制御回路が大きく異なるのでページを分けた。NCルーターについてはここ。Z軸の3つのモーターが個別に動いた時のテーブル支点の距離変化を吸収する仕組みはキネマティックカップリング(Kinematic couplings)と呼ぶらしい。3つのモーターを制御して水平にするのは3Dプリンターのファームウェアの仕事になるが検索して見つかった対応ファームウェアは以下の2つ
ファームウェア:RepRapFirmware
対応ハード:Duet3 or Duet2 + 拡張ボード
ディスプレイを入れると¥25000程度
ファームウェア:Klipper
対応ハード:Raspberry Pi + 各種3Dプリンター制御回路
接続形態は Raspberry Pi <--USB serial--> 3Dプリンター制御回路
3Dプリンター制御回路は主要なオープンソースプラットホームほぼすべてに対応している
安い3Dプリンター制御回路を使えば¥10000程度
X,Y,プラスチックワイヤー送り(エクストルーダー)を入れると全部でモーターが6個必要になるのでハードウエアは
Raspberry Pi + (Arduino DUE + RAMPS FDシールド)といった組み合わせになる <-Arduino以外にもいろいろある 現時点では調査不足でよくわかっていない
Raspberry PiにもArduinoにもKlipperファームウェアが書き込まれRaspberry Pi側はGコードの構文解析、ArduinoMEGA側はモーターの制御に専念という役割分担で動作する
フレームは20x20を30x30に変更した。断面二次モーメントが比較にならない程違うのとリニアガイドがはみ出すため。外側を覆いたいので立方体の外に動く突起があってはいけない
XY軸はCORE-XYと呼ばれるベルト駆動。図面を書いてみると分かるが
・送りネジの干渉を気にする必要が無い
・ベルトを這わせるプーリの位置の自由度が大きい
結果的に装置の大きさの割に可動範囲が大きい、つまり大きな造形物を作れる。反面
・ベルトが伸びると精度が落ちる
・ベルトの張り調節機構が必要になる
・減速比を大きくしにくいので分解能を小さくできない
・プーリーの数、減速機構の段数が多いほど精度が落ちる
といった欠点もある
この図は作図が面倒なのでモーターを1個省略している
3Dプリンターの部品は3Dプリンターで作るという変な文化がある。3Dプリンターを作るには3Dプリンターが必要になる。無い場合は完成品、キットを購入する。3Dプリンターで印刷された部品も売っているが3Dプリンターがそもそも量産に向いていない物なのであまり安くない。もちろん精度も良くない。一式で10万円程度になるハイエンドの物なら金属部品も販売されている。BLV mgn CubeはAliexpressにオフィシャルショップがある。部品キットは市販の汎用規格アルミフレーム、直動部品、送りネジをそのまま使うのでモーター、印刷ヘッド、ベルトガイド等を取り付ける接合部品で構成されている
VORON2.4は部品の形状、点数が多いので部品だけでもかなり高価。基本的に3Dプリンターは殆どがオープンソースでキットはオープンソースの物をキット化したもの。上記2つをそのまま作ろうか検討したがかなり大きいのと部品を作る工作機械は既にあるのでフルスクラッチで製作することにした。3Dプリンターで作ることを前提にした形状になっているのでかなり複雑。削り出しでの作りやすさを追及するならもっと単純な形状に出来る
2021-08-23
最近バージョンアップされたMarlinファームウェアVer2でもZ軸3モーター方式に対応できるようだMarlin Firmwareはここ。ダウンロードしてConfiguration_adv.hの中を見ると Z_STEPPER_AUTO_ALIGN という項目がある。使用するためにはここを書き換える必要がある。C言語のヘッダーファイルなので変更するという事は再コンパイルする必要がある。その装置専用のファームウェアバイナリが無い限り初心者は使用できない
このファームウェアに対応しているハードはこれ。厳密な一覧はファームウェアをダウンロードして boards.h を見る。全部で300くらいある。乱立しているほとんどの3Dプリンターに対応していると見て良い
NCルーターでも同じハードを使いたいので
・ステッピングモーターを6個以上搭載している
・外付け高出力ステッピングモータードライバーを接続できること
を条件に探すと
・FYSETC F6
MPU:ATmega2560 これだけ8bitMPU ArduinoMEGAと同じ
モータードライバー6個
・FYSETC S6
MPU:STM32 CoretexM4F
モータードライバー6個
・FYSETC SPIDER
MPU:STM32 CoretexM4F
モータードライバー8個
・BIGTREETECH SKR PRO
MPU:STM32 CoretexM4F
モータードライバー6個
・BIGTREETECH GTR
MPU:STM32 CoretexM4F
モータードライバー6個
・BIGTREETECH Octopus
MPU:STM32 CoretexM4F
モータードライバー8個
こんなところ
価格は基板の上に実装するステッピングモータードライバー込みで¥5000~¥8000。ディスプレイを入れると1万円を少し超える
STマイクロのMPUは32ビット
BIGTREETECHは深センの中国メーカーのブランド名、FYSETCもたぶん中国
2021-08-25
安価な3Dプリンターで採用されている鳥居型の物も設計してみた。Y軸はテーブルが前後に動く。設計上はZ軸の送りネジを鳥居の柱の側面に取り付けると取付金具の形状を単純化できる。一方モータが左右に張り出すので100mmも横幅が大きくなる。柱の前後方向に取り付けると本体サイズを小さくできるがX軸やテーブルに干渉しないように配置するのは難しい。DIYで加工しにくい形状の部品を使えば配置の自由度は大きくなるがL字金具よりも複雑な形状の部品を使う必要がある
2021-09-01
ハードはまだ届いていないがMarlinファームウェアのコンパイルを試してみた。環境はMicrosoftのVisual Studio Code。汎用製品なのでターゲットシステムに対応したプラグインを追加インストールして使う。Marlinファームウェアはそれ専用のプラグインがある。プログラム開発が出来なくてもここのパラメータの意味が分かれば修正することは可能
画面はXYZ軸が傾いているときの補正。通常XYZは直交しているが正確に組み立てなければ平行四辺形に歪む。歪んだプリンターでモデルを印刷すれば歪んだ形状になる。テスト用のモデルを印刷しその歪み具合をノギスで実測してこのパラメータに反映させると歪んだプリンターでも直角の出たサイコロが印刷できる。3Dプリンターにはこういったパラメーターが無数にある
2021-09-06
鳥居型の物を少し改良した。リニアレールは剛性が高いのでZ軸モーターを2つにしてもそれぞれ独立して動かすことはほぼ不可能なので1個に変更。Z軸モーターが2つあるタイプはX軸の造りがかなり柔らかくYoutube動画を見ると両端の高さが10mm以上違っても壊れない柔軟な構造になっている
各軸のリニアレール、送りネジ、モーターは精度上出来るだけ接近させたいが他の部品と干渉するのでX軸モーターは変な位置になった。側面に張り出すようにすれば配置は容易になるが普通すぎるので止めた
2021-09-13
鳥居型を改良した。少なくとも7枚のアルミ板を加工しないといけなかったがそれを5枚で済むようにした。穴の数は大差ないが外径の切り出しが一番面倒なので枚数が少ないほうが手間がかからない
上から見た図。リニアレールは丸棒に変更。装置の部品の総額を1万円程度安くできる
2021-09-14
中国製のモーターマウントと送りネジナットのブラケット。厚さは約3mm。20x20mmアルミフレーム用の寸法になっていて30x30mmサイズには合わない
横にしたり下側にはみ出したり。いまいち
2021-09-15
Y軸に汎用モーターマウントを使用して5枚の特殊形状アルミ板を4枚で済むようにした
3DプリンターにはZ軸が3軸の物を除いてテーブルの高さ調節機構が付いているが必要なのだろうか。Y軸のレールとテーブルが平行なら、つまりこの図の29mmの距離が常に一定なら1回調節したら高さ調節は不要なはず。工作機械にはそのような調節機構は付いていない。温度変化や摩耗によって頻繁に変化するのであれば必要なのはテーブルの高さ調節ではなくそもそも高さが変化しないようにする仕組み。こういったことは使ってみないと分からない。精度の低い自作の工作機械の場合Z軸を固定してテーブル自体を削ってしまう事で平面を出している。平面出しをしないといけないのはテーブルを交換した時だけだ
2021-09-17
更にアルミ板を3枚で済むように変更
プーリーの数が多くなったがベルトの長さ調節範囲が30mm以上ある。どんな長さのベルトでも製造されているというわけでは無いので調節範囲が大きいほうが入手に困らない
2021-09-30
安いキットを見つけたので買ってしまった。送料込みで¥16000しない。これは別ページにする
2021-10-11
失敗するとアルミのゴミを作ってしまうので3Dプリンターで試作。5ミリ厚。大きいので反る
部品もそろってきた。まだ不足がある。電子部品と比べると到着までが遅い。1カ月以上かかる物が多い
2021-10-19
丸棒タイプのリニアガイド。普通の角型レールに比べるとガタが多い。価格差を考慮すると自作用に向いているとは思えない。安価な中国製3Dプリンターに採用されているアルミ押し出しフレームそのものをリニアガイドにする方式より精度は低いかもしれない。摩耗はしないので経年劣化しないのが利点。部品は買ってしまったのでこの方式で進めるが実用機ではなく評価用になる可能性大
2022-01-10
アルミフレームを切断。鋸歯は木工用
これだけは互いの寸法差が問題になる。これ以外は長さをそろえるために同時に切るだけで済む
2022-01-13
シャフトは焼きが入っていて固い
不良品。矢印の部分がめくれあがってシャフトが入らない。1個¥100しない部品。再注文
四角く組むと剛性が高くなる。組み立て誤差を許さなくなるので精度よく組み立てないと動きが悪くなる
2022-01-14
焼けないように間をおいて冷やしながら切る
穴の位置が不正確なので反対側にねじを切り直した。右が切り直したほう。左側のブロックの右下の穴の位置が特におかしい
組み立て順序がある。このネジは後から締めることも緩めることも出来ない
2022-01-16
3Dプリンターで作った部品は3枚。剛性は低いが各部の干渉を確認するための物なので問題無い
2022-01-17
エクストルーダーはヘッドの直上。距離が短い分遅れが無く精度が良くなるがX軸モーターの負荷は増える。トルクは小さくて良いのでモーターは軽量な物を使う
2022-01-20
機械系はほぼ完成
X軸
Z軸
マザーボードはMKS monster8。新製品は安く入手できる
正常に動くが TMC CONNECTION ERROR が表示される。モータードライバーのTMC2208のUART通信に関係するものと思われるがエラーの原因がわからない。ファームウェアはvoron2.4用のmarlinがマザーボードメーカーのgithubにあったのでそれを修正した
2022-01-21
TMC CONNECTION ERROR の原因が分かった。モータードライバーICのUARTピンが何処にも繋がっていなかった。マザーボードのピン配列が異なる物があるようで接続先を変更できるようにドライバーモジュールにジャンパーPADがある。PADを半田ブリッジさせてショートさせる。monster8に対応させるためには矢印の位置。UART接続はモータードライバーの最大電流値などの設定に使用されるだけなので通信出来なくても普通のステッピングモータードライバーのようにSTEP/DIR信号だけで動ける
2022-01-26
マザーボードケースの失敗作。3Dプリンターで作るなら四隅だけにして平面はプラスチック版を加工したほうが良い
ディスプレイケースの失敗作
作り直したマザーボードとディスプレイケースの部品
2022-02-02
アルミ板で作り直した。厚さは4mm
2022-02-07
エクストルーダーはダイレクト方式に設計変更。ヘッドの直上に送り出し機構があるので遅れが小さくなる。それでもヘッド間との距離がゼロになるわけでは無いので動作遅れもゼロにはならない。背の高いものを印刷しようとするとフレームに干渉するが高さ方向に大きい物を印刷することは殆ど無い
2022-02-13
1号機はテーブルが重く速く動かすことは出来ないことが確定しているので当初計画のCoreXY方式の物も製作してみる。ヘッドの直上にエクストルーダーを配置する都合上筐体サイズがエクストルーダーの大きさに左右されるので先ずエクストルーダーを設計する。モーターは一番普通のNEMA17サイズではなく1サイズ小さいNEMA14。Aliexpressで注文しておいたが3Dプリンターの部品は電子部品と違って発送も遅いし怪しい販売店も多い。発送したふりをして実際は送っていないというケースが多発する。深センとは別の種類の人たちが販売していると思ってよい
2022-02-15
CADで作った立体と同じものが印刷されているのだが力を加えてみると弱かったり寸法を間違えていたりいろいろ問題が見つかる
少し形状を変えた
2022-02-19
2号機の構想。1号機はマザーボードの到着待ち。購入済みのmonster8は2号機用にして1号機は安価なものを使う
保温のため周囲を囲む。この上に上蓋を載せる。温度の高い上側で造形出来るテーブルが上下動する方式
2022-02-21
贅肉を落とした。強度上削れるところはもっとあるが3Dプリンターはオーバーハングしている部分の印刷が苦手なので逆三角形になるような形状には削らない
2022-02-25
フィラメントの固定、解除の機構を変更