PR

自作CNCの精度不足を解消!ステッピングモーター交換とGRBLのキャリブレーション方法【自作CNC】

CNC自作
スポンサーリンク

はじめに

こんにちは。にんじんです🥕

それでは自作CNC製作記第4回をはじめます。

ようやく、マシンの精度の要となるオリエンタルモーター製のステッピングモーターが到着しました。さっそく、前回から課題となっていた「移動距離が安定しない問題」の再検証から進めていきます。

なお、今回は検証のためにステッピングモーターを1台のみ購入しました。移動距離が不安定な原因がモーター以外(フレームの剛性不足や基板の不具合など)にあった場合、不要な出費になってしまうためです。原因を完全に特定した上で、もう1台を追加する計画で進めていきます。

スポンサーリンク

高品質なステッピングモーターへの交換と24V電源の準備

オリエンタルモーター製「PKP244D08A2」の導入

今回購入したのは、信頼のオリエンタルモーター製 PKP244D08A2 です。さっそく既存のモーターと交換していきます。

接続ケーブルも同時に購入しました
型番:LC2B10E

モーターの電源には 24V 6A のものを使用しました。 本当は余裕を持って 8A 欲しかったのですが、手元になかったので今回は 6A で妥協します(笑)。

💡 おすすめパーツはこちら

スポンサーリンク

CNCjsでの動作検証とGRBLパラメータ(0)のキャリブレーション

CNCjsのジョイスティック(手動操作)機能を使い、X軸を10mm移動させた際の実測値を測定します。

  • 測定結果:9.93mm(何度やっても安定!)

ブレる原因は完全にこれまでの精度ブレの原因は、完全に以前のステッピングモーターにあったことが特定できました。これで安心して作業を進められます。

実測値に基づくステップ数の計算式と設定変更の手順

実測値が9.93mmとなり、指示した10mmに対してわずかに不足しているため、ここからキャリブレーション(調整)を行います。
調整は、GRBLの設定値である「$100(X軸の1mmあたりのステップ数)」を書き換えることで対応します。

  • 現在の設定値($100): 50.000
  • 計算式: 現在の設定値 ×(指示した距離 ÷ 実測の距離)
  • 計算: $50 \times (10 \div 9.93) = 50.352$

計算結果をもとに、CNCjsのターミナルから「$100=50.352」と入力して設定を変更しました。これにより、指示通りにぴったり10mm動作するようになります。

CNCjs接続時に「ワーク位置が0にならない」場合の考え方と初期化コマンド

CNCjsからArduinoに接続した直後、ワーク位置が「X 0.000 / Y 0.000」になっていないことがあります。 結論から言うと、運用の仕様上、これは特に問題ありません。

なぜなら、実際に加工(切削や刻印)を行う際は、以下の手順を踏むためです。

  1. 手動操作(ジョグ移動)で工具を材料の加工開始位置へ移動させる
  2. 工具の先端(またはレーザー)を材料の表面に合わせる
  3. その位置を基準(ローカル原点)として「ゼロ」に設定する

どうしても接続初期の座標表示をリセットしたい場合は、実機を基準位置に戻した上で、CNCjsのターミナルから以下のコマンドを実行してください。

ワーク位置を「X 0.000 / Y 0.000」にしたい場合は、以下のコマンドをCNCjsのターミナルで実行

G10 L20 P1 X0 Y0 Z0

※環境によっては、このコマンドをコピー&ペーストで実行するとエラーを返す場合があります。その際は、コンソールへ直接手打ちで入力すると正常にワーク位置が「0, 0」に書き換わります。

スポンサーリンク

テスト用GコードによるX軸の動作確認と送り速度(F値)の設定

次のステップとして「ホーミング(原点復帰)」や「ソフトリミット(移動限界の設定)」の検証に進みたいところですが、GRBLの仕様として、これらはY軸も正常に実装されていないと有効化できません。

そこで今回は、先行してX軸のみをGコードで動作させるテストを行います。「test.nc」という名前のファイルを作成し、CNCjsにアップロードして実行します。

G21         ; 単位をミリメートルに設定
G90 ; アブソリュート(絶対座標)モード
G0 X10 ; X10の位置へ早送り

G1 X110 F800 ; 速度800でX110へ移動
G1 X10 F800 ; 速度800でX10へ戻る

G1 X110 F500 ; 速度500でX110へ移動
G1 X10 F500 ; 速度500でX10へ戻る

G1 X110 F800 ; 速度800でX110へ移動
G1 X10 F800 ; 速度800でX10へ戻る

💡 GRBLパラメータ(0)に潜む最大速度の制限と解除方法

Gコード内にある「F800」や「F500」という記述は、送り速度(Feedrate、1分間に何ミリ進むか)を指定するコマンドです。「F500」であれば分速500mm、「F1000」であれば分速1000mmという意味になります。

  • F500 = 1分間に 500mm 進む
  • F1000 = 1分間に 1000mm 進む

今回のコードでは、速度に変化を付けるためにF800とF500を混在させましたが、実機を動かしてみるとどちらの指示でも同じ速度で動作してしまいました。

調査したところ、原因はGRBLのパラメータ設定「$110(X軸の最大速度)」にありました。この初期値が「500」に制限されていたため、Gコード側でそれ以上の速度を指定しても頭打ちになっていたのが理由です。

ターミナルから「$110=800」に変更して再度実行したところ、指示通りに速度が切り替わる動作を確認することができました。

スポンサーリンク

まとめと次回予告:両軸を揃えたホーミングとソフトリミット設定へ

検証を終え、精度の問題がクリアできましたので、もう1台のステッピングモーターを追加手配しました。

次回の第5回では、X軸・Y軸の両軸を揃えた環境を構築し、いよいよ「ホーミング」および「ソフトリミット」の本格的な設定へと進めていきます。

スポンサーリンク

主なシリーズ





コメント