Лазерный гравер «Слёзы БАСТа»

Written by admin on 24.10.2019 in Arduino and Без рубрики and Настройки and Программы ПК и Андроид with no comments.

Contents

PS Статья — черновик, времени пока нет и к тому же гравер ещё приводится в потребный вид

НИКОГДА НЕ ВКЛЮЧАТЬ ЛАЗЕР БЕЗ ОЧКОВ И ПРИ НАХОЖДЕНИИ В ПОМЕЩЕНИИ ПОСТОРОННИХ ЛИЦ, ЗАКРЫВАЙТЕ ДВЕРИ НА ЗАМОК ИЛИ СДЕЛАЙТЕ НЕПРОЗРАЧНЫЙ КОЖУХ С ВЫТЯЖКОЙ. НУЖНО ОТКЛЮЧАТЬ РАЗЪЁМ ПИТАНИЯ ЛАЗЕРА НА ПЛАТЕ ПРИ ПРОВЕДЕНИИ НАСТРОЕК, ПОДКЛЮЧАТЬ ТОЛЬКО ПЕРЕД ПРОЖИГОМ. ЗРЕНИЕ ДАЁТСЯ 1 РАЗ И БЫЛО БЫ ГЛУПО ЕГО ПОТЕРЯТЬ ПО НЕОСТОРОЖНОСТИ. 2500 мВт ЭТО ОЧЕНЬ СЕРЬЁЗНО.

Ссылка на магазин

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

Блок питания в комплекте 12В 10А, с огромным запасом по мощности.
Лазерный гравер имеет реальное рабочее поле 350 на 300 мм. Он имеет двигатели 17HS4023, два двигателя по оси Y, они включены параллельно, ток одного двигателя равен 0,7 Ампера, соответственно на драйвере который предназначен для оси Y нужно выставлять ток два раза больше — 1,4 Ампера.

Для драйверов А4988 на подстроечных резисторах нужно установить напряжение, для драйвера оси Y — это будет 1,12В для оси X это будет 0,56В. Данные рекомендации верны для датчиков тока R100, то есть 0,1 Ом (распаяны на плате драйвера). Общий провод на плате, то есть земля ground (GND) он общий для всех элементов, соответственно можно минусовой щуп мультиметра подключить в любую удобную точку, а плюсовой щуп подключить на подвижный контакт подстроечного резистора драйвера.
Поскольку через драйвер оси Y протекает двойной ток, то это микросхема значительно греется и может обжечь палец если прикоснуться поэтому на эту микросхему нужно поставить радиатор. Для оси Х — это не обязательно.

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

По умолчанию на драйвере установлены джамперы на режим микрошага равным 1/8.
При таком значении дробления шага при малых скоростях движения осей не возникает сильная вибрация. Хотя достаточно и точности в одну десятую мм то бишь установить значение микрошага 1/2, но при таком значении при малой скорости 2000 мм в минуту двигатели работают на низкой частоте и довольно сильно вибрируют, что входит в резонанс настроечный винт линзы лазерного модуля. Для избавления от механического резонанса лазера требуется выкрутить винт с линзой и намотать на него фум ленту для уплотнения сантехнических резьбовых фитингов, и ввернуть обратно. Таким образом скольжение винта будет гладким и без зазора в резьбе.

При сборке станка следует обратить внимание на на гайки 10 на 15, которые предназначены для удержания ремня в пазах профиля, из жести нужно вырезать аналогичного размера проставки 10 на 15 мм для того чтобы установить их под гайки между ремнем и гайкой при затяжке винта. Винт будет упираться в жестянку и не будет повреждать ремень. В процессе наладки ремень придётся натягивать не один раз.

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

В конструкции привода станка использованы следующие элементы:

Ремень привода GT2, у него зазор между зубьями составляет 2 мм. Приводная шестерня двигателя имеет 20 зубьев. Соответственно на один оборот двигателя ремень сдвигается на 40 мм. Двигатель имеет 200 шагов наоборот.
Исходя из этого при настройке дробления шага 1/8 получается 1600 импульсов на оборот двигателя или по-другому 40 импульсов на миллиметр.
Шаг_на_мм=(200*8)/40=40
В данном случае когда я говорю импульсов для настроек grbl это шаги, программа управляет шаговым двигателем она считает что делает это напрямую, но у нас есть драйвер который делает дробление шага, делит входящие импульсы на 8.

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

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

