grbl1.1+Arduino CNCシールドV3.5+bCNCを使用中。
BluetoothモジュールおよびbCNCのPendant機能でスマホからもワイヤレス操作可能。
その他、電子工作・プログラミング、機械学習などもやっています。
MacとUbuntuを使用。

CNCマシン全般について:
国内レーザー加工機と中国製レーザー加工機の比較
中国製レーザーダイオードについて
CNCミリングマシンとCNCルーターマシンいろいろ
その他:
利用例や付加機能など:
CNCルーター関係:



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


ラベル Grbl の投稿を表示しています。 すべての投稿を表示
ラベル Grbl の投稿を表示しています。 すべての投稿を表示

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)については次の投稿へ

2016年11月25日金曜日

CNCシールドV3.0とV3.1以上(最新版はV3.51)の違い

Arduinoボードに直接装着できるCNCシールドV3.0とV3.1以上(最新版はV3.51)の違いを書いておきます。CNCシールドがあることで煩わしい配線がすっきりして便利ですが、基本的にはArduinoボードに直接モータードライバやリミットスイッチなどを接続すれば必要ないものでもあります。とは言っても、中国製の格安CNCシールド(クローンのArduino UNOとドライバとのセットなど)があるので、つい買ってしまいます。大体はV3.0だと思うので以下のような違いを理解しておくといいと思います。
開発元であるPROTONEERのサイトに使い方や設定方法などが書いてあるので見てみるといいと思います。


主には:
CNCシールドV3.0(1000円以下):grbl0.8用のピン配列、スピンドルON-OFF制御
CNCシールドV3.1以上(2000円前後):grbl0.9用のピン配列、スピンドル可変制御
という感じです。
最新版V3.51には、リミットスイッチ端子にノイズフィルターもついたようです。
Z軸の高さ調整など行うProbe(下画像:Arduinoボード左下のA5ピン)に関してはこちらへ

grbl0.8とgrbl0.9のピン配列の違い:(追記:最新版grbl1.1の場合はgrbl0.9とピン配列は同じ)
まず、CNCシールドV3.0とV3.1以上の相違点の前に、grbl0.8とgrbl0.9のピン配列の違いを理解しておくといいでしょう。
grbl0.9からは、スピンドルが可変制御(PWM制御)となったので、Arduinoボード上のピン配列が少しだけ変わりました。以下の赤の矩形で囲んだ部分に違いがあります(grblのサイトに違いの説明があります)。

grbl0.8(上画像左)では:
ArduinoボードD12ピン:Spindle Enable(スピンドルON-OFF端子)
ArduinoボードD11ピン:Limit Z-Axis*(Z軸用リミットスイッチ端子)

grbl0.9(上画像右)では:
ArduinoボードD12ピン:Limit Z-Axis*(Z軸用リミットスイッチ端子)
ArduinoボードD11ピン:Variable Spindle PWM(スピンドル可変制御端子)

CNCシールドV3.0はgrbl0.8のピン配列に対応しているため(数年前の仕様)、もしCNCシールドV3.0でgrbl0.9(あるいは1.1)を使用する場合は配線に関して注意が必要です。CNCシールドV3.0でも配線を入れ替えることでgrbl0.9j(あるいは1.1)を使用することができます。
*Arduinoボード上では、上画像に見えるボード右端に縦に並んでいるピン0〜13(D0〜D13ピン)がデジタル入出力ピン(ON-OFF制御用)になります。しかし、3、5、6、9、10、11の6本のピン(ピン番号の頭に−がついているピン:例えば−3のように)だけはPWM出力(256段階可変出力)に設定可能です。そのため、grbl0.9以降ではスピンドル可変制御を導入したことにより、ON-OFF制御にしか設定できなかったD12ピンをPWM制御出力可能なD11と入れ替えたようです。

