これまでのあらすじ:
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ルーター関係:

*CNCマシンの制作記録は2016/04/10〜の投稿に書いてあります。


2016年12月21日水曜日

レーザー用ゴム板でスタンプ制作:Laserweb3使用

以前から英字スタンプをつくりたいなと思っていて、市販されている英字スタンプ(安価)も買ってみたのですが、もっとオリジナルなスタンプをつくるには、レーザ用ゴム板をレーザー加工すればいいということが分かったので、さっそく材料を注文してみました。
検索してみると、A4サイズのレーザー用ゴム板(3mm厚)で、国内なら1500〜2000円程度。
国内だと印材館(上画像)で1540円(送料250円)。
品質の違いなのか。もう少し高いゴム板もあるようです。
Amazonでは売ってないようなので、ためしにAliExpressで探すと、
AliExpress.com Product - Free Shipping Laser Rubber Sheet 297*210*2.3mm A4 Size Orange colour for laser Engraving Engraver Stamp MakerこれはA4サイズ2枚で2317円(送料無料)。極端に安いわけでもない。

たかがA4サイズのゴムシートで1000〜2000円というのは、高いような気がしたのですが、レーザー用なので普通のゴムシートとは違うのかもしれないということで、AliExpressから1枚(1179円送料無料)だけ購入してみました。

届いたレーザー用ゴム板はこんな↑感じ。A4サイズ210x297mm。ノギスで厚さを計測すると2.3mm。一見赤い普通のゴムシート。表裏の違いはなさそうです。

動画で検索してみると、こんな感じで加工しています。おそらくこれはCO2レーザーだと思うのですが、レーザーで溶けるというよりも削っているような感じです。粉のようなものが出ています。ダイオードレーザでもこんな感じになるのか、今回試してみます。
当然ダイオードレーザー(5.5W)だと弱そうなので出力はMAX値で。ただフィードがどのくらい必要なのか?やってみないことには分からないという感じ。

スタンプにする文字画像を用意(Inkscape):ラスタ加工用
文字のスタンプなので今回はInkscapeで描画します。
まず普通に黒い背景を矩形で描画。そしてその上に文字を白色で書いて重ねます。
スタンプなので、当然左右反転(Object>Flip Horizontal)した画像にします。
そしてこの画像を、File>Export PNG Image...でPNG画像として出力保存します。解像度設定は1600dpiで高めにしておきます。
文字をパス化せずにPNG画像にしたのは、レーザーカット加工ではなくラスタ加工(レーザー彫刻加工)するためです。動画にもあったように、ラスタ加工では、細い水平線を何本も照射させます。
そうするとこんな感じのPNG画像ができあがります。上半分(左右反転してない方)は必要ないので下半分だけ使います。スタンプ上での寸法は約40x7mmです。

黒い背景にレーザーが照射されて削れるというわけです。つまり文字のところが残って、スタンプするときは文字にインクがつきます。
これで画像の準備はOK。

Laserweb3の準備:
今回はLaserWeb3を使ってみます(Laserweb4もありますが、たしかまだα版なので)。
Grbl1.1に対応になったので、まずは以前インストールしたLaserweb3をアップデートする必要があるかもしれません。というか、ここにGrbl1.1は必須でアップデートしろと書いてあります。

たしか以前インストールしたとき、Terminalで手入力だったので、慣れてない人は少し抵抗感があるかもしれません。Termnal(Mac)やコマンドプロンプト(Win)の操作が分からないという人は、使い方を検索してみて下さい。
各OSごとのインストール方法はこのサイト右側に書いてあるので、その通りやれば大丈夫かと。Macならここ、Winならここ

