Как настроить GRBL и управлять станком с ЧПУ с помощью Arduino


Если вы интересуетесь темой станков с ЧПУ (числовым программным управлением), то рано или поздно вы встретитесь с термином GRBL. В данной статье мы узнаем, что такое GRBL, как установить и как использовать его для управления станком с ЧПУ на базе платы Arduino. Кроме того, мы узнаем, как использовать Universal G-code Sender, популярное программное обеспечение контроллера GRBL с открытым исходным кодом.

Использование GRBL для управления станком с ЧПУ с помощью Arduino

В рассмотренной ранее на нашем сайте статье про плоттер с ЧПУ на основе платы Arduino мы также использовали контроллер GRBL.

Необходимые компоненты

  1. Плата Arduino Uno (купить на AliExpress).
  2. Драйвер шагового двигателя A4988 (купить на AliExpress).
  3. Шаговый двигатель NEMA 17 (купить на AliExpress).
  4. Arduino CNC Shield (купить на AliExpress).

Для установки GRBL нам понадобится плата Arduino. В частности, нам нужна будет плата Arduino на базе микрокон Atmega 328, а это означает, что мы можем использовать либо Arduino UNO, либо Nano. Шаговые двигатели будут обеспечивать движение исполнительного механизма.

Для управления шаговыми двигателями нам нужны драйверы, а для небольших станков с ЧПУ «сделай сам» (использующих шаговые двигатели NEMA 14 или 17) чаще всего выбирают драйверы A4988 или DRV8825.

Для подключения драйверов шаговых двигателей к плате Arduino проще всего использовать плату расширения Arduino CNC Shield. Она использует все контакты Arduino и обеспечивает простой способ подключения всего: шаговых двигателей, шпинделя/лазера, концевых выключателей, охлаждающего вентилятора и т. д.

Обратите внимание, что это только основные электронные компоненты, которые нам нужны, чтобы понять, как работает станок с ЧПУ, для реального станка будут нужны дополнительные компоненты.

Что такое GRBL?

GRBL — это программное обеспечение или прошивка с открытым исходным кодом, которая обеспечивает управление движением для станков с ЧПУ. Можно легко установить прошивку GRBL на плату Arduino и мгновенно получить недорогой высокопроизводительный контроллер ЧПУ. GRBL использует G-код в качестве входных данных и выводит управление движением через Arduino. Основные принципы написания G-кода мы рассматривали в этой статье.

Более наглядно все эти процессы продемонстрированы на следующем рисунке.

Принцип построения станка с ЧПУ на основе Arduino с использованием GBRL

Из представленного рисунка видно какое место занимает GRBL в «общей картине» принципа работы станка с ЧПУ. По сути, это прошивка, которую нам нужно установить или загрузить в плату Arduino, чтобы она могла управлять шаговыми двигателями станка с ЧПУ. Другими словами, функция прошивки GRBL заключается в преобразовании G-кода в движения двигателя.

Схема проекта

Схема станка с ЧПУ на основе платы Arduino и контроллера GRBL показана на следующем рисунке.

Схема станка с ЧПУ на основе платы Arduino и контроллера GRBL

В качестве примера подобного станка можно посмотреть на примере станка для резки пенопласта с ЧПУ своими руками. Основным инструментом этого станка с ЧПУ является горячая проволока, которая может легко расплавить или прорезать пенопласт и придать ему любую форму. Внешний вид этого станка показан на следующем рисунке.

Внешний вид станка для резки пенопласта с ЧПУ на основе платы Arduino

На протяжении данной статьи мы будем использовать этот станок в качестве примера потому что тот же принцип работы применим и к любому другому станку с ЧПУ, будь то фрезерный или лазерный.

Как установить GRBL

Во-первых, чтобы иметь возможность установить или загрузить GRBL в Arduino, нам будет нужна Arduino IDE .

Затем мы можем скачать прошивку GRBL с github.com.

Скачивание прошивки GRBL с github.com

Загрузите его как файл .ZIP, а затем выполните следующие действия:

  • Откройте файл grbl-master.zip и извлеките файлы
  • Откройте среду разработки Arduino IDE, в ней выберите пункт меню Sketch > Include Library > Add .ZIP Library…

