ARDUINOでCNCシールドを使う

ARDUINOでCNCシールドを使う

 今までも何度かモーターを使いましたが、今回はARDUINOから、CNCシールドを使ってモーターを制御します。
 CNC (Computerized Numerical Control)とは、工作機械等において工具移速度・移動量などをコンピュータを用いて数値制御することとのことです。

 今回、Amazonで ArduinoUno相当品,CNCシールド,A4988
ドライバー4個,ケーブル等のセットを購入しました。この様なものが、3000円以下であることには驚きました。ちょっとした実験や学習目的には十分利用出来ると思います。


機器構成

 機器構成は次の図の通りです。
 パソコン,CNCシールドセットの他に直流電源(DC12V)と2相ステッピングモーター、ピンヘッダ(雌)を用意しました。パソコンにはGRBLコントローラー、ArduinoUNO(相当品)にはGRBLを設定します。
 ステッピングモーターやリミットスィッチ等がセットに含まれるものも販売されている様です。

ステッピングモーター ST-42BYH1004
ステッピングモーター SM-42BYG011

Arduino(相当品)にGRBLインストール

 まず、ArduinoUNO(相当品)にGRBLというソフトウエアを書き込みます。今回入手したCNCシールドは、VER3.00です。仕様書等で確認している訳ではありませんが、VER3.00はGRBL0.8に対応している様です。(購入サイトは”GRBL0.9交換”との表記がありますが(?))

 VER3.00と上位バージョンでは、Arduino側11,12pinに接続するシールド側端子出力のZ軸リミットSW信号とZ軸モーター出力信号が反転しているとのことです。(下図はVER3.00)

 Z軸未使用時はどちらでも良い様です。
 とりあえず、 “GRBL0.8”をインストールします。
【GRBLダウンロードURL】
 ・GRBL0.8(https://github.com/Protoneer/GRBL-Arduino-Library)
 ・GRBL0.9(https://github.com/grbl/grbl)
 ・GRBL1.1(https://github.com/gnea/grbl)

①GRBL0.8ダウンロード(ZIPファイル)
(https://github.com/Protoneer/GRBL-Arduino-Library)

②Arduino IDEで新規スケッチを作成
 →「スケッチ」→「ライブラリをインクルード」
 →「.ZIP形式のライブラリをインストール」
 →  ①でダウンロードしたZIPファイルを選択

③「GRBL-Arduino-Library-master」追加を確認

④コンフィグファイル設定変更(config.h)
 下記の設定ファイルをテキストエディタで開きます。
 〔ユーザー名〕はパソコンへのログインユーザー名です。
“C:\Users\〔ユーザー名〕\Documents\Arduino\libraries\GRBL-Arduino-Library-master\config.h”
とりあえず、今回は下記の通り原点復帰対象軸を変更・保存します。(X・Y軸を対象とし、Z軸を除外する)

#define HOMING_SEARCH_CYCLE_0 (1<<Z_AXIS)
#define HOMING_SEARCH_CYCLE_1 ((1<<X_AXIS)|(1<<Y_AXIS))
//#define HOMING_SEARCH_CYCLE_0 (1<<Z_AXIS)
#define HOMING_SEARCH_CYCLE_0 ((1<<X_AXIS)|(1<<Y_AXIS))

⑤「ファイル」→「スケッチ例」→「GRBL-Arduino-Library-master」→「GRBLtoArduino」を開く

⑥本体への書込
 パソコンと本体をUSBケーブルで接続後、ArduinoIDE上でボード,シリアルポートが適切に設定されていることを確認後、書き込みする。(下図は私個人の例)

⑦通信テスト
 Arduino IDE のシリアルモニタを起動すると、Arduino 本体からのデータを受信します。

”$” + “リターン” で、コマンドのヘルプが表示されます。

”$$” + “リターン” で、パラメータ設定が表示されます。

 パラメータ設定で“$17=0”となっている場合、“$17=1”と入力すると設定が変わり、原点復帰動作を有効化します。(上図は有効化されている状態)

配線接続

 簡単なテストですので、X軸とY軸を使用します。CNCシールドにドライバー(X軸,Y軸),DC12V電源,モーター(X軸,Y軸)を接続します。モーターとCNCシールドとの接続にピンヘッダ(ピンソケット)を使いました。モーターケーブルとピンヘッダははんだ付けです。

試運転(GRBLコントローラー使用)

 下記URLよりダウンロードします。
 幾つかありますが、“GRBL0.8”と同バージョンの “grblControl_0.8.4.zip”をダウンロードしました。
【ダウンロードHP】 https://github.com/Denvi/Candle/releases

 ダウンロード後、解凍します。   “grblControl.exe”  ファイルを右クリックし、管理者として実行します。

  設定画面を開き、通信ポートと速度を設定します。設定後、“OK”をクリックし画面を閉じます。

 アラームが発生しているので、①アラームを解除後、②原点復帰動作を開始します。③リミットSW入力(CNCシールド基板のEND STOPS信号)で原点復帰を終了します。

JOG運転動作も確認しました。下図の赤枠内の4つのボタンでX・Y軸のCW・CCW回転が可能です。

まとめ

 CNCシールドを使って、パソコン通信によるモーター動作を確認しましたが、とりあえず何とか動くというレベルです。
 意図した通り制御出来る様に勉強していきたいと思います。