これまでのあらすじ:
2016年3月、フェルト生地を手で裁断している際にレーザーカッターがあれば複雑なカットが容易にできるなあと思って、安価になってきたレーザーカッターを購入しようと思ったのがきっかけ。調べていくうちに、合板も切れたほうがいいと思うようになって、CNCルーター(CNCミリング)についても考えるようになった。
Arduinoは以前から使っており、CNCシールドがあると気付いて自作も可能と思うようになった。当初はShapeOkoやX-CARVEを参考にMakerSlide、OpenRail、V-Wheel、2GTタイミングベルトなどで5万円くらいで自作しようと思っていた。AliExpressでも部品が安く買えることが分かって、しばらくは部品探し。探せば探すほど安くて本格的な部品も見つかってくるので、そんなにケチらなくてもいいのではないかと徐々にスペックアップ。最終的には剛性や精度のことも考えてボールスクリューやリニアスライドを使うことになり、予想以上に重厚な3軸CNCマシンをつくることに(約7万円)。
構想から約5週間(制作約3週間)でルーターとレーザーともに使えるようになり、現在はgrbl1.1+Arduino CNCシールドV3.5+bCNCを使用中(Macで)。余っていたBluetoothモジュールをつけてワイヤレス化。bCNCのPendant機能でスマホやタブレット上のブラウザからもワイヤレス操作可能。



CNCマシン全般について:
国内レーザー加工機と中国製レーザー加工機の比較
中国製レーザーダイオードについて
CNCミリングマシンとCNCルーターマシンいろいろ
その他:
*CNCマシンの制作記録は2016/04/10〜の投稿に書いてあります。

利用例や付加機能など:
CNCルーター関係:

2016年4月29日金曜日

CNCマシン:試運転+Grblの設定

配線はレーザー以外はほぼ終わったので、試しに動かしてみようと思います。まだコントロールボックスも出来ていませんが、最低でもモーター用DC24V電源とCNCシールドがあるのでなんとか動くはずです。
現状はこんな感じ↑です。まだCNCシールドやDC24V(7A)電源はむき出しのまま。各種スイッチ類もまだ。右奥に少しだけレーザードライバーが見えますが、今回は未接続です。

今回、Arduinoボードにはgrbl v0.9jがアップロードされています(アップロード方法はこちらへ)。
念のため、配線が間違っていないか再確認し、DC24V電源を入れ、CNCシールド付きのArduinoボードをMacBookに接続。もし異音や異臭がしたら即CNCシールドのリセットボタンを押す準備を整えておく。

今回はUniversal-G-Code-Sender v1.0.7を使ってみます。Zipファイルをダウンロード+解凍すると以下のような感じ。
この中のUniversalGcodeSender.jarをダブルクリックするとソフトが開きますが、その前にREADMEに注意書きとして、Macの場合パソコン上に"/var/lock"ディレクトリをつくる必要があると。ターミナルを開いて、以下のコマンド入力(要:管理者権限パスワード)。
sudo mkdir /var/lock 
sudo chmod 777 /var/lock 
*UniversalGcodeSender1.0.8以下のバージョン(最新版は1.0.9)をMacで使う場合は、上のようにコマンド入力でディレクトリをつくる必要があるようです。1.0.9の場合は不必要(未確認ですが)。

これで、ようやくUniversalGcodeSender.jarを開くことができます。以下のような画面。
Port:をArduinoボードのポートに設定。Baud:は115200(grbl v0.8までは9600)。
そして「Open」ボタンをクリック。そうすると以下の画面。
ちょっとモーターがカクッと動いて、上の画像のようにすぐロック状態。これは?と思いましたが、そういう仕様のようです。ただ、ここで確認できるのは、一応つながったということと、Arduinoボード内のGrblが0.9jのバージョンであるということ。
['$H'|'$X' to unlock]とコンソールに出ているので、ロック解除するために$Hか$Xを入力しろと。$Hはホーミングらしいですが、まだよくわからないので、今回は$Xの方で。
$XをCommand:に入力しリターンを押すと、以下の画面。
ロック解除されてコンソールにはokと出ています。これで入力可能になります。
試しに、Command:に
X10
を入力すると、X軸が10mm右に動きます。
X-10
なら左へ10mm。
Y10
なら奥へ10mm。
Z10
なら
上に10mm。

いちおう動きましたが、Y軸だけ逆向きです。
どれかの向きが逆転している場合は、$3で以下のように変えられましたが、まず$3で設定する前に、$$で今の設定内容を確認します。
$$
を入力するとずらずらずらと出てきます。

