← Back

ofxGrbl

github.com/TsubokuLab/ofxGrbl · @TsubokuLab
OF 0.9 Hardware Interface

[Beta] This is an add-on for using Grbl(CNC milling controll software for Arduino) with openframeworks.

8 5 Last commit 9y ago Created 10y ago

Forks

Forks pushed to more recently than TsubokuLab/ofxGrbl itself, plus any admin-confirmed fork with commits of its own — worth checking if you're hitting issues with the original.

ofxyz/ofxGrbl by @ofxyz · ★ 0 · pushed 2mo ago
andrewleek/ofxGrbl by @andrewleek · ★ 0 · pushed 5y ago
genkitoyama/ofxGrbl by @genkitoyama · ★ 0 · pushed 8y ago

README

ofxGrbl

[Beta] This is an add-on for using Grbl(CNC milling controll software for Arduino) with openframeworks.
[Beta] Arduino用CNCコントロールソフトウェア「Grbl」をopenFrameworksから制御するためのアドオン。

ofxGrbl : Grbl( CNC milling controll software for Arduino) with openFrameworks demo

必要なもの

ソフトウェア



ofxGrbl(oFアドオン本体)
https://github.com/TsubokuLab/ofxGrbl

Grblソフトウェア(Arduino用スケッチ)
https://github.com/grbl/grbl

ハードウェア



電子部品とか



名称価格 備考買った場所
Arduino UNO1個 435円互換基板でもなんでもOKhttp://amzn.to/2oNAEX2
CNCシールド1個 225円今回の主役となるシールド。かなり役に立つ。http://amzn.to/2nLtFyg
NEMA 17 Stepper Motor1個 $16.49200 Stepのステッピングモーター。DC 12-24V/1.7 Ahttp://bit.ly/2nLyXde
A4988(ステッピングモータードライバ)5個で1000円くらい過電流等で割と頻繁に焼けるので、多めに買っておくのが吉。http://amzn.to/2oNQD7r
エンドリミットスイッチ1個 $0.44ホーミング(自動ホーム位置合わせ)する時に必要なスイッチ。レールが範囲外に行こうとして壊れるのを防いでくれる。機能を利用しない場合は必要ない。http://bit.ly/2opXI1Q
12-24V 8A ACアダプタ1個 2100円ステッピングモーター1個あたり1.7Aなので8Aくらい欲しい。ちょっと作業中にショートしただけで一発で壊れるので、複数台必須。沢山壊した(涙)http://amzn.to/2oqFGN9
非常停止押ボタンスイッチ1個 788円モーターに負荷がかかったり基板が燃えそうになった時に緊急停止させるボタン。かなり重宝する。あとロマン。http://amzn.to/2oqHN3x
ちなみにArduino・CNCシールド・A4988はセットになっているのも売っていたのでこっちでもいいかも。

Arduino+CNCシールド+A4988×4個セット 2630円
http://amzn.to/2nLkYUN

レールとか



少し高めだけどOpenBuildsのV-Slotシリーズがオススメ。

OpenBuilds公式サイトはこちら
http://openbuildspartstore.com

オープンソースハードウェアなので関連パーツを3Dプリントしたりできる。

※基本は上記の公式ストアから買うのがオススメ。公式から買うほうが断然質が良いけど、ほどんどがAliexpressにもあるので安く揃えたい時はこちら。
https://www.aliexpress.com/store/123598

名称価格 備考買った場所
V-Slot® Linear Rail1mあたり $6V型の溝がついたライナーレール。1本の最長は1.5mまでだった気がする。20mm x 20mm http://bit.ly/2qD2H0e
20mm x 40mm http://bit.ly/2qcXwTz
Solid V Wheel™ Kit20個セット $35V型の溝に沿って稼働するホイールキットhttp://bit.ly/2pIwxfD
Smooth Idler Pulley wheel Kit20個入り $31.90アイドラープーリー(ベルト用滑車)のホイールキット。ベルトをレールに固定せずにhttp://bit.ly/2oO80or
偏心スペーサ6mm20個セット $19.90中心が偏っていて、片側のホイールを締め付けるのに使うスペーサーhttp://bit.ly/2n1N4y7
タイミングベルト GT25m 1200円GT2(2mmピッチ)のタイミングベルトhttp://amzn.to/2nLpgf1
プーリー40歯のもので680円タイミングベルトに合わせて2mmピッチのものを選ぶ。この歯数によってスピード・トルクに影響が出る。http://amzn.to/2nu9enP
ティーナット M525個入り $3.50ベルトやプレートを固定するときに必要なティーナットhttp://bit.ly/2n1Hufa
低頭ネジ M5 x 6mm1個 $0.10ベルトをレールに固定するときに必要な6mm低頭ネジhttp://bit.ly/2nOt6W6
低頭ネジ M5 x 8mm100個入り $10.99プレートやコーナーパーツを固定するときに必要な8mm低頭ネジhttp://bit.ly/2ntViu7
アイドラープーリープレート1枚 $3.75アイドラープーリー(ベルト滑車)用のプーリーをレールに固定するプレートhttp://bit.ly/2oqnR0d
モーターマウントプレート1枚 $4.50ステッピングモーターをレールに固定するためのプレートhttp://bit.ly/2n1LWdT
Gantryプレート Universal1枚 $7.95可動部等に色々物を固定して動かすための大きめのプレート。大きいものを載せなくていい場合は↓のプレートで良い。http://bit.ly/2nOqKXA
Gantryプレート 20mm1枚 $4.50可動部等に色々物を固定して動かすための小さめのプレート。割と重宝する。http://bit.ly/2oqmZZA
90度インサイドブラケット10個入り $5コーナー用レール内に入れて90度に固定するブラケット。角度の精度は高くないから場合によっては↓の方が良いかも?http://bit.ly/2oy2LtY
90度キャストコーナー1個 $0.75レールにネジで固定するコーナーパーツ。ティーナットが必要なのと、低頭ネジじゃないとぶつかるので注意。http://bit.ly/2oqqgs0
組み方等はOpenBuildsのサイトに知見が集合しているので眺めてるとだいたい分かってくる。
http://openbuilds.org/

