grbl1.1+Arduino CNCシールドV3.5+bCNCを使用中。
BluetoothモジュールおよびbCNCのPendant機能でスマホからもワイヤレス操作可能。
その他、電子工作・プログラミング、機械学習などもやっています。
MacとUbuntuを使用。

CNCマシン全般について:
国内レーザー加工機と中国製レーザー加工機の比較
中国製レーザーダイオードについて
CNCミリングマシンとCNCルーターマシンいろいろ
その他:
利用例や付加機能など:
CNCルーター関係:



*CNCマシンの制作記録は2016/04/10〜の投稿に書いてあります。


ラベル ドライバ の投稿を表示しています。 すべての投稿を表示
ラベル ドライバ の投稿を表示しています。 すべての投稿を表示

2016年4月21日木曜日

CNCマシン:配線計画その2+CNCシールドV3.5到着
























CNCマシン本体に対して、主には以下の配線が必要です。
・XYZ軸のステッピングモーター(4個)
・XYZ軸両端のリミットスイッチ(6個)
・レーザーモジュール+ファン
・LED照明+予備端子

全ては手前右下のCNCシールドを内蔵したコントロールボックスまで線が引かれます。
コントロールボックス上には、主電源スイッチや非常停止ボタンなどいくつかのスイッチ類がつきます。
途中、X軸裏面とY軸右側面にケーブルドラッグチェーンがつきます。
ケーブルはCNCマシン本体をX軸、Y軸、Z軸にそれぞれ分解したときに脱着可能にするためコネクターが用いられます。
以下が配線のダイアグラムです(ちょっと見にくいですが)。































字がつぶれて見にくいですが、このくらいの配線数があるという感じです。かなり大変。
上のほうから、一番遠いZ軸付近のもの、次にX軸関係、そしてY軸関係、最後下の方がコントロールボックス(CNCシールド)で、スイッチ類や電源など。
途中にコネクターもつけるので、その数も多いです。だいたいこれで把握はできたので、まだケーブルドラッグチェーンは届いていないのですが、配線部品を買いにいこうと思います。コネクター類は現物を見て判断しながら選ぼうと思います(相応しいのがなければ、普通の2.54mmピッチのピンヘッダとピンソケットでもよさそうだけど)。

CNCシールドV3.5到着
それから、CNCシールドV3.5が届きました。これでレーザーの可変出力が可能になります。
V3.0からだと、けっこう内容が変わっているようです。ピンの数も増えている感じです。


























このCNCシールドにDRV8825を4つのせる予定です。DRV8825のほうが電流制限値が高いのでその分パワフルなのでは。



























基板右側の真ん中あたりに「SpnEn(pwm)」端子があります。それと基板左上のタクトスイッチの右にある「P-STOP(シルクが重なって読みにくい)」とあるのが、非常停止ボタン用でしょうか?試してみないと分からないですね。基板右下の「Abort(中断/途中終了)」とどう違うのか?タクトスイッチ(Arduinoボードのリセットスイッチ)のすぐとなりにあるので、リセットだとは思うのですが。
それと、ジャンパーブロックもついていました。これでようやく実験できます。

ハードウェア/構造の作業は大体終わったので、徐々に電気系の作業に移っていきます。

次:引き続き配線作業

2016年4月19日火曜日

CNCマシン:CNCシールド+ドライバDRV8825/A4988(まとめ)

数日前にDRV8825もAliExpressから届いており、CNCマシンが完成したらAitendoで購入したA4988と交換する予定です。ついでに、CNCシールドの新しいバージョン3.5も注文しました。いまなら、AliExpressでも$20以下で買えるようです。CNCシールドv3.5(V3.1から)ではgrbl0.9のピン配列に対応しているため、そのままPWM端子を使ってスピンドルやレーザーモジュールの可変出力制御できます。V3.0の場合grbl0.9のピン配列に対応していないため、Z+とZ-がPWMピン、SpnEn端子がZ+(あるいはZ-)。Ebayから購入すれば、最新版V3.5.1みたいですね。
*CNCシールドV3.0とV3.1以上(最新版V3.51)の違いについてはこちらへ

