Grbl инструкция на русском

Мы обнаружили, что в вашей сети доступ к YouTube устанавливается через стороннее незарегистрированное приложение.
Использование таких приложений может привести к негативным последствиям, в том числе установке вредоносного ПО, несанкционированному доступу к вашим данным и быстрому расходу заряда батареи.

Просим вас пользоваться официальными приложениями YouTube (для Android или для iOS) и YouTube Go. Неподтвержденные приложения следует удалить со своего устройства.

Чтобы вернуться на YouTube, введите указанный ниже код подтверждения.

Настройки которые нас интересуют выглядит так: $0 и $1 .

Эти 2 настройки устанавливают А и ось Y.

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

Мы считаем это так:

Количество шагов = количество шагов на оборот х микрошагов / шаг резьбы

То есть, в нашем случае это будет выглядеть так:

20 шагов на оборот х (18 градусов на шаг) х 8 микрошагов (пины MS1 и MS2 подсоединены к +5v на платах EasyDriver-ов) /на 3-миллиметровый шаг резьбы (путь в 3 мм на один оборот).

(20 x 8) / 3 = 53.333333333

Итак введите в терминал: $0=53.333 и $1=53.333, — чтобы установить оси.

Далее вам необходимо сделать мягкий reset, для того, чтобы изменения вступили в действие ($X).
Или вы можете использовать программу Zapmaker’s Grbl Controller для настройки Grbl.

Вам необходимо также ввести:

$ 4 = 200 — Устанавливает скорость по умолчанию, с которой головка движется по время работы.

$ 5 = 200 — Устанавливает скорость по умолчанию, с которой головка движется по время движения между заданиями.

$ 16 = 1 Это задает возможность конечных остановок.

$ 17 = 1 Это задает возврат на базу ($ H), в моем случае- все зависало. Для включения этой функции вам необходимо изменить исходный код для Grbl и перекомпилировать файл .hex. Инструкции, показывающие, как это сделать находятся в нижней части этого шага.

$ 18 = 69 Это установит нулевую точку в левом нижнем углу монтажного стола, когда команда H возврата на базу $ выполняется. Для углубленного понимания этой функции читайте Grbl Wiki.

$ 19 = 200

$ 20 = 200

$ 22 = 2,000 -Это задает расстояние задает дистанцию, на которую оси смещаются от конечных точек после выполнения команды на возврат на базу.

Углубленные объяснения для каждого из параметров Grbl находятся на Grbl Wiki.

Убедитесь в том, что все ваши настройки конфигурации верны, введя $$ в терминал. Вы должны увидеть нечто следующее:

$0=53.333 (x, шагов/мм)
$1=53.333 (y, шагов/мм)
$2=53.330 (z, шагов/мм)
$3=10 (импульс шага, микросекунд)
$4=200.000 (подача по умолчанию, мм / мин)
$5=200.000 (по умолчанию искать, мм / мин)
$6=28 (шаг порт инвертировать маску, Int: 00011100)
$7=50 (задержка простоя шаг, мс)
$8=100.000 (ускорение, мм / сек ^ 2)
$9=0.050 (отклонение перехода, мм)
$10=0.100 (дуги, мм / сегмент)
$11=25 (коррекция н-дуги, целое)
$12=3 (N-десятичные, целое)
$13=0 (отчет дюймов, логическое значение)
$14=1 (автозапуск, логическое значение)
$15=0 (обратный шаг позволен, логическое значение)
$16=1 (жесткие пределы, логическое значение)
$17=1 ( цикл возврата на базу, логическое значение)
$18=69 (самонаведения реж инвертировать маску, Int: 00000000)
$19=200.000 (самонаведение подача, мм / мин)
$20=200.000 (самонаведение искать, мм / мин)
$21=100 (самонаведение дребезга, мс)
$22=2.000 (самонаведение отрыва, мм)

Последним шагом является фокусировка лазера.

Я загрузил небольшой тестовый образец и дал последовательности X запуститься.

Вы можете включать и выключать лазерный диод используя соответствующий флажок Spindle On в программе Zapmaker’s Grbl Controller.

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

