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

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



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


2016年12月14日水曜日

Grbl1.1 Laser Mode:レーザーモードについて

grbl1.1からはLaser Modeが新たに追加された点が個人的には嬉しいことです。
特に、Dynamic Laser Power Scaling with Speedという機能がいままでにはない優れた機能だと思います。レーザーカット作業において、今までは特にパスの折り返し地点付近で焦げめが目立っていたのが、この機能で緩和され、より自然な切断が可能となりそうです。

grbl0.9までのレーザーカット作業の手順:
Inkscapeで図面(図形)を描画
・Inkscape ExtensionのLaser Tool Plug-inで出力設定してGコード生成(gcodeファイルで保存)
bCNCでgcodeファイルを読み込み加工作業
という流れでした。

Gコード的には(Laser Tool Plug-inで自動的に書き込まれる)、
M3(レーザー出力オン)
S1000(出力100%)
M5(レーザー出力オフ)
S0(出力0%)
M30(プログラム終了)
という感じでした。

主にM3を出力オンとして使っていましたが、grbl1.1ではM3だけでなくM4もあるようです。覚え書きのためにも以下に書いておこうと思います。

Grbl1.1のLaser Mode:
Grbl1.1 Laser Modeのページを見てみると、
まず、レーザーモードにするには、
$32=1
を入力するようです。当然レーザーを使わないときは$32=0に戻しておかなければいけません。

M3 Constant Laser Power Mode:
これは、いままで通りのモードと考えていいようです。スピンドルならM3は時計回りの回転ですが、レーザーには時計回りなど関係ないので、とりあえずM3で出力オンにしていたというわけです。ちなみにM4はスピンドル反時計回り、M5がスピンドル停止。

M4 Dynamic Laser Mode:
これが今回改良されたDynamic Laser Power Scaling with Speedのことだと思います。M4はスピンドルでは反時計回りですが、ここではそのMコードをかわりにつかっているようです。
このレーザーモードにおけるM4は、レーザーヘッドのスピードに合わせて出力を調整してくれる機能で、動き出した瞬間や折り返し地点などでスピードが落ちてしまったときに、それに合わせて出力も落としてくれる(焦げにくい)という感じです。まだ実験していないので、どのくらい効果あるのか分かりませんが。
この特性のためかM4の場合、レーザーヘッドが動いていないときは出力が0になるようです。仮に消し忘れたとしても、ヘッドが止まっている限りはレーザー出力0になるのでいちいちオフにする必要がないらしいです。
つまり、
$32=1
M4
を最初に入力すればいいということでしょうか?(追記:M4 S1000などと入力する)
しかし、基準となる出力(素材に合わせた出力値)はどこで設定するのかまでは書いていません。もしかしたら、設定済みの加工最速フィードを100%出力に設定してあるのかもしれません。それとも、M4 S500とでも入力すれば、最速でS500(50%出力)ということになるのでしょうか?
この機能がすべての素材に適合するかどうかは分からないので、事前に要テストして欲しいと書いてあります。
やはり、試してみないとまだわからないという感じです。いずれにしても、以前の使い方(M3)にも切り替えられるし、結局は使い分けという感じになるでしょうか。
いちいち手入力でGコードを修正するのも面倒なので、以前Laser Tool Plug-inのエラーを解消したときのように、Laser Tool Plug-in自体はpythonで書かれているためソースコード自体を改造すればいいかもしれません。

PWM周波数:
ちなみに、スピンドル用PWM周波数は、デフォルトで1kHに設定されているようです。
それが記述されているcpu_map.hファイルを見てみると、
おそらく145行目のこれ↑のことかと思います。Laser Tool Plug-inのJ-tech laser仕様に合わせているようです。厳密には0.98kHz。これを142〜143行目のどれかに変えれば、PWM周波数を高く設定できるようです。これを見る限り16bitではなく8bitみたいですね。
$32=1でレーザーモードがオンですが、grbl1.1の質問スレを見ると、$32=2や$32=3のようなオプションもあるようなことが書いてあります。実際どうなるか試してないので分からないですが。

