grbl の設定と動作テスト

自作レーザ加工機

 
grbl の設定を行います。
これもちょっとだけ引っかかったのですが、気がつけば「なんだそんなことか」というレベルで解決しました。初めてお使いの方はひょっとすると嵌るかもしれませんのでやや詳しく書いておきます。

まず、grblが動作するArduinoをgrbl controllerに接続すると下記のように現在のステータスを吐いてきます。

そして、このパラメータをいじって設定をしていくわけですが、「Advanced」タブのgrbl settingsを押すと、下のようにステータスを一覧化したウィンドウが開きます。
ここの値を任意に書き換えてApplyを押すと変更が適用されるというものです。
下の画像では私の加工機の状態に合わせて「dir port invert mask」をいじってY軸だけ送り/戻しのロジックを反転させています。
このあたりは GitHub に解説されています

ということで、ここをさくさく設定していけばいいんだと思っていたら嵌りました。
それは step/mm の設定、下の画像で84.000が三つ並んでいるところです。ここのデフォルトの値は250.000になっています。
この値は「いくつstepパルスを送ったらそれぞれの軸が1mm動くか」を設定するところで、この値がずれていると図面通りの加工が行われなくなります。
たとえば100パルスで1mm動く軸があるときにこの値を50に設定しますと、コントローラは50パルス送って「1mm動いたはず」と思うわけですが、実際の加工機の軸は0.5mmしか動きません。結果的に送ったGコードの1/2スケールの加工が行われてしまいます。

で、何が嵌ったのかというと、たとえば下の図のようにx軸のステップを50に設定しようとしたとします。
この状態でApplyすると、

ちょっと見にくいですが、ステータスの最下段に、
 >$19=50
 error: Invalid statement
という表示が出ています。「有効な記述じゃないよ」というエラーを起こしています。
あれれ、であります。

で、いろいろと値を変えてみたり「.000」をつけてみたりしましたが、一向にうまくいきません。
おかしいおかしいと思いつつもう一度 GitHubを眺めていると、

0, 1 and 2 – [X,Y,Z] steps/mm

Grbl needs to know how far each step will take the tool in reality. To calculate steps/mm for an axis of your machine you need to know:
  • The mm traveled per revolution of your stepper motor. This is dependent on your belt drive gears or lead screw pitch.
  • The full steps per revolution of your steppers (typically 200)
  • The microsteps per step of your controller (typically 1, 2, 4, 8, or 16). Tip: Using high microstep values (e.g., 16) can reduce your stepper motor torque, so use the lowest that gives you the desired axis resolution and comfortable running properties.
The steps/mm can then be calculated like this: steps_per_mm = (steps_per_revolution*microsteps)/mm_per_rev
Compute this value for every axis and write these settings to Grbl.
この部分ですが、なんと、

0, 1 and 2 – [X,Y,Z] steps/mm

とあるじゃないですか。
先ほどのエラーは、

>$19=50
 error: Invalid statement

です。 $19 になっているのです。これでした。

ということは….こうか、と思ってコマンドウィンドウに下のように入れてみましたところ、うまく設定が出来ました。

ようは設定一覧ウィンドウの表とその書き込み先のリンクがおかしいだけでした。
ということで、正しく値を設定し、加速度等適切に設定しました。

ではテストであります。
まずは基板を繋いだ状態で、△▽ボタンを押してジョグを動かし問題が無いことを確認します。

適当なGコードを描かせてみましょう。

レーザのON/OFFのところを作りこんでおりませんので、そこはマニュアル(笑)ですが、ちゃんと動いているようです。

もうちょっと複雑なものも描かせてみます。ここはレーザ無しの空撃ちで。

動画はこんな感じです。

とりあえず動くようになりましたが、今後使っていくかどうかになると「うーん」という感じです。
やはりMACH3に比べるともう少しがんばって欲しい感じです。
商用ソフトと比較するのは酷だとは思いますが、たとえば、

  • すぐに止まらない
    Arduinoに転送した分は動いてしまう。
    Arduino側にポートがあるのでそこにスイッチをつければ解決すると思われます。
  • リアルタイムで速度の可変が出来ない
    この速度じゃちょっと切れてないかなあ、というときにMach3では10%遅くするといったことが出来る。
  • 任意の行から描画を始められない
  • 描画の状況表示が荒くて飛び飛びになる
などなど、いくらでも挙げられます。
もう少し情報を集めていじってみたいと思います。
USBで動かせるというのは最高にありがたいところなので、何とかしたいのです。

コメント