Я подложил несколько 3 миллиметровых покладок под лазерным модулем, чтобы немного приподнять его, так как я хотел гравировать трехмиллиметровую фанеру. Это означало, что мне не потребуется каждый раз перенастраивать линзы, когда я захочу поменять материал.

Изменение исходного кода
Во время тестов я обнаружил что программа зависала во время получения команды возврата на базу: $H (homing).
Я подозревал, что проблема заключалась с осью Z, так как мой резак не имел ее.

Чтобы исправить данную проблему, нам нужно удалить все упоминания об оси Z из цикла возврата на базу.
Данное упоминание содержатся в файле исходного кода.

2. Распакуйте архив

3. откройте файл config.h в вашем текстовом редакторе (можно использовать блокнот)

4. Найдите следующий кусок кода:

#define HOMING_SEARCH_CYCLE_0

(1< #define HOMING_SEARCH_CYCLE_1 ((1<

5. Замените этот кусок на следующий:

// #define HOMING_SEARCH_CYCLE_0 (1<
#define HOMING_SEARCH_CYCLE_0 ((1<

6. Найдите следующий кусок кода:

#define HOMING_LOCATE_CYCLE ((1<

7. Замените этот кусок на следующий:

#define HOMING_LOCATE_CYCLE ((1<

8. Сохраните файл

9. Скомпилируйте заново файл grbl.hex . Я использовал Raspberry Pi для компиляции этого hex файла.

Если у вас что то не получится, — я приложил hex файл для вас ниже. Теперь вам надо прошить вашу ардуино, используя файл из этого архива.

Если всё работает корректно и все настройки введены, у вас должно получиться запустить цикл возврата на базу в процессе чего вы увидите как ваш резак установится на ноль. После чего вы можете начать креативить! Удачи !;-)

P.S. Ну и напоследок- видео:

Ардуино-контроллеры используемые в любительском ЧПУ, бывают различного вида, но все содержат одинаковые компоненты:

  1. Микроконтроллер – который в себе содержит не только прошивку (программа по которой он работает), но и специальную память EEPROM в которой можно хранить настройки контроллера, и они не теряются, при отключении контроллера от питания.
  2. Микросхема преобразования USB сигнала в USART сигнал, для связи компьютера с микроконтроллером.
  3. Драйвера моторов – специальные модули преобразующие цифровые данные от микроконтроллера, в нужное напряжение, и ток, который подается на моторы.

Контроллер лазерного выжигателя

Контроллер микро-фрезерного станка

И плата подключаемая к ардуино контроллеру

По умолчанию в 0.9 версии контакты настроены следующим образом:

Карта контактов для платы Arduino Mega версия GRBL 0.9:

Ссылка на прошивку GRBL 0.9j для Arduino Mega с хомлением по осям X и Y. https://yadi.sk/d/UL0NA_hyvTrdm

Применяемые драйвера моторов бывают различных видов, но принцип работы, подключения, и управления одинаковый, на следующем рисунке, представлен один из них:

1) EN (Enable) – Данный вывод может применяться для остановки работы шагового двигателя, если подать на этот вход +5 вольт, то управляющие сигналы, приходящие на этот драйвер не будут применяться, а мотор остановиться.

5) STP (STEP) – На данный вход драйвера, с ардуино-контроллера приходят импульсы, каждый импульс вызывает поворот оси мотора на 1 шаг, 1 шаг соответствует углу указанному на моторе:

В данном примере 1 шаг соответствует углу 1.8 градуса, если на данный вывод подать 10 импульсов, то ось мотора повернется на 18 градусов, а если подать 100 импульсов, то ось повернется на 180 градусов.

2,3,4) M0,M1,M2 – Данные выводы позволяют настраивать дробление шага, т.е. подавая импульсы на вывод №5, можно уменьшить угол поворота, например если настроить дробление 1/2, то для поворота оси мотора на 180 градусов потребуется подать уже 200 импульсов, а если сделать дробление 1/4, то потребуется уже подать 400 импульсов, для поворота на 180 градусов.

