手作りCNCフライス〔コントローラー編〕
前回、CNCフライス本体を作りましたが、それを動かすコントローラーを作ります。
本体を作るのにかまけてしまって、コントロール基板をどうするかを全く考えていませんでした。ちょっとヤホーでググったところ、GrblというArduinoの基板を使ったオープンソースの制御ソフトウェアを見つけ、ちょうどArduino Unoもあることだし何も考えずに飛びつきました。
コントローラー配線図はこんな感じ。Y・Z軸コントローラーの配線図は省略してあります。
Arduinoの役割は、PCからの信号を各軸のモーターに伝えます。GrblというソフトはArduinoでGコードを理解しモーターへの信号へ変換する役割をします。モーターへは基本的には、移動量を示すパルス信号と、回転方向のシグナルの2個の信号だけで動きます。
また、各軸のモーターコントローラーは、産業用だけあって色々なステータス情報が取れます。ただ受ける側の基板に入力がありませんので、最低限のステータスランプだけ配置しました。
Grblの機能で無いのは緊急停止スイッチです。Grblにはソフトウェア的にはResetが有りますが、ソフトが暴走していても機能するのが緊急停止スイッチです。
「見た目カッコいいから」という理由ではなく、安全のために必須ですね。本当はアニメに出てきそうな大げさなものにしたかったのですが、実用性が無いので普通のにします。このボタンを押すと、XYZ軸の各モーターと主軸が止まります。
サーボモータのコントローラー3個、電源2個、CNCコントローラー、スイッチ、コネクタもろもろを収納するケースを選びます。ケースとしては、大きめでのタカチ電機工業のMOY199-26-35BSを購入しました。
全面と背面に部品を付けていくのに、穴を開けていきます。CADで配置を描いて実寸大で印刷しパネルに貼りつけると、パネルをけがくのが楽です。貼って剥がせる系のシール用紙に印刷すると、シール剥がしもラクチンです。
丸い穴はドリルであけ、四角い穴はドリルで適当に開けたあと、ハンドニブラで穴を広げていきます。
主要部品を配置したところ。モーターコントローラーがデカいので、思いのほか窮屈なレイアウトになってしまいました。
TD62003AFGは、マイコンからリレーを駆動するのに使用します。まとめてシールドの形にしました。
モーターのコントローラー基板には、このコネクタで接続します。
全配線をしたところ。ケースが狭いのでごちゃごちゃです。Arduinoとリレーが近くに配置してありますが、この後、ノイズで苦しむ事になるとは、、、、、、
モータを付けてテストしているところ。うまく回っています。この頃は。
詰め込んだところ。だいぶ密度が高く、メンテナンス性が著しく低い感じがします。
コントローラー外観。前面パネルには、スイッチ類とサーボモータの設定用RS-232のコネクタが付いています。
背面側、上部に使っていない穴が開いていますが、試行錯誤の跡です。リミットスイッチの誤作動が多く、シールドされていないケーブル&コネクタから、シールドされているUSBのケーブル&コネクタに変更しました(中央あたり)。
箱に収めて動かしてみたところ、ノイズの影響で不安定な部分が。スピンドルの電源OFF時に、Grblがエラーを出して止まりました。スピンドルは大電流が流れているところなので、接点が離れる時に高圧の逆起電圧が発生しているのでしょう。スピンドルの駆動リレーにバリスタを入れました。
あと、クーラント用モータがDCモータで回転中にアークが飛びノイズになります。これには、モータの一番近くのコネクタの中にコンデンサを入れる事で安定しました。
次は、Grblの設定関連を書くつもり…書いた!
[…] 前回、何も考えずに飛びついたGrblですが。。。。。。。 […]
初めまして!
私もCNCを趣味として動かしています。
今までは中国製のフライス盤を使っていたのですが、最近アメリカ製のShapeoko3を手に入れました。
それを組み立ててテスト運転をしているのですが、切削後にスピンドルモーターの電源を止めた瞬間にZ軸が落ちてきてGRBLエラーとなってしまいます。
原因をネットで検索していたらこちらにたどり着きました。
逆起電圧と言うのが原因なのでしょうか?
スピンドルはDeWalt DWP-611をコンセントから直接繋いで本体のスイッチでオンオフしています。
リレーで動かしていないのですが「バリスタ」とか初めて聞く部品をどこかに接続すれば解決するのでしょうか?
初めましてで質問攻めで申し訳無いと思いますがどうしても解決出来ません。
良かったアドバイス頂けたら助かります。
宜しくお願いいたします。
状況からすると、スイッチを切る時の逆起電圧によるノイズ(サージ電流)でGRBLのArduinoがやられている気がします。
ノイズ対策は、一筋縄ではいかないので一概に言えませんが、バリスタは静電気のようなノイズを吸収するデバイスですので、もしかすると有効かもしれません。
実際にやってみないとなんとも言えないので「バリスタ 使い方 サージ」で検索してみてください。
手軽な製品でいうと、雷ガードという製品をスピンドルのコンセントに付けるともしかすると改善するかもしれません。原理的には同じはずです。
ノイズは、電源から来るものと空中を飛ぶものに分かれ、バリスタは電源から来る物に有効です。空中を飛ぶものを対策するには、Arduino基板をアルミや銅で囲い、アースに繋ぎます。
追加で質問があれば、どうぞお気軽に
はじめまして,C-beam machine ユーザーです.
電気工学は専門じゃないですが,少し経験を書かせていただきます.
ノイズの原因だと思います
①Shapeoko3はどんな制御基板を使ってるのか詳しくないですが,電子基板はしっかり作られていないとノイズに弱いみたいです.
中国製の安いArduino+CNC Shieldとアメリカ(多分)製のCNC Xproを使ったことがあります.
スペックは同じですが,動作はスムーズさは全然違います.
②後はケーブルの問題です.
モーターケーブルはノイズカットシールド機能があるかどうか(4本の線をアルミシートで包まれてる)
安いケーブルを数本を重ねていくとノイズで干渉し変な動きになる可能性が大きいです.
私のルータはDeWalt DWP-611と同じスペックのMAKITA RT0700Cを使っています.
憶測ですが,ルータは大工用工具であり,ノイズカットなど配慮してない普通なケーブルを使ってる可能性が大きいです.
解決方法は,モーターケーブルと重ねないようにすればおkです.
Shapeoko3写真みたんです.やはりモーターケーブルはノイズシールドなしの安いケーブルを使っています.これはルータの大電流ケーブルと重ねるとやばいかもです.
③後はichirowoさんがおっしゃる通り,アースに繋ぎです