Добавление новой библиотеки в Arduino IDE

  • Перейдите к извлеченной папке «grbl-master», выберите там папку «grbl» и нажмите «Открыть файл». Теперь нам нужно использовать GRBL как библиотеку Arduino.

Выбор библиотеки для GRBL

  • Затем выберите пункт меню File > Examples > grbl > grblUpload. Откроется новый скетч, и нам нужно загрузить его в плату Arduino. Код может выглядеть странно, так как состоит всего из одной строки, но не беспокойтесь, все происходит в фоновом режиме в библиотеке. Итак, нам просто нужно выбрать плату Arduino, корректный COM-порт и нажать кнопку загрузки, и все готово.

Конфигурация GRBL

На этом этапе мы должны настроить или настроить GRBL для нашей машины. Мы можем сделать это через последовательный монитор Arduino IDE. Как только мы откроем Serial Monitor, мы получим сообщение вроде «Grbl 1.1h ['$' for help]». Если вы не видите это сообщение, убедитесь, что вы изменили скорость передачи данных на 115200.

Если мы введем «$$», мы получим список команд или текущих настроек, и они выглядят примерно так:

$100=250.000 (x, step/mm)
$101=250.000 (y, step/mm)
$102=3200.000 (z, step/mm)
$110=500.000 (x max rate, mm/min)
$111=500.000 (y max rate, mm/min)
$112=500.000 (z max rate, mm/min)
$120=10.000 (x accel, mm/sec^2)
$121=10.000 (y accel, mm/sec^2)
$122=10.000 (z accel, mm/sec^2)

Все эти команды могут быть или должны быть скорректированы в соответствии с нашим станком с ЧПУ. Например, с помощью первой команды $100=250 000 (x, шаг/мм) мы можем настроить количество шагов на миллиметр станка или указать, сколько шагов должен сделать двигатель, чтобы наша ось X переместилась на 1 мм.

Тем не менее, я бы предложил оставить эти настройки как есть. Есть более простой способ настроить их в соответствии с нашей машиной с помощью программного обеспечения контроллера, о котором мы расскажем в следующем разделе.

GRBL-контроллер

Итак, после того, как мы установили прошивку GRBL, наша плата Arduino будет способна читать G-код и управлять станком с ЧПУ в соответствии с ним. Однако для того, чтобы отправить G-код на Arduino, нам нужен какой-то интерфейс или программное обеспечение контроллера, которое скажет Arduino, что делать. На самом деле для этой цели существует множество как открытых, так и коммерческих программ. Конечно, мы будем придерживаться открытого исходного кода, поэтому в качестве примера будем использовать Universal G-code Sender .

Главное окно программы Universal G-code Sender

Как использовать Universal G-code Sender

В этом примере мы будем использовать версию платформы 2.0. Как только мы загрузим его, нам нужно распаковать zip-файл, перейти в папку «bin» и открыть любой из исполняемых файлов «ugsplatfrom». На самом деле это программа JAVA, поэтому, чтобы иметь возможность запускать эту программу, сначала нам нужно установить JAVA Runtime Environment .

После того, как мы откроем Universal G-code Sender, сначала нам нужно настроить машину или настроить параметры GRBL, показанные ранее. Для этого мы воспользуемся мастером настройки UGS, который гораздо удобнее, чем вводить команды вручную через Serial Monitor в Arduino IDE.

Первоначальная настройка соединения в Universal G-code Sender

Первым шагом здесь является выбор скорости передачи данных, которая должна быть 115200 бод, и порта, к которому подключена наша плата Arduino. Как только мы подключим Universal G-code Sender к Arduino, на следующем шаге мы сможем проверить направление движения двигателей.

Проверка направления движения двигателей в Universal G-code Sender

При необходимости мы можем изменить направление с помощью мастера или вручную переключив соединение двигателя на Arduino CNC Shield.

На следующем шаге мы можем настроить параметр шагов/мм, о котором мы упоминали ранее. Здесь гораздо проще понять, как его настроить, потому что мастер настройки рассчитает и подскажет, до какого значения нам следует обновить данный параметр.

Калибровка шага в Universal G-code Sender

