Fu-Nちょっと分かった。何か面白くなってきた。。

Fun-Desire-Blog 

pexels-mentatdgt

本・書籍 電子工作

あなたもできる。やればできる!CNCプロッタ製作。【変換画像も書ける】(その5)-Grbl使ってX・Y軸を動かします-ヨシ!

更新日:

お待たせしました。ようやく、CNCプロッタをファームウエアのGrblを使ってCNCシールドから動かしてみます。
今回は、やばムズいです!(爆)。こんな時こそ、StepバイStep。一歩、一歩進めて行きましょう!

PexelsのMikeによる写真

早速、パソコンとArduinoを繋いだ状態で、動かしているところをご覧ください。
その4と違うのは、今回、Grblというファームウエア経由で動かしているところです。(ん? なんのこっちゃ?)ですよね。大丈夫です。ゆっくり行きましょう。まずは、こんなことが出来るようになります。

こんなことができちゃいます


では、今回の流れをざっと説明しておきます。

  • え?何、なに? :ざっくりな話
  • 空から見ると :こんな風になってるんか・・。
  • Grbl?ん?
  • 初めの一歩 :configで設定
  • 世界は丸と四角で出来ている。

1.え?え?何、なに? :ざっくりな話

まず、今回やりたいのは、Grblというファームウエアを使ってX軸、Y軸の2つの軸を同時に動かしたいということです。CNCでいうと、そうすることで、円や曲線が描けるようになるということです。
(実際のCNCではペンを上下させるZ軸を含めて3軸です。但し、今回Z軸は違う制御の仕方を採用したので、今回の説明から除いておきます m(__)m)

2.空から見ると :こんな風になってるんか・・。

さて、まずは、お決まりの接続図から行きます。

CNC 全体接続図
モーターシールド と ステッピングモーターの<接続例>

今回は、登場人物が盛りだくさんですね。忘れたり、分からなくなったら戻って確認してみて下さい。(ベース基地どす)


<ハードウエア>
①パソコン (Windous10)
②Arduino UNO R3 (互換品含)
③CNCシールド V3(モータシールド:A4988(HR4988))
④ステッピングモーター(2軸で2個)
⑤DC12V 4.2A 直流電源

<ファームウエア、ソフトウエア>
①Grbl 1.1というファームウエア (購入したものにはV0.9が入っていますが1.1の方が参考が多いので、今回はVer1.1を使用)
②Grbl Controller3.6.1 というGrblをパソコンで操作するソフトウエア(今回はVer1.1を使用)
(③Inkscape :これがbmpファイルなどの画像ファイルをGcodeへ変換するソフトウエアです)→今回は出てこないのでご安心を。
④Gcode :CNCを具体的に行って欲しい動作をさせるプログラム。
(X軸をどの位置へどのスピードで動かせ、円を描けなど)

次に作業の流れです。
①Grbl 1.1をダウンロード → ArduinoのLibraryに保存 → ArduinoをUSBでPCと接続 → ArduinoIDEでGrbl 1.1をArduinoへアップロード
②Grbl Controller3.6.1をダウンロード → パラメータを初期設定するためにConfigファイルを作ってGrbl Controllerで読み込み。
③GrblはGcodeで書かれたプログラムで動くので、簡単な図形をプログラムして読み込みます → 実際に、図形を書く動きをやってみます。

カーナビでも目的地までの大まかなルートが見えていると、詳細は分からなくても安心感あると思うので書いてみました。(途中ですが、ここまでお疲れさまぁーず)

PexelsのOleg Magniによる写真

3.Grbl?ん?

Grblは、オープンソースのファームウェアで、Arduinoを使ってステッピングモーターを制御します。

こんな感じで進めていきます。

①Grbl 1.1をダウンロード
②ArduinoのLibraryに保存
③ArduinoをUSBでPCと接続
④ArduinoIDEでGrbl 1.1をArduinoへインクルード

①Grbl 1.1をダウンロード
下記からダウンロード。codeの緑ボタン内、Download ZIPからgrbl-master.zipをダウンロードして下さい。(Ver1.1がダウンロードされます。win10、2020/11/28現在)
https://github.com/gnea/grbl
Verがいろいろあるので、0.8,0.9など旧Verのダウンロード希望の場合は、他のブログなど探してみて下さい。