6) DIR – Управление направлением вращения, если на данном входе 0 вольт то ось мотора вращается в одном направлении, если +5 вольт, то в обратном.

7,8) Внешнее питание для подачи его на шаговый мотор, дело в том что для моторов используется отдельное питание, которое зачастую намного выше того, что используется для ардуино-контроллера, и цифровых входах драйвера.

9,10,11,12) Контакты доля подключения шагового мотора, шаговый мотор представляет собой 2 отдельные обмотки, которые называют A и B, в месте подключения часто можно видеть надписи +A и -A, что означает подключение первой обмотки, и +B и -B, что означает подключение второй обмотки.

Дополнительно: Если взять и поменять местами контакт +А и -А, то мотор изменит направление вращения, т.е. если раньше он вращался по часовой стрелке, то станет против часовой, и тоже самое в обратном направлении. Что позволяет инвертировать направление вращения, в "железной части", а можно это делать программным путем, в настройке прошивки.

У станка есть рабочее поле, в пределах которого выполняется фрезеровка/гравировка, но в случае неправильных настроек, или указании координат куда двигаться, находящимися за пределами рабочей зоны, может повредиться механика и электроника. Для того что-бы такого не было, добавлена возможность подключать концевики, для каждой из оси, на каждую ось приходится по одному входу, методика подключения следующая:

Для примера подключение концевиков к оси X, к входу микроконтроллера подключается 2 кнопки/тумблера, которые располагают на краях по оси X, по умолчанию кнопки разомкнуты, и значит +5 вольт, на вход микроконтроллера не подается. Но как только механика станка достигнет границы по оси X, сработает одна из кнопок, и на вход микроконтроллера попадет +5 вольт, что вызовет немедленную остановку станка.

. Но это нужно настроить, будет описано ниже

Но на схеме так-же нарисован резистор, обычно ставится с сопротивлением 10 килоОм. Данный резистор нужен для того, что-бы в тот период времени, когда не нажата ни одна кнопка концевика, на вход микроконтроллера подавалось 0 вольт.

Наверняка у многих возникает вопрос, зачем. если на вход и так не подается +5 вольт, а связано это с тем, что вход микроконтроллера, не подключенный, либо к +5, либо к GND (земле), работает как антенна, собирающая помехи, наводки, которые могут вызвать ложное срабатывание

Настройка GRBL версии 0.9
Ссылка на официальный англоязычный ресурс GitHub https://github.com/grbl/grbl/wiki/Configuring-Grbl-v0.9

Список параметров хранящихся в EEPROM контроллера.
$0 = 10 Ширина импульса Step, мкс.
$1 = 25 Задержка перед переходом на удержание, мс.
$2 = 0 Маска инвертирования сигналов Step: 00000000
$3 = 6 Маска инвертирования сигналов Dir: 00000110
$4 = 0 Инвертирование сигнала Step enable, BOOL
$5 = 0 Инвертирование входов от конечных датчиков (концевики), BOOL
$6 = 0 Инвертирование входа от датчика поверхности Probe, BOOL
$10 = 3 Маска получения статуса от GRBL: 00000011
$11 = 0,020 Отклонение при прохождении крутых поворотов, мм.
$12 = 0,002 Величина сегмента дуги, мм.
$13 = 0 Данные от контроллера GRBL в дюймах, BOOL
$20 = 0 Включить программное ограничение перемещений (параметры $130,$131,$132) BOOL
$21 = 0 Включить ограничение по концевым датчикам, BOOL
$22 = 0 Автопозиционирование по концевикам, поиск точки Home, BOOL
$23 = 1 Маска инвертирования направления движения к точке Home 00000001
$24 = 50,000 Скорость движения у концевиков, мм / мин
$25 = 635,000 Скорость движения к точке Home, мм / мин
$26 = 250 Задержка срабатывания концевиков (антидребезг) мс.
$27 = 1,000 Расстояние «отскока» от концевиков, мм.)
$100 = 314,961 Число шагов на мм. по оси X, шаг / мм
$101 = 314,961 Число шагов на мм. по оси Y, шаг / мм
$102 = 314,961 Число шагов на мм. по оси Z, шаг / мм
$110 = 635,000 Максимальная скорость перемещений по оси X мм / мин
$111 = 635,000 Максимальная скорость перемещений по оси Y мм / мин
$112 = 635,000 Максимальная скорость перемещений по оси Z мм / мин
$120 = 50,000 Ускорение по оси X (чем больше значение тем быстрее разгон) мм / сек ^ 2
$121 = 50,000 Ускорение по оси Y (чем больше значение тем быстрее разгон) мм / сек ^ 2
$122 = 50,000 Ускорение по оси Z (чем больше значение тем быстрее разгон) мм / сек ^ 2
$130 = 225,000 Программное ограничение перемещения по оси X мм (включение $20 = 1)
$131 = 125,000 Программное ограничение перемещения по оси Y мм (включение $20 = 1)
$132 = 170,000 Программное ограничение перемещения по оси Z мм (включение $20 = 1)

