PR

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

CNC自作

はじめに

こんにちは、py-vbalab管理人の「にんじん」です。 前回、中華製CNCシールドの致命的なピン配置ミス(D11とD12の入れ替わり)を突き止めました。

今回は、そのミスを物理的にねじ伏せ、**「実機がないZ軸のホーミング」**という、プロトタイプ機ならではの難題を力技で突破した記録です。これを乗り越えれば、要素設計はついに完了です!

スポンサーリンク

配線修正:基板の表記は「無視」して正解へ

特定した基板のコピーミスを修正します。安価な基板の場合、シルク印刷よりもテスターの結果を信じるのが自作の鉄則です。

  • 対策: Z軸のリミットスイッチを、基板上の**「SpnEN」**(本来はD12が来るべき場所)に接続します。

結線図(第5回のおさらい)

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

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

確認: CNCjsのコンソールで ? を実行して、ステータスを確認します。

> ?
<Alarm|MPos:0.000,0.000,0.000|FS:0,0>
ok

Pn:Z(Z軸リミットON状態)の表示が消えました! これでようやく、ホーミングのスタートラインに立つことができました。

スポンサーリンク

第2の壁:リミットスイッチの手動操作が通じない?

リミットスイッチが正常に認識されたので、満を持してホーミング!って進みたいところですが、進むまえに1つ問題があります。

ここで1つ問題があります(Z軸の仮で実装中での弊害)

現在の環境はXYテーブル流用中で、Z軸はユニット構成外のためスイッチと連動していません。

■GRBL(CNCJs)の仕様として

  • ホーミングは「Z軸」「X軸Y軸」の順番で実施されます
  • Z軸のホーミング中にエラーが発生すると、ホーミングが中断(ALARM8)されます。

■Z軸が仮組み状態で、ホーミングを正常終了させるために

  • Z軸モーターの動きに合わせて、リミットスイッチをON⇒OFF⇒ONすれば
    GRBL(CNCJs)はZ軸がホーミングしたと認識すると仮定して進めます

満を持してホーミング

リミットスイッチが正常に認識されたので、満を持して、CNCjsのコンソールに$Hコマンドを打ちこんでホーミングを実行します。

コマンド: $H

> $H
ALARM:8 (Homing fail)
ok
Grbl 1.1h ['$' for help] [MSG:'$H'|'$X' to unlock]

ダメでした。ですが、Z軸のモーターは確かに回りました。

現実はそう甘くありませんでした。

そもそも、モーターの回転(スピンドル)に合わせてスイッチを叩くタイミングを合わせるのが至難の業です。

作戦変更:ゆっくりにしてタイミングを合わせる。

動きが速すぎてタイミングが合わないなら、遅くすればいい。設定を変更して、動作を視認しやすくします。

  • $132=200:Zの移動距離を確保
  • $27=3.000:プルオフ(スイッチから離れる距離)をアップ

これでもう一度 $H を実行!……しかし、結果はまたしても ALARM:8

スポンサーリンク

【発見】ホーミング成功の鍵は「4ステップ」だった

八方塞がりかと思いながら、何度もスイッチを叩いてトライしていたその時……なんとホーミングに成功しました!

