Перейти к содержанию

Добавлен раздел "Видеовопросы". Просьба ознакомиться с правилами нового раздела.

  • записей
    587
  • комментарий
    1 701
  • просмотров
    950 757

grbl

Умник

3 137 просмотров

Это тоже про лазеры.

 

Лазерный станок у нас не ручной, а с числовым программным управлением.

 

Это управление состоит из нескольких уровней.

 

Если двигаться от лазера:

 

Первый уровень это механика с моторами.

 

Второй уровень - драйверы мотора, которые преобразуют (слабые) сигналы (обычно "шаг" и "направление") в относительно сильный ток (напряжение), который заставляет моторы поворачиваться.

 

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

 

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

 

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

 

 

Такие же уровни существуют и для других ЧПУ станков, например фрезерного или токарного. Так же устроен и 3Д-принтер.

 

Популярная программа MACH3 в себе объединяет третий и четвертый уровни, используя для выработки "слабых" сигналов принтерный порт (LPT) компьютера.

 

В настоящее время большинство компьютеров (особенно ноутбуки) уже этого порта не имеют, зато имеют порт USB. Подавать через этот интерфейс на драйвера моторов сразу управляющие сигналы технически невозможно. Поэтому все лазерные станки любительского класса (думаю и многие более высоких классов) подключаются к компьютеру через USB интерфейс и имеют в себе преобразователь из USB в управляющие сигналы для драйверов мотора - то что я обозначил как контроллер станка - Третий Уровень. Поскольку моторы в станках такого уровня требуют небольшой мощности для своей работы, конструктивно третий уровень часто объединяют со вторым в один узел.

 

В моем первом лазерном станке этот узел был сделать очень компактным. В качестве драйверов использовались довольно распространенные драйверы Pololu, это родовое название плат по названию фирмы которая из придумала. Такие драйверы используются во многих 3Д принтерах (в моем тоже).

 

Преобразование команд, получаемых от компьютера по USB в сигналы, пригодные для управления драйверами, делается по разному.

 

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

 

Все эти длинные скучные и ненужные объяснения я привел лишь только для того, что бы рассказать, как можно самому сделать модуль управления станком (второй-третий уровни по моей классификации). Или легко заменить погибший. Или лучше понять как работает и как пользоваться тем, что уже есть на станке.

 

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

 

Не смотря на возмущение некоторых снобов профессионалов, этот самый контроллер очень удобно делается на основе платы АРДУИНО. Получается просто, понятно и ремонтопригодно. Так же контроллеры на Ардуино очень часто используются в 3Д-принтерах.

 

Контроллер на АРДУИНО будет работать, если в него разгружена нужная программа. Я в первый момент сгореча хотел сам написать, потом понял что все не так просто и лучше взять готовую. Тем более, что есть два проекта открытого софта для АРДУИНО для управления шаговыми двигателями.

 

Первый MARLIN - ориентирован на 3Д-принтеры. В принципе его как-то подлаживают для использования в лазерами, тем более, что есть сейчас такая популярная - тема вешать лазер прямо на 3Д-принтер, вместо экструдера.

 

Второй проект - Grbl - специально предназначен для фрезерных - граверных станков и ЛАЗЕРНЫХ станков.

 

Я его попробовал и он мне понравился. Еще раз - Grbl - это программа для АРДУИНО, преобразующая команды от компьютера (поступающие через USB) в сигналы управления шаговыми двигателями. Присоединяем к плате АРДУИНО (в которую загружена эта программа) драйвера двигателя - и вся электроника для станка готова.

 

Ну вот, много букв и все вводные...... Объяснения зачем нужен (или нужнА?) Grbl и почему я решил про нее написать. Может кто-то про нее не знает, а она будет ему полезна.

 

Мои впечатления:

 

1. Grbl работает и работает надежно. были пару раз зависания при общении с компьютером, но мне кажется они были только в простительные моменты, когда включал-выключал внешнее питание и др. В реальных задачах сбоев не было.

 

2. Протокол общения с компьютером состоит из трех "слоев". Первый слой - команды в формате G-коды. Всем нам знакомые и привычные. Принимает их контроллер с запасом, т.е. штук 5-10 сверх той, что выполняется сейчас. Второй слой - ответ на запросы компьютера о текущем положении. Как эти команды выглядят я честно говоря не вникал, но они есть. Иначе бы консольная программа не могла бы показывать текущее положение осей станка. Третий слой - команды настройки контроллера - количество шагов на мм, максимальные скорости и ускорения, инверсия сигналов и т.д.

Настройки хранятся уже не в коде программы, а в энергонезависимой памяти контроллера. С одной стороны это удобно - для настройки не надо загружать IDE Ардуино и перепрошивать плату. Достаточно через консоль послать команду типа $25=111. С другой стороны если все-таки перепрошил с другими параметрами, то они действовать не будут без дополнительной команды, а будут действовать те, что в памяти сохранены.

 

3. Для общения человека с данным контроллерами энтузиастами разработан ряд программ - консолей оператора. О программах расскажу позже. Три из них специально рассчитаны на работу с лазерами.

 

4. К драйверам подключить контроллер просто. Хотя сейчас уже не так просто, раньше я у них на сайте видел очень наглядную картинку подключения по пинам к драйверам Pololu, а сейчас не вижу ее. Но в любом случае есть распиновка АРДУИНО, по ней в общем то все понятно.

 

Можно спаять самому на макетке, как сделал я (на фото в центре):

 

blogentry-65-041483200_1513334027_thumb.jpg

 

Или изготовить плату промышленным способом под АРДУИНО мини, как это сделано на моем НОВОМ лазерном станке (в момент фотографировании как раз плата АРДУИНО была снята):

 

blogentry-65-055890600_1513334095_thumb.jpg

 

Или продаются готовые платы на АлиЭкспресс - набираем там в поиске grbl.

 

5. Программа grbl работоспособна на любом, самом простом варианте плат АРДУИНО, начиная с UNO. Есть версии программы, как я понял, и для других видов контроллеров.

 

6. Ограничения - т.е. программа работает на самых простых платах АРДУИНО, у которых мало портов ввода-вывода, то она обслуживает только три оси, три концевых сигнала, один сигнал управления подачей СОЖ и четыре входных сигнала.

Авторы программы утверждают, что она высоко эффективна на простейших платах АРДУИНО, но только при выбранной авторами конфигурации пинов. В принципе в тексте программы есть возможность переназначения пинов, но если это сделать возможно она будет работать хуже или не будет работать вообще. Поэтому эту программу нельзя использовать с шилдами, которые не предназначены специально для работы именно с ней, как например популярный шилд для конструирования 3Д-принтеров RAMPS.

 

 

Про программы - консоли оператора сделаю отдельную запись.



0 Комментариев


Рекомендуемые комментарии

Комментариев нет


×
×
  • Создать...

Важная информация

Мы разместили cookie-файлы на ваше устройство, чтобы помочь сделать этот сайт лучше. Вы можете изменить свои настройки cookie-файлов, или продолжить без изменения настроек.