画面のイメージはちょいちょい変わるようです



②ArduinoのLibraryに保存
「grbl-master.zip」ファイルがダウンロードされます。保存されたホルダがArduinoのLibraryフォルダではない場合はLibraryフォルダに保存してください。
・・・¥Arduino¥librariesなどのフォルダがあると思います。

③ArduinoをUSBでPCと接続(comポート確認)


④ArduinoIDEでGrbl 1.1をArduinoへインクルード
「grbl-master.zip」を解凍すると「grbl-master」フォルダが出来上がります。
次に、Arduino IDEを立ち上げて、メニューバー/スケッチ/ライブラリをインクルード/.ZIP形式のライブラリをインクルード を選択すれば読み込れます。
メモリー容量が少ないというようなメッセージが出ますが、なんとか入るので大丈夫です。

詳細は下記のサイトを参考にしてみて下さい。
https://cnc-selfbuild.blogspot.com/2016/03/blog-post_26.html
https://guitarsk.com/pc/archives/1211

4.初めの一歩 :configで設定

次は、
①Grbl Controller3.6.1をダウンロード
②パラメータを初期設定するためにConfigファイルを作ってGrbl Controllerで読み込み。
これで、進めて行きますね。

①Grbl Controller3.6.1をダウンロード
コントローラーもいろいろ種類があるようですが、最初にインストールしてなんとか使えたので、そのまま使っています。(他のコントローラもインストールしてみましたが、うまく行きませんでした ^^;)
但し、V1.1には対応されておらず、座標の表示がうまく行かず、表示されないみたいです。Band Rate :115200です。(Jog動作はできました)

https://software.informer.com/t/grbl-controller-3-6-1/

Grbl Controller3.6.1 の表示画面 (起動したらこんな感じです)

②パラメータを初期設定するためにConfigファイルを作ってGrbl Controllerで読み込み

一旦、Grbl Controllerを終了させて、Arduino IDE でウインドウ右上のメニューバーにあるツール/シリアルモニタでウインドウを開きます。
入力欄に $$ を打ち込んで送信すると、$0=10など、$が並んだGrblの設定一覧が出ます。それを使って、自分用のConfigに変更してGrbl Controllerで読み込ませます。

下記のようなConfigにしています。ポイントを説明します。その他は難しいのでここでは割愛、しますが、詳しくはリンク先を参照下さい。丁寧に書かれています。尚、今回はZ軸は、別の制御方法ですので、ちょっと分かりにくいかも知れません。(Z軸の制御方法を説明する時に、文面調整します)
http://ichirowo.com/2016/09/cnc_grbl/
http://ruur.hatenadiary.com/entry/2016/01/02/040735

$0=10
$1=25
$2=0
$3=1
$4=0
$5=0
$6=0
$10=0
$11=0.020
$12=0.020
$13=0
$20=0
$21=0
$22=0
$23=0
$24=30.000
$25=600.000
$26=25
$27=5.000
$32=0
$100=13.4
$101=13.4
$102=0
$110=2000.0000
$111=2000.0000
$112=400.000
$120=50.000
$121=50.000
$122=10.000
$130=40.000
$131=40.000
$132=10.000
$ N0 = S1000M5

$=10
モーターシールドが受け付ける最小のパルス長を設定します。この時間以下の短いパルスは出せなくなり、もし、パルスが短すぎればトルクが下がったり位置ずれしますし、長すぎるとパルスが重なって動かなくなります。(ステッピングモーターの場合)10μSが推奨。

$3=1
各軸のパルス値のプラスマイナスを必要に応じて反転させることが出来る設定です。例えば、今回の場合は最初、Y軸のプラスが手前(下)に向かって書かれたので、Grbl Controllerに表示される座標に合わせるためにY軸を反転(N)として奥(上)に向かって書くように設定値を「1」にしました、

設定値マスクX軸Y軸Z軸
000000000NNN
100000001YNN
200000010NYN
300000011YYN
400000100NNY
500000101YNY
600000110NYY
700000111YYY