なぜ成功したのか? 試行錯誤の結果、CNCjs(GRBL)が求めている正確な挙動が見えてきました。

  • 高速アプローチ: スイッチに当たる(ON
  • 一時退避: ちょっと戻る(OFF
  • 精密アプローチ: ゆっくりもう一度当たる(ON
  • 最終退避: ちょっと戻って完了(OFF

つまり、スイッチの動きとしては ON ⇒ OFF ⇒ ON ⇒ OFF だったのです!
私が当初想定していた「ON ⇒ OFF ⇒ ON」では、最後の「離れる」動作を確認できていなかったため、エラーになっていたわけです。

動作原理が分かればこっちのもの。モーターの音と動きに合わせて「カチ・カチ・カチ・カチ」と手動連打することで、百発百中でホーミングを成功させることができるようになりました!

CNCjsのワーク位置について

ホーミング後にワーク位置が「0,0,0」に
なっていない場合

そのままでも正常なのですが

気持ちの問題で「0,0,0」にしたいですよね

  • ▼印をクリック
  • 「ワークオフセットP1をゼロにする(G10 L20 P1 X0 Y0 Z0) 」をクリック
  • ワーク位置が「0,0,0」になります。
スポンサーリンク

出力信号(レーザー用PWM)の確認

無事にホーミングを突破したので、最終段階の「加工工具(レーザー)」の制御確認に入ります。

ピンと設定の解説

使用するのは Digital 11番ピン(Spindle PWM) です。 このピンからのPWM信号(パルス幅変調)を変えることで、レーザーの出力を0〜100%まで無段階に調整します。

  • レーザーモード設定($32):
    $32=1 (Laser-mode enable) に設定。これにより、移動中(G0)はレーザーが自動で消え、切削送り(G1, G2, G3)の時だけ照射されるようになります。
  • 出力範囲の設定($30, $31):
    $30=1000(最大出力)、$31=0(最小出力)に設定。Gコードで S1000 なら全開、S500 なら半分になります。
スポンサーリンク

本番前の「Lチカ」出力テスト

ピンと設定の解説

  • 配線の注意点:
    例のコピーミスのため、接続先はシールド上の**「Z-」**ピン(実体はD11)になります。 D11ピン → 抵抗 → LED → GND で結線します。
  • CNCjsでの設定:
    テスト中は「軸が移動していない状態」でも光らせたいので、一時的に $32=0(レーザーモードOFF)にしておきます。 $30=1000 であることも併せて確認。

ひし形運動+LED調光テスト

ワーク位置をゼロにし、テストコード test04_LED.nc を実行します。

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

G21          ; 単位をmmに設定 [cite: 1]
G90 ; 絶対座標モード [cite: 1]
F1000 ; 速度を少し早めに設定(変化を見やすくするため) [cite: 1]

; --- スタート地点へ移動 ---
G0 X110 Y110 ; 円の開始点へ移動 [cite: 1]

; --- 出力テスト開始(4分割で強さを変える例) ---
M3 S250 ; レーザーON(25%出力)
G2 X160 Y160 I50 J0 ; 1/4円

S500 ; 出力アップ(50%)
G2 X110 Y210 I0 J50 ; 1/4円

S750 ; 出力アップ(75%)
G2 X60 Y160 I-50 J0 ; 1/4円

S1000 ; 出力最大(100%)
G2 X110 Y110 I0 J-50 ; 1/4円(元の位置に戻る)

M5 ; レーザー停止
G0 X0 Y0 ; 原点復帰

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

結果は大成功!

このコードの見どころは「出力の動的変更」です。ひし形を描いている途中で S250S500S750S1000 とコマンドが送られるに従い、LEDの輝度が段階的に上がるのが確認できました。

また、M3 で照射開始、M5 で消灯という基本的な役割もバッチリです。

スポンサーリンク

まとめ:要素設計フェーズ、完結!

XYテーブルを流用した「迷路」のような要素設計でしたが、今回で全てクリアです!

  • 2軸の同期走行
  • コピー基板の配線ミス特定と物理的な修正
  • GRBLのホーミング挙動(4ステップ)の解明
  • PWMによるレーザー出力制御の視覚化

手元にある機材でここまで徹底的に検証できたのは、非常に大きな収穫でした。この泥臭い試行錯誤こそが、自作CNCの醍醐味ですね。

次回予告:

要素設計はすべて終わりました。いよいよ本チャンの「アルミフレーム式筐体」を組み立てます!寄せ集めの実験機を卒業し、真のマシン製作編に突入します。お楽しみに!

スポンサーリンク

CNC自作シリーズ

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

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

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

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

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

スポンサーリンク

他のシリーズ



【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頒布情報もご紹介します。

コメント