2015年2月8日日曜日

Grblのインストール

MacOSX+ArduinoUno でCNCコントロール環境を揃えるということでGrblを試してみます.
(がなかなかうまくいきません)
とりあえず現状までのメモ書き.

G-Codeを変換するというこで幾つか選択肢があると思いますが,Arduino Unoに対応するということでGrblにしてみました.
やり方はhttp://www.shapeoko.com/wiki/index.php/GRBL#Using_Grbl を参考にしてみます.



現状の最新版はGrbl-v0.9のようです.
以前のバージョンではバイナリを転送していたようでいろいろなWebページにいろいろな書き込み方が書かれていますが,整理すると下記の方法を使い現状はArduino IDEだけで簡単に書き込みできるようです.もと資料はこちら"https://github.com/grbl/grbl/wiki/Compiling-Grbl"
(一応HexUploaderも試して,今の所同じ結果になっているように見えます.)

注)下記の方法で簡単にArduino Unoに書き込めますが,なんでこれでうまくいくのか理屈がよくわかりません. ヘッダ読み込んでいるだけに見えるのに,どうしてスケッチが転送されているのでしょうか.

やり方

1.ソースコードのダウンロード
https://github.com/grbl/grbl
からソースコードをダウンロード. 画面の右側にある"Download ZIP"を押します.
おそらくダウンロードフォルダにダウンロード後解凍されて”grbl-master”というフォルダができていると思います.

2.Arduino IEDに登録 ( バージョンが変わって少しメニューが変わったようなので更新しておきます.2015.0912 Ver 1.6.5で動作を確認しています)

 上でダウンロードしたファイルを適当なディレクトリに移してから, Arduino IDEを起動します.
     メニューの「スケッチ」→「Include library」→「Add .ZIP Library ...」を選び,先ほどダウンロードした"grbl-master"フォルダの中にある"grbl"フォルダを選びます

 (どこかのバージョンで変わったのか元々そうだったのに気づかなかったのかわかりませんが,フォルダ選択のときに"grbl-master"ではなくて,"grbl"フォルダを選ばないとパスが通らずヘッダーが読み込めないようです)

 「スケッチ」→「Include library」を選ぶと一番下の「Contributed Library」の欄に「grbl」が登録されていればOKです


3. Arduinoに書き込み
 メニューの「ファイル」→「スケッチの例」→「grbl」→「grblUPloader」を選択.
(ここら辺はIDEのバージョンによってコロコロ変わるようです)

新しいファイルが開いてglbl.hのヘッダファイルのインクルード文が挿入されます.
次に「ファイル」→「マイコンボードへの書き込む」を選んでコンパイルと転送がうまくいくことを確認する.
これでArduino側の設定はOK(のはず)


次にGrbl controllerを使って制御してみる
Grbl controllerはここからダウンロード
http://zapmaker.grblcontroller.s3-website-us-west-2.amazonaws.com
このページではMac版は3.5が最新ですが,最新版をコンパイルしてくれた方がいて公式にこちらからリンクされています.
https://github.com/zapmaker/GrblHoming/releases

"GrblController-3.6.1.7z"をダウンロードして, 適当な解凍ツールで解凍します.
お手軽に適当な場所に保存してから実行します
"GCV-3.6.1-T4.dmg"を選ぶとよりリッチなGUIで使用できます.解凍ソフトもいらないし...

立ち上がったら
「Port name」からArduinoが繋がっているポートを選択
「Baud Rate」を"115200"にし,「Open」を選びます.
設定パラメータがきちんと帰って来れば通信の確立はOKです.

パラメータはGUIを使ってAdvanceから変更できるはずなのですが,うまくいきません
試しに古いGrbl controller 3.5を使って試しましたが,GUIで入力した値を別の変数に書き込んでしまうと言うバグがありました.

現状パラメータを変更しようと思ったら「Command」から
$100=200
などとて入力してやるのが良いと思います.

もし間違えて書き込んでしまった場合は
https://github.com/grbl/grbl/wiki/Configuring-Grbl-v0.9#grbl-settings
にデフォルト値の記載があるので手入力で戻してみてください.

また3.5では「Go Home」の機能もだんだん値が動いていってしまう問題がありましたが, 3.6では治っているみたいです.



とりあえずメモとして公開しておきます.

参考情報
https://github.com/grbl/grbl/wiki/Connecting-Grbl
https://github.com/grbl/grbl/wiki/Configuring-Grbl-v0.9

HexUploaderとの動作確認をした際に使ったコンパイル済みファイル
https://github.com/grbl/grbl-builds/tree/master/builds


5 件のコメント:

匿名 さんのコメント...

自作CNCルーターを作成中で、Grbl 3.6.1で使っています。NCVCでGコードを作成してGrblで読み込むと円が読み込めません。 扁平させると読み込みます。どこか設定を変えないといけないのでしょうか?

Teru さんのコメント...

書き込みありがとうございます.

せっかく書き込んでいただいたところで恐縮なのですが,私はNCVCを使ったことがないので適切な回答ができそうにありません.

後学のためにどのようなコードを書き出してエラーが出ているかお教えいただけませんでしょうか.

匿名 さんのコメント...

お返事ありがとうございます。
おすすめのGコード変換ソフトありますか?
JWCADで作図、NCVCでGコード変換しております。
以下、NCVCで作ったデータです。GRBLでエラー。

%
(2015/11/23 18:07)
(Owner MADE test151123_02.ncd FROM test151123_02.jww AND mf70_1.nci)
G90G54G92X0Y0Z10.
M08
S3000M03
G00X-0.566Y10.57
Z1.
G01Z-2.F15.
G03I14.5
G01Z1.
G00Z10.
M09
M05
X0Y0
M30
%

Teru さんのコメント...

相変わらず遅いレスですみません.
私はプリント基板を切るのにCNCを使おうとしていまして,そちらはEagleから直接出しています(問題はありますが)
JWCAD, NCVCは運用例を聞くのでお使いの組み合わせがオススメではないでしょうか.

お送りいただいたコードですと円形を切るG03の省略表記をGRBLが処理できないのが問題ですね.
NCVCの掲示板を見たところ,同じ問題で悩んだ方がいらっしゃるようで,作者の方も解決方法も提示されておられました.

NC生成時のオプション設定画面で[表記]のタブを選んで[ゼロは省略]のチェックを外して試してみてはいかがでしょうか.


http://s-gikan2.maizuru-ct.ac.jp/xcl/modules/newbb/viewtopic.php?forum=1&topic_id=93&terms=grbl&addterms=AND&post_id=217#forumpost217

匿名 さんのコメント...

ありがとうございます。参考になりました。
ただ、解決には至りませんでした。