ということで、M3とM4のカットの違いをそのうち試してみて、近々結果を報告したいと思います。
追記:実験結果はこちら

最新版Grbl1.1をインストール

早速grbl1.1をインストールしてみました(Macの場合)。基本的にはgrbl0.9のインストールと同じようです(grbl0.8と0.9のインストールについてはこちら)。
注意としては、もうすでにgrbl0.9や0.8などをArduino IDEに以前インストールしてある場合は、保存されるフォルダ名が同じなので、一旦古いのは捨てたほうがいいです(もしくは古い方をリネームしておくとか)。
Macの場合なら、
/Users/username/Documents/Arduino/libraries内のgrblフォルダ(旧バージョンのgrbl)を捨てる。

Arduino IDEによるインストール方法:(インストールの仕方はこちらを参照
このページの緑色のボタン(Clone or download)のDownload ZIPを選択。
「grbl-master.zip」ファイルがダウンロードされるので、それを解凍すると「grbl-master」フォルダが出来上がります。
次に、Arduino IDEを立ち上げて、メニューバー>スケッチ>ライブラリをインクルード>.ZIP形式のライブラリをインクルードを選択(以下)。
そうすると、ファイル選択の画面がでてきて、先ほど解凍した「grbl-master」内の「grbl」フォルダを選択(以下)。
そして、Arduino IDEのメニューバーでファイル>スケッチの例>grbl>grblUploadを選択(以下)。
そうすると、以下のようなgrblのプログラムが書かれた画面がでます。
注意書きとして、ここには何も書き込まないようにと。

あとは、ArduinoボードをUSB接続して、「検証」「マイコンボードに書き込む」を押してアップロードします。メモリめいっぱい使って書いてあるコードなので、書き込みが不安定になることがあるような注意がでますが、なんとか書き込めればOKです。

たまに、中国製Arduinoボードの場合、シリアル通信用のICが違うためか(CH340など使用している)、Arduino IDE上のシリアルポート選択でボードのポートが見当たらないときがあります。そのため専用ドライバが必要な場合もあります。「CH340 Arduino」などで検索すると、専用ドライバが見つかると思います。

Arduino IDEのシリアルモニタでgrbl設定内容確認:
Arduino IDE画面の右上にあるシリアルモニタ機能を使ってアップロードしたgrblの内容を確認してみます(アップロード後、一度Arduino IDEを再起動してみたほうがいいかもしれません)。
こんな感じ↑で、「Grbl 1.1e ['$' for help]」が先頭にでます(ボード再接続やIDEの再起動しないとでないかもしれません)。画面右下のbaudrateは115200bpsを選択。
$$
を入力してリターンを押せば、このような各設定がでてくるかと思います。
あるいは、$I(ドル大文字アイ)を入力すれば、
[VER:1.1e.20161208:]
というように、バージョンとビルドされた日付がでてきます。
あとは、CNCマシンに合わせて各項目を設定していけば、すぐに使えると思います。
ちなみに、grbl0.9までは$xの各項目のあとに()でそれぞれの説明/コメントがついていましたが、メモリ削減のためgrbl1.1ではカットしたようです。

Universal-G-Code-Senderの場合:
以下はUniversal-G-Code-Senderの画面。バージョンは1.0.9です。
使っているArduinoボードのPortを選び、Baud:は115200、Openボタンを押すと先ほどと同じように、「Grbl 1.1e ['$' for help]」がでて、$$入力で各種設定内容が出てきます。

古いG Code Senderだとダメっぽい:(理由不明/もしかしたら大丈夫かも)
ためしに、やや古いバージョンである1.0.7でやってみると(以下)、
冒頭に「Grbl 1.1e ['$' for help]」は出て来たのですが、$$を入力しても反応なし。
画面中ほどにある「Show verbose output」にチェックを入れてみると、このような↑反応がずらずらと止まることなくでてきました(追記:これは1.0.9でも同じでした)。まだ理由は分かりませんが、1.0.9では大丈夫だったので、この際grbl1.1にすると同時にUniversal-G-Code-Senderも1.0.9の最新版にアップデートしておいたほうがよさそうです。

同様にbCNCの場合もそうでした。ということから、grbl1.1にバージョンアップするなら、G Code Senderも最新のものにしたほうがよさそうです(理由不明)

追記:
上記画面でShow verbose outputにチェックを入れると、このように連続的に状況がアウトプットされるので、通常はチェックを入れないでおく方がいいです。

その他エラーなど:
Known Issuesに書いてありましたが、USBシリアル変換チップであるCH340Gが搭載されているArduinoボード(特に中国製クローンに多い)でシリアル通信のエラーが発生するらしいです(いまのところ対応策なし)。
同様にAtmel 16U2(ATmega328ではなく)を搭載してあるボードにも同様のエラーが生じるようです。解決方法などはKnown Issuesのリンク先にのっています。

ということから、grblを使うならATmega328搭載のArduinoボードのほうがよさそうです。

以下は個人的メモ:grbl0.9jの時の設定内容(grbl1.1へこの設定を引っ越し)
$0=10 (step pulse, usec)
$1=25 (step idle delay, msec)
$2=0 (step port invert mask:00000000)
$3=2 (dir port invert mask:00000010)
$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=1 (hard limits, bool)
$22=1 (homing cycle, bool)
$23=0 (homing dir invert mask:00000000)
$24=30.000 (homing feed, mm/min)
$25=600.000 (homing seek, mm/min)
$26=25 (homing debounce, msec)
$27=5.000 (homing pull-off, mm)
$100=320.000 (x, step/mm)
$101=320.000 (y, step/mm)
$102=320.000 (z, step/mm)
$110=1000.000 (x max rate, mm/min)
$111=1000.000 (y max rate, mm/min)
$112=400.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=740.000 (x max travel, mm)
$131=940.000 (y max travel, mm)
$132=190.000 (z max travel, mm)

2016年12月12日月曜日

GRBL1.1(最新版)本格的にアップデート

どうやらgrbl1.1がようやく本格的にアップデートされたようです(1.1のリンクはこちら)。
10月くらいにアルファ版のような感じででていましたが、まだ改良の余地が残っていたようで、ようやく一段落したみたいです。1.1のWikiページにも一通りの情報が掲載されたようです。0.9jのほうはそのうちおしまいという感じです。これまでは、grbl0.9jが安定版でしたが、この際1.1にアップデートしてしまってもいいかもしれません。

v1.1で特に改良されたのは:
・Real-time Overrides
 マシン動作中でもフィードやスピンドルの速度を変えたりできるようです。
・Jogging Mode
 ジョグ機能がGコードとは独立した仕組みになっているようで、ジョイスティックやロータリーダイヤルなどを使って操作もできるようです。今まではGコード送信で擬似的なジョグ操作をしていたようです。$J=というコマンドが使えるようです。
・Laser Mode(実験結果についてはこちらへ
 レーザーに合わせた動きに対応、可変出力も可能。
・Dynamic Laser Power Scaling with Speed
 ヘッドの速度と同調してレーザー出力を調節してくれるため、従来は角(加工パス上の)が焦げやすくなっていたけれども、それが改良されている。
・Sleep Mode
 $SLPをコマンド入力すると、ステッピングモーターも含めスリープ状態にすることができる。
という感じです。
Laser Power Scalingにいくつか問題があったようで、それが解決されたのをきっかけに今回本格的にリリースされたのかもしれません。確かにレーザーを使う人にとっては、焦げがなくなってかなり便利な機能です。

Arduinoボードへアップロードする方法は、従来通りArduino IDEでできるようです。Arduinoボード上のピン配列は、grbl0.9jと同じようなのでそのまま1.1をアップロードすれば使えそうです(もちろん各種設定はし直さないといけませんが)。
grbl0.9jでも充分なのですが、せっかくなのでv1.1を今度試してみようと思います。
ただ、以前Forumで見たときは、bCNCのオーバーライド機能とはまだ連携していないらしく、いろいろあるG Code Senderが、grbl1.1に対応するのを少し待つ必要があるかもしれません。

追記:grbl1.1のインストール(Mac)については次の投稿へ

2016年11月30日水曜日

オシロスコープ DS202

少し前に、ポータブルデジタルオシロスコープDS202をAliExpressで購入したのですが、しばらく使うこともなく放置していました。今回試しに使ってみました。

AliExpress.com Product - New arrived Pocket Handheld Oscilloscope DS202 mini Display full Color TFT LCD 320X240 Digital Oscilloscope cheaper than dso20311,438円(送料込み)

外形:100x56x10mmのポータブルなデジタルオシロスコープで、2CHついています。
Analog bandwidth:1MHz
Max sample rate: 10MSa/s
Max sample memory depth: 8K
Analog input impedance: 1MΩ
Max input voltage: ±40V( X1 probe)
大体1万円前後で売っているのですが(AliExpress内で探せばもう少し安いのがあるかもしれません)、購入したときはセール品でもあり8,501円でした。

追記:
今現在AliExpressで検索したところ、DS202は8,509円(その後9,167円に戻ってました)で売っているところがありました。セール品かもしれません。ちなみに、スマホ用アプリから注文すると少し安くなる場合があります(アプリ価格)。

ちなみに、アマゾンだと安いものでこのくらい。

このDS202の下のランクDS201だと1CHで性能もやや低く少し安くなります。さらに上位機種のDS203であれば4CHなのですが、少し値段も高くなることから、2CHのDS202が無難かなと。
なぜか商品名がDSO202だったり、DS202だったりと違いますが、DSO〜というのはひとつ古いタイプなのでしょうか?そのへんは分かりません。


AliExpress.com Product - LIXF-CCDSO Mini Digital Oscilloscope 4 channels DSO203 Quad Oscilloscope metal shell PortableDS203 4CH 14,686円(送料込み)
こちらは4CHついていて、スペックもやや上。ものすごく高価というわけでもないので、これもいいかも。


いままでは、秋月のテスター(たしか1000〜2000円くらい)をよく使っていました(以下)。
これでも簡単な作業においては充分だったので、そのうちオシロスコープを買おうと思いつつも、結構高価(数万円)なのでついつい見送っていた感じです。

しかし、最近はDS202のようなポータブルなデジタルオシロスコープも安くなってきたので、しかもAliExpressだとなおさら安いということもあり購入することにしました。DS202は、操作がタッチ式ボタンなので(液晶画面上がタッチパネルではない)、やや操作しにくいのですが慣れれば大丈夫だと思います(ツマミや回転式ダイヤルのほうが操作はしやすいのですが)。ただ、据え置き型のオシロスコープと違って、どこにでも持っていけるので、ある意味便利かもしれません。

DS202の中身はこんな感じ。右上にある赤黒プローブは追加で購入(購入時:566円送料込み)しました。どうやら付属のプローブは1セットしか入ってないようなので(消耗品でもある交換可能なプローブ先端部品は4個入ってました)。バッテリーはUSB経由で充電です。
一応、ここに(www.minidso.com)アクセスすれば、最新のファームウェアやPDFマニュアル、そしてForumがあるので、サービスはきちんとしているほうだと思います(基本、中国語か英語ですが)。

AliExpress.com Product - High Quality Digital Hook Probe Mcx for Mini Digital Oscilloscopes DSO201 DS203 DSO QUADこのシリーズ用のフックプローブ 638円(送料込み)


DS202を使ってみる:
ということで、使い勝手はどうか試してみました。
ただ電圧を測っても仕方ないので、何か信号っぽいものはないかと思い、CNCシールドV3.0上のスピンドル用の端子(PWM端子)を計測してみることに。
まずは、CNCシールドV3.0+ArduinoをMacBookにUSB接続し、G Gode Senderでスピンドル可変制御のコマンドである
M03 S500(50%出力)
を入力してみました。
以前の投稿のように、grbl0.9でCNCシールドV3.0を使う場合は、シールドV3.0上のEND STOP Z+かZ-がスピンドル用の端子となるので、それを確かめてみるという感じです。

 右上にDS202のプローブをZ+の白黒端子と接続しています。白端子がPWM、黒端子GNDです。今回は1CHだけの使用です。このプローブ(追加で購入したほう)の先端はピンをくわえられるようになっているので便利です。

コマンドでArduinoにM03 S500を送信したので、予想通りデューティ比50%の矩形波が表示されました。画面下のほうに、計測した値+V:+5.12V、Duty:50%とでています。多少ノイズも含まれているので、Vmax:+5.92Vとなっています。周期は▲T +128uSとなっています。
こんな感じで計測できます。右側にあるタッチ式のS、Mボタンと十字キーで、各種設定や計測を行います。波形の拡大縮小も十字キーで簡単に変えられます。
テスターでもある程度は計測できるのですが、このように矩形波が視覚的に確認できるので、やはりオシロスコープのほうが便利です。今後何かあれば、積極的に使っていこうと思います。

画面をキャプチャする方法:
しかし、ひとつ疑問に思ったのは、この画面をキャプチャ出来ないものか? マニュアルを見てみると、やはりキャプチャできるようです。bmp画像として、右のボタン操作(あるいは右上側面にあるポーズボタンを長押しでショートカット)で可能なようで、このDS202内に保存されるようです。パソコンとDS202をUSB接続すれば、パソコンからDS202にアクセスできるので、内部に保存されたbmpデータをパソコン側に移動するだけです。ちなみにファームウェアをアップデートするときも、USB接続後、パソコン側にダウンロードしたファイルをDS202に書き込むだけです。
この手のものは、大抵Windowsにしか対応してないものが多かったのですが、Macでも問題なくファームウェアアップデートなどできます。

これが↑キャプチャした画像です。

デジタルオシロスコープなので、それなりに機能は色々ついていて便利です。それほど高精度ではないかもしれませんが、8501円にしてはかなり使えると思います。1CHと2CHの波形を合成することもできるようです。機能やスペックを確認したい場合は、マニュアルを見てみるといいと思います。

2016年11月25日金曜日

CNCシールドV3.0とV3.1以上(最新版はV3.51)の違い

Arduinoボードに直接装着できるCNCシールドV3.0とV3.1以上(最新版はV3.51)の違いを書いておきます。CNCシールドがあることで煩わしい配線がすっきりして便利ですが、基本的にはArduinoボードに直接モータードライバやリミットスイッチなどを接続すれば必要ないものでもあります。とは言っても、中国製の格安CNCシールド(クローンのArduino UNOとドライバとのセットなど)があるので、つい買ってしまいます。大体はV3.0だと思うので以下のような違いを理解しておくといいと思います。
開発元であるPROTONEERのサイトに使い方や設定方法などが書いてあるので見てみるといいと思います。


主には:
CNCシールドV3.0(1000円以下):grbl0.8用のピン配列、スピンドルON-OFF制御
CNCシールドV3.1以上(2000円前後):grbl0.9用のピン配列、スピンドル可変制御
という感じです。
最新版V3.51には、リミットスイッチ端子にノイズフィルターもついたようです。
Z軸の高さ調整など行うProbe(下画像:Arduinoボード左下のA5ピン)に関してはこちらへ

grbl0.8とgrbl0.9のピン配列の違い:(追記:最新版grbl1.1の場合はgrbl0.9とピン配列は同じ)
まず、CNCシールドV3.0とV3.1以上の相違点の前に、grbl0.8とgrbl0.9のピン配列の違いを理解しておくといいでしょう。
grbl0.9からは、スピンドルが可変制御(PWM制御)となったので、Arduinoボード上のピン配列が少しだけ変わりました。以下の赤の矩形で囲んだ部分に違いがあります(grblのサイトに違いの説明があります)。

grbl0.8(上画像左)では:
ArduinoボードD12ピン:Spindle Enable(スピンドルON-OFF端子)
ArduinoボードD11ピン:Limit Z-Axis*(Z軸用リミットスイッチ端子)

grbl0.9(上画像右)では:
ArduinoボードD12ピン:Limit Z-Axis*(Z軸用リミットスイッチ端子)
ArduinoボードD11ピン:Variable Spindle PWM(スピンドル可変制御端子)

CNCシールドV3.0はgrbl0.8のピン配列に対応しているため(数年前の仕様)、もしCNCシールドV3.0でgrbl0.9(あるいは1.1)を使用する場合は配線に関して注意が必要です。CNCシールドV3.0でも配線を入れ替えることでgrbl0.9j(あるいは1.1)を使用することができます。
*Arduinoボード上では、上画像に見えるボード右端に縦に並んでいるピン0〜13(D0〜D13ピン)がデジタル入出力ピン(ON-OFF制御用)になります。しかし、3、5、6、9、10、11の6本のピン(ピン番号の頭に−がついているピン:例えば−3のように)だけはPWM出力(256段階可変出力)に設定可能です。そのため、grbl0.9以降ではスピンドル可変制御を導入したことにより、ON-OFF制御にしか設定できなかったD12ピンをPWM制御出力可能なD11と入れ替えたようです。

また、grbl0.8ではシリアル通信の速度となるbaudrateは9600、grbl0.9以上では115200になります。grbl0.8から0.9へアップグレードしたとしても、けっこう内容が変わっているので、そのままgrbl0.8のようには使えないかもしれません。
パソコン上にインストールするG Code Sender(Grblcontroller、Universal-G-Code Sender、bCNCなど )と接続後、
Grbl 0.9j ['$' for help]
コンソール画面にこのように↑でれば、Arduinoにアップロードされているgrblのバージョンが0.9jであることが確認できます。どのバージョンか確認するには、一度接続してみるといいと思います。また、パソコンにArduino IDEがインストールされているなら、シリアルモニタ機能でもコマンド送信することで確認できます(方法についてはこちらのページ中程に書いてあります)。
0.9にバージョンアップした場合は、コマンドや設定も0.8とは違うようなので、再度セッティングし直したほうが良さそうです。例えば、grbl0.8では$17=1がホーミングサイクルON設定に対して、grbl0.9では$22=1がホーミングサイクルON設定となっているので、このへんからして違いがあります。


CNCシールドV3.0とV3.1以上(最新版はV3.51)の違い:
以下は、2016年3月にaitendoで購入したCNCシールドV3.0です(モータードライバA4988を搭載済み、モータードライバについてはこちらへ)。アマゾンなどでも1000円以下で購入可能だと思います(AliExpressなら数百円)。
黄色い枠で囲んだ部分を見てみると、まず右側にSpnEn端子があります。これはgrbl0.8に対応したスピンドルON-OFF制御の端子です(grbl0.9では可変制御に改良)。そして、CNC SHIELDと製品名が書かれています。ここにはバージョンは書かれてなく、そのままCNC SHIELDとしか書いてません。このへんが、V3.0の特徴でしょうか。

それに比べ、以下がその後購入したCNCシールドV3.5です(最新版はV3.51:ブログ右側にAliExpressのリンクがあります)。価格は2000円前後(やや高い)。
V3.0でSpnEnだった端子が、SpnEn(pwm)となっています。そして製品名にもPROTNEER CNC SHIELD V3.5と書かれています。V3.5(あるいはV3.1以上)では、SpnEn(pwm)の端子名が変更になっただけでなく、ピン配列もgrbl0.9に対応しています。grbl0.8対応のV3.0と違って、ピン配列を入れ替えすることなく、grbl0.9をそのまま使えます。それから、右下の方にあるジャンパブロックが、リミットスイッチをオープン状態で5Vにするか0Vにするかを選択可能にします(このあたりの設定や説明は開発元PROTONEERのサイトに書いてあります)。
*V3.5とV3.51の違いは、主にはリミットスイッチ端子にノイズフィルターがついたことでしょうか。


CNCシールドV3.0を使いつつ最新版grbl0.9(grbl1.1も同様)を導入する場合:
安価なCNCシールドV3.0を用いて最新版のgrbl0.9を導入する人も多いと思います。以下のように配線を入れ替えてリミットスイッチやスピンドルと接続することで、特に問題なく使用することができます。
CNCシールドV3.0の右側に並んでいるピンのうち、SpnEnにはZ軸用のリミットスイッチ(Z+とZ-の両方)をパラレルに接続し、かわりにZ+(あるいはZ-)端子には、スピンドルの可変制御用端子(Spindle PWM/ドライバのTTL端子)を接続します。他のX+、X-、Y+、Y-端子には、今まで同様X軸とY軸のリミットスイッチをそれぞれ接続します。リミットスイッチは普段オープンな状態にしておき、スイッチが押されたときにクローズドになるように端子を選んで接続します。リミットスイッチの白端子には普段5Vが通電されています(プルアップ抵抗で5Vになっている)。黒端子はGND(0V)です。白と黒をショートさせると、白端子が0Vになり、リミットスイッチが入ったことを感知する仕組みになっているようです。

CNCシールド上では、各リミットスイッチには+と-(通常、X+:X軸右端、X-:X軸左端、Y+:Y軸奥、Y-:Y軸手前、Z+:Z軸上、Z-:Z軸下)がありますが、回路上ではそれら二つはパラレルに接続されているようです(Arduinoボード上のリミットスイッチ端子はひとつずつしかないので)。
念のため、ここに書いてある内容を鵜呑みにする前に、Arduinoボード(grbl0.9をアップロードしてある)のD11とD12に対応するピンが、CNCシールドV3.0のどのピンとつながっているのか、各自がテスターで確認したほうが安全だと思います。
注意点:
おそらくCNCシールドV3.0(V3.51未満)の場合は、リミットスイッチにノイズが発生するため、コンデンサーをリミットスイッチ用の端子につけたほうがよさそうです。これについてはこちらへ


grbl0.9におけるスピンドル可変制御について:
grbl0.9であれば、スピンドルの可変制御(スピード調節)が可能です。レーザーを使う場合もレーザーの出力調整が可能となります。スピンドルのモータードライバやレーザードライバのTTL端子と接続することになります(ものによってはON-OFF制御しかできないドライバもあるので、grbl0.9を使う場合は可変制御可能なドライバを使用することをおすすめします)。ちなみに、Arduino(CNCシールド)のPWM端子からは0〜5V(通常8bit:256段階、D11をtimer2にすれば16bit:65536段階)の信号が出されます。
*最新版grbl1.1の新機能レーザーモードについてはこちらへ(本家)

grbl0.9においては、
M03(スピンドルを時計回りに回転)
M04(スピンドルを反時計回りに回転)
M05(スピンドル停止)
M30(プログラム終了)

例えば、
M03 S1000
を入力すれば、スピンドルをオンにして出力100%で回転となります。Sは出力値です。
S0で0%、S500で50%、S1000で100%という感じで出力調整可能です。
スピンドルを停止する場合は、
M05 S0
などと入力するといいと思います。
終了する場合は、
M30
がGコードの最後にきます。

grbl0.8まではスピンドルON-OFF制御だったので、grbl0.9を使用するならMコードも覚えておいたほうがいいと思います。


CNCシールドを使うまでの準備や設定などについて:
CNCシールドをArduinoボードに装着したからといってもすぐに使えるわけではありません。以下のような準備が必要です。
・Arduino IDE(Arduinoにプログラムするためのソフト)をPCへインストール(本家サイトの説明
   *クローンのArduinoの場合はシリアル通信用のドライバが別途必要な場合もあります。
   *HexUploaderやXloaderを使う場合はArduino IDEは不要ですが、元々Arduinoを使っているなら、IDEを使ってアップロードしたほうが簡単かも(シリアルモニタで簡単なGコードを送信することも可能なので)。
・Arduino IDEを使ってArduinoボードにgrbl0.9をアップロードする(方法はこちらへ
・Gコード送信ソフトをPCにインストールする(ここ、もしくはここ、あるいはここ
・Gコード送信ソフトを用いてCNCマシンの各種設定をする(ここ
・CNCシールド上のモータードライバの電流制限設定をする(ここ
・CNCシールド(V3.51未満の場合)のリミットスイッチ端子にノイズフィルタ(コンデンサ)をつける(ここ
・電源、モーターやリミットスイッチをつないで試運転する(ここ、あるいはここ
という感じでしょうか。

関連:

人気の投稿