GRBLとは。パラメーターと設定方法

GRBL情報がバラバラなのでまとめを書いていきます。かきかけ

GRBLはArduino上で動作するオープンソースのCNC制御のためのファームウェアです。
レーザー加工機、CNCフライス、ペンプロッターなどを自作する際に利用することができます。

より詳細な内容はGitHubに記載されていますのでそちらをご覧ください。ここでは重要そうな一部を日本語で説明します。

導入
GRBLはArduinoやArduinoベースの制御用ボードにインストールして使用します。

市販のCNCキットに付属するCNC用の制御ボード(CNCxPROなど)にはあらかじめインストールされていますので手動でインストールする必要はありません。

以下の場合には手動でインストールを行う必要があります。

  • 普通のArduinoにCNCシールドを載せて運用する
  • ファームウェアの破損が原因と思われる動作不良がある
  • アップデートを行う

インストール方法は下記の記事を参考にしてください。

■操作するソフトウェアと設定方法
GRBLで制御されるCNCマシンの操作、設定はGRBLに対応したソフトウェアをパソコンにインストールして行うことができます。
現在動作確認できているソフトウェアは

  • CNCjs (GRBLのバージョン1.1fまで問題なく動作)
  • GRBL controller(GRBLのバージョン0.9まで動作、それ以降は表示に難あり)

です。Avalontechで扱っている制御ボード(CNCxPRO系)は1.1以降のものがインストールされていますのでCNCjsがおススメです。中華CNCの場合0.9が使われている場合がありますのでその場合は任意で選択してください。GRBLのバージョンは上記のソフトを使用して制御ボードとパソコンを接続したときに確認できます。

CNCjsでパソコンと制御ボードを接続するとコンソールにGRBLのバージョンとパラメーターが表示されます。
65fcd19d506432dc2f00613f36a942f24b4ab2c7_1_690x364

このパラメーター($1~$255)の数値を変更することによってマシンの挙動(動く速さやXYZの方向)が変更されます。

例えばCNCのX方向最大速度は最初

$100=2500

となっており、これは最大速度2500mm/min(1分間に2.5メートル進む速さ)という設定になっています。
これを

$100=1500

と書き換えることで最大速度1500mm/minに設定変更することができます。

このパラメーターの書き換えは、コンソールの一番下の数値を入力できる部分に直接打ち込んで行います。
$100=1500にしたい場合は $100=1500 と打ち込んでエンターキーを押すとパラメータが変更されます。半角で入力してください。

それぞれのパラメーターの意味は横に英語で書かれていますが、直訳するとそれぞれ

