Arduino UNO マイクロコントローラー ボードにプログラムされている GRBL 0.9c ( https://github.com/grbl/grbl/wiki ) を使用して、CNC のようなマシンを構築しました。
'Cycle Start/Resume' Uno ピンをプッシュボタン (緑色) に接続し、'Auto-Start' 変数 $14 をオフ ($14=0) に設定しました ( https://github.com/grbl/ grbl/wiki/Configuring-Grbl-v0.8#14---auto-start-bool )。これにより、gcode コマンドのファイル全体をロードし、緑色のボタンを押すまでマシンを動かさないようにすることができます。これは非常に優れています。
私たちの問題は、スピンドルのオン/オフに使用するM4、M5コマンドではなく、G01、G02、G03コマンドのみを含むプログラムでのみ機能することです。GRBL インタープリターが M4 または M5 コマンドをヒットすると、別の緑色のボタンが押されるのを待ちます (「サイクル開始/再開」Uno ピンの低信号)。
以下は正常に動作する gcode です。つまり、緑色のボタンを 1 回押すだけで、プログラム全体を実行できます。
g90
f100000
g01 x0 y0 z0
g01 x150 y130 z0
g01 x-150 y130 z0
g01 x-150 y-130 z0
g01 x150 y-130 z0
g01 x150 y130 z0
g01 x0 y0 z0
そして、M4またはM5コマンドごとに停止するgコード:
g90
f100000
g01 x0 y0 z0
g01 x150 y130 z0 m4
g01 x-150 y130 z0 m5
g01 x-150 y-130 z0 m4
g01 x150 y-130 z0 m5
g01 x150 y130 z0
g01 x0 y0 z0
M4 と M5 が別の回線にあるかどうかは問題ではありません。
GRBL インタープリターがスピンドルのオン/オフ (M4/M5) コマンドを待たないようにする方法を知っている人はいますか?