В России можно купить через ЭТМ LAPP KABEL X05VV-F нг(А)-LS 7G0.75 артикул 3120000057 Он 7х0,75, но мне нужен на 8 жил=4 на двигатель+2 на лазер+2 на плоттер. Поэтому я купил ПВС 4х0,75 в два слоя и обмотаю спиралайтом.

Программное обеспечение

Тот софт который идет в комплекте со станком я даже не устанавливал потому что по отзывам это пустая трата времени и сил, программа benbox очень глючная. Я пытался её установить и работать в ней, без станка, работает очень нестабильно. Так что берём штурвал в свои руки и делаем как надо. Шьём через Arduino последнюю версию grbl, качаем Engraver Master, Laser GRBL, AutoCAD полную версию с Express Tools (чтобы текст разбивать на полилинии и сохранять в dxf, а потом прожигать через Engraver Master). Также можно использовать Inkscape с плагином для генерации G-кода в nc файл.

Настройки grbl

$0=10 (Step pulse time)

$1=255 (Step idle delay)

$2=0 (Step pulse invert)

$3=1 (Step direction invert) Ось Х инвертируется

$4=0 (Invert step enable pin)

$5=0 (Invert limit pins)

$6=0 (Invert probe pin)

$10=1 (Status report options)

$11=0.010 (Junction deviation)

$12=0.002 (Arc tolerance)

$13=0 (Report in inches)

$20=0 (Soft limits enable)

$21=0 (Hard limits enable)

$22=0 (Homing cycle enable)

$23=0 (Homing direction invert)

$24=25.000 (Homing locate feed rate)

$25=500.000 (Homing search seek rate)

$26=250 (Homing switch debounce delay)

$27=1.000 (Homing switch pull-off distance)

$30=1000 (Maximum spindle speed)

$31=0 (Minimum spindle speed)

$32=0 (Laser-mode enable) При 1 лазер включается только при движении. Я же использую также в режиме плоттера, маркером пишу.

$100=40.000 (X-axis travel resolution) 40 шагов на мм, при режиме микрошага 1/8

$101=40.000 (Y-axis travel resolution) 40 шагов на мм, при режиме микрошага 1/8

$102=40.000 (Z-axis travel resolution) оси Z у нас нет, но нужно установить любые данные, иначе grbl глючит

$110=26000.000 (X-axis maximum rate) При такой скорости станок бегает резво без пропуска шагов между точками прожига.

$111=26000.000 (Y-axis maximum rate)

$112=1500.000 (Z-axis maximum rate) оси Z у нас нет, но нужно установить любые данные, иначе grbl глючит

$120=2000.000 (X-axis acceleration) При таком ускорении станок бегает резво без пропуска шагов. Это основная настройка влияющая на скорость перемещения лазера между точками прожига.

$121=2000.000 (Y-axis acceleration) Тоже самое для оси Y

$122=500.000 (Z-axis acceleration)

$130=300.000 (X-axis maximum travel)

$131=250.000 (Y-axis maximum travel)

$132=10.000 (Z-axis maximum travel)

Установка оптических концевых выключателей

Для подключения конечных выключателей, тем самым дать понять станку где он находится без участия оператора, есть разъём расширения на материнской плате

XL YL ZL — это контакты, ближе к краю контакт GND, ближе к Ардуино входы с внутренними подтягивающими резисторами к +5В.

Если применять концевики механические, то нужно применять спец схемы защиты от наводок, чтобы исключить случайные аварийные остановки. Я же пошёл другим путём, купил оптические датчики скорости FC-03

У них 4 вывода, +5В, GND, цифровой выход и аналоговый выход. В отсутствии препятствия в оптопаре на цифровом выходе присутствует логическая 1, а при наличии препятствия, лог. 0. То что нам надо, согласно входам ардуинки. Такой схемой «убиваем трёх зайцев»:

1 — Защита от помех;

2 — Отсутствие гистерезиса;

3 — Отсутствие дребезга контактов (есть отдельная настройка в конфиге GRBL).

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

Endstop для Ramps 1.4

Теперь у станка есть конкретное положение ДОМА (начала координат).

Конфигурирование для поиска Дома

Конечники можно ставить с обоих сторон осей, запараллелить, так будет работать поиск начала координат и Hard limits (аппаратные ограничения перемещения). Если нужна только точка начала координат, то ставим только 2 конечника у начальной точки. В скачанной библиотеке grbl для ардуино нужно в файле config.h закомментировать строки 105 и 106 с содержимым:

// #define HOMING_CYCLE_0 (1<<Z_AXIS) // REQUIRED: First move Z to clear workspace.
// #define HOMING_CYCLE_1 ((1<<X_AXIS)|(1<<Y_AXIS)) // OPTIONAL: Then move X,Y at the same time.

и раскомментировать строку 110

// NOTE: The following are two examples to setup homing for 2-axis machines.
#define HOMING_CYCLE_0 ((1<<X_AXIS)|(1<<Y_AXIS)) // NOT COMPATIBLE WITH COREXY: Homes both X-Y in one cycle.

Скомпилировать и прошить.

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

 

Изготовление головы для плоттера «на коленках» из деревянного бруска 33х33 мм

Чтобы расширить возможности могучего станка нужно добавить держатель маркера на голову. Таким образом те материалы, которые плохо поддаются лазерной гравировке, а именно белые и полупрозрачные пластики можно будет маркировать не хуже чем AxiDraw V3, а то и лучше, то есть быстрее. Анализ самодельных голов плоттера показал, что они все делаются с использованием сервопривода SG90, а он очень медленный, очень… Мне же нужен был привод который может поднимать и опускать маркер несколько раз в секунду на высоту 2-3 мм. С такой интенсивностью SG90 не справится и быстро выйдет из строя. К тому же опытный образец показал, что требует мудрёного управления мало совместимого с лазером, один вариант это прошивка grbl-plotter использующая движение оси Z от 0 и ниже как сигнал для опускания маркера, а 0,1 и выше для поднимания, причём сигнал 60 Гц с ШИМ модуляцией снимается с того же 11 вывода, что и управление лазером. Соответственно или плоттер или лазер. Нам такое не подходит. А уж о подготовке исполняемого NC файла я уже совсем молчу, так и не смог осмыслить пути управления осью Z (хотя по прошествии времени понял, что можно заменить команды М3 и М5 на опускание и подъём оси Z, сначала опустить ось Z от 0 до -1, а затем на каждую команду М5 поднимать ось Z от -1 до 1, а на команду М3, опускать ось от 1 до -1). Но это не наш путь.

Идея быстроходного привода не заставила себя долго ждать. В загашнике была отыскана релюшка с катушкой на 24VDC с четырьмя перекидными контактами на 6А.

Вариант недешёвый, но был в наличии с производства, для покупки можно рекомендовать аналог IEK РЭК 78/4 RRP20-4-03-024D.

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

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

Эскиз

Готовое изделие

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

Встречно-параллельно катушке ОБЯЗАТЕЛЬНО нужно ставить диод, например 1N4007, для гашения выбросов противо-ЭДС при размыкании магнитопровода. Без него генерируются мощные помехи от кабеля и возникает сбой работы Ардуино и разрыв связи.

Блок питания в комплекте с гравером на 12 вольт, а реле на 24 вольт, соответственно нужен повышающий DC-DC преобразователь, я применил недорогой регулируемый MT3608. Для управления подачей питания лучше воспользоваться транзистором или оптроном, но я на скорую руку взял релейный модуль для ардуино с 5 вольтовым входом, который подключил к материнской плате гравера через имеющийся разъём.

Преимущество релейной схемы в том что на выходе у неё перекидной контакт и можно приводное реле подключить так чтобы в отсутствие сигнала на 11 ноге Ардуино, «включение лазера» якорь был втянут, то есть маркер поднят, а при подаче сигнала якорь отпускается и маркер опускается.

Общий вид, на соплях, но это же конструктор!

В качестве пишущего инструмента нашёл неплохой маркер в Комусе за 11 рублей 90 копеек, диаметр стержня 0,5 мм, наружный диаметр маркера от 10 мм снизу до 10,7 мм сверху.

Лучшее соотношение цена/качество, он хорошо пишет и по оцинковке, и по пластику, не говоря уже о бумаге. Долго не засыхает между циклами печати.

Демонстрация работы в режиме плоттера

Рекомендации по гравировке на порошковой краске RAL7035 ШАГРЕНЬ