$ 0 = 10(ステップパルス、usec)
$ 1 = 255(ステップアイドル遅延、msec)
$ 2 = 0(ステップポート反転マスク:00000000 )
$ 3 = 0(DIRポート反転マスク:00000000)
$ 4 = 1(ステップ反転、BOOLを有効)(ボードV1、V2、V3マット= $ 4 = 0 -光沢ボードV3 = $ 4 = 1)
$ 5= 0(制限ピンが反転(bool)
$ 6 = 0(プローブピン反転、ブール)
$ 10 = 3(ステータスレポートマスク:00000011)
$ 11 = 0.010(ジャンクション偏差、mm)
$ 12 = 0.002(アーク許容値、mm)
$ 13 = 0
$ 20 = 0(ソフトリミット、ブール)
$ 21 = 0(ハードリミット、ブール)
$ 22 = 0(原点復帰サイクル、ブール)
$ 23 = 0(原点復帰マスク:00000000)
$ 24 = 2000.000(原点送り、mm / min)
$ 25 = 1000.000(原点復帰、mm / min)
$ 26 = 250(原点復帰、msec)
$ 27 = 1.000(原点復帰、mm)
$ 100 = 199.098 (X、ステップMM)
$ 101 = 199.100(Y、ステップ/ mm)
$ 102 = 199.100(Z、ステップ/ mm)
$ 110 = 1000.000(Xの最大速度、MM /分)
$ 111 = 1000.000(Y最大速度、MM /分)
$ 112 = 1000.000( Z最大速度、MM /分)
$ 120= 100.000(X加速度、MM /秒^ 2)
$ 121 = 100.000(Y加速度、MM /秒^ 2)
$ 122 = 100.000(Z加速度、MM /秒^ 2)
$ 130 = 750.000 (x最大移動距離、mm)
$ 131 = 320.000(y最大移動距離、mm)
$ 132 = 60.000(z最大移動距離、mm)

となっています。先人の方が更にわかりやすい記録手作りCNCフライス〔Grbl設定編〕を残してくれていますのでそれぞれの意味はそちらや英語の原文を確認してください。



組み立て終わったら確認しておくべき設定

ほとんどの設定は最初からいい感じになっていますので変更する必要はありません。マシンの個体差や組み立て方によって動作に影響がある部分だけ調整してあげます。

$3=〇 (モーターの回転方向の設定)

モーターの取り付け位置や配線の順番によってはモーターが思っていた方向と逆に動く場合があります。
組み立て直すよりも設定で逆転させるほうが楽ちんなのでここで変更してやります。

$$と入力して現在の$3設定を確認する。

$3=0の場合はそのまま、$3=0以外の場合は一度$3=0に変更し、どのモーターも反転していない状態にしてからXYZの軸が逆に動いていないか確認する。

逆に動く軸があった場合はその軸だけ反転するように$3=〇 の設定を変更する。
$3=0→どの軸も反転しない
$3=1→X軸だけ反転
$3=2→Y軸だけ反転
$3=3→X軸とY軸が反転
$3=4→Z軸だけ反転
$3=5→X軸とZ軸が反転
$3=6→Y軸とZ軸が反転
$3=7→すべての軸を反転



$4=1 (ボードの種類?)

自分でGRBLをボードに書き込んだときのみ要注意です
CNCxPROや一部のボード$4=0になっていると動作しません。自分でGRBLを導入すると$4=0になっている場合がありますので確認してください。



一番大事な設定です。必ず調整してください。
$ 100 = 200前後 (Xが1mm進むときにモーターをどれだけ回転させるか)
$ 101 = 200前後(Yが~同上
$ 102 = 200前後(Zが~同上

精度に関わる部分です。
AvalonTechの組み立てキットの部品は

  • モーターは1回転200ステップ(1回転が200分割されているステッピングモーター)
  • リードスクリュは1回転させると8mm進む(リード8mm)
  • 制御ボードのマイクロステップ設定が1/8(モーターの回転の細かさを8倍に細かくしている)

という構成になっています。
マイクロステップが1/8なのでモーターを1回転させるのに必要なステップ数が8倍となり、モーターを1回転させるのに必要なステップ数は1600
モーター1回転(1600ステップ)でリードスクリュが1回転して8mm進むので、1mm進むのに必要なステップ数は1600/8で200になります。

部品も組み立ても完璧なら$100、$101、$102は全部200でいいのですが、実際は部品の製造誤差や組み立て精度によってばらつきがありますのでここを実際の動きを測って修正してやる必要があります。
だいたい200でいいのですが、ボールペンで四角形を描いてみたり実際に削ったりした結果を測定して値を調整してください。

リミットスイッチ関係の設定

  • $5=0
    $5=1にすることでリミットスイッチのトリガーをハイにするかローにするかを逆転させます。
    NCを使うかNOを使うかで切り替えてください。

  • $22=1に設定することで$H コマンドでホーミング機能が使えるようになります。(恐らくデフォルトだとオフになっています。)

  • |$20=0|Soft limits, boolean|
    有効($20=1)にすると$130~$132の最大移動距離より離れた距離では止まるようになります。
    最大移動距離を超えた場所に行く命令が送信されたところで止まるので、加工の途中でエラーで停止するような形になります。衝突するよりはいいですが、木材の加工の途中で止まると摩擦熱で燃えないか少し不安。

  • |$21=0|Hard limits, boolean|
    有効にするとスイッチが押されると停止するようになります。
    マキタのルーターとリミットスイッチのケーブルが接していると誤作動するので、マキタルーターと同じケーブルキャリアに入れている場合はオフにしておかないと止まります。

  • $23=0|Homing dir invert, mask|
    ホーミングを押したときのプラス・マイナス方向を逆転させます。設定方法はXYZのモーター反転と同じなので割愛します。

  • |$24=25.000|Homing feed, mm/min|
    スイッチにそっと近づいて原点の位置を確定するときの移動速度

  • |$25=500.000|Homing seek, mm/min|
    スイッチの場所までとりあえずガーっと移動する速度。この速度でスイッチの場所を検知してから$24の速度でもう一度原点の場所を確認します。

  • |$26=250|Homing debounce, milliseconds|
    無視するチャタリング時間の設定、と認識しています。難しいので多分ですが。
    スイッチを押される瞬間は振動とか電気ノイズでONとOFFが短時間で入れ替わります。これをそのまま制御に使うと動作がおかしくなるので、ノイズが発生している時間の信号は無視します。この無視する時間の長さをここで設定しています。デフォルトのままでOKです。

  • |$27=1.000|Homing pull-off, mm|
    原点位置で止まるとスイッチが押されたままになるので、原点位置がわかったらこの数値ぶんだけ移動したところで待機します。

ArtCNCLargeの場合注意
ArtCNCのY軸のみ他のCNC組立キットと異なり、太いリードスクリューを使っているためナットブロックの摩擦が大きいようです。
デフォルトの最大速度ではモーターのトルクが負けることがあるので各軸の最大速度を

$ 110 = 1800.000(Xの最大速度、MM /分)
$ 111 = 1800.000(Y最大速度、MM /分)
$ 112 = 1800.000( Z最大速度、MM /分)

に変更して使用することをおすすめします。

「いいね!」 1

300mmのデータで切り出し値が約270mmになりました。

$=100等の調整をしてみたのですが、入力できませんでした。
具体的な操作方法を解説してください。

判る人だけ分かるような文章でなく誰でもわかるようにおねがいします。

すみません。入力出来て修正出来ました。

説明が分かりにくくて申し訳ありません…
$=100調整はして頂けたようですが、随時書き直しつつ、解説動画を作ってもらっておりますので、もうしばらくで詳しくわかりやすい説明資料を用意できます。
動画ができましたらFusionのフォーラムの方でもご案内します。