続3Dプリンタコンバート

ReprapのファームウエアであるMarlinをArduinoMegaに焼き、RAMPSを乗っけてPololu製以外のモータードライバを使って、3DPしてみました。



Reprapのファームウエア、ニュル系3Dプリンタのコントローラーといえども、Gコードで(エクストルーダー制御用に多分に拡張してますが、、、)動く以上、NCコントローラーであることには変わりなく、モータードライバもStep/Direction方式。

動きます。

ただ、汎用ガントリ3軸切削フレームをこの組み合わせで3DPコンバートすると、リミットスイッチ等々、使い勝手が非常に悪いのが欠点。

LinuxCNCとハンダゴテヒーターに問題があるわけでは無いのですが、(とゆうかハンダゴテヒーターの方が出力大きくてかえって良かったり)LinuxCNC開発用のレイテンシの少ないPCを使ってるので、それを別に使いたいので。。

んでも、Gコードの解釈が違うのか何がちがうのか解りませんが、結構綺麗に出力できるようです。。

BeagleBoneLinuxCNCでの3Dプリントも、時間があればやってみたいですね。。

スポンサーサイト

テーマ : 自作・改造
ジャンル : コンピュータ

GRBLを使っての遊び。

以前の記事「E-Etch-A-SketchをGコードで制御。」で作ったGコードで制御するE-Etch。

E-Etchを作ったしなぷすのハード製作記さんに進呈するためにもうちょっと綺麗なベニヤ合板で作り直し。

ポリウレタン銅線や、テキトーなArduinoのシールドもちゃんとした基板に交換して再調整再度動画を撮ってみました。



こんなものでもNCの要素は十分にあり、データの作成にはCut2Dを使用してます。

ステッパモーター自体は結構正確に動いてるはずなのにGLCDに表示される画像はちょっとへなちょこ。

問題としてはEtchを構成しているArduino側が可変抵抗の電圧をAD変換で読み取っているため。

使用した可変抵抗の品質ってゆうか、なんとゆうか、そのへんが画像の乱れの原因だと思います。



GRBLの出力するデジタル信号をステッパドライバが受け取って擬似アナログ信号として、ステッパモーターへ。

ステッパモーターから、木製のギヤを介して減速し可変抵抗に。

可変抵抗の電圧値をArduinoが読み取り、再びデジタル信号へ。

ArduinoからGLCDへ制御信号とデータ信号で画像へ。。。


とゆうデータの流れ。

NC加工機でも、モーターまでの制御はほぼデジタル信号、なんだけどソコから先は機構で、電気信号でもないまるっきりのアナログ。

NC加工機の難しい所はこのアナログ部分でこの当たりをしっかりしないと、いくらデータがしっかりしていても、寸法通りに出力されません。

NCフレーム自体がステッパの動力をきちんと伝えない、ゴムを挟んだような反応や、ノイズを生み出す様な機構であると、上記のEtchみたいに、、、と。。

3Dプリンタ?を触ってみて思ったことですが、樹脂吐出ノズル(ホットエンド)の温度分布と温度管理、実際に樹脂がきちんと送られてるか、が確実でないと、マトモに出力することができません。
(エクストルーダーの機構と、ホットエンドの形が悪く、マトモに出力できない3DPもあるようです)
また、樹脂自体が温度変化に対して体積が変化するので、、、。。。
このへんが、3Dプリンタの出力不良を生む原因ではないかと、思われます。


切削マシンにしても、フレーム自体のガタやたわみ、スピンドルの回転の振れや、刃物自体の寸法精度等々、ゴムになる要素は多分に含んでます。


移動距離をリニアエンコーダ-とかで拾っていたとしても、加工時の刃物のたわみとかで、「絶対正確」なんてことはなくって、測れる範囲内での「誤差範囲」に収まっているだけ、だと思います。。









テーマ : 自作・改造
ジャンル : コンピュータ