Значение по умолчанию — 250 шагов/мм. Это означает, что если мы нажмем кнопку перемещения «х+», мотор сделает 250 шагов. Теперь, в зависимости от количества физических шагов двигателя, выбранного шагового разрешения и типа трансмиссии, машина будет перемещаться на некоторое расстояние. Используя линейку, мы можем измерить фактическое движение машины и ввести это значение в поле «Фактическое движение». На основании этого мастер рассчитает и сообщит нам, на какое значение следует изменить параметр «шаги/мм».

Тонкая настройка шага в Universal G-code Sender

В рассматриваемом случае для самодельного станка с ЧПУ станок сдвинулся на 3 мм. В соответствии с этим мастер предложил обновить параметр «шаги/мм» до значения 83.

Обновление значения шага в Universal G-code Sender

После обновления этого значения станок теперь движется правильно, 1 мм в программном обеспечении означает 1 мм для станка с ЧПУ.

Проверка правильности настроенного шага

В консоли UGS, когда мы делаем каждое действие, мы можем видеть выполняемые команды. Мы можем заметить, что, обновляя параметр steps/mm, программа UGS фактически отправляла в Arduino или прошивку GRBL команду, которую мы упоминали ранее. Это было значение по умолчанию: $100=250.000 (x, step/mm), и теперь мы обновили значение до 83 шагов на мм: $100=83.

На следующем шаге мы можем включить концевые выключатели и проверить правильно ли они работают.

Проверка корректности работы концевых выключателей

В зависимости от того, являются ли они нормально открытыми или нормально закрытыми, мы также можем инвертировать их здесь.

Здесь стоит отметить, что иногда нам нужно отключить концевой выключатель оси Z. Так было с рассматриваемым самодельным станком для резки пенопласта с ЧПУ, где был не нужен концевой выключатель оси Z, и его пришлось отключить чтобы иметь возможность правильно установить станок в исходное положение. Итак, для этого нам нужно отредактировать файл config.h, который находится в папке библиотеки Arduino (или Documents\Arduino\libraries).

Редактирование файла config.h

Здесь нам нужно найти линии цикла возврата в исходное положение и закомментировать набор по умолчанию для 3-осевого станка с ЧПУ и раскомментировать настройку для 2-осевого станка. Чтобы изменения вступили в силу, нам нужно сохранить файл и повторно загрузить скетч grblUpload в нашу плату Arduino.

Тем не менее, на следующем шаге мы можем либо включить, либо отключить самонаведение ЧПУ.

Исходные установки для станка с ЧПУ

С помощью кнопки «Try homing» машина начнет движение к концевым выключателям. В случае, если это идет в противоположном направлении, мы можем легко изменить направление.

Наконец, на последнем шаге мастера настройки мы можем включить мягкие ограничения для нашего станка с ЧПУ.

Включение мягких ограничений для нашего станка с ЧПУ

Мягкие ограничения предотвращают выход машины за пределы установленной рабочей зоны.

Заключение

Итак, благодаря прошивке GRBL и плате Arduino мы можем легко настроить и запустить наш самодельный станок с ЧПУ. Конечно, в этой статье мы рассмотрели только основы этих процессов, но я думаю, что этого было достаточно, чтобы понять, как все работает и как настроить и запустить наш первый станок с ЧПУ.

Внешний вид собранного проекта станка с ЧПУ

Конечно, доступно множество других настроек и функций, так как GRBL действительно поддерживает прошивку контроллера ЧПУ. Документация GRBL подробно объясняет все это, поэтому вы всегда можете проверить их на их вики-странице на github.com .

Кроме того, существует множество других программ контроллера GRBL с открытым исходным кодом, таких как Universal G-code Sender, и вот некоторые из них: GRBLweb (веб-браузер), GrblPanel (графический интерфейс Windows), grblControl (графический интерфейс Windows/Linux), Easel (на основе браузера) и т. д. Вы можете изучить их и выбрать из них наиболее подходящий для себя.

Источник статьи

(Проголосуй первым!)
Загрузка...
5 290 просмотров

Комментарии

Как настроить GRBL и управлять станком с ЧПУ с помощью Arduino — 2 комментария

  1. Добрый день! Я собрал на основе этого, чпу но про проверке я обнаружил что если я нажму на ось Х то он уходит по диогонали.
    Скажите пожалуйста, не сталкивались ли вы с токой проблемой?

    • Добрый вечер. Нет, к сожалению, не сталкивался. Очевидно, что у вас вместо одной координаты изменяются сразу две

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *