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

Если вы планируете собрать или уже находитесь в процессе создания собственного станка с ЧПУ, то наверняка столкнетесь с понятием GRBL. В этом руководстве мы подробно рассмотрим, что такое GRBL, как его установить и использовать для управления вашим ЧПУ-станком на базе Arduino.
Кроме того, мы познакомимся с программой Universal G-code Sender — популярным бесплатным контроллером с открытым исходным кодом для работы с GRBL.
Что такое GRBL?
GRBL — это прошивка с открытым исходным кодом, предназначенная для управления движениями на ЧПУ-станках. Прошивка устанавливается на Arduino, что позволяет получить недорогой, но мощный контроллер ЧПУ. В качестве входных данных GRBL использует G-код, который затем преобразует в управляющие сигналы для движения станка через Arduino.
Для лучшего понимания этого процесса посмотрите на следующую схему:

С этой схемы можно понять, как GRBL встроен в управление ЧПУ-станком. По сути, прошивка переводит команды G-кода в движение шаговых двигателей, управляемых через Arduino.
Необходимое оборудование
- Arduino — Для работы с GRBL понадобится плата Arduino, предпочтительно модель с микроконтроллером Atmega 328, такая как Arduino UNO или Nano.
- Шаговые двигатели — Эти моторы обеспечивают движение станка с ЧПУ.
- Драйверы шаговых двигателей — Для управления шаговыми двигателями подойдут драйверы A4988 или DRV8825, которые часто применяются в компактных самодельных станках с ЧПУ.
- Arduino CNC Shield — Плата расширения для удобного подключения драйверов и других компонентов, таких как шпиндель, концевые выключатели и вентиляторы охлаждения.
Это основные элементы, необходимые для сборки ЧПУ-станка и понимания его работы.
На примере самодельного станка для резки пенопласта можно увидеть, как соединяются все компоненты:

Вот список основных компонентов для этой сборки:
- Шаговый двигатель NEMA 17
- Шаговый драйвер A4988
- Arduino CNC Shield
- Arduino Uno
Главным инструментом в этом станке служит горячая проволока, которая легко расплавляет пенополистирол, придавая ему нужную форму.
Как установить GRBL
Для того чтобы загрузить GRBL на Arduino, сначала понадобится установить Arduino IDE.
После этого можно скачать прошивку GRBL с официального репозитория на GitHub.

После того как файл .ZIP будет скачан, выполните следующие шаги:
- Распакуйте архив «grbl-master.zip»
- Откройте Arduino IDE и перейдите в Sketch > Include Library > Add .ZIP Library…

В извлечённой папке «grbl-master» найдите папку «grbl» и откройте её. Теперь нам нужно добавить её как библиотеку в Arduino IDE.

- Теперь перейдите в File > Examples > grbl > grblUpload. Откроется новый скетч, который необходимо загрузить на Arduino. Несмотря на то, что код кажется простым и состоит из одной строки, вся основная работа происходит через библиотеку GRBL. После этого просто выберите плату Arduino и COM-порт, а затем нажмите на кнопку загрузки. Теперь прошивка GRBL установлена!
Настройка GRBL
На этом этапе нам нужно настроить прошивку GRBL для работы с нашим станком с ЧПУ. Это можно сделать с помощью Serial Monitor в Arduino IDE. Как только мы откроем Serial Monitor, на экране появится сообщение «Grbl 1.1h [‘$’ for help]». Если сообщение не отображается, проверьте, что скорость передачи данных установлена на 115200.
Введя команду «$$», мы увидим список настроек GRBL, который может выглядеть следующим образом:
$100 = 250.000 (x, шаги/мм)
$101 = 250.000 (y, шаги/мм)
$102 = 3200.000 (z, шаги/мм)
$110 = 500.000 (макс. скорость x, мм/мин)
$111 = 500.000 (макс. скорость y, мм/мин)
$112 = 500.000 (макс. скорость z, мм/мин)
$120 = 10.000 (ускорение x, мм/с²)
$121 = 10.000 (ускорение y, мм/с²)
$122 = 10.000 (ускорение z, мм/с²)
Эти настройки можно адаптировать к конкретным характеристикам вашего станка. Например, параметр $100 = 250.000 (x, шаги/мм) указывает, сколько шагов должен совершить двигатель для перемещения оси X на 1 мм. Но если вы не уверены в этих значениях, можно оставить их как есть, а позже воспользоваться специальным ПО для более удобной настройки, о котором поговорим далее.
Программное обеспечение для GRBL
После установки прошивки GRBL на Arduino плата сможет читать G-коды и управлять станком с ЧПУ в соответствии с ними. Однако для передачи G-кодов на Arduino необходим интерфейс, позволяющий отправлять команды. Существует множество программ как с открытым исходным кодом, так и коммерческих, которые могут помочь в этом процессе. Подробнее о таких программах можно узнать в этой статье. Мы будем использовать бесплатное программное обеспечение Universal G-code Sender.

