これまでのあらすじ:
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年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と入れ替えたようです。どうやらD11はtime1(8bit=256段階)ではなくtimer2(16bit=65536段階)にもなるようですが、8bitに設定されているようです。

また、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未満の場合)のリミットスイッチ端子にノイズフィルタ(コンデンサ)をつける(ここ
・電源、モーターやリミットスイッチをつないで試運転する(ここ、あるいはここ
という感じでしょうか。

関連:

0 件のコメント:

コメントを投稿

人気の投稿