PR

【CNC自作】2軸同期走行テスト成功!…と思いきや、中華製基板の「致命的な罠」にハマる(第5回)

CNC自作

はじめに

こんにちは、py-vbalab管理人の「にんじん」です。 前回まではX軸単体の動きを確認してきましたが、ついにY軸用のステッピングモーターが届きました!

これでようやく「点と線」の動きから、**「面(2D)」**の制御へと進化します。しかし、喜びも束の間。自作CNCの洗礼とも言える「中華製パーツの罠」が私を待ち受けていました……。

スポンサーリンク

CNCjs Y軸参戦!CNC(gcode)で2軸を動かしてみる

今回のテスト環境は、以前製作したXYテーブルを流用したプロトタイプ機です。可動範囲はX・Yともに250mm。本番の筐体を組む前に、まずはこの構成で制御系を仕上げる(いわゆる要素設計)が狙いです。

🎯 テスト内容(安全&実用)

  • 範囲内(250mm)でしっかり動くか
  • X・Y軸を同時に使った複雑な動きができるか
  • 繰り返しの動作でズレが出ないか

2軸同期テスト走行(Gコード実行)

さっそく、CNCjsからテスト用のGコード(.ncファイル)を流してみます。

●test02.nc:200mmのスクエア走行

まずは基本中の基本、四角形を描く動きです。

🧠 動きのイメージ
👉 200mm四角を2周します。

(10,210) ┌─────┐ (210,210)
     │     │
(10,10) └─────┘ (210,10)

「test02.nc」は以下の通りです

G21         ; mm単位
G90 ; 絶対座標

F500 ; 送り速度

G0 X10 Y10 ; スタート位置(少し内側)

; 四角形1周(200mmサイズ)
G1 X210 Y10
G1 X210 Y210
G1 X10 Y210
G1 X10 Y10

; もう一周(動作確認)
G1 X210 Y10
G1 X210 Y210
G1 X10 Y210
G1 X10 Y10

【test02.nc】のダウンロードはこちらをクリック

●test03.nc:円っぽい動き(同期確認)

四角がクリアできたら、次は「円」です。X軸とY軸が微妙に加減速を連携させないと綺麗な円にはなりません。 ここで**「2軸の同期」「脱調(ステップ抜け)」**がないかを厳しくチェックします。

「test03.nc」は以下の通りです

G21
G90
F500

G0 X110 Y110

G2 X110 Y110 I50 J0

【test03.nc】のダウンロードはこちらをクリック

🔧 もし動きがおかしい場合

テスト中、モーターが逆方向に動いたり、斜めに走ったりすることがあります。そんな時は焦らず設定を確認しましょう。

  • 逆方向に動く場合: GRBLの設定値 $3 を変更します。配線を差し替えなくてもソフト側で反転可能です。
  • $3=1 :X反転
  • $3=2 :Y反転
  • $3=3 :X+Y両方反転
スポンサーリンク

準備:ホーミング(原点復帰)設定

2軸が動いたら、次は「ホーミング」の設定です。
マシンの電源を入れるたびに「ここが原点だよ」と教える重要な儀式ですね。

準備1:Z軸も必要

GRBL(CNCjs)ではZ軸が実装されていないと、そもそもホーミング出来ないので仮で実装しておきます。

ニンジンはXYテーブルを流用しているので、Z軸を固定できませんが、
XYテーブルとは別に単独でステッピングモーターとリミットスイッチを配線します。

■使用した部品

Nema17
ステッピングモーター

リミットスイッチ
D2JW-01K1A1

準備2:CNCjsでの設定

CNCjsのコンソールで以下のコマンドを実行し、設定を流し込みます。

$130=250 ; X最大移動距離
$131=250 ; Y最大移動距離
$132=10 ; Z適当(まだ仮です)

$22=1 ; ホーミングON
$23=3 ; ホーミング方向(今回は左奥を原点に設定)

GRBLの仕様上の注意

$22=1(ホーミング有効)にすると、起動直後は必ずALARM状態になります。「現在地がわからないのに動かすのは危険!」という安全設計によるロックです。ホーミングに成功すれば解除されます。

スポンサーリンク

異常事態:何もしてないのに「Pn:Z」が消えない

いざホーミングを実行!…と思いましたが、その前にリミットスイッチの状態をチェック。コンソールから ? コマンドを叩きます。

※?コマンドとは:
 主にGRBL(ガーブル)などの制御ファームウェアで使用される**「ステータスレポート要求(Status Report Query)」**というリアルタイムコマンドです。

コンソールの表示: <Alarm|MPos:0.000,0.000,0.000|FS:0,0|Pn:Z>

「ん? Pn:Z って出てる……」

これは「Z軸のリミットスイッチが押されていますよ」というサイン。 ですが、私はまだスイッチに触れてもいません。 結線も「NC(ノーマルクローズ)」で正しく行っているはずなのに、なぜか「常時ON」扱い。

ここから、長い切り分けが始まりました……。

スポンサーリンク

犯人はお前だ!CNCシールドの致命的なミス

テスターを片手に、Arduino UnoとCNCシールドの回路を1本ずつ追いかけました。そして、事実を突き止めます。