$100=13.4
$101=13.4
この設定がポイントですが、簡単に言うと、指令した寸法になるように単位動作量を決めるものです。各軸に何個パルスを送ったら1mm動くかです。($100がX軸、$101がY軸です)たとえば初期値が250パルス/mmになっているので、そのあたりの数値かと思いきや、250だとDVDドライブの動作範囲は振り切ってしまいます。
他のブログ(他のステッピングモータ)にあるように、200パルス、100パルスで1mm動くのではないようです。
思い切って10パルス/mmに設定してみると、それらしい動作範囲になりました。
実際に35mmの指令で書いてみると、26.5mmの長さを書いたので、比例配分で計算すると
35/26.5=1.32 10mm×1.32=13.2 というように1mm動作させるための設定パルス数を微調整していきます。最終的に13.4という値に設定しました。


$110=2000.0000
$111=2000.0000
最高動作スピードです。($110がX軸、$111がY軸です)これも、作ったシステムで、試しながら最高スピードを探していくことになります。


$120=50.000
$121=50.000
加速度の設定です。($120がX軸、$121がY軸です)数値が大きいと速く速度が立ち上がり、小さいとゆっくり立ち上がります。これも、作ったシステムで、試しながら探していくことになります。

Grbl ControllerでConfig.ngcを読込みます。

Grbl ControllerでConfig.ngcを読込みます。


参考
https://monoist.atmarkit.co.jp/mn/articles/1611/28/news026_2.html

5.世界は丸と四角で出来ている。

さて、ようやく実際に動かすポイントの入力ソフトのところまで来ました。
すでに、お話していますように、マシニングセンタなどの工作機械でも実際に使われているGcodeで動作内容(動き方や移動するポイント)を指示します。

<やり方>
GrblはGcodeで書かれたプログラムで動くので、簡単な図形をプログラムして読み込みます → 実際に、図形を書く動きをやってみます。

<実際のプログラム(Gcode)です>
四角形を書くプログラムです。

------------------------------------------------
G90

G0 X0.0 Y0.0
G1 X0.0 Y38.3 F100
G1 X38.3 Y38.3 F500
G1 X38.3 Y0.0 F1000
G1 X0.0 Y0.0 F2000

M02
--------------------------------------------------

四角形を描く動画です。最初は動くのが遅いですが、次の辺からだんだん速くなります。(ちょっとだけガマンして見て下さい)

上のプログラムを txt ファイルで書いて先ほどのように、ngcの拡張子、例えば square.ngc へ変更。Configファイルのように、Grbl Controllerで読込みます。上のデータとは異なりますが、Grbl Controllerで読込むと、こんな感じで書く図形が表示されます。(値は対応しておらず、残念ながら 0 のままです)
因みに、下の図形は原点からある位置まで移動してから描き始める場合です。

Grbl Controller3.6.1 の表示画面

実は、円だけ書くならプログラムとしてはもっと簡単です。
↓ ↓ ↓ こんな感じ~♪

----------------------------------------
G90
G0 X19.0 Y0.0
G2 X19.0 Y0.0 I0 J+19 F100
G1 X0 Y0
----------------------------------------

下のサイトの最後のほう、「おまけ」に、Gcodeとは何かの説明あります。
G90,G1の説明あります。
https://sousaku.hatenablog.jp/entry/2019/08/17/075753

因みに、各Gcodeの一覧は下記にあります。
https://nc-program.s-projects.net/g-code.html

いやー、お疲れさまでした。やっぱ、やばムズでしたか?今回は最大の難関でした。ですので、色んなサイトの資料、いやいろんなGoogle先生に教えて貰わないとできないところです。(アプリケーションのバージョンも変わったり、組合せが自分と違ったりしますよね)できるだけ、まとめてみましたが、もう少し自分でも理解できるよう調べたいと思っています。でも、まあとりあえずでも何か描けた時は、喜びたいと思います。「頑張ったやん」ですもんね。
次回は、タイトルにもあるように、BMPやJPEGなどの画像をGcodeへ変換するソフトがあるので、それで、変換して実際に絵を書いてみます。

ちょっと、話がそれますが、週末に素敵な本を見つけたので紹介します。
鶴田豊和さんの「めんどくさい」がなくなる本を漫画込みでさらっと読めました。まさに自分も囚われすぎてたなと。私もやらねければならないから、やりたい!になったら世界が変わりました。

つづく


マンガで「めんどくさい」がなくなる本 [ 鶴田豊和 ]

-本・書籍, 電子工作
-, ,

Copyright© Fun-Desire-Blog  , 2021 All Rights Reserved Powered by STINGER.