Вывод списка параметров, команда: $$
Изменение параметра: $x = значение (x – номер параметра, например $100=90, новое значение количества шагов на один миллиметр для оси X = 90)

RST=$, $RST=#, $RST=* – Команды восстановление настроек и параметров Grbl по умолчанию.
RST=$ – Восстанавливает параметры из списка $$ на значения из прошивки (заданные по умолчанию перед компиляцией).
RST=# – Обнуляет все значения заданные через команды G54-G59, G28, G30 (смещения и позиции), хранящиеся в EEPROM.
RST=* – Обнуляет и восстанавливает все настройки и параметры GRBL, хранящиеся в EEPROM.
RST=* рекомендуется выполнить после прошивки, перед дальнейшей настройкой).

Таблица значений для масок инвертирования:

Инв. X Инв. Y Инв. Z Маска
bit
Значение
dec
Нет Нет Нет 00000000
Да Нет Нет 00000001 1
Нет Да Нет 00000010 2
Да Да Нет 00000011 3
Нет Нет Да 00000100 4
Да Нет Да 00000101 5
Нет Да Да 00000110 6
Да Да Да 00000111 7

Если например нужно инвертировать направление движения по осям X и Y, выбираем маску 00000011 значение 3.
Вводим команду: $3 = 3 OK

После внесения изменений в параметры, выполняем сброс контроллера (команда CTRL-X OK или соответствующая кнопка в управляющей программе).

Настройка параметров ($100, $101, $102) количество шагов на миллиметр для осей X, Y, Z.
Для ШВП. Вводные:
1. Шаг винта мм/оборот
2. Число полных шагов на один оборот вала двигателя, для шагового двигателя обычно 200 но может быть и меньше (смотрите документацию на двигатель).
3. Микрошаг (деление шага, установленное на драйвере двигателя) если полный шаг берем 1.
Шагов на миллиметр = Число полных шагов * микрошаг / Шаг винта.
Пример для оси Y: Шаг винта = 5, Число полных шагов = 200, микрошаг = 8; 200 * 8 / 5 = 320
Задаем новое значение для оси Y: $101 = 320 OK, делаем сброс CTRL-X и проверяем перемещение (например F500 G1 Y30).
Тоже самое для других осей.

Метод подбора (пример для оси X). Входящие:
1. Заданный путь, например F500 G1 X10.
2. Реально пройденный путь (замеряем линейкой), к примеру получилось 16 мм.
3. Текущее количество шагов на миллиметр для оси X (смотрим параметр $100 по команде $$), допустим у нас $100 = 314.961.
Считаем: шагов на мм. (новое значение) = Реально пройденный путь мм / Заданный путь мм * Шагов на мм (текущее значение); 16 / 10 * 314.961 = 503.9376
Задаем новое значение для оси X: $100 = 503.9376 OK, делаем сброс CTRL-X затем проводим замер заново но с большим перемещением
(например F500 G1 X100). И так несколько раз до получения приемлемой точности. Тоже самое для других осей.

Оцените статью
ПК Знаток
Добавить комментарий

Adblock
detector