ArduinoとGrbl controllerを使えば、パラレル接続のCNCフライス盤をそのままUSB接続にすることができます。 まずはステッピングモーターを動かします。
1.Arduinoのライブラリーにgrbl-masterを登録 以下からソースコードをダウンロードして登録します。
https://github.com/grbl/grbl
ページを開きファイルの一覧の右上にある「Download ZIP」をクリックします。 ダウンロードしたZIPファイルを解凍してArduino IEDに登録します。 スケッチ>ライブラリーをインクルード>ZIP形式のライブラリをインストール 先ほどのソースコードのフォルダを指定します。「grbl-master」かうまきう行かない場合はその下の「grbl」を指定します。
2.Arduino UNOに書き込む。 「ファイル」>「スケッチの例」「grbl」>「grblUpload」
3.Grblのピン設定に従ってステッピングモータ・ドライバを接続する。
デフォルトのピンアサインは以下のようになっていました。
#define X_STEP_BIT 2 // Uno Digital Pin 2 #define Y_STEP_BIT 3 // Uno Digital Pin 3 #define Z_STEP_BIT 4 // Uno Digital Pin 4 #define X_DIRECTION_BIT 5 // Uno Digital Pin 5 #define Y_DIRECTION_BIT 6 // Uno Digital Pin 6 #define Z_DIRECTION_BIT 7 // Uno Digital Pin 7
以前SLA7078で作ったモータドライバのパラレルポートに直接接続してみました。
4.Grbl controllerで制御する。 Grbl controllerはの公式ページからダウンロードできなかったので、以下からダウンロードしました。
https://github.com/zapmaker/GrblHoming/releases
インストールして起動します。 「Port name」はArduinoが繋がったポートを入力します。今回は「COM4」とキーボードから入力しました。通信レートはV0.9から上がったようで「115200bps」です。 「Open」をクリックして通信を確立します。初期設定がコマンドウィンドウに表示されればOKです。
Grbl controllerのAdvancedから設定するダイアログボックスにはバグがあります。読み取りは正確ですが、書き換えた時の変更先が間違っているようです。この点は次期バージョンに期待したいと思います。今のところAdvancedから設定しないで直接コマンドラインから「$100=80」のように設定する必要がありそうです。 最初に通信を確立した時点で初期設定の内容が一覧表示されますし、コマンド「$$」の入力で確認できます。該当する部分を直接コマンドから入力すれば変更できます。なお初期設定は以下のようになっていました。 これを今使っている自作CNCに合わせて下記のように変更しました。
X軸、Y軸、Z軸のstep/mmを変更
$100=384
$101=384
$102=384
X軸が反対に動くのでdir prot invert maskを変更。
おそらく「00000ZYX」だと思われるので「00000001」にしました。
$3=1
Z軸が大きく移動するときに脱調するのでz max travelを半分に。
$132=100
ついでにレートも低くしました。
$112=250
これでパラレル接続の既存のCNCフライス盤に接続したら動きました。簡単な切削テストもしてみましたが問題ないようです。まだレスポンスの点でパラレル接続のほうが有利ですが、パラレル接続のCNCにArduinoを繋げば、USBでコントロールすることができるので便利です。リミットスイッチやジョグボタンを取り付ければソフトウェアのバージョンアップと共に使いやすいシステムが構築できそうです。