В автокаде чертежи делаем линией по слою, используем тип линии по слою. Используем шрифт для текста gosta_w.shx. В готовом чертеже множественным выделением — выделяем все линии кроме текста, копируем, включаем полярное отслеживание 15 градусов, вставляем копию чертежа вниз-влево на угол 15 градусов со сдвигом на длину 0,2 мм. Сохраняем. Копируем всё, создаём новый чертёж по шаблону acadiso.dwt, вставляем, выделяем всё и при помощи инструмента Express Tools Explode Text разбиваем текст на полилинии, сохраняем в dxf 2013, закрываем чертёж. Открываем Engraver Master, щёлкаем на вкладку «NC Sender», жмём кнопку «Load CAD DXF File» загружаем, устанавливаем скорость «Speed» на 1500, жмём кнопку «Export NC File», сохраняем. Открываем полученный NC файл в LaserGRBL, одеваем защитные очки, включаем прицеливание, фокусируем луч в минимальную точку и прожигаем. Незабываем жёстко закрепить станок, пластиковые ножки скользят по краске, велика вероятность брака, станок уедет в сторону в процессе.

Подготовка печати в режиме плоттера

В автокаде делаем шаблон по размеру маркировки, размещаем текстовые поля «однострочный текст», выравнивание «Середина по центру». Используем шрифт для текста geniso.shx, растяжение 1.3. Делаем метку начала координат в виде L, 3х3 мм. Сохраняем эскиз как шаблон dwt на будущее. Закрываем. Создаём новый чертёж по нашему шаблону. Редактируем маркеры под требуемые щиты. Выделяем весь текст и при помощи инструмента Express Tools Explode Text разбиваем текст на полилинии сохраняем в dxf 2013, закрываем чертёж. Открываем Engraver Master, щёлкаем на вкладку «NC Sender», жмём кнопку «Load CAD DXF File» загружаем, устанавливаем скорость «Speed» на 700, жмём кнопку «Export NC File», сохраняем.

Открываем открываем полученный NC файл в текстовом редакторе Geany или Notepad++ и производим замену команд:

М3 заменяем на M3\nG4 P0.1

М5 заменяем на M5\nG4 P0.1

\n это символ переноса на следующую строку, таким образом после команды М3 или М5 на сдедующей строке размещается команда G4 P0.1 означающая выполнение задержки «G4» в течение 0,1 секунды «P0.1». «P0.1» не соответствует стандарту G-кода, но LaserGRBL трактует её как надо.

Это нужно для того, чтобы скомпенсировать время затрачиваемое якорем промежуточного реле на подъём и опускание фломастера (маркера) на пишущую поверхность и начинать движение после окончания переходного процесса.

Сохраняем изменённый NC файл.

Открываем полученный NC файл в LaserGRBL. Так как маркер перемещается по поверхности, то её нужно зафиксировать. Устанавливаем голову в место наивысшей точки маркировки на столе. Подкладываем пластиковую карту, как прослойку толщиной примерно 0,66 мм. Вставляем маркер в держатель, опуская стержнем на прослойку, фиксируем маркер крабиком. Проконтролируем свободное перемещение маркера вверх/вниз. Вынимаем прослойку. Устанавливаем стержень в начало координат. Запускаем процесс маркировки.

Скрипты для автоматизации процесса подготовки макетов

Создание макета вручную с нуля дело непростое и трудозатратное. Даже с готовым макетом в автокаде заполнение текстовых полей вручную нужными надписями очень муторно. Например маркировка для проводов SF 2/12 MC NE WS V2 имеет 80 одиночных маркеров и 8 групповых.

Мой хороший товарищ подсказал мне как это дело можно автоматизировать скрестив Excel+AutoCAD.

Подготовительные операции.

Для этого нам понадобятся программы Microsoft Excel любой версии (например 2016) и AutoCAD 2013 полная версия (не LT), при установке нужно обязательно поставить галочку «Установить Express Tools».

В AutoCAD создаём чертёж из шаблона acadiso.dwt, открываем стили текста Команда: _STYLE , устанавливаем шрифт типа geniso.shx, степень растяжения 1.3. Сохраняем стандартный стиль.

Командой _Options открываем настройки, на вкладке Files — Template Settings — Default Template File Name for QNEW указываем шаблон acadiso.dwt , щёлкаем Apply.

На вкладке Open and Save устанавливаем формат сохранения по умолчанию AutoCAD 2013 DXF. Жмём кнопку Ok и выходим из настроек.

Жмём кнопку «Сохранить как», выбираем тип файла «Шаблон dwt» и перезаписываем наш шаблон acadiso.dwt.

Командой _cui создаём кнопку запуска скрипта на панели быстрого доступа (верхняя панель с кнопочками «Создать» «Сохранить»)

 

