コンテンツへスキップ

自作CNCを動かすGrblとは?CNCシールドの配線と外部電源の選び方

FabLab Itoshimaでは、しばらく使えなくなっていたShapeokoを、ArduinoとCNCシールドを使って復活させる実験を進めています。

自作CNCの情報を調べていると、必ずと言ってよいほど登場するのが「Grbl(グラブル)」です。しかし、Arduino、CNCシールド、モータードライバー、ステッピングモーター、外部電源がそれぞれ何をしているのか、最初は分かりにくいものです。

この記事では、Grblの基本的な役割から、4線式ステッピングモーターの接続、外部電源の選び方、初回通電時の安全確認までをまとめます。

注意:CNC装置は、刃物、高速回転するスピンドル、移動する機構、商用電源を扱います。配線は必ず電源を切った状態で行ってください。機器の取扱説明書と実物の基板表示を優先し、不明な場合は通電しないでください。

Grblとは

Grblは、Arduinoなどのマイコン上で動作するオープンソースのCNC制御用ファームウェアです。

パソコンから送られてきたG-codeを読み取り、X・Y・Z軸のステッピングモーターを動かすためのSTEP信号とDIR信号を生成します。つまり、加工データと実際の機械の動きをつなぐ役割を担っています。

基本的な情報の流れは次のようになります。

CADで形状を設計
    ↓
CAMで工具経路を作成
    ↓
G-codeを出力
    ↓
G-code SenderからUSBで送信
    ↓
Arduino Uno上のGrbl
    ↓
CNCシールドとモータードライバー
    ↓
X・Y・Z軸のステッピングモーター

GrblはArduino Unoなどに搭載されているATmega328Pで動作し、USBシリアル通信を通してコマンドを受け取ります。設定確認には $$、現在状態の確認には ? などのコマンドを使用します。

CNCシールドは何をしているのか

CNCシールドは、Arduino Unoとモータードライバー、ステッピングモーター、リミットスイッチなどを接続しやすくするための基板です。

CNCシールド自体が大電流でモーターを直接制御しているわけではありません。各軸のソケットに挿したA4988やDRV8825などのモータードライバーが、Arduinoから受け取ったSTEP・DIR信号をもとにモーターのコイル電流を制御します。

パソコン
  │ USB
Arduino Uno(Grbl)
  │ STEP・DIR・ENABLE
CNCシールド
  ├─ X軸ドライバー ─ X軸モーター
  ├─ Y軸ドライバー ─ Y軸モーター
  └─ Z軸ドライバー ─ Z軸モーター

外部DC電源 ─ CNCシールドのVMOT・GND

Arduino側の制御電源と、ステッピングモーターを動かす外部電源は役割が異なります。USBだけでは一般的なCNC用ステッピングモーターを動かせません。

CNCシールドへドライバーを取り付ける

最初に、使用するドライバーがA4988なのかDRV8825なのかを確認します。同じような形でも、電源端子や部品の配置が違う互換基板があります。

ドライバーを逆向きに挿すと、Arduino、CNCシールド、ドライバーが破損する可能性があります。CNCシールド上の ENSTEPDIRGNDVMOTなどの表示と、ドライバー基板の表示を照合してください。可変抵抗の向きだけで判断するのは危険です。

マイクロステップを使う場合は、ドライバーの下にあるジャンパーを設定します。ジャンパーと分割数の対応はA4988とDRV8825で異なるため、使用するドライバーの資料を確認します。

4線式ステッピングモーターの配線

実際の配線動画:実際のCNCシールドとX・Y・Z軸の配線を38秒で紹介します。製品によって端子配置や配線色が異なるため、記事内の注意事項と実機の仕様書も併せて確認してください。

一般的なバイポーラ型ステッピングモーターには、内部に2組のコイルがあります。

コイルA:A1 ─── A2
コイルB:B1 ─── B2

重要なのは、同じコイルの2本を一組として接続することです。線の色はメーカーや製品によって異なるため、「赤と青が必ず同じコイル」のように色だけで決めてはいけません。

テスターでコイルの組を確認する方法

  1. Arduino、CNCシールド、外部電源をすべて切る
  2. モーターをドライバーから外す
  3. テスターを抵抗測定または導通確認にする
  4. 4本の線から、抵抗が測定できる2本の組を探す
  5. その2本をコイルA、残りの2本をコイルBとして記録する
  6. コイルAをシールドの1A・1B、コイルBを2A・2Bへ接続する

CNCシールドによっては、端子が A+・A-・B+・B-2B・2A・1A・1B などと表示されています。必ず実物のシルク印刷または回路図を確認します。

モーターが反対方向へ動いた場合は、電源を切ってから、片方のコイルの2本だけを入れ替えると回転方向を反転できます。Grblの方向反転設定 $3 を使う方法もあります。

モーターが回転せず振動するだけの場合は、コイルの組み合わせが間違っている可能性があります。すぐに停止し、配線を確認してください。

外部電源は12Vと24Vのどちらがよいか

外部電源は、次のすべてを確認してから選びます。

  • CNCシールドの許容入力電圧
  • モータードライバーの許容電圧
  • 基板上の電解コンデンサーの耐圧
  • ステッピングモーターの相電流
  • 使用する軸数
  • スピンドル電源を共用するかどうか

12V電源

12Vは、小型のNEMA17モーターを使った試作機や初期動作確認で扱いやすい選択です。24Vより高速域のトルクが下がる場合がありますが、基板や部品の耐圧に余裕を持たせやすくなります。

24V電源