関連アドオン



ofxGrbl
oFでGrbl使うアドオンの本体。(このアドオン)

ofxUI
UI表示に使っている

ofxXmlSettings
ofxUIの設定保存に使っている

使い方(途中)



GrblManager : ofxGrbl example (Youtube)
GrblManager : ofxGrbl example

Grblの設定方法



設定を変更するにはシリアルコマンドで行う。 ArduinoのシリアルモニタでもOK!(改行コードCR付きでコマンドを送る事) 基本はここのページを参考にする。 https://github.com/grbl/grbl/wiki/Configuring-Grbl-v0.9

現在の設定を表示



$$
こんなのが返ってくる

$0=3 (step pulse, usec)
$1=1 (step idle delay, msec)
$2=0 (step port invert mask:00000000)
$3=0 (dir port invert mask:00000000)
$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=10.000 (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=0 (homing cycle, bool)
$23=0 (homing dir invert mask:00000000)
$24=25.000 (homing feed, mm/min)
$25=500.000 (homing seek, mm/min)
$26=250 (homing debounce, msec)
$27=1.000 (homing pull-off, mm)
$100=20.000 (x, step/mm)
$101=20.000 (y, step/mm)
$102=20.000 (z, step/mm)
$110=20000.000 (x max rate, mm/min)
$111=20000.000 (y max rate, mm/min)
$112=20000.000 (z max rate, mm/min)
$120=500.000 (x accel, mm/sec^2)
$121=500.000 (y accel, mm/sec^2)
$122=500.000 (z accel, mm/sec^2)
$130=1301.470 (x max travel, mm)
$131=833.460 (y max travel, mm)
$132=994.120 (z max travel, mm)
ok


設定を変更する



番号と数値をコマンドで送信する。
例)X軸の最高移動速度を15000mm/minに設定する場合。

$110=15000
という感じ。

ステップ数の計算方法



移動距離を合わせるため、

ステッピングモーター1回転のステップ数(steps) ステッピングモータードライバのマイクロステップ数(micros) ベルトピッチ(mm) プーリー1回転の歯数(teeth)

から、1mmあたりのステップ数を計算する必要がある。 計算式は、

 ( [1回転のステップ数(steps)]  [マイクロステップ数(micros)] ) / ( [ベルトピッチ(mm)]  [プーリーの歯数(teeth)] ) = 1mmあたりのステップ数(step/mm)
なので、たとえば

項目名値
1回転のステップ数200 steps
マイクロステップ数4 micros
ベルトピッチ2 mm
プーリーの歯数20 teeth
の条件の場合は、

(200 steps  4 micros) / (2 mm  20 teeth) = 20 (step/mm)
というような感じ。 この値を、XYZ軸それぞれシリアルコマンドでGrblの設定に反映する事で移動距離がピッタリ揃う。

$100=20
$101=20
$102=20

イラレデータからパスを読み込みたいとき

順序としては、以下の流れ。 イラレデータ(.ai)→DXFデータ(.dxf)→GCodeデータ(.gcode / .ngc / .nc)

必要ソフト

dxf2gcode : DXFファイルからGCodeを生成するフリーソフト https://sourceforge.net/projects/dxf2gcode/

手順

1. イラレからパスをDXF書き出しする。参考: http://mathrax.sakura.ne.jp/kuze_jp/p-comp/cad/page003.html 2. DXFファイルをdxf2gcodeで読み込んで、.gcode / .ngc 形式で書き出す。 3. 出力された .gcode / .ngcファイルを、LOADアイコンもしくはアプリにドラッグ&ドロップして読み込む。

Get this addon

HTTPS
SSH