FABOOL Laser MiniをGRBL化したい。
と言うことで、只今色々と試行錯誤しております。
で、現在のところ、2軸の移動はできるようになりましたので、とりあえずそこまでの事を書いておこうと思います。
レーザーモジュールの接続や設定はまた次回・・・
配線
GRBLは、ArduinoUNOベースで数年前に買ったGRBLシールドを使って配線を行います。
モーターの配線
CNC Shield(GRBLシールド)
GRBLシールドのステッピングモーターの接続ピンはステッピングモータードライバーの差し込み口の直ぐ横にあります。
写真上側の左がX軸、右がY軸。
ここでは便宜上、上から1,2,3,4と振っておきます。
FLMのコントロール基板
上の写真は、FLMのコントロール基板のステッピングモーターの接続ピンです。
XHコネクターになっていて逆差しが出来なくなっています。
Y軸はモーターが2個あるので、端子が2つ並んでいます。
Y軸の2つの端子は並列に接続されています。
ここでは便宜上、左から1,2,3,4と振っておきます。
X軸の配線
X軸のモーターの配線は、FLMコントロール基板の1234を、そのままGRBLシールドの1234に接続しました。
ただし、FLMのケーブルの先端はXHコネクターになっていて、GRBLシールドの狭い隙間には差し込めません。
なので余ってたケーブルを使って接続しました。
Y軸の配線
Y軸のモーターの配線は、FLMコントロール基板の1234を、GRBLシールドの4321と逆に接続しました。
また、2つのモーターが接続できるように、2つに分岐させる端子を作りました。
リミットスイッチの配線
CNC Shield(GRBLシールド)
写真右端のEND STOPSと書かれたピンがGRBLシールドのリミットピン。
X+、X-と言うように、+と-に分かれていますが縦に繋ぐのでは無く、横(白と黒)に繋ぎます。
+-はどちらに繋いでもかまいません。
GRBLでは始点と終点にリミットスイッチを取り付けることができるので、+と-の二つに分かれています。
FLMのコントロール基板
FLMのコントロール基板のリミットピン。
2ピンのXHコネクターになっていますが、極性は関係無い。
配線
FLMのリミットセンサーは、マイクロスイッチが使われていてケーブルの先端は、2ピンのXHコネクターになっています。
極性は関係無いので、それぞれのケーブルの、片側をGRBLシールドの白い方、もう片方を黒い方に接続します。
ちなみに、ノイズが酷いので、0.1uFのコンデンサーを取り付けています。
詳しくはこちら→リミットスイッチのノイズ対策(GRBL)
ステッピングモータードライバー
ステッピングモータードライバは偽DRV8825を使いました。
電流設定
FLMで使われているステッピングモーターは、JKONGMOTOR JK42HS34-1334ACと言うモーターで、定格電流は1.33A。
なので、DRV8825の電流設定のボリュームは、電圧0.6V程度に設定しておきました。
マイクロステップ
GRBLシールドでは、ステッピングモータードライバーの下にヘッダーピンが出ているので、そのヘッダーピンをショートさせてマイクロステップを設定します。
DRV8825の最大マイクロステップは1/32ですが、今回は1/16に設定しておきました。
一番右側にジャンパーピンを取り付けてショートさせています。
DRV8825についてはこちらに詳しく書きました。
DRV8825について調べてみた
GRBL設定
今回、ArduinoUNOのプログラムとして、GRBLのバージョンv1.1hを使いました。
インストール方法は割愛しますが、インストールする前にソースの書き換えが必要です。
grbl 1.1のページ
https://github.com/gnea/grbl
CONFIGファイル書き換え
FLMはX軸とY軸しか無くて、Z軸は有りません。
なので、ホーミング時にZ軸のホーミングを停止しておく為にGRBLのconfig.hファイルを書き換える必要があります。
上はデフォルト。
105行で最初にZ軸のホーミング、106行で次にX軸とY軸が同時にホーミングすると言う設定。
これを下のように修正する。
105行と106行をコメントアウトして、112行と113行をアンコメントする。
112行では最初にX軸をホーミング、113行で次にY軸のホーミングをすると言う設定に変更。
112,113行の代わりに、110行だけアンコメントしても良い。
これだと、X軸とY軸が同時にホーミングされるようになります。
コマンドでの設定
デフォルト設定から変更した部分を記載しておきます。
$21=1
ハードリミットの設定。
リミットスイッチにヘッドが触れた時に、動作を止める設定。
$22=1
ホーミングを有効化する。
デフォルトでは無効になっていて、ホーミングが使えない。
$23=1
ホーミングする時、X軸の方向を-方向へ向かうようにする。
デフォルトでは、各軸+側のリミットスイッチを探しに行く。
ちなみに、FLMとGRBLでY軸の方向が逆になっている。
FLMは手前側に移動するのが+方向ですが、GRBLでは奥へ移動するのが+方向となる。
$24=100
$25=1500
ホーミングのスピードの設定
$32=1
レーザーモード有効化
レーザーに関してはまだ搭載していないので、動作が良く分かっていません。
$100=53.333
$101=53.333
$100と$101には、X軸とY軸の1mm移動する際の、ステッピングモーターのステップ数を設定する
FLMだと以下のように計算される。
ベルトGT2(2mmピッチ)
ギア 30歯
モーター 1回転で200ステップ
モータードライバのマイクロステップ設定 1/16
(200ステップ×16マイクロステップ) ÷ (2mmピッチ×30歯) = 53.333
$110=2000
$111=2000
X軸Y軸の移動の最大速度をそれぞれ2000に設定
もっと早くできるっぽいけど、とりあえず2000に設定しておきました。
デフォルト値は500
$120=1000
$121=1000
X軸Y軸の加速度の設定をそれぞれ1000に設定
FLMは加速減速は無いと思います。レーザー加工にはマイナスな気がするのでオフにしたいところですが、方法が分からないので、大きめの数値に設定しておきました。
デフォルト値は10
$130=300
$131=230
$130と$131は。加工できる大きさを指定する。
標準のFLMの加工サイズは、横300mm縦230mm
動作確認
今回は、GRBLをコントロールするプログラムとして、CNCjsと言うソフトを使ってみました。
ブラウザでアクセスするのでは無く、DesktopApp版を使いました。
バージョンは、v1.9.23
ダウンロードはここから
https://github.com/cncjs/cncjs/releases
ホーミング
ホーミングのGRBLのコマンドは $H
CNCjsでは、右上にカラフルなボタンが並んでいるのですが、青いホーミングと書かれた所をクリックすると、ホーミングが開始されます。
実行すると、X軸が左方向に移動します。
リミットスイッチに接触すると少し戻って再びリミットスイッチを探し見つけるとまた少し戻ります。
X軸が終わると、次にY軸が奥方向に移動しはじめます。
リミットスイッチを探す動作はX軸と同じです。
※X軸とY軸を同時にホーミングしたい場合は、config.hの設定を変更しましょう。
ホーミングが終わると、機械位置の座標がX-299.008、Y-0.994になっています。
ワーク位置の修正
私はまだいまいちよく分かっていない事なのですが、GRBLでは機械位置とワーク位置とが別々で処理されているようです。
ArduinoUNOベースのGRBLでは機械位置が変更できないようなので、一先ずワーク位置のオフセットを設定してみます。
GRBLとFLMではY軸の移動方向が逆なので、ホーミング時のワーク座標はXは0に、Yは230になるように設定しました。
GCodeでは以下のコマンド
G10 L20 P1 X0 Y230
CNCjsでは、座標の下のボタンをクリックすると数値を入力できるようになっています。
設定すると、ワーク位置の表示が変わります。
以上、現時点のGRBL化の進み具合は以上です。
そして、下の動画は、実際のGRBL化した時の動きの様子です。