24Vは、適切な定電流ドライバーと組み合わせることで、モーター電流の立ち上がりが速くなり、高速域の動作を改善できる場合があります。ただし、CNCシールドの互換品に25V耐圧のコンデンサーが搭載されている場合など、24V運用に十分な余裕がない構成もあります。

「A4988が35Vまで対応しているから、シールド全体も35Vで使える」とは限りません。最も耐圧の低い部品を基準に判断します。

おすすめする外部電源の考え方

使用モーターの型番が未確認の段階では、特定の電源を購入決定することはできません。小型NEMA17を3軸、A4988または同等の定電流ドライバーで動かす構成なら、次を出発点の候補とします。

  • 安全重視の初期確認:12V・5A程度の安定化DC電源
  • 仕様確認後の通常運用:24V・4.5〜6.5A程度の安定化DC電源
  • 電源容量:計算値に20〜30%程度の余裕を持たせる
  • 過電流・過電圧・過熱保護のある製品を選ぶ
  • AC入力端子が露出する電源は、接地されたケース内に固定する

品質と入手性を重視する場合は、Mean Wellなど仕様書を確認できる産業用スイッチング電源が候補になります。たとえば24V・4.5Aクラスや24V・6.5Aクラスです。ただし、実際の選定はモーター、ドライバー、CNCシールドの仕様確認後に行います。

ノートパソコン用ACアダプター型の電源を使う場合も、電圧、極性、電流容量、コネクターの定格を確認します。電流値は「電源が常にその電流を押し込む」という意味ではなく、負荷へ供給できる上限です。

300Wスピンドルの電源は分ける

300Wスピンドルは、CNCシールドのステッピングモーター用端子やArduinoの5V端子から直接給電できません。

スピンドルには、スピンドルの定格に合った専用電源と速度制御装置を使用します。Grblのスピンドル端子は、一般にON・OFFやPWMなどの制御信号として使うもので、300Wの電力を直接供給する端子ではありません。

スピンドルのノイズがUSB通信やリミットスイッチへ影響する場合があります。モーター配線と信号線を離し、必要に応じてシールド線、フェライトコア、適切な接地、電源分離を検討します。

A4988の電流制限を調整する

ステッピングモーターの相電流は、外部電源の電流値ではなく、A4988などのドライバーにある電流制限で管理します。

電流制限が低すぎると脱調しやすくなり、高すぎるとモーターやドライバーが過熱します。A4988の電流制限値はVREFと電流検出抵抗から求めますが、互換基板は検出抵抗の値が異なる場合があります。インターネット上のVREF値をそのまま流用せず、ドライバー基板の型番、回路、検出抵抗を確認してください。

A4988は電流制限を備えていますが、実際に連続して扱える電流は冷却条件に左右されます。ヒートシンクと送風を用意し、最初は低い設定から始めます。

初回通電前のチェックリスト

  • 外部電源のプラスとマイナスが正しい
  • CNCシールドとドライバーの許容電圧内である
  • 基板上の電解コンデンサーの耐圧に余裕がある
  • ドライバーの向きが正しい
  • ステッピングモーターのコイルの組を確認した
  • モーターを通電中に抜き差ししない
  • A4988などの電流制限を低めから調整する
  • ヒートシンクと必要な送風を用意した
  • スピンドルの刃物を外すか、十分に安全な状態にした
  • 各軸が機械端から離れている
  • 緊急停止できる位置に電源スイッチがある
  • 人や配線が可動部へ巻き込まれない

特に、通電中にステッピングモーターのコネクターを抜き差ししないことが重要です。誘導性負荷による電圧変動でドライバーが破損する可能性があります。

Grblで最初に確認する設定

Arduinoへ接続したら、G-code Senderまたはシリアルターミナルから $$ を送信し、現在の設定を保存します。変更前の値を記録しておくと、問題が起きたときに戻せます。

代表的な設定は次のとおりです。

  • $100$102:X・Y・Z軸のsteps/mm
  • $110$112:各軸の最高速度
  • $120$122:各軸の加速度
  • $3:軸方向の反転
  • $21:ハードリミット
  • $22:ホーミング
  • $27:ホーミング後のプルオフ距離
  • $30$31:スピンドル回転数の最大・最小
  • $32:レーザーモード

ベルト駆動軸のsteps/mmは、基本的に次の式から求められます。

steps/mm =
(モーターの1回転あたりステップ数 × マイクロステップ分割数)
÷(ベルトピッチ × プーリー歯数)

リードスクリュー駆動の場合は、1回転で進む距離を使います。

steps/mm =
(モーターの1回転あたりステップ数 × マイクロステップ分割数)
÷ リードスクリューの1回転あたり移動量

計算値を入力した後、低速で10mmなどの短い距離を動かして実測し、補正します。最初から高速・長距離で動かさないようにします。

まとめ

Grblを使った自作CNCでは、ソフトウェア設定だけでなく、モーターのコイル配線、ドライバーの向き、電流制限、外部電源の選定が重要です。

特に覚えておきたい点は次の5つです。

  1. モーター線の色を信用せず、テスターでコイルの組を確認する
  2. ドライバーは基板表示を確認して正しい向きで挿す
  3. 電源電圧はドライバーだけでなく、シールドとコンデンサーの耐圧も確認する
  4. 300Wスピンドルは専用電源を使用する
  5. 配線変更やモーターの抜き差しは必ず電源を切って行う

FabLab Itoshimaでは、実際にArduinoとCNCシールドを使ってShapeokoを復活させ、切削できるところまで進めています。

Shapeoko復活の作業記録と切削テストはこちらの記事で紹介しています。

今後は、実機で使用しているモータードライバー、電源、Grbl設定値を確認しながら、初期設定とキャリブレーションについても詳しく紹介します。

参考資料

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です