サイトロゴ

【XYペンプロッター制作③】CNCシールドの設定「マイクロステップ分解能」

著者画像
Toshihiko Arai

はじめに

こんなこと、やります。 - CNCシールドでマイクロステップ分解能の設定 - 単位mmあたりのステップ数[step/mm]の算出 - Grblで設定値の変更

この記事では、精度を出すためにステッピングモータの動かす単位をできるだけ小さくする「マイクロステップ分解能の設定」を行います。

マイクロステップ分解能の設定

ここでは、ステッピングモータのマイクロステップ分解能の設定を行います。マイクロステップの値を小さくすることで、ステッピングモータをより細かく動かす事ができます。つまりCNC工作の精度を上げたい場合は、マイクロステップ値を適正なものにします。

CNCシールド端子をショート

モータドライバの下に配置されている6つのピンで、マイクロステップの設定を行うことができます。 CNCシールドV3.00、A4988モータドライバの場合、次の表のマイクロステップ値となります。

M0 M1 M2 マイクロステップ
L L L フルステップ 1/1
H L L 1/2
L H L 1/4
H H L 1/8
H H H 1/16

開放状態がL、ショートさせるとHになります。ここでは、最大の分解能である1/16に設定しました。

単位mmあたりのステップ数の算出

実際にGコードでCNC工作するためには、ステッピングモータのステップ数でどれだけ移動するかあらかじめ計算し、Grblに設定しなければなりません。当然、ステッピングモータの種類や、タイミングベルト、プーリ、マイクロステップの設定値によって速度は異なります。ここでは次のようにして速度を算出しました。

使用したタイミングベルトのピッチは2mmです。また、タイミングプーリには歯が20個ついているので、1回転すると40mm移動することになります。

ステッピングモータは、 の記事で使用した SM-42BYG011 を使用しました。データシートによれば200[step/回転]となります。

まとめると次のとおりです。

  • 分解能、1/16
  • タイミングベルト&プーリ、40[mm/回転]
  • ステッピングモータ、200[step/回転]

次式により、ステッピングモータを1回転させるためには3200ステップ必要になります。

\[ 200 \times 16 = 3200 [step/回転] \]

さらに次式により、タイミングベルトを使って1mm移動させるには、80ステップ必要です。

\[ \frac{3200}{40} = 80 [step/mm]\]

ここで算出された80[step/mm]を、Grblの設定値に入力します。

Grbl 0.8cの設定値一覧

ここで、Grbl 0.8cの設定値一覧を確認します。ただし、Grbl 0.9以降の場合は、番号と内容が大きく変わってますのでご注意ください。 $$コマンドで設定値一覧を表示できます。

番号 内容 設定値 意味
$0 x, step/mm 250 X軸の単位mmあたりのステップ数
$1 y, step/mm 250 y軸の単位mmあたりのステップ数
$2 z, step/mm 250 z軸の単位mmあたりのステップ数
$3 step pulse, usec 10
$4 default feed, mm/min 250
$5 default seek, mm/min 500
$6 step port invert mask, int:11000000 192
$7 step idle delay, msec 25
$8 acceleration, mm/sec^2 10
$9 junction deviation, mm 0.05
$10 arc, mm/segment 0.1
$11 n-arc correction, int 25
$12 n-decimals, int 3
$13 report inches, bool 0
$14 auto start, bool 1
$15 invert step enable, bool 0
$16 hard limits, bool 0 リミットスイッチの有効化
$17 homing cycle, bool 0 ホーミングサイクルの有効化
$18 homing dir invert mask, int:00000000 0
$19 homing feed, mm/min 25 ホーミング中に座標ゼロポイントを決定するときの速度設定
$20 homing seek, mm/min 250 ホーミング中にリミットスイッチを探すときの速度設定
$21 homing debounce, msec 100 ホーミング時でリミットスイッチを押すときのチャタリング/デバウンス防止のためのディレイ時間設定
$22 homing pull-off, mm 1 ホーミングサイクル後、リミットスイッチから少しだけ離れておく距離(事故防止のため)

この中で、今回変更が必要となる設定値は、$0の「x, step/mm」です。

Grblで設定値の変更

Grblの設定値を変更します。Grbl 0.8cでは、$0がX軸の単位mmあたりのステップ数[step/mm]になってます。デフォルトでは250[step/mm]ですが、先ほど計算された80[step/mm]を設定します。

GRBLコントローラなどで、つぎのコードを入力して設定値を変更します。

$0=80

この後、たとえばちょうど50mmだけ移動させてみましょう。G01 X50を命令すると、こちらの動画のようにジャスト50mmの移動ができました。

https://www.youtube.com/shorts/PzahGlPi_ts

ピッタリ50mmの移動に成功です!

分解能1/16 プーリ40mm/回転 モータ200step/回転 以上より80step/mmが導き出され、$0=80で設定値を変更

G01 X50で移動させました。

さて、この後リミットスイッチを取り付けてホーミング(機械原点復帰)を行いたかったのですが、使っていたGRBLコントローラとGrbl v0.8が少し古くて問題があったため、Grbl v0.9をインストールしCNCjsを使うことにしました。

関連記事