Как работать с Universal G-code Sender
В этом примере используется версия платформы 2.0. После скачивания необходимо распаковать zip-файл, открыть папку «bin» и запустить исполняемый файл «ugsplatform». Так как программа написана на Java, вам потребуется предварительно установить Java Runtime Environment.
После запуска программы необходимо подключить станок и настроить параметры GRBL, о которых мы говорили ранее. В программе UGS предусмотрен мастер настройки, который значительно упрощает процесс и заменяет ввод команд вручную через Serial Monitor.

Первый шаг — выбрать скорость передачи (115200) и порт, к которому подключен Arduino. После подключения можно протестировать направление движения двигателей.

При необходимости можно изменить направление движения с помощью мастера или вручную переключить провода на Arduino CNC Shield.
Следующий шаг — настройка параметра шагов/мм, как мы уже обсуждали. Мастер настройки UGS помогает определить точное значение этого параметра. Вы просто измеряете фактическое перемещение оси и вводите результат в специальное поле. Программа автоматически рассчитает, сколько шагов необходимо для точного перемещения.

По умолчанию параметр шагов/мм равен 250. Это означает, что если мы нажмём кнопку перемещения «x+», двигатель сделает 250 шагов. С помощью линейки измерьте фактическое перемещение и введите значение в программу. На основании этих данных мастер скорректирует настройку шагов/мм.

В моем случае, смещение станка составило 3 мм. Следовательно, специалист порекомендовал изменить параметр шаги на миллиметр на значение 83.

После корректировки параметра шагов, станок начал двигаться корректно. Теперь 1 мм в программе соответствует 1 мм на станке с ЧПУ.

В консоли UGS можно отслеживать команды, отправляемые станку при каждом действии. При изменении параметра шагов на миллиметр, UGS отправил в прошивку GRBL команду для изменения значения с $100 = 250 000 (шаги X) на $100 = 83.
Следующий этап — включение и проверка концевых выключателей на корректную работу.

Концевые выключатели можно инвертировать в зависимости от их состояния: нормально замкнутые или нормально разомкнутые.
Отдельно стоит отметить необходимость отключения Z-выключателя в некоторых случаях. Например, для ЧПУ станка для резки пенопласта не потребовался Z-концевик, поэтому его отключили. Для этого нужно внести изменения в файл config.h, который находится в папке библиотеки Arduino.

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

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

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

Стоит отметить, что существует множество других настроек и функций, доступных через прошивку GRBL. Все они подробно описаны в официальной документации, которую можно найти на вики-странице на GitHub.
Помимо этого, существует много других программ с открытым исходным кодом для управления станком на базе GRBL, таких как Universal G-code Sender. Вот некоторые из них: GRBLweb (веб-браузер), GrblPanel (для Windows), grblControl (для Windows/Linux), Easel (браузерная версия) и другие. Попробуйте их, чтобы выбрать наиболее удобный для вас вариант.
Спасибо за интересную информацию. Подскажите, пожалуйста, что моет быть неправильно. Если я получаю такие сообщения
https://ibb.co/vhz2Dmv
И где можно посмотреть весь список сообщений и их расшифровку.
Спасибо.