$0=10 (step pulse, usec)
$1=25 (step idle delay, msec)
$2=0 (step port invert mask:00000000)
$3=2 (dir port invert mask:00000010)
$4=0 (step enable invert, bool)
$5=0 (limit pins invert, bool)
$6=0 (probe pin invert, bool)
$10=3 (status report mask:00000011)
$11=0.010 (junction deviation, mm)
$12=0.002 (arc tolerance, mm)
$13=0 (report inches, bool)
$20=0 (soft limits, bool)
$21=0 (hard limits, bool)
$22=1 (homing cycle, bool)
$23=4 (homing dir invert mask:00000100)
$24=25.000 (homing feed, mm/min)
$25=600.000 (homing seek, mm/min)
$26=250 (homing debounce, msec)
$27=1.000 (homing pull-off, mm)
$100=320.000 (x, step/mm)
$101=320.000 (y, step/mm)
$102=320.000 (z, step/mm)
$110=600.000 (x max rate, mm/min)
$111=600.000 (y max rate, mm/min)
$112=600.000 (z max rate, mm/min)
$120=10.000 (x accel, mm/sec^2)
$121=10.000 (y accel, mm/sec^2)
$122=10.000 (z accel, mm/sec^2)
$130=740.000 (x max travel, mm)
$131=940.000 (y max travel, mm)
$132=190.000 (z max travel, mm)

すこしいじったのでちょっと違うかもしれませんが、こんな感じです。
上からそれぞれの項目の現在の設定内容が出ています。
$3
が、XYZ各軸の移動反転設定です。
最初は$3=0になっており、Y軸だけ逆だったので、以下の設定テーブルを参照して$3=2を入力(設定変更)しました。

  $3=0 X:反転、Y:反転、Z:反転
  $3=1 X:正転、Y:反転、Z:反転
  $3=2 X:反転、Y:正転、Z:反転
  $3=3 X:正転、Y:正転、Z:反転
  $3=4 X:反転、Y:反転、Z:正転
  $3=5 X:正転、Y:反転、Z:正転
  $3=6 X:反転、Y:正転、Z:正転
  $3=7 X:正転、Y:正転、Z:正転

このようなことは、grblのサイトにあるConfiguring Grbl v0.9に書いてあります。
このほか確認するところは、
$13
使う単位をインチにするなら$13=1にすればいいのですが、だいたいの人はmmだと思うので、$13=0で大丈夫かと。

$23
これはリミットスイッチの+方向とー方向の反転設定です。Z軸が逆になっていたので、$23=0だった設定を$23=4に変えました。これも$3の反転テーブルと同じように変えます。

$100、$101、$102
この三つは移動量のstep/mmなのでマシンに応じて変える必要があると思います。
今回のCNCマシンでは、
・各ステッピングモーターは1回転200ステップ
・DRV8825ドライバのマイクロステッピング設定が1/8
・ボールネジが1回転5mm
なので、各ステッピングモーターは1回転1600ステップで5mm進むことになり、320step/mmということになります。
ということから、
$100=320
$101=320
$102=320
を入力してあります。

$110、$111、$112
は、各軸の最高速度のようです。例えば、
G0 X50
と入力すると、最速で50mm右に動きますが、このG0(速度制限なし)のコマンドの速度の10〜20%少なめくらいがいいと書いてあります。現在は$110=600(たぶん遅め)という感じで適当に入れているだけです。

$130、$131、$132
は、各軸の移動可能距離です。$20のsoft limitsや$21のhard limitsをオンにしたときに有効になるようです($20=0、$21=0なのでオフ状態)。一応CNCマシンの移動可能距離は入力しておきました。

とりあえず、動作確認ではこんなものでしょうか。
まあ、とりあえず動いてよかったです。
DRV8825のヒートシンクもそれほど熱くなっていませんでした。Z軸は、けっこう平行を調整しましたが、まだX軸とY軸に関してはきちんと調整していないので(そのため、接合部のボルトは少し緩めで試運転してみました)、これから再調整必要です。

続き(試し描き):
X10やY10で、あるいはG1 X10 F300などのコマンドを使って、それぞれの軸を直線で動かすことはできましたが、円を描かせてどのくらいの精度があるか確かめてみました。円の描き方はShapeoko wikiのこのページを参考にしました。

ミニクランプで水性ボールペンをはさんでXY軸だけの移動で描いてみました。半径20mmです。
一応きれいに描けています。寸法も合っていました。
Gコードはまだぜんぜん覚えていませんが、G90(絶対座標)とG91(相対座標)の設定ができるようです。この実験のときは、紙の真ん中あたりを原点にしていたので、G90の絶対座標設定にして円を描かせました。
円弧はG2(時計回り)、G3(半時計回り)があり、XYのパラメータ以外にIとJ(Rもあるけどあまり使わないらしい)。
相対座標G91でも試してみました(現在地から半径20mmの円を描く/直径40mm円を12時の位置から時計回りに描く)。
G2 X0 Y0 I0 J-20 F300
G2(円弧時計回り)、X0 Y0(終点座標/開始点でもあるけど)、I0 J-20(現在地からの中心座標の差分)、F300(300mm/minのfeed速度設定)

そのうち、この辺の基本的なGコード入力方法をまとめたいと思います。

追記:
Grblの$コマンドやGコードについて

0 件のコメント:

コメントを投稿