また、grbl0.8ではシリアル通信の速度となるbaudrateは9600、grbl0.9以上では115200になります。grbl0.8から0.9へアップグレードしたとしても、けっこう内容が変わっているので、そのままgrbl0.8のようには使えないかもしれません。
パソコン上にインストールするG Code Sender(Grblcontroller、Universal-G-Code Sender、bCNCなど )と接続後、
Grbl 0.9j ['$' for help]
コンソール画面にこのように↑でれば、Arduinoにアップロードされているgrblのバージョンが0.9jであることが確認できます。どのバージョンか確認するには、一度接続してみるといいと思います。また、パソコンにArduino IDEがインストールされているなら、シリアルモニタ機能でもコマンド送信することで確認できます(方法についてはこちらのページ中程に書いてあります)。
0.9にバージョンアップした場合は、コマンドや設定も0.8とは違うようなので、再度セッティングし直したほうが良さそうです。例えば、grbl0.8では$17=1がホーミングサイクルON設定に対して、grbl0.9では$22=1がホーミングサイクルON設定となっているので、このへんからして違いがあります。


CNCシールドV3.0とV3.1以上(最新版はV3.51)の違い:
以下は、2016年3月にaitendoで購入したCNCシールドV3.0です(モータードライバA4988を搭載済み、モータードライバについてはこちらへ)。アマゾンなどでも1000円以下で購入可能だと思います(AliExpressなら数百円)。
黄色い枠で囲んだ部分を見てみると、まず右側にSpnEn端子があります。これはgrbl0.8に対応したスピンドルON-OFF制御の端子です(grbl0.9では可変制御に改良)。そして、CNC SHIELDと製品名が書かれています。ここにはバージョンは書かれてなく、そのままCNC SHIELDとしか書いてません。このへんが、V3.0の特徴でしょうか。

それに比べ、以下がその後購入したCNCシールドV3.5です(最新版はV3.51:ブログ右側にAliExpressのリンクがあります)。価格は2000円前後(やや高い)。
V3.0でSpnEnだった端子が、SpnEn(pwm)となっています。そして製品名にもPROTNEER CNC SHIELD V3.5と書かれています。V3.5(あるいはV3.1以上)では、SpnEn(pwm)の端子名が変更になっただけでなく、ピン配列もgrbl0.9に対応しています。grbl0.8対応のV3.0と違って、ピン配列を入れ替えすることなく、grbl0.9をそのまま使えます。それから、右下の方にあるジャンパブロックが、リミットスイッチをオープン状態で5Vにするか0Vにするかを選択可能にします(このあたりの設定や説明は開発元PROTONEERのサイトに書いてあります)。
*V3.5とV3.51の違いは、主にはリミットスイッチ端子にノイズフィルターがついたことでしょうか。


CNCシールドV3.0を使いつつ最新版grbl0.9(grbl1.1も同様)を導入する場合:
安価なCNCシールドV3.0を用いて最新版のgrbl0.9を導入する人も多いと思います。以下のように配線を入れ替えてリミットスイッチやスピンドルと接続することで、特に問題なく使用することができます。
CNCシールドV3.0の右側に並んでいるピンのうち、SpnEnにはZ軸用のリミットスイッチ(Z+とZ-の両方)をパラレルに接続し、かわりにZ+(あるいはZ-)端子には、スピンドルの可変制御用端子(Spindle PWM/ドライバのTTL端子)を接続します。他のX+、X-、Y+、Y-端子には、今まで同様X軸とY軸のリミットスイッチをそれぞれ接続します。リミットスイッチは普段オープンな状態にしておき、スイッチが押されたときにクローズドになるように端子を選んで接続します。リミットスイッチの白端子には普段5Vが通電されています(プルアップ抵抗で5Vになっている)。黒端子はGND(0V)です。白と黒をショートさせると、白端子が0Vになり、リミットスイッチが入ったことを感知する仕組みになっているようです。

CNCシールド上では、各リミットスイッチには+と-(通常、X+:X軸右端、X-:X軸左端、Y+:Y軸奥、Y-:Y軸手前、Z+:Z軸上、Z-:Z軸下)がありますが、回路上ではそれら二つはパラレルに接続されているようです(Arduinoボード上のリミットスイッチ端子はひとつずつしかないので)。
念のため、ここに書いてある内容を鵜呑みにする前に、Arduinoボード(grbl0.9をアップロードしてある)のD11とD12に対応するピンが、CNCシールドV3.0のどのピンとつながっているのか、各自がテスターで確認したほうが安全だと思います。
注意点:
おそらくCNCシールドV3.0(V3.51未満)の場合は、リミットスイッチにノイズが発生するため、コンデンサーをリミットスイッチ用の端子につけたほうがよさそうです。これについてはこちらへ