デアゴスティーニが『週刊 マイ3Dプリンター』

『週刊 マイ3Dプリンター』



そうゆう時代になったってことですね。

特に3Dプリンタは調整等々細々とした文章でのソフトウエア的なサポートが現状は必要。
そのへんの事を網羅していただけると有り難いし、3Dプリンタといえども、NCマシンであることはなんら変わらないので、そのへんのこと、一般に、となると結構有意義なことだと思います。

付属?する3Dプリンタキットもよく考えられていて日本の一般住宅に置けるNCマシンのサイズって、25cm角程度でこれくらいが最大限なのかな?とも思います。

テーマ : 自作・改造
ジャンル : コンピュータ

CPLDを使ってのNCコントローラーの出力パルス数を計測。

AlteraのMaxⅡCPLDを使用してアップダウンカウンタを作成してみました。

なぜ、アップダウンカウンタかとゆうと、NCコントローラーのSTEPパルス数を外部ハードウエアで計測し、NCコントローラー内の数値と合っているか確認をするためです。

たとえば、100mm動かして、100mm戻した場合、行って来いで数値的に0に戻ってないとおかしいので、それを確認するために、高速カウント可能なCPLDを使用してみました。

CPLD駆動用の40Mhzの発振器をStep信号入力に入れた所、ちゃんと計数しているようなので、最大50kHzのBeagleBoneBlack LinuxCNCのパルスならしっかり計数してくれるでしょう?^^;



以前、ATMegaを使用して同じようなものを作りましたが、一部NCコントローラーでG0x0y0z0でゼロに戻らない物があり、さMCUの作動周波数が問題で??と思い、再度もっと高速に計数できる物を作りました。


MaxⅡ内のデータ作成にはAlteraのツールを使い、SchematicとPinplannerだけで作成。

一応VHDLとVerilogHDLを気持ち程度読むことが出来るのですが、一切HDL言語を使用せずにデータを作りました。

ツール内のプリミティブと呼ばれる機能ブロック的なものの中に、ロジックICをエミュレートする物があり、その辺を接続するだけの、わりと簡単な作業。

74168十進アップダウンカウンタと、74247BCDto7SEGとマルチプレクサとかとかを使用しての回路記述です。

たぶんロジックICを組み合わせても作ることが出来るはず、ですが、ロジックICを探して入手するのも結構手間なので、CPLDやFPGA内にそれと同等な回路を作成したほうが、簡単にできるはず。

もちろん、LED7SEGはダイナミック点灯させてあります。




動画はBeagleboneBlackのLinuxCNCを使用してのSteo/Dir信号の計測です。

この動画の状態では、DIR信号の理論が逆になっているので、Step信号が入ると数値が減っていきます^^;
アップダウンカウンタであるゆえんです。。
最終的にG0x0y0すると、カウンタは0に戻ります。





こちらは、CPLD内のDirection信号にnotを入れた状態です。

きちんとX軸が+方向に移動すると、数値も増えていき、-方向に移動すれば減っていきます。

こちらも最終的にG0x0y0すると、カウンタで計数している数値も、LinuxCNC内の数値も0に戻ってます。




あなたのNCコントローラーは正確ですか??^^;

特に、オープンループ制御である、ステッパモーターを使用したNC制御はきちんと動いているかの確認が重要に思います。
加工を失敗すると、材料がゴミになってしまうので。。



ちなみに使用したMaxⅡ基板はOptimizeさんのMAX2 CPLDボードで、書き込みに使ったのはByte Blaster MV互換(JTAGライター)です。

プリミティブを使用した回路記述なので、元になるロジックICの機能そのままなので、今回のアップダウンカウンタに必要のない機能部分のロジックも入っているせいか、このCPLD内に同じ回路が2つしか入りません。

当然の事ながらマイコンを使ったアップダウンカウンタを作ったほうがコスト的に安く作れると思いますが、パルスの取りこぼしの無いように、今回はこのように作成してみました。