Laserweb3をインストールする前の準備(Macの場合):
・古いnode.js(version 0.12など)はアンインストールしておくこと
・かわりにNode.js 6 LTSをダウンロード(https://nodejs.org/en/download/
・Google Chromeをインストールしておくこと
・Git for OSXをダウンロード&インストール(https://git-scm.com/download/mac
   Git for WinやLinuxの場合はこちらから

Laserweb3のインストール(Macの場合)
・ターミナルを開く。
・ユーザーrootにインストールするといい(/Users/username/Laserweb3という場所になるように)、通常はターミナルを開いた段階で、このディレクトリにいると思うのでそのままでOK。
・ターミナル上でgit clone https://github.com/LaserWeb/LaserWeb3.gitを入力
・続いて、cd LaserWeb3
・さらに、npm install(ここでシリアルポートのエラーが出るけど無視)
これでインストールは終了。

アップデート方法:
もし、アップデートが必要ならLaserwebを立ち上げる前に、
cd laserweb3
で、laserweb3のディレクトリに移動し、
git pull
を入力(ここに書いてあります)。
もし、すでにアップデートが済んでいるなら、
Already up-to-date.
と、表示されます。

Laserweb3の起動:
・ターミナルを開く。
cd laserweb3を入力(Laserweb3フォルダ内のディレクトリへ移動)。
node server.jsを入力(サーバを立ち上げる)
そうすると、ターミナル上には以下の画面が出てきます。
この画面↑にも書いてあるように、
1.Google Chromeブラウザを立ち上げる。
2.Chromeのアドレスにlocalhost:8000を入力するか、上画面に書いてあるアドレスhttp://192.168.3.2:8000/(このアドレスはルータ等の設定によって各自異なる)を入力。

特に問題なければChrome上ではLaserweb3の画面が出てきます。
これで、ようやくLaserweb3の用意ができました。

画像をLaserweb3に取り込む:
まず青いOpenボタンを押して先ほどInkscapeでつくった画像を取り込みます。
画像解像度は高めだったので、Laserweb3の作業グリッドからはみ出ています。
なので、サイズを調整しますが、同時に色々な設定もしていきます。

CNCマシンの設定:
まず、画面左側にあるSettingsタブをクリック。そして青いSIZEタブの設定項目から入力していきます。
X-Length、Y-Lengthにはマシンの作業エリアの値を入れておきます。
Laser Beam Diameterは、今回の場合ラスタ加工するので0.1mm(かなり細め)にしておきます。
Cutting Mat Thicknessは3mmで(これは何なのか不明?)。
Air Assist NozzleはないのでDisable。
その下の、Default Import DPIは、
それぞれ96、96、92、600という感じで、グレーで数値が表示されている値(多分デフォルト値)を入れておきます(入力するとグレーが黒文字へ変わります)。そして下の緑色Saveボタン。
上の方に(NB: Page needs a refresh for these settings to take effect!)と書かれているので、一度ブラウザで再読み込みしないと変更された数値は反映されないようです。反映(設定)されれば、赤文字の! Incomplete Configが消えます。ただし、読み込んだ画像は消えてしまうので、再読み込みが必要。
(Required)は入力必須なので、何かしらの値を設定入力しておきます。

次に、また上に戻って青いGCODEタブ内の設定。

Concatenate Raster X Movesは、ピクセルが同じグレースケール値の場合長い線につなげるという機能のようですが、SmoothiewareではDisableにしろと書いてあるので、おそらくgrblでも無理だろうからDisable。
Start G-Codeには、加工前の動作を設定できるようです。例としてマシン原点に戻るなどグレーで書いてありますが、今回はここは必要ないかと。(Optional)なので入力しなくてもOK。
つぎにLaser ON Command、ここはGrblのLaser ModeのM4を入れておきます(Grbl0.9までならLaser ModeがないのでM3)。加工前にGrbl設定でLaser Modeをオン($32=1)にしておく必要があります。
そして、Laser OFF CommandはM5。これはGrbl1.1も0.9も共通。
もう少し設定項目は続くようなので以下へ。


PWM Max S valueは、レーザーの最大出力値。Grblでは1000は最大値なので1000を入力。
Homing Sequenceは$Hで、Grblのホーミングサイクル(機械原点移動)。
End G-Codeは、M30。加工のGコード最後につける加工終了のコマンド。
Travel Movesは、単位がmm/minではなくmm/sなので要注意。G0(加工していないときの移動速度)なので画像では5を入力しましたが、5mm/s=300mm/minなので遅すぎかも。Grbl内では1000mm/minに設定したので、それにあわせるなら16mm/s。試運転なのでちょっと遅めで10mm/sあたりに変更しておきます。
その下二つはレーザーテスト用の設定。(Optional)なので空白のまま。
緑のSaveボタンを押して、ここの設定は終了。

次の青いダブTOOLはあまり設定内容もないので、以下のまま。

さらにつぎの青いBACKUPも特になし。
重要なのは最初のほうに設定したSIZEGCODEタブの二つでしょうか。
大体設定できたので、つぎは先ほど取り込んだ画像を再取り込みします。

画像調整とGコード生成:
取り込んだ画像が大きすぎるので、解像度など変更しながらサイズ調整します。
左側のCAMタブをクリックして、画像名(この場合stamp001.png)をクリックすると以下のように設定可能な画面になります。

ここで、Bitmap Resolutionを変えていくと、画像の大きさも変化します。画像の寸法が出てきてくれるので、だいたいこんな感じというところまでDPIを調整します。今回は幅35mm、高さ6mmくらいまで小さくします。
Raster: Proportional Feedrateも単位はmm/s。今回試してみないと分からないので、一応かなり遅めで4mm/s=240mm/min(上画像では20mm/sになっていますが)に設定してみます。明暗でスピードが変えられるようですが、どちらも同じ設定にしておきます。おそらくレーザー照射されるDarkのほうが遅く設定するといいとは思いますが、これも今回は様子見で。
Laser Power Constraintsは0〜100%の設定。スタンプなので白黒となるため。
Position Offsetは適宜入力して、材料ぎりぎりだと加工が難しくなるので2mmほど余白をつけておきました。入力すれば、右画面の画像もその分移動してくれます。
こんな感じで、上にある緑色のGenerate G-Codeボタンを押して、Gコード生成。

Gコードによるパスを確認:
Gコードが生成されれば、右画面上のG-Code Viewタブで、Gコードのパスだけを見ることができます。

ラスタ加工なので水平のパスだけで文字が浮かびあがっています。Settings>SIZEのところでレーザーの直径を0.1mmに設定したので高さ6mmだと60本ほど線があることになります。つまり60回線を引いてこの画像を加工するということになります。幅35mm×60本=2100mm、加工スピードを4mm/sに設定したので2100/4=525秒、つまり9〜10分かかるということになります。大丈夫なのか少し心配です。加工面積は小さいので、失敗しても材料がそれほど無駄になるというわけでもないです。
ここで設定を考慮しなければいけない点は、
レーザーの直径:0.1mm(小さすぎるか?0.2mmだと荒すぎか?)
加工速度:4mm/s=240mm/min(ダイオードレーザーだと加工に充分な速度?)

作業開始:
Bluetooth経由でCNCマシンと通信しようとしましたが、なぜかエラーがでてしまいます。どうやら上手くつながらないみたい(Bluetooth対応のnode.jsもあるようなので、それを使えばいいのかもしれませんが、もう少し調べてからチャレンジしてみます 追記:その後アップデートしてみたらBluetoothでもつながりました)。
なので、今回はCNCマシンと直接USB接続で、このままLaserWeb3でGコードを送りつつ加工作業もしてみました。5.5Wのダイオードレーザーです。
今回はGrbl1.1のLaser ModeのコマンドM4でレーザー出力するので(Laserweb3内でもM4で設定済み)、GrblのレーザーモードをON($32=1)にしておく必要があります。
これはちょうど作業が終わったところ。やはり計算通り約10分かかりました。0.1mmずつの走査線なのでけっこうかかります。ランバーコア合板を台にして、その上にレーザー用ゴム板をただのせているだけです。両面テープ等使って固定した方がいいとは思いますが、今回はテストなのでそこまではしていません。
加工中も気になっていたのですが、レーザーが当たった部分は黒くなっています。ただ表面が焦げているような感じ。加工中は多少焦げ臭い匂いもしましたが、煙がでるほどでもなく、気にしなければあまり大した匂いでもない感じでした。

これが、加工直後の状態。幅35mm、高さ6.35mm。
左のほうは指で少し触ってしまったのですが、動画で見たような白い粉がでてきました。ただ黒く表面が焦げただけかと思っていましたが、もしかすると動画で見たような感じに上手く削れているかも。
ということで、ここでエアーダスター(エアースプレー)で一気に黒い焦げも含めて吹き飛ばしてみました。

そうすると、やはり白い粉のようなものがでてきて、ティッシュでも最後拭きましたが、こんな感じになりました。見た目からすると、上手くいっている感じ。やや彫りが少ないかなとも思いましたが(目測では0.3mmくらいの彫り)、文字はきれいに浮き出ているし、焦げているという感じでもないので、これでOKということにしました。
さすが機械でつくったという感じです。手彫りならこんなに正確には彫れません。

シートから切り取って、木片に両面テープで貼ってみました。文字を囲んだ枠の部分は必要ないのですが、今回はつけてみました。
さっそくスタンプしてみます。100均で買った水性黒インクのスタンプ台です。
設定なども勘で、初めてつくったわりには上手くいきました。やはりこのレーザー用ゴム板は、特殊な合成ゴムのようで、レーザーに対してただ焦げたり溶けたりするわけではなさそうです。なぜ白い粉が出てくるのか気になります。

幅35mm、高さ6.35mmの小さなスタンプですが、やはり0.1mmずつ線を引いていったほうが、このような文字などはくっきりすると思います。当然解像度が低ければ、文字のアウトラインももう少し曖昧になってしまうでしょう。
ただ、加工フィードに関しては5.5Wダイオードレーザーを使っているため(あまり強力ではないので)、これ以上速くすると彫りが浅すぎになってしまうかもしれません。今回は4mm/s=240mm/minでしたが、3mm/s=180mm/minなどもうすこし遅くてもいいかもしれません。そうすれば0.5mmくらいは削れるかもしれません。しかし、スタンプなのでそんなに凹凸がなくても何とかなるとは思います。
これからのシーズン、年賀状などにスタンプを使うのはいいかもしれません。

それからLaserweb3に関しては、ブラウザ上のアプリ一つでGコード生成とGコード送信もできるのでけっこう便利です。現在α版であるLaserweb4にも期待できそうです。

追記(スマホからホストへアクセス):
その後、Laserweb3をアップデートしてBluetooth接続可能となりました。MacBook Proの内蔵BluetoothでCNCマシンに取り付けたBluetoothモジュールと通信しているのですが、同時にスマホからも通信できないかと、スマホ上のChromeで192.168.3.6:8000にアクセスしてみると、普通に操作できました。スマホ上でもシリアルポートを選択して接続するのですが、MacBook Pro上で選択しているポートでOKでした。
こんな感じで画面の構成が多少崩れてしまうのですが(PCモードで表示/拡大表示も可)、ジョグボタン操作は可能なので、離れた位置にあるMacBook Proから設定やメインの操作などをして、CNCマシン付近ではスマホを使って加工原点出しができます。
つまり、bCNCのPendant機能のような使い方が可能というわけです。Laserweb3の場合は、Gコード生成とGコード送信が一つのソフトで可能なので、レーザー加工するならこれが一番便利かもしれません。

2016年12月18日日曜日

Grbl1.1 Laser Modeの実験

さてGrbl1.1のレーザーモードの実験をしてみました。
前回も書きましたが、Grbl1.1では新たにLaser Modeが加わり、その中でもM4コマンドをつかった(従来まではM3)Dynamic Laser Modeという、レーザーヘッドの移動スピードに比例するようにレーザー出力をリアルタイムで調節してくれる新機能があります。今までは、スピードが落ちがちなパス折り返し地点や出だしの部分などで、焦げが目立っていましたが、それが解消(緩和)されるというわけです。どの程度効果あるのか、そしてどんな設定やコマンド操作するといいのか試してみました。
結果的には、従来に比べけっこう使えるんじゃないかという感じです。

使っているG Code SenderはbCNCです。今回は90度の扇形(半径20mm)の図面を描いて実験です(Inkscapeで描画、Laser Tool Plug-inでGコード生成)。直線部分、角の部分、そして円弧がある図形という感じです。特にいままでは、角の部分で焦げが目立っていましたが、どうなるかいくつかのパターンで試してみました。
画面左↑にGコードがあります。ちょうど水色の部分にM03があり、ここをM4に変更したりS値を少し書き換えていくつかのパターンをつくってみました。
結果は以下。
材料は厚さ2.2mmのシナベニヤ板。半径20mmの扇形。5.5Wダイオードレーザー使用。
まずは下の段から、
左端は、従来のM3 S1000 F200でカットしたもの(やや角に焦げが見えます)。
左から2番目、M4 S1000 F200。Dynamic Laser Modeなので、あまり角が焦げていません。なかなか効果あり。

M4でもS値を入力する必要がある:
ここで疑問に思ったことがあり(前回の投稿での疑問でもありましたが)、M4はスピード(フィード)に合わせてレーザー出力するのなら(M4の場合、スピードが0だと出力も自動的に0なる)、S1000はコマンド入力しなくてもいいんじゃないか?ということで試してみると、M4だけで出力値Sを入れないでRunさせると、レーザー自体出力していませんでした。つまり、M4 S1000などと出力したい値(おそらく100%のときの出力値)を入力しないとダメです。
ということで、右から2番目のが、M4 S500 F200。出力を半分に下げてのDynamic Laser Mode。少しわかりにくいかもしれませんが、左から2番目のS1000よりは弱いかなと。
わかりにくいので、右端がS100まで出力を落としたDynamic Laser Mode。ということから、M4の場合、Sの値は上限値という感じです。

レーザーモードのオン・オフ設定:
ただ、注意点としては、M3の場合は最初に$32=0という感じで、レーザーモードをオフにしておき、M4を使うなら$32=1に設定変更が必要です。M4での作業が終わればまた$32=0に戻すという感じ。M4が便利そうなので、$32=1のままでよさそうですが(M3はもはや使わないかも)。

リアルタイムオーバーライド機能:
それから、実験結果画像の上のほうにあるのは何かというと、Grbl1.1からはReal-time Overridesが使えるようになったので、もともとbCNCについているオーバーライド機能を使ってみたという結果です。
bCNCには、FeedやSpindleをリアルタイムで調節できるスライダーがついています。加工中ではないときでも、Spindleボタンを押せば、レーザーオン・オフや出力調整が可能です(いきなりレーザー光がでるので注意が必要です)。この画像↑の場合、Feedが最大200になっています。
追記:調べてみると、どうやらこの200は200%とということらしいです。100が100%でそれに対し、25%〜200%で可変制御可能ということみたいです。
このようにスライダを右にずらせばフィード50%などに変更できます。これを加工中(レーザー照射中)に変更するとどうなるかというのが、実験結果画像の上段です。上の段真ん中が、M4で加工中にフィードを200%から50%まで下げてみた結果です。Dynamic Laser Modeなので、理論的にはフィードが途中で変わっても、それに合わせて出力変化してくれるので、均一な加工結果になるはずです。ぐりぐり少しいじったので、円弧の部分でややムラがありますが、縦のラインはフィード200%で横のラインがフィード50%ですが、だいたい同じくらいの出力になっている感じなので、効果はでていると思います。

実験結果画像上段の右端は、M3で同じように加工中にリアルタイムでフィードを変化させたものです。Dynamic Laser Modeではないので、当然200%から50%に下げれば、それだけ焦げが多くなるはずです。まあ、そういう結果になっているので、やはりリアルタイムで調節可能ということが分かりました。

まとめ:
Dynamic Laser Modeはけっこう効果あります(焦げが少なくなるために、きれいに切断できる)。
Dynamic Laser ModeでM4を使うときは$32=1(レーザーモードON)にする。
従来のコマンド(M3)の場合は、
M3 S1000(レーザーON、出力100%)
でしたが、
Dynamic Laser Mode(M4)の場合は、
M4 S1000(S値:レーザー出力上限値、S500なら最高50%で出力)。
リアルタイムでフィード(25%〜200%)や出力値(0〜100%)も調整可能。
結果的には、Grbl1.1のほうがGrbl0.9よりずっと優れている。

要するに、どうすればいいかというと、Gコード上ではM4 S1000で出力値MAX、フィードもやや速め(M3のときの設定に比べれば1.5倍〜2倍)に設定しておき、bCNCならスライダで出力値やフィードを調整するという手順になるかと。なので、今回の実験のように、いちいちGコードファイルを開いて編集する必要もないと思います。

Inkscape Laser Tool Plug-inでの設定:
例えば、Inkscape Laser Tool Plug-inを使うならば、
こんな感じで、
Laser ON Command: M04、
Laser Speed: 200(これはやや速め/レーザーのW数による)、
Laser Power S#:1000(ここはGrblのスピンドルMAX出力値の1000)
にしておいてGコードを生成。
あとでbCNCなどのG Code Senderのほうで出力値やフィードは現場調整という感じ。

bCNCの画面折り畳み機能:
これはレーザーモードには関係ないですが、bCNCの場合以下のようにState▲をクリックすると、画面が折り畳めます(しばらく気づかなかった)。
bCNCの全体表示画面が大きすぎるとき(Raspberry Piの小さなモニターのときなど)、折りたたみ機能を使えば大丈夫というわけです。

2016年12月14日水曜日

Grbl1.1 Laser Mode:レーザーモードについて

grbl1.1からはLaser Modeが新たに追加された点が個人的には嬉しいことです。
特に、Dynamic Laser Power Scaling with Speedという機能がいままでにはない優れた機能だと思います。レーザーカット作業において、今までは特にパスの折り返し地点付近で焦げめが目立っていたのが、この機能で緩和され、より自然な切断が可能となりそうです。

grbl0.9までのレーザーカット作業の手順:
Inkscapeで図面(図形)を描画
・Inkscape ExtensionのLaser Tool Plug-inで出力設定してGコード生成(gcodeファイルで保存)
bCNCでgcodeファイルを読み込み加工作業
という流れでした。

Gコード的には(Laser Tool Plug-inで自動的に書き込まれる)、
M3(レーザー出力オン)
S1000(出力100%)
M5(レーザー出力オフ)
S0(出力0%)
M30(プログラム終了)
という感じでした。

主にM3を出力オンとして使っていましたが、grbl1.1ではM3だけでなくM4もあるようです。覚え書きのためにも以下に書いておこうと思います。

Grbl1.1のLaser Mode:
Grbl1.1 Laser Modeのページを見てみると、
まず、レーザーモードにするには、
$32=1
を入力するようです。当然レーザーを使わないときは$32=0に戻しておかなければいけません。

M3 Constant Laser Power Mode:
これは、いままで通りのモードと考えていいようです。スピンドルならM3は時計回りの回転ですが、レーザーには時計回りなど関係ないので、とりあえずM3で出力オンにしていたというわけです。ちなみにM4はスピンドル反時計回り、M5がスピンドル停止。

M4 Dynamic Laser Mode:
これが今回改良されたDynamic Laser Power Scaling with Speedのことだと思います。M4はスピンドルでは反時計回りですが、ここではそのMコードをかわりにつかっているようです。
このレーザーモードにおけるM4は、レーザーヘッドのスピードに合わせて出力を調整してくれる機能で、動き出した瞬間や折り返し地点などでスピードが落ちてしまったときに、それに合わせて出力も落としてくれる(焦げにくい)という感じです。まだ実験していないので、どのくらい効果あるのか分かりませんが。
この特性のためかM4の場合、レーザーヘッドが動いていないときは出力が0になるようです。仮に消し忘れたとしても、ヘッドが止まっている限りはレーザー出力0になるのでいちいちオフにする必要がないらしいです。
つまり、
$32=1
M4
を最初に入力すればいいということでしょうか?(追記:M4 S1000などと入力する)
しかし、基準となる出力(素材に合わせた出力値)はどこで設定するのかまでは書いていません。もしかしたら、設定済みの加工最速フィードを100%出力に設定してあるのかもしれません。それとも、M4 S500とでも入力すれば、最速でS500(50%出力)ということになるのでしょうか?
この機能がすべての素材に適合するかどうかは分からないので、事前に要テストして欲しいと書いてあります。
やはり、試してみないとまだわからないという感じです。いずれにしても、以前の使い方(M3)にも切り替えられるし、結局は使い分けという感じになるでしょうか。
いちいち手入力でGコードを修正するのも面倒なので、以前Laser Tool Plug-inのエラーを解消したときのように、Laser Tool Plug-in自体はpythonで書かれているためソースコード自体を改造すればいいかもしれません。

PWM周波数:
ちなみに、スピンドル用PWM周波数は、デフォルトで1kHに設定されているようです。
それが記述されているcpu_map.hファイルを見てみると、
おそらく145行目のこれ↑のことかと思います。Laser Tool Plug-inのJ-tech laser仕様に合わせているようです。厳密には0.98kHz。これを142〜143行目のどれかに変えれば、PWM周波数を高く設定できるようです。これを見る限り16bitではなく8bitみたいですね。
$32=1でレーザーモードがオンですが、grbl1.1の質問スレを見ると、$32=2や$32=3のようなオプションもあるようなことが書いてあります。実際どうなるか試してないので分からないですが。

ということで、M3とM4のカットの違いをそのうち試してみて、近々結果を報告したいと思います。
追記:実験結果はこちら

最新版Grbl1.1をインストール

早速grbl1.1をインストールしてみました(Macの場合)。基本的にはgrbl0.9のインストールと同じようです(grbl0.8と0.9のインストールについてはこちら)。
注意としては、もうすでにgrbl0.9や0.8などをArduino IDEに以前インストールしてある場合は、保存されるフォルダ名が同じなので、一旦古いのは捨てたほうがいいです(もしくは古い方をリネームしておくとか)。
Macの場合なら、
/Users/username/Documents/Arduino/libraries内のgrblフォルダ(旧バージョンのgrbl)を捨てる。

Arduino IDEによるインストール方法:(インストールの仕方はこちらを参照
このページの緑色のボタン(Clone or download)のDownload ZIPを選択。
「grbl-master.zip」ファイルがダウンロードされるので、それを解凍すると「grbl-master」フォルダが出来上がります。
次に、Arduino IDEを立ち上げて、メニューバー>スケッチ>ライブラリをインクルード>.ZIP形式のライブラリをインクルードを選択(以下)。
そうすると、ファイル選択の画面がでてきて、先ほど解凍した「grbl-master」内の「grbl」フォルダを選択(以下)。
そして、Arduino IDEのメニューバーでファイル>スケッチの例>grbl>grblUploadを選択(以下)。
そうすると、以下のようなgrblのプログラムが書かれた画面がでます。
注意書きとして、ここには何も書き込まないようにと。

あとは、ArduinoボードをUSB接続して、「検証」「マイコンボードに書き込む」を押してアップロードします。メモリめいっぱい使って書いてあるコードなので、書き込みが不安定になることがあるような注意がでますが、なんとか書き込めればOKです。

たまに、中国製Arduinoボードの場合、シリアル通信用のICが違うためか(CH340など使用している)、Arduino IDE上のシリアルポート選択でボードのポートが見当たらないときがあります。そのため専用ドライバが必要な場合もあります。「CH340 Arduino」などで検索すると、専用ドライバが見つかると思います。

Arduino IDEのシリアルモニタでgrbl設定内容確認:
Arduino IDE画面の右上にあるシリアルモニタ機能を使ってアップロードしたgrblの内容を確認してみます(アップロード後、一度Arduino IDEを再起動してみたほうがいいかもしれません)。
こんな感じ↑で、「Grbl 1.1e ['$' for help]」が先頭にでます(ボード再接続やIDEの再起動しないとでないかもしれません)。画面右下のbaudrateは115200bpsを選択。
$$
を入力してリターンを押せば、このような各設定がでてくるかと思います。
あるいは、$I(ドル大文字アイ)を入力すれば、
[VER:1.1e.20161208:]
というように、バージョンとビルドされた日付がでてきます。
あとは、CNCマシンに合わせて各項目を設定していけば、すぐに使えると思います。
ちなみに、grbl0.9までは$xの各項目のあとに()でそれぞれの説明/コメントがついていましたが、メモリ削減のためgrbl1.1ではカットしたようです。

Universal-G-Code-Senderの場合:
以下はUniversal-G-Code-Senderの画面。バージョンは1.0.9です。
使っているArduinoボードのPortを選び、Baud:は115200、Openボタンを押すと先ほどと同じように、「Grbl 1.1e ['$' for help]」がでて、$$入力で各種設定内容が出てきます。

古いG Code Senderだとダメっぽい:(理由不明/もしかしたら大丈夫かも)
ためしに、やや古いバージョンである1.0.7でやってみると(以下)、
冒頭に「Grbl 1.1e ['$' for help]」は出て来たのですが、$$を入力しても反応なし。
画面中ほどにある「Show verbose output」にチェックを入れてみると、このような↑反応がずらずらと止まることなくでてきました(追記:これは1.0.9でも同じでした)。まだ理由は分かりませんが、1.0.9では大丈夫だったので、この際grbl1.1にすると同時にUniversal-G-Code-Senderも1.0.9の最新版にアップデートしておいたほうがよさそうです。

同様にbCNCの場合もそうでした。ということから、grbl1.1にバージョンアップするなら、G Code Senderも最新のものにしたほうがよさそうです(理由不明)

追記:
上記画面でShow verbose outputにチェックを入れると、このように連続的に状況がアウトプットされるので、通常はチェックを入れないでおく方がいいです。

その他エラーなど:
Known Issuesに書いてありましたが、USBシリアル変換チップであるCH340Gが搭載されているArduinoボード(特に中国製クローンに多い)でシリアル通信のエラーが発生するらしいです(いまのところ対応策なし)。
同様にAtmel 16U2(ATmega328ではなく)を搭載してあるボードにも同様のエラーが生じるようです。解決方法などはKnown Issuesのリンク先にのっています。

ということから、grblを使うならATmega328搭載のArduinoボードのほうがよさそうです。

以下は個人的メモ:grbl0.9jの時の設定内容(grbl1.1へこの設定を引っ越し)
$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=1 (hard limits, bool)
$22=1 (homing cycle, bool)
$23=0 (homing dir invert mask:00000000)
$24=30.000 (homing feed, mm/min)
$25=600.000 (homing seek, mm/min)
$26=25 (homing debounce, msec)
$27=5.000 (homing pull-off, mm)
$100=320.000 (x, step/mm)
$101=320.000 (y, step/mm)
$102=320.000 (z, step/mm)
$110=1000.000 (x max rate, mm/min)
$111=1000.000 (y max rate, mm/min)
$112=400.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)

2016年12月12日月曜日

GRBL1.1(最新版)本格的にアップデート

どうやらgrbl1.1がようやく本格的にアップデートされたようです(1.1のリンクはこちら)。
10月くらいにアルファ版のような感じででていましたが、まだ改良の余地が残っていたようで、ようやく一段落したみたいです。1.1のWikiページにも一通りの情報が掲載されたようです。0.9jのほうはそのうちおしまいという感じです。これまでは、grbl0.9jが安定版でしたが、この際1.1にアップデートしてしまってもいいかもしれません。

v1.1で特に改良されたのは:
・Real-time Overrides
 マシン動作中でもフィードやスピンドルの速度を変えたりできるようです。
・Jogging Mode
 ジョグ機能がGコードとは独立した仕組みになっているようで、ジョイスティックやロータリーダイヤルなどを使って操作もできるようです。今まではGコード送信で擬似的なジョグ操作をしていたようです。$J=というコマンドが使えるようです。
・Laser Mode(実験結果についてはこちらへ
 レーザーに合わせた動きに対応、可変出力も可能。
・Dynamic Laser Power Scaling with Speed
 ヘッドの速度と同調してレーザー出力を調節してくれるため、従来は角(加工パス上の)が焦げやすくなっていたけれども、それが改良されている。
・Sleep Mode
 $SLPをコマンド入力すると、ステッピングモーターも含めスリープ状態にすることができる。
という感じです。
Laser Power Scalingにいくつか問題があったようで、それが解決されたのをきっかけに今回本格的にリリースされたのかもしれません。確かにレーザーを使う人にとっては、焦げがなくなってかなり便利な機能です。

Arduinoボードへアップロードする方法は、従来通りArduino IDEでできるようです。Arduinoボード上のピン配列は、grbl0.9jと同じようなのでそのまま1.1をアップロードすれば使えそうです(もちろん各種設定はし直さないといけませんが)。
grbl0.9jでも充分なのですが、せっかくなのでv1.1を今度試してみようと思います。
ただ、以前Forumで見たときは、bCNCのオーバーライド機能とはまだ連携していないらしく、いろいろあるG Code Senderが、grbl1.1に対応するのを少し待つ必要があるかもしれません。

追記:grbl1.1のインストール(Mac)については次の投稿へ