grbl0.9におけるスピンドル可変制御について:
grbl0.9であれば、スピンドルの可変制御(スピード調節)が可能です。レーザーを使う場合もレーザーの出力調整が可能となります。スピンドルのモータードライバやレーザードライバのTTL端子と接続することになります(ものによってはON-OFF制御しかできないドライバもあるので、grbl0.9を使う場合は可変制御可能なドライバを使用することをおすすめします)。ちなみに、Arduino(CNCシールド)のPWM端子からは0〜5V(通常8bit:256段階、D11をtimer2にすれば16bit:65536段階)の信号が出されます。
*最新版grbl1.1の新機能レーザーモードについてはこちらへ(本家)

grbl0.9においては、
M03(スピンドルを時計回りに回転)
M04(スピンドルを反時計回りに回転)
M05(スピンドル停止)
M30(プログラム終了)

例えば、
M03 S1000
を入力すれば、スピンドルをオンにして出力100%で回転となります。Sは出力値です。
S0で0%、S500で50%、S1000で100%という感じで出力調整可能です。
スピンドルを停止する場合は、
M05 S0
などと入力するといいと思います。
終了する場合は、
M30
がGコードの最後にきます。

grbl0.8まではスピンドルON-OFF制御だったので、grbl0.9を使用するならMコードも覚えておいたほうがいいと思います。


