自作制御プログラムの開発経緯

    多種多様なインターフェースとして手軽にプログラムが出来るArduinoと言う基板があり
    安価な3Dプリンターやフライス等にも広く採用されているようです。
    市販されているArduinoUNOとCNCシールドを使って制御装置を作っていきます

    Arduinoを使用した制御ソフトではGRBLと言うのが有名で、それに対応したレーザー専用ソフトも存在しています
    GRBLは優秀なソフトでArduinoの限られたメモリーに3軸制御や多くの機能が詰め込まれていて
    レーザー専用にS値を使用した出力コントロールにも対応しています。
    試しにLaserGRBLと言うソフトを使い動作を確認したところ、データの作成から加工まで簡単に出来てしまいました。

    それでも、写真等の画像を出力する際は、設定した解像度に合わせて細かいピッチと出力値(S)を処理するため
    カクカクと動作することになります。
    勿論、送り速度を上げても処理スピード以上にはならずカクカク動作も変わりません。

    又、一般に公開されているレーザー加工用のソフトは袋文字の加工でも必ずエリア内を往復するため
    大幅な加工時間が必要になってしまい効率的ではありません。 

    <自作制御プログラムの構想>
    カクカク動作は細かいピッチと毎回S値を処理するためですから、軸移動は1回指令で行い出力値のみを制御すれば良いのではと考え着手しましたが
    、発想力に乏しい上に様々な問題続出により完成までには結構な労力が掛かりました

    <完成までの経緯 

    1:GRBLの改造を検討

    GRBLはオープンソースで公開されているのですが
    改造するにはハードルが高すぎるので、直ぐに断念
     

    2:Steppeの利用

    はじめにステッピングモーターを動かすところから着手
    ArduinoにはStepperライブラリがあり簡単に出来ると始めたところ
    同時に複数制御が出来ないと分かり断念
     

    3:AccelStepperの利用

    他のライブラリーAccelStepperは同時に11個までのステッピングモーターを動かせて
    おまけに加減速まで設定できるので期待しましたが
    同時2軸では加減速も無効になり、直接の円弧動作は指令できないため直線に分割して動かすとカクカク動作になってしまい断念
     

    4:結局自前の制御に

    ステッピングモーターの動作原理は信号のON、OFFの繰返しなので、その部分だけは簡単です
    また、自前でプログラムすることにより結果的にレーザー出力同期や円弧補間、加減速の組込みも自由に出来るようになりました
     

    5:Arduinoとの苦戦 Arduino IDEは簡単にプログラムが作成可能なインターフェースですがデバッグができません
    また、プログラムに不具合がある場合は別の個所で動作しなかったり、暴走したりとプログラミングと検証に時間が掛かり何度も断念しかけました
     
    6:通信の同期に苦戦

    コントローラー(PCソフト)と制御基板(Arduino)はシリアル通信で繋ぎます
    普段使っている機械ではフロー制御は信号線を使っていますがUSBシリアルではそれが出来ないため、送り側(PC)と受け手側(Arduino)との間でソフトを利用したフロー制御が必要になります
    特に、今回の方法は軸移動(ステッピングモーターを動かす)間に細かいレーザー出力の値を読み込まなければならないので、このフロー制御が難問となりました
     

戻る