カウンタをUPだけにして、別カウンタで時間を区切ってカウントすると、周波数カウンタとかも、割りと手軽につくれるのでは??


UPDOWNKAIRO.jpg

テーマ : 自作・改造
ジャンル : コンピュータ

ReprapのRAMPSをいじってみる。

Reprapでよく使われるRAMPSをいじって手持ちのモータードライバと、手持ちの部品でSmartControlerを捏造?してみました。

rapmskai2.jpg
rampskai1.jpg

RAMPS自体はArduinoMegaに各種機器を取り付けれるようにした変換基板のようなもので、ステッパモーターを動かすだけであれば、Step/Dir、Enable信号をArduinoMegaから直接引っ張っても、動きます。RAMPS上では特に何もしてなくて、ArduinoMegaからバイパスしてるだけです。
ただ、ステッパのモーター電源に、ポリスイッチとゆうヒューズのようなものを噛ましてあるだけです。

手元に部品があったので、SmartControllerも自作。これも、RAMPSはArduinoMegaの信号をバイパスしてるだけです。。
この辺の物はebayとかで、送料無料の物を落札した方が確実に安いです^^;

じゃぁ、RAMPSは一体何をしてるのか?とゆうと、ホットエンド、ヒーテッドベッドの加熱用のヒーターの電源を管理するFETドライブと、サーミスタを接続する回路と、各種ファンをONOFFする回路があります。

ただ、このRAMPS、ステッパドライバ取り付け部分も、ヒーター用のFET部分も、ArduinoMegaから絶縁されてません。
通常、A4988を使用する場合、ステッパドライバに流れる電流は知れたもの、だとおもいますが、ヒーター部分の電流は、結構大きいので、USB部分でアイソレートするなり、したほうが良いような気はするのですが、絶縁しなくても動くから、とか、絶縁回路を付けるとコストアップになるから、とか、ゆう理由でその辺の保護回路は無いのでしょうね。。

Reprapを含め、自作系NCには大抵保護回路がありません。
保護回路が無い分安いのでしょうが、なにかが起こった時にPC側のインターフェースを焼くことになってしまうので取り扱いは慎重に。。

また、よく中華NC基板には絶縁されてる(Isolated)とされてますが、きちんと回路を読み正常に絶縁されているか確認したほうが良いと思います。以前、フォトカプラで信号を絶縁してるにもかかわらず、電源部分が共通の物がよくありましたので、、、。。。


結論として、FET部分と、サーミスタ部分を作ることができれば、ユニバーサル基板で配線しても同等の機能のものがそんなに難しくなく作れます。。

Reprapファームを利用して切削NCコントローラーを作ろうと思えば、それこそ温度制御部分は要らないのでGRBLと同様にArduinoMegaから配線を引っ張っても。。

ReprapファームをNCコントローラーとして使うメリットとして、スマートコントローラーを利用して、SDカード内にGコードのファイルを置いておき、PCと接続せずにスタンドアロンのGコードプレーヤーとして使用できること。
数品の同じものを沢山作る必要のある場合などなど、その加工の専用機のコントローラーとしてはうってつけなのでは??

たぶん秋月にある物でほとんど作れるのでは??

テーマ : 自作・改造
ジャンル : コンピュータ

ライセンス
アクセスカウンター
プロフィール

あきらひとし。

Author:あきらひとし。
木工用CNCルーターフレームと、ステッピングモータードライバを作ってみました。
たぶん記事は一般的な人には殆ど必要のない事ばかりなの、かも。

モーターは回るだけでも楽しい。制御(速度、トルク、位置)できるともっと楽しい!

メールフォーム

名前:
メール:
件名:
本文:

リンク
最新記事
カテゴリ
スポンサードリンク
スポンサードリンク 
スポンサードリンク
オンラインカウンター
現在の閲覧者数:
検索フォーム
RSSリンクの表示
最新トラックバック
最新コメント
月別アーカイブ