CNCシールドを使うまでの準備や設定などについて:
CNCシールドをArduinoボードに装着したからといってもすぐに使えるわけではありません。以下のような準備が必要です。
・Arduino IDE(Arduinoにプログラムするためのソフト)をPCへインストール(本家サイトの説明
   *クローンのArduinoの場合はシリアル通信用のドライバが別途必要な場合もあります。
   *HexUploaderやXloaderを使う場合はArduino IDEは不要ですが、元々Arduinoを使っているなら、IDEを使ってアップロードしたほうが簡単かも(シリアルモニタで簡単なGコードを送信することも可能なので)。
・Arduino IDEを使ってArduinoボードにgrbl0.9をアップロードする(方法はこちらへ
・Gコード送信ソフトをPCにインストールする(ここ、もしくはここ、あるいはここ
・Gコード送信ソフトを用いてCNCマシンの各種設定をする(ここ
・CNCシールド上のモータードライバの電流制限設定をする(ここ
・CNCシールド(V3.51未満の場合)のリミットスイッチ端子にノイズフィルタ(コンデンサ)をつける(ここ
・電源、モーターやリミットスイッチをつないで試運転する(ここ、あるいはここ
という感じでしょうか。

関連:

2016年8月3日水曜日

CNCマシン:LaserWeb3

ブラウザベースのG Code SenderであるLaserWeb3ができたようです。
ちょっと前までLaserWeb2でしたが、いつのまにかLaserWeb3にバージョンアップしたみたいです。
以前、LaserWeb1と2を試してみたときの内容はこちらへ
追記:
LaserWeb4(アルファ版)もできたようです。
Chrome上で動くようです。
さっそくダウンロード&インストールしてみました。
各OSごとのインストール方法はwikiページにのっているので、やや面倒ですが、それに従えば難しいことはないと思います。どうやらRaspberry Piにもインストールできるようなので便利かもしれません。
dxf、svg、stlなどのフォーマットも読み込めるようです。

関連:
Laserweb3を使用してスタンプ制作(使用例)

2016年5月15日日曜日

CNC関連のソフト(まとめ)

CNCマシン制作の構想段階当初から、Macで使えるオープンソースのCNC関連のソフトをいろいろ探しています。数年前の流行が一段落したせいか、一見よさそうだけど開発が止まっているもの、便利そうだけどバグがあったりとなかなか見極めが難しそう。Macなので数はかなり限定されるのですが、いままで見て来たソフトのリスト。
Mac利用者からの見ての使いやすさで★〜★★★つけてます。初心者向けという感じで、必ずしも高機能がいいというわけではなく。すぐに使えるかどうかという基準で。それと今後の開発も期待できるかどうか。Linux系はMacでも使えることがあるけど、インストールが面倒だったり、Mac特有のバグがあったりするのであまり触っていません。Raspberry Piにインストールして使えば便利そう。

主には以下の5種類。

・2Dドローイングソフト:
  svg、dxfなどのフォーマットで出力できるもの

  Inkscape★★★
    イラストレータの代用(イラストレータのショートカットキーに変換可)。
    Extension(Plug-in)との組み合わせで充分使える。
    スナップ機能も細かく設定できるのでCADのように製図できる。
    Forumも充実しているし、2Dやレーザー加工はこれがメインで大体大丈夫だと思う。
    オフカット(Outset/Inset)機能でルーター加工パスもつくれる(使用例)。

・3Dモデリングソフト:
  stlなどの3Dフォーマットで出力できるもの

  Fusion360★★★
    3Dモデリング操作しやすい。
    無料版が最低1年間は使える。その後また更新?
    Gコードも生成可能。
    クラウドベースなので共同作業がやりやすい。
  Blender★★☆
    操作方法が独特で慣れるまで大変だけど、基本的に何でも作れる。
    Add-on(プラグイン)も豊富にある(シリアル通信なども可能)。
    BlendercamでGコード生成可能。
  ・SketchUp:★★★
    操作が直感的で扱いやすい。
    プラグイン「Export DXF or STL」をインストールすると便利。
    プラグイン「SketchUcam」をインストールすればGコード生成も可能。

・CAM/G Code Generator:
  図面データ(2Dデータ:svg、dxfなど、3Dデータ:stlなど)をGコードに変換してくれる

  Fusion360★★★(使用例
    3DモデリングしながらGコードも生成できる。3Dプリンターにもいいかも。
    商用ソフトでもあるので、かなり本格的(設定などが細かい)。
    レーザー加工用の機能がないのがちょっと残念。3D加工向きかも。
  Blendercam★★★(使用例
    Blenderと組み合わせて使えば便利。
    様々な3Dデータを読み込むことができるので、Gコード生成用としても使える。
    3D切削加工はほぼ可能。
  gcodetools(Inkscape Extension):★★☆(使用例
    やや開発が停滞しているようだけど、基本的なGコードは生成可能。
    最初は使い方に違和感を感じるけど慣れれば簡単。
  Laser Tool Plug-in(Inkscape Extension):★★★(使用例
    レーザー加工するならこのInkscapeとこのプラグインで簡単に設定できる。
    操作/設定がシンプルで使いやすい。
  ・Laserweb3/Laserweb4:★★★(使用例
    ブラウザ上のレーザー用アプリ。Laserweb4は単体アプリ化。
    Gコード生成とGコード送信もこれ一つで出来るので便利。
  Jscut★★★(使用例
    Webベースなのでブラウザ上で作業が可能。
    シンプルで使いやすい。オフカットなどのパスも生成可能。
    他のWebベースのGコードセンダーと組み合わせて使うと遠隔操作可能なので便利。
  ・PyCAM:★☆☆
    インストールが面倒、Macにはバグもあったり、しばらくは改善されなさそう。
  ・SketchUcam:★★★
    SketchUpのプラグイン。
    SketchUpと合わせて使うと便利。

・G Code Sender/Controller:
  Gコードを読み込んでCNCマシンへ送信したり手動入力制御したりするPC上のアプリ

  Universal-G-Code-Sender★★☆
    シンプルなので最初は使いやすいかも。
    grblとの相性がいいのかも。
    JavaベースなのでMacも充分使える。
    開発中の新バージョンに期待したいけどいつになるのか?
  GrblController★☆☆
    数年前までは使っている人もいたみたい。開発が止まっていそうで、今後あまり期待できない。
    基本的なことはできるけど、他に比べるとやはりいまいち。
  bCNC★★★(bCNCを使ってみたときの記事はこちらへ
    操作も比較的シンプル。
    dxf読み込み可能、基本的なCAM機能もある。
    Autolevel機能もあるので基板制作にも向いている。
    Pendant機能でWeb上からスマホなどで遠隔操作可能。
  LaserWeb/LaserWeb2/LaserWeb3/LaserWeb4★★★
    ブラウザ上の操作はシンプル。svg、dxf対応。Jscutと組み合わせると便利。
    Webベースなので遠隔操作可能(最近はWebベースが主流かも)。
    ブラウザ上でstlファイルを読み込むことができる。
    まだまだ開発が継続されているので今後も期待ができる。
  cheton/cnc★★☆
    これもWebベースでつかいやすそう。
    Webカメラでの監視、320x240 LCDディスプレイ対応の操作画面もある。
    Raspberry Piを用いて操作などすると便利そう。
    今でも頻繁に開発が進んでいそう。
  ・GRBLWeb:★★☆
    こちらもWebベースでRaspberry Piにインストールしてホストとして使うのかも。   
  ・Easel:★★☆
    X-CARVEやShapeoko(1or2)用のWebベース、CAD+CAM+GrblControllerソフト。
    X-CARVEやShapeoko(1or2)用だけれども使うことはできる。
    ただ、Machine選択でX-CARVE/Shapeoko(1or2)/Carveyしかないから戸惑うが、ウィンドウ下のAdvanced>> に進み、Advanced SettingsでMachine Inspectorを使えば大丈夫。
    細かい設定はないけれどもオールインワンなのですぐに使うにはいいかも。
    ステップバイステップで設定が誘導されるので初心者にはわかりやすい。   
  ・Mach3:☆☆☆
    MacなのでMach3とは無縁。

・G Code Interpreter:
  CNCマシンのマイコン(Arduinoなど)上のファームウェア
  Gコードからモーター制御してくれる
 ・Grbl v1.1:★★★(Grbl v0.9やv0.8はこちら
   Arduino Uno用。3軸制御まで。
 ・Grbl-Mega
   Arduino Mega2560用。
   以下のフォークされたバージョンでは4軸制御や3Dプリンター制御など可能。
   https://github.com/bdurbrow/grbl-Mega
   https://github.com/fschill/grbl-Mega
   https://github.com/HuubBuis/grbl-L-Mega
   https://github.com/fra589/grbl-Mega-5X
 ・GrblESP(ESP8266用Grbl)
   SPI通信により最大8軸。Wifi操作可能。
 ・Grbl_ESP32(ESP32用Grbl)
   基本3軸制御? Wifi/Bluetooth操作可能。
 ・Android対応ArduinoMega2560専用6軸ファームウェア
【EU Free VAT】CNC Part 4th Fourth A axis Rotary axis Dividing head K11-65mm 3 Jaw Manual Chuck with TailstockOriginal price: USD 233.37Now: USD 172.70

  ・LinuxCNC★★☆
    GrblもLinuxCNCに準じているようなので、すべてLinuxを使えばかなり便利そう。
    ただ、Linuxもやり始めると手間暇かかってしまう。
    少なくてもRaspberry PIを使ってできるかもしれない。
  ・TinyG★★☆
   Grblより強力そうだけど、それだけ値段も高いのでお手頃ではない。$165ドル。
   ファームウェアはAVR Studio(Win用)でアップデート。Mac用AVR Studioもあることはある。
  
  
まとめ:
基本的にはG Code InterpreterはGrblを使用。
2D加工するなら、Inkscape+Extension(gcodetoolやLaser Tool Plug-in)でGコードファイルを生成する。あるいは、InkscapeのsvgファイルをJscutで読み込んでGコードファイルとして出力。
特に2Dのレーザー加工の場合は、Inkscape+Laser Tool Plug-inで充分だと思う。
Gコードファイルを読み込んで実行するソフトは、Universal-G-Code-Senderがシンプルでわかりやすいかも。現在は、bCNCが便利なので(慣れたので)使っていますが。
3Dの場合は、モデリングは何のソフトでも構わないと思う。Sketchupなど使いやすいと思うソフトで。その3DデータをFusion360かBlendercamでGコードを生成する感じになると思う。

この際、Linuxにしてもいいのかもしれないけれど、手間暇かかるのでそこまではしないつもり。Macの環境でもそこそこつくりたい物はつくれそうだし、とりあえずあるものを利用するだけでも充分だと思う。

ただ今後はRaspberry Pi3を使い、wifi経由でWebベースのLaserWeb2、cheton/cnc、Jscutを使うのがよさそう。遠隔操作やカメラ監視なども可能になるし、ワイヤレスでどこででも作業が出来るというのがいい。スマホやタブレットで操作もできるようになるので。
個人的には、LaserWeb2に期待したい感じ。現在はstlを読み込めるけど、スケール変換などがまだできない。今後のロードマップを見ると、3Dにも力入れようとしているし、まだまだ発展しそう。以下のような画面。

追記:
普段は、G Code SenderとしてbCNCをつかっていますが、bCNCにはPendantという機能(ネットワークを使ってWeb上で操作する)があり、先ほどつかってみたらタブレット(ブラウザ上から)でリモートコントロールできました。

これ↑が、Pendant機能をつかったタブレットのブラウザ上の画面です。
いままで通りに、CNCマシン(Arduinoボード)とMacBookをUSB接続し、bCNCを立ち上げてPendant開始ボタンを押すと機能がONになります(以下)。

ホストとなるMacBook上でもブラウザが自動的に立ち上がって操作画面が出てきます。アドレスに「http://localhost:8080」とでているはずなので、ローカルネットワーク内の他のコンピュータやスマホなどからもアクセスできるはずです。
持っているタブレットでは「localhost:8080」ではアクセスできなかったので、数字でプライベートIPアドレス「192.168.3.3:8080」(MacBookのプライベートIPアドレスとポート)を入れてみたら表示できました。
つまり、MacBookはCNCマシン本体脇に、そしてタブレットやスマホを持ちながらZ軸に近寄って調整などが可能というわけです。ポートマッピングも使えば、外出先からも操作可能だと思います。
bCNCは、いろいろな機能があってかなり便利そうです。

関連:
G Code Sender(bCNCなど)

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コードについて

続き:ホーミングサイクル/リミットスイッチのトラブル

2016年3月26日土曜日

いろいろあるG-Code Senderについて

Grbl Controller:(使い方はこちらへ
Mac+Arduinoという環境で、Arduino用CNCシールドを探すところから始まったので、まずは:
Protoneer Arduino CNC Shield V3.10
この↑シールド(A4988付き)でステッピングモーターを動かすことができるけれども、それをPC(Mac)から操作するソフトも必要なので、
Zapmaker Grbl Controller 3.6.1(for Mac)
が見つかった。インストールが面倒そうなのですが、このページの以下の投稿から「3.6.1-T4」か「3.6.1」が簡単にインストール出来る。ちなみにWin/Linux版はこちらから
この人↑が「3.6.1-T4」と「3.6.1」のバイナリーをつくってくれたらしいので、青文字の「3.6.1-T4」か「3.6.1」をクリックすればソフトをダウンロードできる。

しかし、調べていくうちにこの手のソフトがたくさんあることが分かってきた。
基本的にはGRBL関係なら以下のサイトに行くといいみたい。
https://github.com/grbl
ここには、
・grbl:(Arduinoにアップロードするファームウェア)
・grbl-builds(コンパイルされていないファームウェア保管場所)
・grbl-sim:(Arduinoなしでシミュレーションできるらしい)
・Universal-G-Code-Sender(JavaベースのクロスプラットホームのGコード操作ソフト)
の4項目がある。

Universal-G-Code-Sender:
Zapmaker Grbl ControllerのかわりにUniversal-G-Code-Senderを使うこともできるようで、もしかしたら、こちらのほうがメジャーなのかもしれない。以下のようなインターフェース。
似たような感じではあるけれど、使ってみてどちらが自分に合うかで決めればいいと思う。

ShapeOko Wikiにあるリスト:
ほかにもこの手のソフトはいろいろな人によって開発されていて、以下の「Shapeoko」のwikiサイトに載っている。
http://www.shapeoko.com/wiki/index.php/Communication_/_Control
この中のリストにも「Zapmaker Grbl Controller」があるけど、「Shapeoko」でも使っていたようだ
現在の「Shapeoko3」では、「Carbide Motion Machine Control Software」を使っているみたい。こんな画面(以下↓)。
ちなみに「Shapeoko3」は、Arduinoシールドに「CNC Shield」ではなく「gShield」を使っている。

この手のソフトは、G-Code-Senderと呼ばれているようだ。そしてArduinoにアップロードされるファームウェアはG-Code-Interpriterと呼ばれているらしい。日本語ではGコード送信プログラムとかGコード解析プログラムとでもいうのでしょうか?

他には、Interactive G-Code-Generatorというのもあり、Javascriptでできる「Javascript G-Code Generator」というのもあるらしい、Webやブラウザ上でするにはいいかもしれない。
たしか、Smart Laser Miniがブラウザ上のインターフェースであるため、ネットを通して遠隔操作もできるようである。と、いまSmart Laser Miniのサイトを見に行ったら、来月(2016年4月)に新しいのでるみたいです(以下)。
レーザーモジュールが3Wにパワーアップしそうな感じです。価格は10万円くらいになってしまうのでしょうか。

ということで再びG-Code-Senderに戻りますが。
「X-CARVE」も「gShield」を使っている。インターフェースはブラウザ(今回はSafariで)で操作可能。以下のような感じ。これも右側に3Dシミュレーション画面のようなものがある。シンプルにまとまっていて素人でも使いやすい感じになっている。
いろんなG-Code-Senderが使えるということが分かったのですが、この際G-Code-Sender自体も自分の使い方に合わせてプログラムしようと思いましたが、今回はそこまではやらないで、既存の使いやすいものを試しながら選んで行こうと思います。

追記:
この記事を書いているときは、まだよく知らなかったので上記のようなソフトを試していました。現在はbCNC(以下のリンク)というG-Code-Senderを使っています。

関連:
CNC関連のソフト(まとめ)
G-Code-Sender(bCNCなど)

2016年3月23日水曜日

市販のCNCマシン/レーザーカッター

そろそろCNCミリングマシンもしくはレーザーカッターが必要となったので、調べてみることに。
追記:2016年10月現在の市販のレーザーカッターについてはこちらへ。  

まずは、レーザーカッターから。
工業用は高価なので、条件としては、以下のような感じ。
  ・Mac対応
  ・作業エリアがA4前後もしくはそれ以上
  ・薄い素材であれば切断可能な出力

 レーザーカッターでヒットするのは、国内のものだと。

Smart Laser Mini


レーザー出力:1.6w
作業エリア:280x230mm
Mac対応
InkScape使用可
ブラウザから操作可
価格:59,184円(税込み)+556円(送料)

追記:2016年4月からFabool Laser Miniにバージョンアップしましたね。59,800円(税抜き)。オプションでレーザー出力が3Wにアップ。そうなると以下のPodeaはどうなってしまうんでしょう。



Podea-01













  


レーザー出力:2w
作業エリア:297x210mm
Macは仮想Windowsを通して使用可
Illustrator使用可
価格:117,784円(税込み)+送料

だいたいこの二つが使いやすそう。
Podeaのほうが性能としては良さそうだけど、Mac対応がいまいちなのと価格がけっこう高い。
それに比べ、Smart Laser Miniはやや性能は落ちるけれども、マイコンにArduinoを使っていることからも、オープンソース型で改造や改良ができそう。
ということで、この段階では、Smart Laser Miniが候補。

やはり予算としては、10万円以下。できれば5万円前後。

おそらくArduinoを使ってCNCを自作している人もいるだろうから、「arduino cnc library」や「arduino cnc shield」で検索すると、
http://blog.protoneer.co.nz/
というサイトがでてきます。




















やっぱりArduinoシールド↑があります。価格も20ドルと高くない。ただし、シールド上に乗っているステッピングモータードライバ(緑色の基板3個)は含まれていない。
このドライバはA4988でスイッチサイエンスで一個1393円。XYZ軸用に3個必要なら、約4000円プラス。

しかし、「arduino CNCシールド」で検索すると、Amazonにはこんなものが売っている。



おそらく中国製だけど、同じものがかなり安く売っている。シールド一個1000円くらい。そしてドライバA4988も売っていて、こちらも安い。もっと安いのもあるけど、とりあえず3個で1290円。



そうなると、ドライバ3個付きのシールドで2300円くらい。安いので故障しても、買い替えればいいかとも思ってしまうので、なんとなくこれに決定。というか、この際自作してしまおうかという感じ。

このCNCシールド用のArduinoライブラリーは、以下からダウンロード。これはv0.8かな。
https://github.com/Protoneer/GRBL-Arduino-Library

v0.9が最新。v0.8から結構内容が変わった模様。
https://github.com/grbl/grbl

ということで、自作できそうなら自分の望むスペックにあわせてつくろうかなと思ってます。
もう少し調べてみて、時間とコストの関係から、製品を買って改造するか、上記のようなソフトや部品を集めて自作するかを決めたいと思います。

人気の投稿