主に制御用の電気系統については以下が必要:
・grbl0.9jファームウェアをアップロードしたArduino Uno(方法はこちらへ
・CNCシールド(CNCシールドV3.0とV3.1以上の違いに注意)
・ステッピングモータードライバ(A4988/DRV8825など)
・ステッピングモーター(各XYZ軸)
・XYZ軸用リミットスイッチ(マイクロスイッチなど)
・スピンドル用TTL端子付きドライバ(あるいはレーザー用ドライバ)
・電源(ステッピングモーター用):DC24V/5A以上
・非常停止ボタンや各種スイッチ類(要配線)
という感じでしょうか。
ステッピングモーターのトルクや許容アンペア数、それに応じたステッピングモータードライバについてはデータシートなど見ながら適切なものを選んだほうがいいと思います。また電源もDC12VよりはDC24Vで充分なアンペア数のあるものを選んだほうがいいと思います。
各項目の詳細は以下に書いてあります。


追記:AliExpressでもV3.51ありました。以下。
AliExpress.com Product - New Development Board CNC Shield V3.51 for Arduino 3D Printer Micro Controllers GRBL v0.9 Compatible Uses Pololu Drivers1958円(送料込み)



どうやらこのCNCシールドV3.5は、クローンがたくさん出回っているV3.0と違って、AliExpressだとここでしか扱ってないようです。PROTONEER純正品らしく値段も格安というわけではないです。もともとそんなに高いものではないですが。

実は、まだCNCシールドV3.0を使ってステッピングモーターの試運転をしてなくて、というのもジャンパーブロックを購入していなくて、マイクロステップやA端子へのクローン設定を確かめることができないでいます。

AliExpressだとジャンパーブロックが格安だけれども、こんなに要らない。100個で105円(送料無料)。ピッチは2.54mmのものを使います。


CNCシールド:A端子設定:
CNCシールドにはXYZ軸用ドライバ端子と予備のAドライバ端子(4番目のドライバ用端子)があり、基板上のピン(電源12-36V端子の上に並んでいるX,Y,Z,D12)にジャンパーブロックを差し込むことで、AをXYZのどれかのクローンに設定することができます。またXYZのクローンではなく、独立した4番目のモーターとして駆動することもできます(Arduino Uno/ATMega328にアップロードするgrbl0.9や1.1は3軸まで、Arduino Mega 2560用であれば専用の4軸ファームウェア6軸ファームウェアがあります)。今回製作しているCNCマシンのようにY軸に2個のステッピングモーターを使っている場合は、Y軸設定をA端子にクローンすれば、二つのモーターが同じ動きになります。設定方法はこちらに書いてあります。

AをY軸のクローンにするなら、上記画像のように、ジャンパーブロック2個をYの欄に横一列に差し込むことになります。AをX軸のクローンにするなら、X欄に横一列に差し込む。独立した4番目のモーターとして制御するなら D12へ。説明は見当たらないですが、Aの回転を反転するには、A.DIRに差し込んだジャンパーブロックを外せばいいのかもしれません。ステッピングモーターの配線を反転させるといいようです。

AliExpress.com Product - Free shipping! New cnc shield v3 engraving machine / 3D Printer / + 4pcs A4988 driver expansion board CNCシールドV3.0(V3.51より古いタイプ)とA4988のセットならかなり安い。456円(送料込み)。V3.0でも配線に注意すれば使えるので、低価格重視ならこれでも充分。



リミットスイッチ:
XYZ軸の両端にリミットスイッチをつけるときは、CNCシールド基板右側にあるEND STOPS:X+,X-,Y+,Y-,Z+,Z-にマイクロスイッチなどを接続(±の記号は通常、X+:右方向のリミット、X-:左方向のリミット、Y+:奥、 Y-:手前、Z+:上、Z-:下)。接続方法はこのページ下部にあります。
リミットスイッチは原則的には通常オープンのほうの端子を使います。
追記:
リミットスイッチ端子はかなりノイズに弱いようなので、コンデンサーをつけるといいみたいです(その内容はこちら)。

CNCシールドV3.0(grbl0.8ではなくgrbl0.9や1.1に使う場合)のリミットスイッチについて:
grbl0.9からは、Z軸用リミットスイッチのピンとSpindle PWMのピンの位置が入れ替わったので、それに対応していないCNCシールドV3.0(grbl0.8用)を使うときは注意が必要です。CNCシールドV3.0の場合、まだSpindle PWM端子(可変制御)ではなく、Spindle Enable端子(ON/OFF制御)になっているはずです。つまり、CNCシールドV3.0でgrbl0.9や1.1を使う場合は、Z軸用リミットスイッチ(+と-の両方)をSpindle Enable端子に接続。そのかわりSpindle Enable(PWM端子として)は、Z+かZ-のどちらかへ接続。CNCシールドV3.0上のZ+とZ-は内部でパラレルにつながれているので、どちらにつないでもいいはずです。
*CNCシールドV3.0とV3.1以上(最新版V3.51)の違いについてはこちらへ

CNCシールド3.10以降であればgrbl0.9や1.1に対応しているので、ピンの配置はそのままのはずです。
CNCシールド上の各リミットスイッチ端子(2本ずつ)は、普段オープンな状態になっており、内部のプルアップ抵抗により一方の端子(内側の端子)がHIGH(5V)の状態になっています。リミットスイッチが押されるともう一本の外側のGND端子と接続されるためにLOW(0V)になり反応したということになるようです。
CNCシールドV3.0.2からは、リミットスイッチが押されたときにLOWになるかHIGHになるかを選択できる端子(END STOP HIGH/LOWの横にならんだ3本ピン)があります。デフォルトでは、3本ピンの左と真ん中にジャンパブロックを差し込む。逆の設定にしたい場合は、真ん中と右に差し込む。


ドライバ(A4988/DRV8825)の設定:
ドライバは、CNCシールドにただ差し込んで終わりというわけではなく、
・ヒートシンクをつける
・マイクロステッピング設定をする
・電流制限設定をする
ということが必要です(以下に説明)。

まずCNCシールドにドライバを差し込むときは、向きに注意しないといけません。
A4988なら、CNCシールド対してこの向き(上画像)。A4988上の可変抵抗器が下にくる感じです(この可変抵抗器もあとで使用するモーターに合わせて設定しなければいけません)。上画像のようにヒートシンクを各ドライバにつけたほうがいいでしょう。ヒートシンクなしだと1Aまで、ヒートシンクやクーリングファンできちんと冷却すれば2Aまで大丈夫らしいです。

また、DRV8825なら以下のような向き。A4988と違って可変抵抗器が上にくるように差し込みます。DRV8825はヒートシンクなしで1.5A、ヒートシンクありで2.5A。



実はドライバの裏側を見れば、どの端子が何なのか分かるのですが、始めて見たときは気づきにくいかもしれません。


マイクロステッピング設定方法:
ドライバを差し込むと見えなくなってしまいますが、ドライバのちょうど真下にジャンパーブロック(ジャンパーピン)を縦に3個差し込む端子MS1、MS2、MS3があります。以下の赤枠で囲んだ部分。
上画像の場合は、Z軸用ドライバの位置に白いジャンパーブロック(ジャンパーピン)が縦に2個差し込まれています。マイクロステップは以下の表を参考にすると1/8になります。X、Y、Aに関しても同様に所定の箇所へ必要数取り付けてください。

ジャンパーブロックの差し込む組み合わせによってマイクロステッピングをFull Step(1/1)、 Half Step(1/2)、1/4、1/8、1/16から選ぶことができます。Low:差し込まない、High:差し込む。
最高1/16までできるのがA4988(以下)。Pololuのサイトの書いてあります

MS1MS2MS3Microstep Resolution
LowLowLowFull step
HighLowLowHalf step
LowHighLowQuarter step
HighHighLowEighth step
HighHighHighSixteenth step
ジャンパーブロックを何も差し込まなければ、初期設定のLow/Low/Lowのフルステップになります。
つまりマイクロステッピングされないまま、1回転200ステップのモーターなら200ステップのまま。
3つさせば、200x16=3200で1回転で3200ステップのきめ細かさになります。細かくすればするほど動きは滑らかになって振動が減りますが、トルクが下がってしまうようです。

また、DRV8825なら1/32まで設定できます(とは言っても、1/32は使わないと思うけど)。
現状では、DRV8825でマイクロステッピング1/8に設定しています。
DRV8825についてのPololuサイト
MODE0MODE1MODE2Microstep Resolution
LowLowLowFull step
HighLowLowHalf step
LowHighLow1/4 step
HighHighLow1/8 step
LowLowHigh1/16 step
HighLowHigh1/32 step
LowHighHigh1/32 step
HighHighHigh1/32 step

電流制限設定:
ステップ数をあげるとより多くの電流が流れるため、モーターにとって過電流になりダメージを与えることがあります。そうならないように電流制限する機能がドライバについています。ドライバ基板上の可変抵抗器で調節可能です(電流というか電圧を調整するのですが)。以下、Pololuのセッティング動画。

まずマイクロステップ設定をフルステップの状態(ジャンパーブロックをなにも差し込まない)で、
モーターの許容電流値が1Aなら、
A4988の場合、
Current Limit=VREF x 2.5
モーターの許容電流が1A=VREF x 2.5なので、 VREF=0.4Vとなります。可変抵抗器を回して、0.4V以下になるように設定すればいいことになります。
その際テスターで電圧を計測します。ドライバ基板の右下のGND端子(以下のステッピングモーターとの配線画像を見るとGNDの位置が分かります)にテスターのマイナスプローブ、そしてテスターのプラスプローブを可変抵抗器の回す部分(もしくは可変抵抗器の3つ脚の真ん中の端子)に接続。ゆっくり可変抵抗器を回しながら、1Aのモーターなら0.4Vくらいになるようにします (下の画像のような2Aのモーターなら0.8V)。A4988の場合は、CNCシールドに差し込みパソコンにUSB接続で電源供給し調整できました。

追記(2017年以降):
PololuのA4988のサイトを見ると、従来の電流制限設定の計算式は
Current Limit=VREF x 2.5
でしたが、2017年以降のPololu製A4988ボードでは、センスレジスタが0.050Ωから0.068Ωへ改良されたために、計算式は

となったようです。
Rcsの部分が、センスレジスタの値(従来の0.050か2017年製の0.068か)であり、
従来の計算式にRcsを代入すれば、
Vref=8×Imax×0.050=Imax×0.4
となるので、結果的には、
Current Limit=VREF x 2.5(従来の計算式)
と同じ値になるというわけです。
新しい計算式は、Pololu製の2017年製のA4988ボードを使った場合適用されるので、中国製のA4988の場合は、おそらく従来の計算式のままで大丈夫だと思います。

DRV8825の場合、
Current Limit=VREF x 2.0
なので、1Aのモーターなら0.5V、2Aのモーターなら1.0Vになるように可変抵抗器を回します。
DRV8825の場合、パソコンとのUSB接続だけではダメで、CNCシールドの12-36Vに電源供給しないとできませんでした。

追記:
RepRapの電流制限のページを見ると、A4988やDRV8825ドライバーのチョッピング機能により上記のように電流制限すれば、例えばInventablesで売っている2.8AのNEMA23モーターも駆動可能。2.8Aの場合、A4988ならVREF=2.5/2.8=0.89V以下に可変抵抗器を設定すれば、最大トルクは得られないけれども大丈夫らしいです。Inventables NEMA23 2.8Aのページの質問(2013/DEC/10)で、GrblShield2.0Aでこのモーターは使えるのか?というのがあり、最大トルクは得られないけれども一応使えると書いてある。
関連:Shapeoko Wikiのドライバのページ


ステッピングモーターとの配線:
モーターによっては線の色が違う場合があるので、データシートなどでチェックして、どの色がどの線なのか確認したほうがいいと思います。また、ステッピングモーターには4線、6線、8線などあります。PololuのFaqにそれぞれの接続の仕方が書いてあります。
以下は、今使っているモーター(2相ユニポーラ6線)です。
定格3.6V/2.0A、3.6V与えると2.0A電流が流れるということなので、ドライバDRV8825で2Aの電流制限をしたということは3.6Vで駆動することになります。
上の図面で、右下に見える配線図にどの線が何色かが書いてあります。
これを見ながらA4988の場合なら、以下の配線になります。
モーターは右側の端子、2B、2A、1A、1Bの4本に接続されています。ということは、先ほどのモーターの図面を参照すると、
2B-BLK(黒)
2A-GRN(緑)
1A-RED(赤)
1B-BLU(青)
という対応になります。CNCシールドの各ドライバの右側に4つのピンが縦についており、そのまま上から、黒、緑、赤、青という配線でこのモーターの場合つなぎます。
モーターのYEL(黄)とWHT(白)は未接続で構いません。

DRV8825の場合は以下。
B2-BLK(黒)
B1-GRN(緑)
A1-RED(赤)
A2-BLU(青)
となります。
A4988とピンの番号が微妙に違うので、間違わないようにしてください(上からの順番は同じ)。
それと、モーターの線の色については、そのモーターのデータシートを探し出して確認したほうがいいと思います。ドライバA4988/DRV8825のピンに関しては、裏返すとシルクで書いてあるので、ドライバの差し込む向きを確認する場合やモーターと接続する場合、どの端子なのか実際に見て確認できます。
CNCシールドのモーター接続のピンは、ドライバのピンをそのまま右へ平行移動した4つのピンになっているはずです。

という感じで準備は整っているのですが、肝心のジャンパーブロックがまだない。CNCマシンの配線作業する段階になったときに、秋葉原に行ってケーブル、コネクター類といっしょに手に入れようと思ってます。


基本的な配線の仕方(CNCシールドV3.5の場合):
*CNCシールドV3.0の場合は、SpnEn端子とZ軸リミットスイッチ端子を入れ替えて接続(詳細はこちらへ
左下の青い端子にステッピングモーター用の電源、そして各軸ステッピングモーター、各軸リミットスイッチ、可変出力可能なTTL端子つきのスピンドル用モータードライバ(あるいはレーザー用ドライバ)を接続。下画像には、ステッピングモータードライバは搭載されていないので、A4988やDRV8825をマウントして下さい。

この画像の場合、Y軸に2個のモーターを使う設定なので、4つのステッピングモータードライバを搭載します。右下のステッピングモータードライバ用の端子(A端子)がY軸用のクローンです。その設定のため、左側に緑色の枠で示したジャンパブロックを2個(Y軸用)を差し込みます(写真上のX軸用の黒いジャンパーブロック2個は差し込まない)。3個しかモーターを使わないのであれば、A端子そして左側のクローン用のジャンパブロックも不要です。
*ステッピングモーターの各線の色はモーターによって違う場合があるので注意して下さい。

各軸ドライバ用端子の間(電解コンデンサの下)には、写真上ではマイクロステップ設定用のジャンパブロックが縦に3個ずつ差し込んでありますが、マイクロステップをいくつに設定するかは、前述してある内容を確認して必要数差し込んで下さい。

リミットスイッチは、XYZ軸に2個ずつあるため12本の線が必要ですが、各軸+と-は回路内で並列つなぎになっているため、配線をまとめてしまえば4本で済みます(黒い端子はGNDなので、6本ある線を1本にまとめ、各軸ごとの赤い線は1本ずつ合計3本にまとめることができます)。もし長い距離を配線しなければいけないときは、途中でまとめてしまったほうがいいかもしれません。

スピンドル用のドライバ(TTL端子)をSpnEn(pwm)に接続することで、Gコードでスピンドルの出力調整が可能になりますが、スピンドルを手動制御するなら接続する必要はありません。

このほか、プローブ機能、非常停止(デジタルブレーカー)など、いくつか端子は余っていますが、最低限これだけをつなげば動かすことはできます。動作確認後、あとからそのような機能を追加配線していってもいいと思います。ステッピングモーターの回転方向やスピード(フィード)は、ソフトで設定可能です。
このCNCシールドの真下にくるArduinoボード自体は、通常パソコンとUSB接続されるために、USB経由でDC5Vが供給されます。もし、ワイヤレスなどスタンドアロンで動かす場合は、Arduinoボードに電力を供給する電源が別途必要になります。


電源について:
ステッピングモーターは前述してあるNEMA23(3.6V/2.0A)を4個使用しており、現在DC24V/7Aのスイッチング電源(AC100V用)に接続しています。
ShapeOko Wikiには電源について書いてあり、NEMA17クラス4個であれば100から120W程度、NEMA23クラス4個であれば150〜200W。
参考までに、ShapeOko3ではNEMA23クラス4個使用に対して、24V/5Aの電源を用いているようです。最近のX-CARVEでは、NEMA23クラス(140oz-in)4個に対して24V/17A。

2016年3月26日土曜日

GRBLソフトウェアを試してみる

追記:
2017年現在では、このページの内容はやや古いものとなっています(Grbl0.9以前のもの)。
現行のGrbl1.1ならびにそれに対応したG Code Senderを使用する場合は、こちらのページを参考にして下さい。
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
ハードのほうは、ネットで調べながらなんとなく検討はついてきました。
ソフトのほうは思っていたより簡単でArduinoがあれば何とかなりそう。
とりあえず、目をつけておいた「CNCシールド」を使おうと思っているので秋葉原で売っていないかチェック。

aitendoで中国製CNCシールドが売っていることが分かった。ネットで買ってもよかったけれども、すぐに試してみたいので店頭で購入することに。aitendoと言えば、昔は自作液晶スクリーン屋だったと思うけど、いつのまにか店も引っ越して、Arduino関係をかなり増やしていた。新店舗もすごい量の商品。全部中国製ぽいけど。まあ、安いから実験するにはいいかも。
追記:
以下のCNCシールドはV3.0(grbl0.8対応)です。最新版はCNCシールドV3.51(grbl0.9)になります。V3.0とV3.51の違い、あるいはV3.0でgrbl0.9/1.1を使う場合についてはこちらへ

CNCシールド950円、安い。ついでにドライバも。

ドライバは、ネットでもっと安いのがあるけど、実験ということで3個購入。
ついでに、Arduino UNOも買っておこうと秋月へ。Arduinoも中国製のクローンでもいいかもしれないけれど、一応純正品を。ArduinoはDiemilanove以後買っていないし、そのDiemilanoveも壊れてしまったので、交換用ATMEGA328も1個購入。
AliExpress.com Product - Free shipping! New cnc shield v3 engraving machine / 3D Printer / + 4pcs A4988 driver expansion board これ↑なんかは(AliExpressで)、シールドとドライバ(4個)セットで456円しかしない。安い。

アマゾンでも売っていて、送料込みで670円(以下)。


これでコントローラーは一応揃ってしまったので、Arduino UnoにCNC libraryを入れてみることに。

手順(旧型Grbl v0.8):*v0.8は古いので、v0.9あるいはv1.1の場合はここをスキップ
https://github.com/Protoneer/GRBL-Arduino-Library
にアクセスし、画面下のほうにある「How to install it:」から、
https://github.com/Protoneer/GRBL-Arduino-Library/archive/master.zip
このzipファイルをダウンロード。おそらく自動解凍するので、
「GRBL-Arduino-Library-master」というフォルダが出来上がる。
フォルダ名を「GRBL」に改名し、Arduinoのlibrariesフォルダへ入れる。Macなら、
/Users/username/Documents/Arduino/libraries
の中へ入れるだけ。
あとはArduinoソフトを起動して、
「Arduinoメニューバー>ファイル>スケッチの例>カスタムライブラリのスケッチの例>GRBL>GRBLtoArduino」を読み込む。
以下の画面が出て来て、
あとはArduinoボードをUSB接続しアップロード(ツール>マイコンボードでArduinoボードの種類、ツール>シリアルポートも正しく選択しておくように)。
これでArduino側は終了。Arduinoボードは、ゆくゆくはCNCマシンのステッピングモーターを動かすために、マシン本体へ取り付けられることになる。


Grbl v0.9の場合:(追記:最新版grbl1.1についてはこちら
上記はGrbl v0.8だったけど、v0.9をインストールすることに。
*Grbl v0.8をインストール済みの場合は、Grbl v0.8を消去してからインストール
つまり、「/Users/username/Documents/Arduino/libraries」内の「GRBL」フォルダを捨てる
このページ(grbl本家wiki)を見ると、Arduino IDEを立ち上げてから、インポートする方法が載っている。
・まずこのサイトの画面右側の「Download ZIP」をクリック。
・そうすると「grbl-master.zip」がダウンロードされる。
・「grbl-master.zip」をダブルクリックして解凍する。
・解凍すると「grbl-master」フォルダができあがる。
・Arduino IDEを立ち上げる。
・「Arduinoメニューバー>スケッチ>ライブラリをインクルード>.ZIP形式のライブラリをインクルード...」を選択。
・そうするとファイル選択のウィンドウが出るので、先ほど解凍したフォルダのほう「grbl-master>grbl」を選択。
・インクルードされたら、「Arduinoメニューバー>ファイル>スケッチの例>カスタムライブラリのスケッチの例>grbl>grblUpload」を選択。

現れた画面↑上で、「検証」、「マイコンへ書き込む」でArduinoボードへアップロード。
以上。

Arduino IDEでArduinoボードにアップロードされたgrbl0.9jを確認する:
CNCシールドを装着したArduinoボードをパソコンとUSB接続し、Arduino IDEを立ち上げて、メニューバーの「ツール>マイコンボード」から使用しているArduinoボードのタイプ(Arduino UnoならArduino/Genuino Uno)を選択。続いて「ツール>シリアルポート」からArduinoボードのシリアルポートを選択。
Arduino IDEの画面右上にあるシリアルモニタボタンをクリックする(以下)。


そうすると、シリアル通信用の画面が出てきます(以下)。
この画面↑右下にあるbaudrateをgrbl0.9以上なら115200 bps(grbl0.8なら9600)にしておきます。

最初に接続すると、上画像にのように「Grbl 0.9j ['$' for help]」と出てきます。ここでArduinoにアップロードされたgrblのバージョンが0.9jであることが確認できます。
続いて、コマンド入力欄に$$(設定内容確認コマンド)を入力し(以下)、
そして、右上の「送信」ボタン↑を押すと、

このような↑、現在のArduinoボード内にアップロードされたgrblの各種設定がでてきます。
それぞれの設定内容(grbl0.9)については、grblのサイトに書いてあります。
例えば、ここで各種設定の下から3行目にある$130=500.000に対して、
$130=300
を入力するとX軸の移動範囲を300mmに設定し直すことができます。
再度、$$を入力し設定内容を確認すれば、
このように↑設定内容の下から3行目にある$130の項目は、
$130=300.000
に変更されたことが確認できます。
このような設定は後々使うG Code Sender(GRBL Controller、Universal G-Code Sender、bCNCなど)で行えばいいのですが、一応Arduino IDEのシリアルモニタ機能でも可能なので、動作確認のために試してみるといいでしょう。


GRBL Controller:
つぎに、CNCマシン(Arduinoボード)をMac上で操作する「GRBL Controller3.6.1」ソフトをダウンロード。「GRBL Controller3.6.1-T4」というのもあるみたい。Win用はこちらから
このソフトで何をするかというと、
・CNCマシンの各種パラメータ(移動距離、移動スピードなど)の設定
・左右前後上下ボタン(ジョグボタン)でヘッドを材料の位置へ移動したり(加工原点設定)
・このソフトとは別にあらかじめ用意しておいたGコードファイルを読み込んでCNCマシンへ送信し加工開始
という感じ。Gコードを送信するためのソフト(G Code Sender)であって、このソフトでGコードを生成するわけではない。Gコード生成(G Code Generator)などほかのソフトについてはこちらへ
追記:
その後、Gコードを送信するソフト(G Code Sender)をいくつか試してみましたが、個人的にはGRBL ControllerではなくbCNCというのが便利で使っています。

あとはステッピングモータードライバ(A4988)をのせたCNCシールドをArduinoボードに装着し、MacとUSB接続、GRBL Controller3.6.1を立ち上げる。
GRBL Controller3.6.1の画面はこんな感じ↑。Grbl v0.8ならBaudRateは9600。v0.9なら115200。
CNCシールド(Arduino)とUSB接続後、Port name、Baudrateを選び、Openボタンで開始。
画面右のほうに3つのタブがあり、Advancedタブを押すと、
こんな画面↑が現れて、GRBL Settingsボタンを押すと各種設定ができそう。

そうすると、こんな設定画面↑が現れて、下から3行目にあるX軸の最大移動範囲(x max travel, mm)に400.000を入力(設定)してみる。数値を入れたらリターンを押してから、下のApplyボタンを押す。しかし、、、
> $28=400.000
error: Invalid statement
というエラーが出てしまう。どうやら、他の項目も同じようにエラーがでるようで、このソフト自体にエラーがありそう。$130=400.000のはずなのに、なぜか$28=400.000と認識しているようで、そのためにエラーがでているみたい。対応する項目がずれているのかもしれません。
なので、画面左にあるCommand欄に手動で、以下のように$130=400を入力しリターン。
そうすると、コンソールには
> $130=400
と出て来て、設定されたはず。ちなみに、先ほどのAdvanced>GRBL Settingsを押してみると、
こんな感じで↑、下から3行目には400.000がきちんと設定されています。どうも、このGrbl Settings画面で入力するとエラーが出るようなので、Commandから手入力したほうがよさそうです。このような理由からも、このソフトは使わなくなりました。
以下は、GRBL Controller3.6.1-T4(こちらはエラーでなさそうです)
GRBL Controller3.6.1-T4の画面はこんな感じ↑。なんか3Dの画面がついてる。

まとめ:
・Arduinoボードへアップロードするプログラム/ライブラリ(Grbl v0.8またはv0.9)
・Mac上で操作するアプリのインストール(Grbl Controller 3.6.1-T4がおすすめ)
の二つが必要。
そして、
・Grbl v0.8の場合はGrbl Controller上のBaudRateを9600
・Grbl v0.9の場合はGrbl Controller上のBaudRateを115200
にする必要がある。
*Grbl Controller 3.6.1のほうは、なぜかエラーがでるので、使うならGrbl Controller 3.6.1-T4のほうがよさげ、機能も豊富だし改善されているようです。
おそらく、Arduino経由でCNCマシンを検索すると(特に日本語で)、CNCシールドやGrbl Controllerに行き着くと思うのですが、Grblで調べると(Grbl Wikiなどから)、Universal G-Code SenderやbCNCというソフトに辿り着くと思います。個人的には、どちらかというとUniversal G-Code SenderやbCNCのほうが使いやすいと思います。
追記:
2017年以降であれば、最新版Grbl1.1を使ったほうがいいと思います。おそらくGRBL Controller3.6.1は、数年前のGrbl0.8用という感じなので(使えないというわけでもないのですが)、Grbl1.1に対応した新しいソフトのほうがいいかもしれません。Grbl1.1についてはこちらへ

「Grbl v0.9 + GrblController3.6.1-T4」 の場合
上記のようにGrbl v0.9をアップロードしたArduino UNOをMacにUSB接続し、GrblController3.6.1-T4をMac上で立ち上げてみました。まだステッピングモーターは未接続。
GrblController3.6.1-T4の画面左上の
・「Port name」でArduinoのポートを選択
・「Baud Rate」で115200を選択
・画面左上「Open」ボタンをクリック
そうすると以下のような画面。
Openボタンで開始したら、Grbl Settingsボタンで各種設定ができます(こちらはエラーでません)。なので、こっちのほうがいいかもしれません。

よくみると「Spindle On」だけでなく「Speed spindle」もついています。TTLドライバ付きのレーザーモジュールならレーザー出力調整できそうです。この機能を生かすには「CNC Shield V3.10」にしたほうがよさそう。先日aitendoで買った中国製の「CNC Shield V3.0」だとgrbl0.8対応なので端子がON/OFF制御になっている(追記:grbl0.9ではピン配列が少し変わったので、それにあわせて接続を入れ替えればV3.0でも使えるようです)。まあ、そのへんは後々バージョンアップしようと思います。
とりあえず、ソフトのほうはなんとかなりそうです。ということで、またハードの検討に戻ります。

関連:
CNC関連のソフト(まとめ):GrblController以外にも使いやすいソフトはあります。
CNCシールドV3.0とV3.1以上の違いについて:(最新版はV3.51)

2016年3月25日金曜日

ステッピングモータとドライバの選定

CNCミリングマシンとなると、実際に固い素材にスピンドルの刃が当たって削っていくことからも、トルクの高いステッピングモーターのほうがいい。しかし、トルクの高いモーターだとアンペア数も高くなるために、ドライバの許容アンペア数を超えてしまうので、それぞれの比較をすることに。
候補としては最新のCNC Shield V3.10(追記:現在の最新版はV3.51)を使いたいところではあるが、中国製のCNC Shield V3.0になるとかなり安いので、とりあえずはV3.0で(とは言っても純正のV3.10もそれほど高価ではないので後々V3.10へ)。
開発しているProtoneerによると、公表しているCNC Shieldのガーバーファイル(回路設計図)を中国の製造業者が何の断りもなしにコピーしCNCシールドを格安販売していることに怒っているようで、今後(V3.10以降)はガーバーファイルは公表しないと言っている。
CNCミリングマシンの仕様は、X-CARVE(もしくはShapeoko2か3)を参考に。

*ここではCNCシールドを使う前提なので、そうなるとおのずとPololuのA4988DRV8825となってしまいます。DRV8825のほうが2.5Aまで大丈夫なので、ステッピングモーターは2.5A以下のものを選ぶという順番で考えています。もしCNCシールドを使わず、Arduinoボードにステッピングモータードライバを直接配線するのであれば、アンペア数の高い他のドライバを選ぶことで、モーターもより強力なものを使うことも可能になります。

ステッピングモータードライバ:
CNC Shield V3.0+A4988:2A
・CNC Shield V3.0+DRV8825:2.5A
gShield(DRC8818):2.5A(Shapeoko3、X-CARVEで用いられている)
L6470:3A(ピーク7A)
・TB6600:4.5A(高出力なら以下。Amazonでも購入可。850円)


AliExpressだと以下(666円)。
AliExpress.com Product - 42/57/86 TB6600 stepper motor driver 32 segments upgraded version 4.0A 42VDC
注意:コメント頂いたanoseさんによると、上記(AliExpressで販売)の商品は、TB6600のかわりにTB67S109AFT(内部のドライバIC)が入っているらしいです。この中国製ドライバユニットはAliExpressの他のショップでも販売しているため、注文の際には本当にTB6600が入っているかどうか確認したほうがよさそうです。

シールド上のドライバにはヒートシンクが必要。クーリングファンも付けようと思う。
X-CARVEを見てみると、gShieldでNEMA23のステッピングモーターもつかっている。gShieldはXYZ用の3つのドライバ(DRC8818)を装備、しかもY軸方向のひとつのドライバにパラレルでモーター2個を付けても大丈夫らしい。
CNC Shield V3.0の場合はドライバを4つ(XYZ+A)装備可能で、Aの箇所がXYZのコピーもしくは単体独立でも使える仕様となっている。

この段階では、
「CNC Shield V3.0+DRV8825(2.5A)」を使おうと思う。
アマゾンではドライバ5個セットで以下のような感じ(1099円)。


これも中国製だろうから、直接AliExpressで買ったほうが安いかもしれない。

やっぱり安い。とりあえずこれでいいかも。


ステッピングモーター:
次は、ステッピングモーターについてだけれども。X軸1個、Y軸2個、Z軸1個の合計4個必要。
トルクから言えば、NEMA23にしたいけれども、NEMA17のトルク高めのでも大丈夫かと。NEMAというのは規格であって、ステッピングモーターの場合NEMA23やNEMA17というように数字が大きいほど強力。

RepRapのNEMA17リストで見ると、
NEMA17クラスで、トルク65N・cm=6.62805kgf・cmが最高。

NEMA17と23の違いは以下のような感じ。
・NEMA17
   外形42mm角、軸径5mm、重量350g前後、価格2000円前後
・NEMA23
   外形57mm角、軸径6.35mm、重量1000g前後、価格4000円前後

X-CARVEでは、オプションで以下のNEMA17かNEMA23を選択できる(Shapeoko3ではNEMA23のみが標準装備)。
NEMA17 60 oz-in(4個で$80)  1.68A 2.8V (部品買い一個$16.94:なぜか安い??)
NEMA23 140 oz-in(4個で$150)  2.8A 2.3V (部品買い一個$39)

このトルクを参考にすると(トルク自動換算してみると)、
NEMA17: 60 oz-in = 0.42375 N・m = 4.32 kgf・cm
NEMA23: 140 oz-in = 0.98875 N・m = 10.08 kgf・cm

同様なものを他で探すと(以下)。

NEMA17(4.32 kgf・cm以上)相当のステッピングモーター:
秋月:ST-42BYH1004  4.4 kgf・cm、1A、5V、ステップ数400、1900円
千石:42BYGHM809  4.48668kgf・cm、1.7A、3V、ステップ数400(Sparkfun製)、2800円
マルツ:42BYGH47-401A  5.5kgf・cm(Seeed製、以下と同様/納期3~4週間)、1910円
Seeed:42BYGH47-401A  5.5kgf・cm、1.5A、24V、ステップ数200、$14.50
Digikey:42BYGH47-401A  (同上)、1761円
AliExpress:42BYGHW811  4.89456kgf・cm、2.5A、3.1V、ステップ数200、6658円(5個/送料込)1332円/個
AliExpress:17HS8401  5.3kgf・cm、1.8A、不明V、ステップ数200、1590円(送料無料)
AliExpress:17HS4218  6.628kgf・cm、1.8A、不明V、ステップ数200、2267円(送料無料)
AliExpress:42HS6315A4  7.65kgf・cm、1.5A、不明V、ステップ数200、5358円(2個/送料込)2679円/個(単体で買うと3030円

NEMA17クラスだと以上のような感じ。結構高トルクもあるので、NEMA23にしなくてもよさそう。NEMA23だとドライバの許容アンペア数を超えてしまうこともあるため。
追記:
A4988は2Aまでだけれども、電流制限設定を行うことで、2.8Aのモーターでも動かすことはできるらしい。ただし、2.8Aを2.0Aに制限してしまうので、本来のトルクも下がってしまう(ドライバのまとめはこちら)。


そして以下がNEMA23。

NEMA23相当のステッピングモーター:
秋月:ST-57BYG076  13kgf・cm、0.6A、12V、ステップ数200、4000円
千石:57BYGH420   9.17kgf・cm、2A、3V、ステップ数200(Sparkfun製)、3980円
Wantai:57BYGH420  9kgf・cm、2A、3.6V、ステップ数200、3個7452円(送料込)、Shapeoko標準装備品(1個あたり2484円)
AliExpress.com Product - Best Selling! 6-lead Nema 23 stepper motor 57BYGH420 127oz-in 56mm 2A CE ROHS ISO CNC Mill Laser Engraving この↑NEMA23は2Aで比較的扱いやすい(2462円送料込み)。


まとめ:
NEMA17で、5kgf・cm(0.49N・m、70oz・in)前後、1.5A前後という感じでしょうか。
NEMA23で、10kgf・cm(0.98N・m、140oz・in)前後、2〜3A前後。NEMA23で2A以下のものは少ない。たしかにNEMA23だと力強く、ワンランク上という感じです。Shapeoko標準装備のWantai製NEMA23なら使えそうです。57BYGH420単品購入なら2822円。重さ800g。
*ステッピングモーターの配線についてはこちらのページ後半に書いてあります。

ちなみにY軸にはステッピングモーターを2個つける予定なので、その分強くなるはず。X軸は1個のステッピングモーターで駆動するので、X軸にはそこそこ高トルクのものが必要かもしれません。Z軸は台形ネジを使うかもしれないので、高トルクは必要ないかもしれません。
よって、X軸においては高トルク優先で。ということで以下のような感じ。

オールNEMA17なら、
X軸(1個):AliExpress:42HS6315A4  7.65kgf・cm(3030円)
Y軸(2個):AliExpress:17HS8401  5.3kgf・cm(1590円×2個=3180円)
Z軸(1個):AliExpress:17HS8401  5.3kgf・cm(1590円)
合計4個で7800円。

もしくは、NEMA23(3個セット買い)も入れて、
X軸(1個):Wantai:57BYGH420  9kgf・cm(XY軸3個セットで7452円)
Y軸(2個):Wantai:57BYGH420
Z軸(1個):AliExpress:17HS8401  5.3kgf・cm(1590円)
合計4個で9042円。

オールNEMA17でコンパクトに行こうかと思ったけど、XY軸はやっぱりNEMA23のほうがいいかな。と、だんだんスペックが高くなってしまう。

Z軸に関しては、以下のようなLead screw付きのステッピングモーターでもいいかもしれない。
これ↑は、M8棒ネジがついているタイプ。
モーターとしてはNEMA17クラスであり、
42HD4027-04、トルク4.0kgf・cm、1.5A、3.3V、ステップ数200、2942円(送料込)
棒ネジ部分:M8、ピッチ8mm、300mm長
この場合だとXY軸のモーター含め、オールNEMA17なら合計9152円となる。
NEMA23との組み合わせなら10394円。

しかし、以下のようなものもある。
AliExpress.com Product - SWMAKER Shapeoko 2 CNC machine nema 17 Z axis assemble kit(no motor) M8*1.25 delrin nut9040円(送料込)
モーターはついていないけど、Shapeoko2の部品で、ここまで出来上がっているキット。
モーターは先ほどの、AliExpress:17HS8401  5.3kgf・cm(1590円)でも使えばいい。
Z軸をつくるのが面倒であれば、これでもいいかも。

そうなると先ほどの、
X軸(1個):AliExpress:42HS6315A4  7.65kgf・cm(3030円)
Y軸(2個):AliExpress:17HS8401  5.3kgf・cm(1590円×2個=3180円)
Z軸(1個):AliExpress:17HS8401  5.3kgf・cm(1590円)
合計4個で7800円、それにこのキット9040円をプラスして、16840円。
もしくは、
X軸(1個):Wantai:57BYGH420  9kgf・cm(XY軸3個セットで7452円)
Y軸(2個):Wantai:57BYGH420
Z軸(1個):AliExpress:17HS8401  5.3kgf・cm(1590円)
との組み合わせで、合計18082円。

Z軸のスライド機構も含めて、この値段であればまあまあいいかもしれない。

ただ、このキットだと棒ネジは普通のM8っぽいので、どのくらいバックラッシュがあるかが疑問。
ということで「Shapeoko2」の組み立てマニュアルをチェック。
Z軸については、この章に組み立て方が書いてある。
上の組立図内の②が棒ネジを通す部品「13x35x20mm Derlin Lead Nut」。
AliExpressではこの部品「Openbuilds OX Shapeoko CNC Z axis parts Delrin Nut TR8*8(P2) metric 8 mm ACME block nut block POM material」も売っている。バックラッシュしにくいのだろうけど、この手の部品は需要があるのか高い。
棒ネジはM8、ピッチ1.25mmらしい(まあ普通の棒ネジ)。
*POMとは、ポリアセタールと言われる樹脂で耐摩耗性が高く軸受けや樹脂製のギヤなどにも用いられている素材らしい。

しかし、こうなると「Shapeoko2」をつくっているような感じ。ただ気になるのは「Shapeoko3」では、Z軸の仕組みがLead screwを使わず、タイミングベルトで昇降しているということ。なぜそうなったのかは分からないけど、たしかにShapeoko3のほうがシンプルかもしれない。精度が下がりそうだけれど、マシンがバージョンアップしているのに、あえてタイミングベルトにしてあるのだから、それほど精度に関しては問題ないのかもしれない。
ちなみに「X-CARVE」では、Leadscrewを使っている。普通のM8棒ネジ($11)かAcme棒ネジ($30)のオプションがある。
ネジ山の種類には、三角ネジ、角ネジ、台形ネジがあるらしい。普通のM8などのネジはメートル法の60度の三角ネジだけれども、Acme(アクメ)ネジは29度のインチ台形ネジ。一般的なM8でピッチ1.25mm、このAcmeネジは径3/8インチ(9.525mm)、ピッチ1/16インチ(1.5875mm)。

このAcme棒ネジ部品自体、加工には旋盤が必要な上に材質がステンレスであるから固くて大変そう。
「Shapeoko3」は、このような外注しなければ加工できないような部品をあえて使っていないのはDIYらしさがあっていいのかもしれない。精度を上げようとすれば、より専門的な部品や加工が必要になるけれども、そうするだけ敷居が高くなってしまう。やはりいかにシンプルにつくるかということも大事かもしれない。故障やトラブルの際にも自力で解決できるような構造のほうが望ましいであろう。
ということで、Z軸に関しては、上記のどれかになるだろうけど、もう少し検討することに。
しかしながら、ドライバ、ステッピングモーターに関しては、選択肢をかなり絞ることができた。上記のどれかになるだろう。

2016年3月23日水曜日

市販のCNCマシン/レーザーカッター

そろそろCNCミリングマシンもしくはレーザーカッターが必要となったので、調べてみることに。
追記:2016年10月現在の市販のレーザーカッターについてはこちらへ。  

まずは、レーザーカッターから。
工業用は高価なので、条件としては、以下のような感じ。
  ・Mac対応
  ・作業エリアがA4前後もしくはそれ以上
  ・薄い素材であれば切断可能な出力

 レーザーカッターでヒットするのは、国内のものだと。

Smart Laser Mini


レーザー出力:1.6w
作業エリア:280x230mm
Mac対応
InkScape使用可
ブラウザから操作可
価格:59,184円(税込み)+556円(送料)

追記:2016年4月からFabool Laser Miniにバージョンアップしましたね。59,800円(税抜き)。オプションでレーザー出力が3Wにアップ。そうなると以下のPodeaはどうなってしまうんでしょう。



Podea-01













  


レーザー出力:2w
作業エリア:297x210mm
Macは仮想Windowsを通して使用可
Illustrator使用可
価格:117,784円(税込み)+送料

だいたいこの二つが使いやすそう。
Podeaのほうが性能としては良さそうだけど、Mac対応がいまいちなのと価格がけっこう高い。
それに比べ、Smart Laser Miniはやや性能は落ちるけれども、マイコンにArduinoを使っていることからも、オープンソース型で改造や改良ができそう。
ということで、この段階では、Smart Laser Miniが候補。

やはり予算としては、10万円以下。できれば5万円前後。

おそらくArduinoを使ってCNCを自作している人もいるだろうから、「arduino cnc library」や「arduino cnc shield」で検索すると、
http://blog.protoneer.co.nz/
というサイトがでてきます。




















やっぱりArduinoシールド↑があります。価格も20ドルと高くない。ただし、シールド上に乗っているステッピングモータードライバ(緑色の基板3個)は含まれていない。
このドライバはA4988でスイッチサイエンスで一個1393円。XYZ軸用に3個必要なら、約4000円プラス。

しかし、「arduino CNCシールド」で検索すると、Amazonにはこんなものが売っている。



おそらく中国製だけど、同じものがかなり安く売っている。シールド一個1000円くらい。そしてドライバA4988も売っていて、こちらも安い。もっと安いのもあるけど、とりあえず3個で1290円。



そうなると、ドライバ3個付きのシールドで2300円くらい。安いので故障しても、買い替えればいいかとも思ってしまうので、なんとなくこれに決定。というか、この際自作してしまおうかという感じ。

このCNCシールド用のArduinoライブラリーは、以下からダウンロード。これはv0.8かな。
https://github.com/Protoneer/GRBL-Arduino-Library

v0.9が最新。v0.8から結構内容が変わった模様。
https://github.com/grbl/grbl

ということで、自作できそうなら自分の望むスペックにあわせてつくろうかなと思ってます。
もう少し調べてみて、時間とコストの関係から、製品を買って改造するか、上記のようなソフトや部品を集めて自作するかを決めたいと思います。

人気の投稿