GRBL ESP32 подключаем двигатели, шпиндель, SD карту.
Продолжаем изучать прошивку GRBL ESP32. Сегодня подключён шаговый двигатель, шпиндель, а также картридер для чтения карты памяти формата microSD. И проверим, как это все работает. Покрутим двигателями. Запустим пробный файл с карты памяти и проверим, как включается шпиндель станка. Ну что, приступим!
Электроника для GRBL ESP32.
Давайте посмотрим, что нам понадобится для сегодняшнего эксперимента. Практически все элементы, которые буду использовать, уже использовал в своих уроках и проектах. И походу буду делать ссылки на предыдущие уроки и проекты, чтобы не переполнять сегодняшнее описание электроники.
Паять ни чего не будем, а соберём навесной монтаж. И поможет нам в этом «Провода и Dupont Разъем для ЧПУ станка». Делаем необходимое, количество проводов с нужным количеством подключений. Это необходимо сделать потому, что у ESP32 всего 1 вывод – 3,3 вольта. И 2 вывода GND.
Нам понадобится следующая электроника:
С электроникой определились, осталось все подключить.
Схема подключения электроники для создания 3 осевого ЧПУ станка на ESP32.
Подключение начну с напоминания, что такое модуль шагового двигателя. Более подробное описание модулей и драйверов читайте в разделе сайта: «Обзор электроники для ЧПУ станков и 3D принтеров».
Модуль шагового двигателя A4988 позволяет подключить драйвер к микроконтроллеру, а в свою очередь, к данному модулю мы можем подключить шаговый двигатель. Это позволяет при использовании минимального количества проводов подключить драйвер шагового двигателя к микроконтроллеру к такому, как ESP32. Что нам и нужно.
Схема подключения трех драйверов A4988 к ESP32.
Как видно из схемы нам можно подключить, всего 2 сигнальных провода: STEP – оранжевого цвета и DIR – проводник голубого цвета. И 2 провода питания 3,3 вольта.
У вас, наверное, появился резонный вопрос. Откуда мы знаем, что куда подключить? Об этом я рассказываю в прошлой статье про GRBL ESP32: «Установка и настройка GRBL ESP32». Мы выбираем готовый файл конфигурации ЧПУ стана. И в этом файле конфигурации прописаны все подключения, в нашем случае это файл «3axis_v4.h».
Подключаем SD – модуль и питание 12 вольт для шаговых двигателей.
Модуль SD карты подключён по шине SPI, поэтому достаточно взять распиновку платы ESP32 и подключить соответствующие контакты. Также для того, чтобы драйвера могли подавать сигнал высокого уровня на шаговые двигателя, нужно подать питание от 12 до 24 вольт. На схеме проводники линии 12 вольт обозначил пунктирными линиями, чтобы не перепутать.
Схема подключения для создания 3 осевого ЧПУ станка на ESP32.
Все готово, осталось подключить шаговые двигателя и проверить, как все работает.
Прошивка GRBL_ESP32. Управление двигателями и запуск управляющей программы через веб – интерфейс.
Схема подключена. Прошивка залита. Если вы не загрузили прошивку и не произвели настройки станка. Вернитесь на предыдущую статью и сделать все необходимые настройки. В противном случае у вас ничего не заработает.
Продолжаем настаивать веб – интерфейс. И для этого нужно сделать некоторые дополнительные настройки, которые упростят работу с ЧПУ станком на ESP32. Давайте подключим станок к нашей Wi-Fi сети.Это позволит работать со станком внутри нашей домашний или рабочий Wi-Fi сети.При этом у вас на компьютере будут все привычные функции, интернет, социальные сети и прочие блага.
Для этого перейдём во вкладку «ESP3D». Тут нам необходимо добавить логин и пароль от нашей Wi-Fi сети. Затем сохраним изменения.
Так же нам нужно переключиться на работу в режим STA. Для этого в настройках «Radio mode» выбери «Клиент (STA)». Вы также можете использовать статический IP адрес вашего устройства, если вы знаете, как настраивать статический IP адрес ваш Wi-Fi роутере.
Затем перезагрузи устройство и в мониторе порта увидим IP адрес нашего устройства. Вбиваем данные IP адрес в строку браузера, мы попадаем в веб-интерфейс управления ЧПУ станком на ESP32.
Работа с файлами на SD карте.
Установил карту от 3D принтера. И думал, что все файлы и папки просто не будут доступны. Ну вот, сюрприз, все на месте. Конечно же, я шучу! Я догадался, что так и будет.Нельзя же, я столько времени занимаюсь чтением, обработка и запись данных на SD карты.
При переходе в папку видны все файлы. Так же есть индикатор, показывающий, сколько памяти всего и сколько памяти используется. Это достаточно удобно, но сейчас карты памяти большие, и заполнить память текстовыми документами очень сложно. Данный функционал не является необходимым, но достаточно удобный и полезный.
Что меня порадовало, это возможность загрузки файлов. Да, да! Не нужно доставать карту памяти. Просто выбираем файл, и по воздуху файл загружается на карту памяти. Это очень удобно. Ну, это я тоже предвидел. У меня даже есть статья, как это сделать самостоятельно: «Файловая система SPIFFS в ESP8266 и ESP32».
Загруженные файлы и папки можно удалить. Для того чтобы запустить файл в обработку, нужно нажать на кнопку «пуск».
Как выглядит процесс обработки в веб-интерфейсе ESP32 GRBL.
После того как мы выбрали файл с программой и нажали на кнопку запуска, начинается процесс обработки. О чем сигнализирует шкала процесса в разделе «GRBL». Также появляется кнопка «пауза». Позволяющая приостановить процесс обработки и кнопка обновить.
Также в разделе «Команды» видим информацию о названии обрабатываемого файла и процент выполнения.
Да, визуализации процесса нет. Ну, в принципе, это не критично. Проверить можно в сторонних программах и приложениях. Например, в «Онлайн программа для симуляции готового G-Code для ЧПУ».
Тут видим количество проходов,глубину и все перемещения.Минимальная, но достаточная информация, которая позволяет определить, что файл управляющей программы создан корректно.
Так же для людей, знающих G-code, достаточно пробежаться по коду и будет понятно, что все в порядке и можно запускать файл в обработку.
Подойдём итоги.
Как видим, первый запуск прошёл успешно. Все работает, двигателя вращаться. Светодиод, сигнализирующие включение шпинделя, отрабатывает отлично.Так же мы видим все файлы, которые хранятся на карте памяти, и можем запустить необходимые файлы для обработки. Каких-то непредвиденных ситуаций не было, запуск прошёл успешно.
В следующей статье рассмотрю, как установить данную электронику на лазерный гравировальный станок. Который я собирал в предыдущих проектах. Поменяю CNC shield v3 на ESP32. И по воздуху отправлю файлы для гравировки. Так же посмотрю, с помощью каких программ можно создать G-code. Но это будет следующая статья.
Понравился проект GRBL ESP32 подключаем двигателя, шпиндель, SD карту? Не забудь поделиться с друзьями в соц. сетях.
А также подписаться на наш канал на YouTube, вступить в группу Вконтакте, в группу на Facebook.
Спасибо за внимание!
Технологии начинаются с простого!
В предыдущих статьях мы рассмотрели, где скачать прошивку grbl 1.1, как установить данную прошивку и с помощью какой программы производить настройки. Сегодня рассмотрим какие параметры мы получаем от станка. И как произвести настройку grbl 1.1 – инструкция на русском языке.
Включение станка, что за информация нам выдает grbl 1.1?
Что означают все эти строки. Давайте рассмотрим их по порядку. Первая строка.
**** Connected to COM5 @ 115200 baud ****
Расшифровать ее можно так:
Данные параметры мы выбирали при подключении станка.
Следующая строка выводит информацию о версии прошивки.
Grbl 1.1g [‘$’ for help]
Третья строка отправляет команду «$$», что заставляет вывести настройки прошивки.
[GC:G0 G54 G17 G21 G90 G94 M0 M5 M9 T0 S0.0 F500.0]
Команды Grbl «$».
Про данные команды Grbl «$» у меня на форуме есть отдельный пост. Но чтобы вам не искать информацию по разным сайтам, продублирую информацию в данной статье.
Команда «$$» выводит все настройки «$» в монитор порта или в консоль управляющей программы.
Настройки Grbl.
Для просмотра настроек введите «$$» и нажмите Ввод, после того как подключитесь к Grbl. Grbl ответит списком текущий системных настроек, как в примере ниже. Все эти настройки хранятся в памяти EEPROM после отключения питания, так что они будут автоматически загружены при следующем включении вашей платы Arduino.
В предыдущих версиях Grbl каждый параметр имел после себя описание в круглых скобках (), но в Grbl, начиная с v1.1, этого, к сожалению, больше нет. Так было сделано, чтобы освободить драгоценную flash память для добавления новых возможностей, появившихся в v1.1. Однако, большинство хороших графических оболочек (GUI) добавляют для вас описания к параметрам, так что вы всегда будете знать на что смотрите.
Настройки по умолчанию.
Команда $x=val сохраняет или изменяет параметр настройки Grbl, это можно сделать вручную, отправкой соответствующей команды в Grbl через программу-терминал последовательного порта, но большинство графических оболочек Grbl позволяют сделать это более удобным способом.
Описание параметров grbl 1.1.
$0 – Длительность шагового импульса, микросекунд.
Драйверы шаговых двигателей имеют ограничение на минимальную длительность шагового импульса. Уточните нужное значение в документации или просто попробуйте разные варианты. Желательно использовать максимально короткие импульсы, которые драйвер способен надежно распознавать. Если импульсы будут слишком длинные, вы можете столкнуться с проблемами при высоких скоростях подачи и большой частоте импульсов, возникающими из-за того, что идущие подряд импульсы начнут перекрывать друг друга. Мы рекомендуем использовать длительности в районе 10 микросекунд, что является значением по-умолчанию.
$2 – Инверсия порта шаговых импульсов, маска.
$3 – Инверсия порта направления, маска.
Если вы инвертируете входы концевых выключателей, потребуется внешний резистор подтяжки к земле, чтобы предотвратить перегрузку по току и сгоранию входа.
Если вы инвертируете вход контактного датчика, потребуется внешний резистор подтяжки к земле, чтобы предотвратить перегрузку по току и сгоранию входа.
Параметр определяет какие данные реального времени вернет Grbl, когда пользователь запрашивает статус командой ‘?’.
Эти данные включают в себя текущее состояние, текущие координаты, текущую скорость подачи, значения на входах, текущие переопределенные значения, состояния буферов, и номер выполняемой команды G-кода (если было включено при компиляции).
$12 – Отклонение от дуги, мм.
Grbl выполняет круги, дуги и спирали G2/G3, разбивая их на множество крошечных отрезков таким образом, чтобы погрешность отклонения от дуги не превышала значения данного параметра. Скорее всего вам никогда не придется менять этот параметр, поскольку значение 0.002мм находится ниже разрешающей способности большинства станков с ЧПУ. Однако, если вы обнаружили, что ваши окружности слишком угловатые или прохождение по дуге выполняется слишком уж медленно, откорректируйте значение этого параметра. Меньшие значение дают лучшую точность, но могут снизить производительность из-за перегрузки Grbl огромным количеством мелких линий. И наоборот, более высокие значения приводят к меньше точности обработки, но могут повысить скорость, поскольку Grbl придется иметь дело в меньшим количеством линий.Для любопытных уточним, что отклонение от дуги определяется как максимальная длина перпендикуляра, проведенного от отрезка, соединяющего концы дуги (он же хорда) до пересечения с точкой дуги. Используя основы геометрии мы вычисляем на отрезки какой длины нужно разбить дугу, чтобы погрешность не превышала заданное значение. Моделирование дуг данным способом замечательно в том смысле, что отрезки с точки зрения производительности получаются оптимальной длины, а точность никогда не теряется.
Для настройки процедуры поиска начальной позиции вам потребуется наличие надежно закрепленных концевых выключателей в некоторой точке, на которые нельзя наткнуться или сдвинуть, в противном случае точка отсчета может быть сбита. Обычно они устанавливаются в самых дальних точках в направлении +x, +y, +z на каждой из осей. Соедините концевые выключатели с соответствующими выводами и землей, так же как и концевые выключатели аппаратных границ и задействуйте поиск начальной позиции. Если интересно, то вы можете использовать граничные выключатели И для аппаратных границ, И для поиска начальной позиции. Они прекрасно работают вместе.По-умолчанию, процедура поиска начальной позиции Grbl сначала выполняет перемещение по оси Z в положительном направлении, чтобы освободить рабочую область, а затем выполняет одновременное перемещение по осям X и Y в положительном направлении. Для настройки точного поведения процедуры поиска начальной позиции имеются несколько параметров настройки, описанных ниже (и параметры компиляции тоже.)Также следует отметить, что при задействованной процедуре поиска начальной позиции Grbl блокирует выполнение команд перемещения G-кода до выполнения поиска начальной позиции. Имеется в виду отсутствие перемещения по осям, пока не будет отключена блокировка ($X), но об этом чуть позже. Большинство, если не все контроллеры с ЧПУ, ведут себя аналогично, делается это, в основном, для безопасности, чтобы не позволить оператору допустить ошибку позиционирования, что довольно просто, и расстроиться, когда работа будет загублена. Если вас это раздражает или вы обнаружили какие-то странные ошибки, пожалуйста, дайте нам знать, и мы попытаемся поработать над этим и сделать так, чтобы все были счастливы.
В файле config.h находятся множество других настроек, ориентированных на продвинутых пользователей. Вы можете отключить блокировку при старте, указать с каких осей начать процедуру поиска, в каком порядке по ним перемещаться, а также многое другое.
Параметров много, но настройка достаточно простая. Достаточно внимательно ознакомиться с инструкцией и посмотреть примеры настроек мох самодельных ЧПУ станков.
urpylka
Programming, robotics, traveling
Установка и настройка Grbl
Навигация по проекту:
Почему Grbl?
В плане выбора прошивок я рассматривал легкие opensource проекты. А в качестве контроллера изначально тыкнул пальцем в Arduino Uno просто потому что это самое дешевое и простое решение. И я хочу доказать, что даже оно на голову круче чем вариант со старым компом с LPT портом, который использовался на моем станке раньше.
На 8-битный мк Atmega328p который используется в Arduino Uno самыми известными прошивками являются Marlin и Grbl. При этом Marlin давно разросся и начиная со второй версии уже не подходит на 8-битные мк. В тоже время Grbl поддерживается по сей день и является узким и производительным решением под 8-битный AVR контроллер.
Установка
Проект Grbl раньше распологался в репозитории github.com/grbl/grbl, но сейчас переехал в github.com/gnea/grbl. На сколько я понимаю, это обусловлено смещением фокуса на главный продукт – G-code парсер gnea.
Для загрузки на мк необходимо воспользоваться утилитой avrdude (не обязательно скачивать Arduino IDE). Чтобы вручную не вводить аргументы можно воспользоваться Makefile находящимся в репозитории:
Данная команда исполняет следущую конструкцию:
При использовании этого метода необходим AVR программатор для загрузки прошивки по AVR ISP порту, это не всегда удобно ввиду отсуствия проргамматора. В этом случае можно воспользоваться предустановленным в Arduino загрузчиком. Загрузчик это специальная программа записанная в память мк (работает аналогично BIOS), однако её может и не быть. Для прошивки таким способом достаточно иметь USB провод и саму плату Arduino. Это также позволяет удобнее загрузить скаченный hex-файл:
Где path/to/firmware.hex – путь к файлу прошивки, а /dev/tty.usbserial-A804CL9D – serial порт подключенной Arduino.
Настройка Grbl
Итак, станок собран, контроллер подключен, прошивка залита. После подключения контроллера к компьютеру по USB и подключения к UART консоли, контроллер должен написать приветственную строку:
$-команды используются для просмотра или изменения параметров Grbl, а также запуска процедуры поиска начальной позиции.
Я пришел к выводу, что для настройки станка, нужно понимать каждый параметр, поэтому настройку станка вижу пошаговым изучением параметров и, в случае необходимости, их изменением.
Ниже я аккумулировал и причесал информацию о параметрах со следующих источников: portal-pk.ru, cnc-design.ru, r13-project.ru.
Параметры Grbl
Все параметры хранятся в энергонезависимой памяти мк – EEPROM. Так что они будут автоматически загружены при следующем включении вашей платы Arduino.
$x=val описывает отдельный параметр настроек, причем val это значение параметра.
Описание параметров Grbl
$0 – Длительность шагового импульса, микросекунды
Драйверы шаговых двигателей имеют ограничение на минимальную длительность шагового импульса. Уточните необходимое значение можно в документации на драйвер или перебором различных вариантов. Необходимо подобрать максимально короткий импульс, которые драйвер способен надежно распознавать. Если импульсы будут слишком длинные, вы можете столкнуться с проблемами при высоких скоростях подачи и большой частоте импульсов, возникающими из-за того, что идущие подряд импульсы начнут перекрывать друг друга. Рекомендуется использовать длительности в районе 10 микросекунд, что является значением по-умолчанию.
$1 – Задержка отключения двигателей, миллисекунды
Параметр меняется от 0 до 255.
Каждый раз, когда ваши шаговые двигатели заканчивают движение и останавливаются, Grbl делает задержку на указанный интервал времени перед отключением питания двигателей. Вы можете всегда держать двигатели включенными (с подачей питания для удержания текущего положения) установив значение этого параметра в максимально возможное значение, равное 255 миллисекунд.
$2 – Инверсия порта шаговых испульсов, маска
Данный параметр задается по следующей маске:
| Значение | Маска | Ось X | Ось Y | Ось Z |
|---|---|---|---|---|
| 0 | 000 | — | — | — |
| 1 | 001 | + | — | — |
| 2 | 010 | — | + | — |
| 3 | 011 | + | + | — |
| 4 | 100 | — | — | + |
| 5 | 101 | + | — | + |
| 6 | 110 | — | + | + |
| 7 | 111 | + | + | + |
$3 – Инверсия порта направления, маска
Положительное направление, когда значение перемещения по осям растёт. Например: X=1..2..3..4..5
$4 – Инверсия сигнала включения шаговых двигателей, логический
Может потребоваться перезапуск контроллера, чтобы изменения вступили в силу.
$5 – Инверсия входов концевых выключателей, логический
Если вы инвертируете входы концевых выключателей, потребуется внешний резистор подтяжки к земле, чтобы предотвратить перегрузку по току и сгоранию входа.
$6 – Инверсия входа контактного датчика, логический
Может потребоваться перезапуск контроллера, чтобы изменения втупили в силу.
Если вы инвертируете вход контактного датчика, потребуется внешний резистор подтяжки к земле, чтобы предотвратить перегрузку по току и сгоранию входа.
$10 – Отчет состояния, маска
Эти данные включают в себя текущее состояние, текущие координаты, текущую скорость подачи, значения на входах, текущие переопределенные значения, состояния буферов, и номер выполняемой команды G-кода (если было включено при компиляции).
По-умолчанию новая реализация вывода отчета в Grbl v1.1 включает в себя вывод информации практически обо всем в стандартном выводе статуса. Множество данных скрывается и выводятся только тогда, когда их значение меняется. Это существенно увеличивает производительность по сравнению со старым способом и позволяет значительно быстрее получать обновленные данные о станке, причем в большем объеме. Документация на интерфейс в общих чертах рассказывает, как это работает, хотя в основном она предназначена только для разработчиков графических интерфейсов GUI.
Используйте таблицу ниже для определения включаемых/отключаемых параметров.
$11 – Отклонение на стыках, мм
Заданная величина отклонения на стыках, используется модулем управления ускорением для определения скорости перемещения через стыки отрезков запрограммированного в G-коде пути. Например, если путь в G-коде содержит острый выступ с углом в 10 градусов, и станок двигается к нему на максимальной скорости, данный параметр поможет определить насколько нужно притормозить, чтобы выполнить поворот без потери шагов.
Вычисление выполняется доволно сложным образом, но в целом, более высокие значение дают более высокую скорость прохождения углов, повышая риск потерять шаги и сбить позиционирование. Меньшие значение делают модуль управления более аккуратным и приводят к более аккуратной и медленной обработке углов. Так что, если вдруг столкнетесь с проблемой слишком быстрой обработкой углов, уменьшите значение параметра, чтобы заставить станок притормаживать перед прохождением углов. Если хотите, чтобы станок быстрее проходил через стыки, необходимо увеличить значение параметра.
Описание алгоритма обработки углов в Grbl, который учитывает скорость и величину угла на стыке можно прочитать на onehossshay.wordpress.com, а также на blog.kyneticcnc.com.
$12 – Отклонение от дуги, мм
Grbl выполняет круги, дуги и спирали G2/G3, разбивая их на множество крошечных отрезков таким образом, чтобы погрешность отклонения от дуги не превышала значения данного параметра. Скорее всего вам никогда не придется менять этот параметр, поскольку значение 0.002мм находится ниже разрешающей способности большинства станков с ЧПУ. Однако, если вы обнаружили, что ваши окружности слишком угловатые или прохождение по дуге выполняется слишком уж медленно, откорректируйте значение этого параметра. Меньшие значение дают лучшую точность, но могут снизить производительность из-за перегрузки Grbl огромным количеством мелких линий. И наоборот, более высокие значения приводят к меньше точности обработки, но могут повысыть скорость, поскольку Grbl придется иметь дело в меньшим количеством линий.
Отклонение от дуги определяется как максимальная длина перпендикуляра проведенного от отрезка, соединяющего концы дуги (он же хорда) до пересечения с точкой дуги. Используя основы геометрии мы вычисляем на отрезки какой длины нужно разбить дугу, чтобы погрешность не превышала заданное значение. Моделирование дуг данным способом замечательно в том смысле, что отрезки с точки зрения производительности получаются оптимальной длины, а точность никогда не теряется.
$13 – Отчет в дюймах, логический
$20 – Мягкие границы, логический
Мягкие границы это настройка безопасности, призванная помочь избежать перемещения за пределы допустимой области, которое может повлечь за собой поломку или разрушение оборудования. Она работает за счет информации о текущем положении и пределах допустимого перемещения по каждой из осей. Каждый раз, когда Grbl отправляется G-код движения, он проверяет не произойдет ли выход за пределы допустимой области. И в случае, если происходит нарушение границ, Grbl, где бы он ни находился, немедленно выполняет команду остановки подачи, останавливает шпиндель и охлаждение, а затем выдает сигнал аварии для индикации проблемы. Текущее положение при этом не сбрасывается, поскольку остановка происходит не в результате аварийного принудительного останова, как в случае с жесткими границами.
$21 – Жесткие границы, логический
Жесткие границы в общих чертах работают также как и мягкие, но используют аппаратные выключатели. Как правило, вы подсоединяете концевые выключатели (механические, магнитные или оптические) в конце каждой из осей или в тех точках, достижение которых в процессе перемещения, как вы считаете, может привести к проблемам. Когда срабатывает выключатель, он приводит к немедленной остановке любого перемещения, останову охлаждения и шпинделя (если подключен), и переходу в аварийный режим, требующий от вас проверить станок и выполнить сброс контроллера.
Необходимо иметь в виду, что срабатывание жестких границ рассматривается как исключительное событие, требующее немедленной остановки, и может приводить к потере шагов. Grbl не имеет обратной связи от станка о текущем положении, так что он не может гарантировать, что имеет представление о реальном месте нахождения. Так что, если произошло нарушение жестких границ, Grbl перейдет в аварийный режим, требуя проверить станок и выполнить сброс Grbl в целях безопасности.
Для включения жестких границ потребуется по 2 концевых выключателя на каждую ось, для ограничения перемещения в двух крайних положениях. Концевые выключатели вешают парно на 1 вход концевых выключателей, при срабатывании любого из двух должна происходить остановка станка.
$22 – Поиск начальной позиции, логический
Процедура поиска начальной позиции используется для аккуратного и точного поиска заранее известной точки станка каждый раз после включения Grbl между сеансами работы. Другими словами, вы всегда, в любой момент времени точно знаете где находитесь. Собирались ли вы только начать работу или перешли к следующей операции, а в это время отключилось электричество, в любом случае Grbl перезапустится и не будет знать свое текущее местоположение. При наличии начальной позиции, у вас всегда есть эталонная точка отсчета, так что все, что в этом случае требуется, это запустить процедуру поиска начальной точки и продолжить работу с того места, где остановились.
Для настройки процедуры поиска начальной позиции вам потребуется наличие надежно закрепленных концевых выключателей в некоторой точке, на которые нельзя наткнуться или сдвинуть, в противном случае точка отсчета может быть сбита. Обычно они устанавливаются в самых дальних точках в направлении +x, +y, +z на каждой из осей. Соедините концевые выключатели с соответствующими выводами и землей, так же как и концевые выключатели аппаратных границ и задействуйте поиск начальной позиции. Если интересно, то вы можете использовать граничные выключатели и для аппаратных границ, и для поиска начальной позиции.
По-умолчанию, процедура поиска начальной позиции Grbl сначала выполняет перемещение по оси Z в положительном направлении, чтобы освободить рабочую область, а затем выполняет одновременное перемещение по осям X и Y в положительном направлении. Для настройки точного поведения процедуры поиска начальной позиции имеются несколько параметров настройки (а также параметры компиляции), описанных ниже.
В файле config.h находятся множество других настроек, ориентированных на продвинутых пользователей. Вы можете отключить блокировку при старте, указать с каких осей начать процедуру поиска, в каком порядке по ним перемещаться, а также многое другое.
$23 – Инверсия направления начальной точки, маска
По-умолчанию, Grbl предполагает, что концевые выключатели начальной точки находятся в положительном направлении, он выполняет сначала перемещение в положительном направлении по оси Z, затем в положительном направлении по осям X-Y, перед тем как точно определить начальную точку медленно перемещаясь назад и вперед около концевого выключателя. Если у вашего станка концевые выключатели находятся в отрицательном направлении, инверсия направлений начальной точки изменяет направление осей.
$24 – Скорость подачи при точном поиске начальной точки, мм/мин
$25 – Скорость подачи при быстром поиске начальной точки, мм/мин
Данную скорость следует подобрать так, чтобы перемещение выполнялось как можно быстрее и при этом концевой выключатель успевал обрабатываться контроллером.
$26 – Подавление дребезга при поиске начальной точки, миллисекунд
Когда срабатывают выключатели, некоторые из них в течении нескольких миллисекунд могут издавать электрический/механический шум приводящий к быстрому переключению сигнала между высоким и низким значениями, прежде чем значение зафиксируется. В основном это наблюдается у механических контактов, ввиду того, что контакт прижимается не сразу, а ещё немного пружинит.
Для решения данной проблемы нужно подавить дребезг сигнала либо аппаратно, за счет какой-нибудь фильтрации, либо программно, сделав небольшую задержку на время дребезга. Grbl будет делать короткую задержку, но только при поиске начальной точки на этапе ее точного определения. Установите значение задержки, достаточное, чтобы ваши выключатели обеспечивали устойчивый поиск начальной точки. Для большинства случаев подойдут значения 5-25 миллисекунд.
При срабатывании концевого выключателя (особенно механического), наблюдается шум на входе (поочередные всплески от того, что контакт не сразу прижимается, а еще немного пружинит). Что бы исключить данный шум из расчета ьребуется либо установка фильтра, либо програмная задержка, которая и задается этим параметром. Для большинства случаев требуемое значения 5-25 миллисекунд.
$27 – Отъезд от начальной точки, мм
При объединение датчиков жестких границ станка и концевых выключателей для поиска начальной точки, процедура поиска после завершения определения положения начальной точки выполняет перемещение от концевых выключателей на указанное расстояние. Другими словами, это предотвращает непреднамеренное срабатывание жестких границ по окончании процедуры поиска.
$30 – Максимальные обороты шпинделя, Об/мин
Задает обороты шпинделя, соответствующие максимальному напряжению на выходе ШИМ, равному 5В. Допускается задавать в программе и более высокие обороты шпинделя, но вывод ШИМ все равно не может быть больше 5В. По-умолчанию, Grbl строит линейную зависимость из 255 отсчетов между максимальными-минимальными оборотами шпинделя и напряжениями на выходе ШИМ из диапазона 5В-0.02В. Значение ШИМ, равное 0В, означает отключение шпинделя. В файле config.h есть дополнительные параметры, влияющие на это поведение.
$31 – Минимальные обороты шпинделя, Об/мин
Задает обороты шпинделя (или мощность лазера), соответствующие минимальному напряжению на выходе ШИМ, равному 0.02V (напряжение питания платы/256).
0В означает полное отключение. В случае использования драйвера бесколлекторного мотора нужно произвести его калибровку, чтобы при ШИМ соотвествующим 0В он не работал, а при 0.2В уже работал, а максимальная мощность достигалась при соотвествии ШИМ максимальному напряжению питания.
$32 – Режим лазера, логический
Если включить данный параметр, то контроллер перейдет на режим управления лазером. Лазер подключается на тот же пине отвечающем за обороты шпинделя. В случае с лазером, делать остановки не нужно, иначе в точках изменения яркости будут наблюдаться более черные точки или полосы. Значение скважности ШИМ, отвечающего за управление оборотами шпинделя, будет меняться в процессе движения сразу же, без выполнения остановки.
Обязательно прочтите руководство Grbl по работе в режиме лазера и документацию на ваш лазер перед включением данного режима. Лазеры очень опасны. Они многут мгновенно лишить вас зрения или стать причиной пожара. Grbl, как и указано в его GPL лицензии, не несет никакой ответственности за любой вред, нанесенный в результате использования данной программы.
Данные параметры задают количество шагов, сделав которое ось сдвинется на 1мм.
Например шаговый двигатель имеет 200 шагов на 1 оборот, контроллер настроен на 16 микрошаг. Теперь допустим, что при вращении двигателя на 1 оборот инструмент переместился на 32мм, тогда имеем. 200 шагов умножить на 16 микрошаг – 3200 импульсов нужно подать на контроллер, что бы шаговый двигатель сделал 1 оборот, и переместил инструмент на 32мм. Значит на 1мм он сдвинется за 3200/32мм=100 шагов.
Для калибровки необходимо узнать текущую настройку количества микрошагов драйвере двигателя. А также произвести замер реального перемещения оси соотвестующего некоторому количеству шагов. Далее составив пропорцию между текущем параметром шагов/мм, реальным перемещением и расчетным перемещением мб расчитан новый корректный параметр шагов/мм.
Использование больших значений микрошага (например, 16) может уменьшить крутящий момент вашего двигателя, так что используйте минимальное значение, обеспечивающее нужную точность перемещения по осям и удобные эксплутационные характеристики.
Эти параметры задают максимальную скорость перемещения для каждой из осей. Контроллер при получении G-кода анализирует скорости указанные в нем, и если команда задает скорость выше данных значений, то он ограничивает скорость.
Например, для проверки оси X, отправьте Grbl команду вида G0 X50 с расстоянием перемещения, достаточно большим для разгона до максимальной скорости. Максимальное значение будет достигнуто, когда ваш шаговый двигатель застопорится. Он будет издавать жужжащий звук, но ничего страшного с ним не случится. Задайте значение на 10-20% меньше обнаруженного, чтобы учесть износ, трение и массу вашей рабочей головки/инструмента. Повторите процесс для остальных осей.
Эти параметры задают параметры ускорения в мм/сек за секунду. Попросту говоря, меньшее значение делает перемещения более плавными, в то время как большее приводит к боле резким движениям и достижению требуемой скорости подачи гораздо быстрее. Как и в случае максимальных скоростей, каждая из осей имеет свое собственное значение ускорения, которые независимы друг от друга. Это означает, что в случае многоосевого перемещения ускорение будет соответствовать самой медленной из движущихся осей.
Мои настройки
Система координат
Для начала советую определить переднюю сторону станка. Это одна из сторон параллельных порталу. Затем в левом углу разместите начало координат. Потом вектора осей исходящие из него:
Такое расположение осей будет легко сопоставить с тем, которое вы будете использовать при моделировании изделий и составлении УП. А также в принципе позволит легко ориентироваться в координатах станка.
Это расположение осей также задекларировано стандартом DIN 66217, подробнее в этом руководстве.
Настройка алгоритма поиска домашней точки
В нормальном состояннии домашняя точка определяемая концевыми выключателями находятся в нуле, а вся рабочая зона в отрицательном значении.
Мои параметры
Я пришел к следующему набору параметров (показаны только отличиные от базовых значения):
Работа с концевиками:
Линейные коэффициенты, скорости и границы:




