В поле Macro после команды ‘_script указываем имя нашего скрипта PrintMarker без расширения (если сохранить в папку Documents текущего пользователя, то каким-то неведомым образом AutoCAD находит этот скрипт, даже если вручную до этого был указан скрипт из другого места расположения).

AutoCAD может кушать пакетные файлы, называемые сценариями или скриптами. Из себя они представляют текстовый файл в кодировке Юникод UTF-8 с расширением SCR. На каждой строке этого файла находится команда и параметры в последовательности как при работе в AutoCAD без мыши через командную строку. Для того чтобы написать скрипт нужно в AutoCAD создать пустой чертёж, отключить динамический ввод и начать через командную строку вводить команды попутно отвечая на задаваемые вопросы и выбирая соответствующие опции. При затруднении в выборе ответа вводим ? и Enter.

В скрипте же пустая строка означает нажатие кнопки Enter.

AutoCAD понимает десятичные части чисел отделённые точкой, а запятая служит для отделения координат X и Y. Поэтому в настройках Excel нужно предварительно сделать аналогичную настройку.

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

Сначала идёт команда TEXT (в русской версии AutoCAD эта команда имеет вид «_text» без кавычек), создание однострочного текста.
Затем J (по русски В, то есть Выравнивание), параметр выравнивания MC (рус. СЦ, то есть Середина Центр).
Затем идут координаты центра маркера. Удобно сначала начертить держатель маркеров, а потом относительно левой нижней точки получить координаты центра маркера и шага между маркерами. Координаты X , Y склеиваются функцией =СЦЕПИТЬ(D7; «,»;E7).

Файл Excel представляет собой два листа, на первом располагаются исходные данные, а на втором листе в первом столбце команды одна за другой.

Завершают скрипт команды преобразования текста и сохранения файла

Координаты нужного маркера передаются в скрипт загадочной функцией (с которой без поллитры не разобраться, спасибо Димону), ячейка А4

Комментарии: скрипт содержит команды и параметры для англоязычной версии AutoCAD, это мера против нестыковок кодировок скрипта и AutoCAD, и проблем возникающих из-за этого. В русской версии если скрипт в Excel сохранять через стандартное сохранение файла, указать лист «Скрипт», нажать «Сохранить как…», выбрать формат текст Юникод (*.txt), при этом сохраниться только текущий лист (то что нам и надо). Полученный файл нужно переименовать из расширения .txt в .scr и уже после этого создать пустой чертёж и перетаскиванием забросить скрипт в чертёж. Также загрузить сценарий можно через Вкладку «Управление» кнопочкой «Загрузить сценарий» и указать расположение файла.

Такой метод мало подходит для автоматизации. Гораздо удобнее указать лист «Скрипт» нажать Ctrl+A (выделить всё) Ctrl+C (скопировать в буфер обмена) и далее через AutoIt3 скрипт (предварительно скомпилированный в exe файл) сохранить в виде файла.

; Сохраняем содержимое буфера обмена как скрипт
$File = («C:\Users\BAST\Documents\PrintMarker.scr») ; Присваиваем переменной путь к нашему scr файлу
$sData = ClipGet() ; Записываем в переменную содержимое буфера обмена
FileDelete($File) ; Удаляем исходный файл
FileWrite($File, $sData) ; Перезаписываем содержимое файла PrintMarker.scr

При таком способе нужно нажать две комбинации клавиш и один щелчок на панели быстрого запуска чтобы получить файл PrintMarker.scr.

Но при копировании в буфер обмена текста он туда попадает в кодировке ANSI, а AutoCAD загружает скрипт в кодировке Unicode UTF-8 и поэтому вместо русской буквы В в командной строке появляется иной символ Р’ и скрипт не работает. Если в скрипте все символы набраны латиницей, то такой неприятности не возникает.

Для того чтобы была точка начала координат, командами чертим ломаную линию

_LINE
3,0
0,0
0,3

(завершающая команда — пустая срока , означает закончить ввод).

Далее выделяем всё _AI_SELALL
Делаем преобразование шрифта в 2D полилинии командой TXTEXP (из дополнения Express Tools) «Взорвать текст»
Сохраняем SAVEAS как DXF с точностью 16 по пути C:\Users\BAST\Documents\PrintMarker подтверждая перезапись файла Y.

Закрываем чертёж CLOSE

 

Если есть вопросы пишите сюда https://vk.com/shteinx

Comments are closed.