結論から言うと、Amazonで購入した市販のCNCシールド(おそらくC国製のコピー品)に、設計ミス(コピーミス)がありました!

  • 本来の設計: ArduinoのD12ピンがZ軸リミットスイッチに繋がるはず。
  • この基板の現実: なぜかD11ピンがシールド上の「Z-リミット端子」に導通している!
  • さらに: D11であるべき「SpnEN(スピンドル有効)」信号が、D12に繋がっている……。

つまり、D11とD12が完全に入れ替わっていたのです。 これでは、Z軸のスイッチをいくら正しい場所に配線しても、GRBL(v0.9以降の仕様)は認識してくれるはずがありません。

この写真が正しい結線になります。
※見た目上はSpnENに接続されていて誤配のように見えますが正しいです。

安価な中華製パーツの洗礼。「基板のシルク印刷を信じてはいけない」という教訓を身を以て体験することになりました。

※ニンジンが購入したCNCシールド基板が対象です。あくまでも注意喚起の意味合いで記事にしています。購入品によって差異があるかも知れませんのでテスター等にて結線を確認することを推奨します。

CNCシールド基板の捕捉

原因は「GRBLのバージョン」と「歴史」にありました

CNCを制御するソフト「GRBL」は、途中で大きな仕様変更をしていたんです。

  • 昔のGRBL(v0.8まで):D11が「Z軸リミット」だった
  • 今のGRBL(v0.9以降):D11が**「スピンドル制御(PWM)」に変わり、Z軸リミットはD12**へお引越しした

「なんでわざわざ変えるの?」と思ったのですが、これにはちゃんとした理由がありました。
D11ピンは「PWM」という、電圧を細かく調整してスピンドルの回転数を変えるのが得意なピンなんです。より高機能なCNCにするために、GRBLの開発者さんたちが「D11はスピンドル用に空けよう!」と決めたそう。

ニンジンはそんな歴史も知らずに、「CNCシールド基板がNG」と思い込んでいました…。
一概にはコピー不良とは言えないようです。

ただ説明文にGRBL(v0.8)以前の対応品と明記してほしいですね

スポンサーリンク

次回予告

致命的な設計ミスを暴いたものの、ホーミングを成功させるには、この「入れ替わったピン」をどうにかしなければなりません。

さらに、**「物理的なZ軸ユニットがない」**というプロトタイプ機ならではの難題が、私をさらなる迷路へと誘います……。

次回、「ホーミング挙動の真実!ON→OFF→ON→OFFの4ステップを攻略せよ」。 お楽しみに!

スポンサーリンク

CNC自作シリーズ

【CNC自作①】Arduino+GRBLでXYテーブルをCNC化してみた

【CNC自作②】リミットスイッチ実装|原点出し(ホーミング)で精度を出す

【CNC自作③】GRBL+CNCjsでPC制御に挑戦!動いたけれど見えてきた「精度の壁」

【CNC自作 ④】ついに届いた本命モーター!精度ブレの解決とGコード初テスト

【CNC自作】2軸同期走行テスト成功!…と思いきや、中華製基板の「致命的な罠」にハマる(第5回)

【CNC自作】ホーミング失敗(ALARM:8)の原因はこれ!4ステップ動作とZ軸未連動での突破方法(第6回)

スポンサーリンク

他のシリーズ



【CNC自作】Amazon格安Z軸、精度ヤバい…RATTMMOTORを本気検証
自作CNCマシンのZ軸用にAmazonで購入したRATTMMOTORの格安リニアスライドモジュールを徹底検証!ArduinoとA4988ドライバを使った24V駆動テストで誤差0.05mm以内の高精度を記録。安価でコスパ抜群なパーツの実力と、購入時の注意点を詳しくレビューします。
NEMA17ステッピングモーター比較|42BYG-34012-22B vs PKP244D08A2 精度検証(CNC実測あり)
Amazonの2000円台格安ステッピングモーターはCNC自作に使える?オリエンタルモーター製と精度・動作音を徹底比較!10mm移動テストの実測データから分かった驚きの性能と、「メーカー品vs格安品」の賢い使い分け方をまとめました。
【CNC自作】ホーミング失敗(ALARM:8)の原因はこれ!4ステップ動作とZ軸未連動での突破方法(第6回)
CNCjsでホーミング失敗(ALARM:8)に悩んでいませんか?GRBLのホーミング挙動「4ステップ」を解明し、Z軸がないプロトタイプ機でも手動連打で原点復帰させる裏技を伝授。レーザー加工を見据えたPWM制御設定とLチカテストまで、要素設計の完結編です!
【CNC自作】2軸同期走行テスト成功!…と思いきや、中華製基板の「致命的な罠」にハマる(第5回)
CNC自作第5回。格安CNCシールドでリミットスイッチが反応しない!?それはニンジンの勉強不足が招いた「ピン配置の罠」でした。GRBL v0.9以降で変更されたD11とD12の歴史的背景と、基板の印字に騙されないための対策を実体験から解説します。
【第3回】黒い画面を卒業!CustomTkinterでプロ仕様のGUI搭載ツール「Invoice Maker」を完成させる
Pythonで作った請求書自動化スクリプトを、CustomTkinterを使って誰でも直感的に操作できるGUIアプリへ進化させます。黒い画面は今日で卒業!環境構築不要ですぐに実務で使えるアプリ完成版のnote頒布情報もご紹介します。

コメント