Доработка станка с ЧПУ CNC 3018. Железо и софт
Ваше мнение об этом проекте будет полезно его автору. Приглашаем Вас присоединиться к его обсуждению на форуме.
Доработка станка с ЧПУ CNC 3018. Железо и софт
В нашей Лаборатории появился китайский ЧПУ станок CNC 3018. Его описание и различные обзоры в большом количестве есть в интернете, поэтому дублировать их здесь мы не будем (вот ссылки на его обзоры и описания 1, 2, 3 и т.д.).
Куплен он был на Aliexpress в комплекте со штатным шпинделем с патроном для фрез/граверов. Затем дополнительно к нему был приобретен лазер мощностью 15 Вт. При этом важным моментом при выборе лазера были его габариты. На Aliexpress есть множество 15-ти ваттных лазеров, но их размеры не позволяют устанавливать их в крепежный хомут станка (если будете подбирать лазер для этих же целей — имейте это в виду).
Установочные размеры корпуса лазера для этого станка 32,8 х 32,8 мм. Более широкий лазер не поместится в "родное" крепежное отверстие и Вам придется существенно менять конструкцию станка для его установки.
Установочные размеры корпуса лазера для этого станка 32,8 х 32,8 мм. Более широкий лазер не поместится в "родное" крепежное отверстие и Вам придется существенно менять конструкцию станка для его установки.
Выявленные проблемы
1. В комплекте отсутствовали прижимы для крепления обрабатываемого материала (в моем случае — фанеры толщиной 3 мм). Пришлось «колхозить» самому. В итоге получилось два варианта креплений — первый для заготовок, длина которых равна 300 мм +/- 10 мм и второй — для более коротких заготовок. Вот фотография прижима для длинных заготовок:
Прижим происходит с помощью барашковых гаек, навинченных на Г-винты. Отогнутая Г-образная головка винта снизу прижимается к алюминиевому рабочему столику станка, деревянный брусочек прижима кладется на край фанерной заготовки и прижимается к ней барашковыми гайками. Устанавливаются прижимы по краям слева и справа заготовки.
Второй вариант - для более коротких заготовок. В нем Г-винт заменяется на болт, на который надета широкая шайба. Винт переворачивается головкой вниз и головки винтов с шайбами вставляются в пазы рабочего столика станка. На них надевается деревянный брусочек и прижимается к заготовке теми же барашковыми гайками.
В работе эти фиксаторы показали себя неплохо за исключением одного «но» - по бокам заготовка плотно прижата к подложке, а в середине рабочего столика она ослаблена и немного выгибается вверх. А спиральные фрезы дополнительно вытягивают ее вверх еще сильнее, заглубляясь уже с первого прохода почти на всю глубину, что делает рез менее качественным.
Поэтому сейчас подумываю о новом прижиме в виде рамки из уголков, которые будут притягивать заготовку со всех четырех сторон.
При работе кукурузными фрезами (я пользуюсь фрезами диаметром от 0,5 до 1,5 мм ) дополнительного выгибания фанеры не происходит.
Кстати — штатные прижимы, судя по картинкам должны болеть все теми же «болезнями».
2. При вырезании контуров (деталей) из заготовки в конце последнего прохода фрезу иногда заклинивает, так как вырезанная деталь, которая уже ни за что не держится смещается внутри вырезанного контура, перекашивается и это иногда приводит к заклиниванию фрезы. При этом, похоже сильно увеличивается ток шпинделя, что приводит в итоге к сбросу микроконтроллера управляющей платы (видимо щетки коллектора шпинделя сильнее искрят, что вызывает сильные электромагнитные помехи, вызывая паразитную перезагрузку контроллера станка). При этом выполняемая программа зависает и станок становится неуправляемым (в программе на компьютере приходится входить в настройки, в которых нужно заново запускать соединение со станком). После чего станок приходится снова устанавливать точку с исходными координатами и запускать программу с самого начала, что не есть «гуд».
Чтобы избежать этих глюков приходится прижимать вырезаемую деталь пинцетом к подложке когда на последнем проходе фреза приближается к конечной точке реза.
3. Двигатель (шпиндель) при питании штатным напряжением 24 В от сетевого адаптера, входящего в комплект вращается очень медленно, оставляя сильную бахрому на кромке реза. Поэтому я решил запитать его от внешнего источника (лабораторного блока питания, который на выходе выдает напряжение от 0 до 60 В). И вот тут выявилась еще одна проблема.
При напряжении 36 В и больше двигатель вращается уже лучше, но при этом также периодически происходят сбои, вызывающие сброс контроллера, управляющего станком, как было описано выше. Опытным путем и после припаивания к выводам мотора конденсатора добились нормальной работы станка при питании мотора шпинделя напряжением 32 — 34 В. При этом шпиндель подключается не к управляющей плате, а к внешнему блоку питания. Ну и провода, подходящие к шпинделю я заменил на более толстые. Теперь перед запуском программы для резки/гравировки я сначала включаю блок питания шпинделя, а после окончания работы программы я его выключаю руками.
4. Защита проводов шаговых моторов, не предусмотренная в штатном наборе была сделана с помощью спиральной защитной трубки, купленной в отделе электротоваров в магазине OBI.
Без защиты на эти провода было жалко смотреть и бояться что они либо оборвутся если зацепятся за подвижные детали станка либо перетрутся при перемещении по алюминиевым направляющим. Вещь копеечная и очень удобная:
5. Крепление шпинделя проработало меньше двух месяцев неинтенсивного использования.
Пластмассовый хомут, которым шпиндель затягивался винтом в направляющей оси Z треснул недалеко от отверстия для этого винта. В итоге при очередном резе шпиндель опустился вниз (съехал внутри крепления), фреза заглубилась до упора (до металлического столика), сломалась и двигатель стал буровить обломком фрезы этот самый столик. Пришлось снова «колхозить» и установить поверх родного крепления металлический хомут с винтовой стяжкой.
А поскольку хомута нужной длины в хозяйстве не оказалось, свинтили между собой два хомута. В целом получилось неплохо и достаточно надежно.
6. Максимальную скорость по осям пришлось уменьшить, так как при «родных» настройках при перемещении на несколько сантиметров на максимальной скорости по оси X узел крепления шпинделя жестко клинило и координаты в памяти станка сбивались, что выяснилось не сразу т. к. станок иногда «глючил» по иным причинам (см. выше).
Меняются максимальные скорости по осям командами $110 (ось X), $111 (ось Y) и $112 (ось Z) через терминальное окно управляющей программы (мы используем Candle). Вид команды: $110=1000 (максимальная скорость по оси X равна 1000 мм/мин). значение скорости задается в миллиметрах в минуту. Сейчас у нашего станка установлены скорости 1000 мм/мин по осям X и Y, и 500 мм/мин по оси Z и все работает без сбоев.
Теперь, после выявления вышеперечисленных проблем станок неплохо работает в режиме фрезеровки/гравировки со шпинделем.
Софт
Сразу уточним, что у нас установлена ОС Linux Ubuntu и, соответственно мы используем Linux- версии всех описываемых программ.
В качестве управляющей программы мы используем Candle dthcbb 1.0.11, довольно удобную и простую в управлении. Загрузить ее можно отсюда. Более новые версии этой программы не работают с платой нашего станка (для этого придется залить в эту плату новую версию прошивки, но в ней тоже есть глюки, поэтому решено было этого не делать).
Для подготовки G-кодов (программ для резки/гравировки) используем расширение (плагин) Gcodetools для редактора векторной графики InkScape. И вот тут нужно иметь в виду что Gcodetools нормально работает с InkScape версии до 0.91. При попытке работы с этим плагином в более новой версии Inkscape получается полная ерунда, размеры и координаты деталей безбожно «уплывают» и пользоваться этим становится невозможно.
У нас стоит старая версия программы InkScape 0.48 и ее вполне хватает на все.
Аналогичная проблема возникает если чертеж сделан в Inkscape новой версии, а обработка с помощью Gcodetools ведется на компьютере, где установлен Inkscape старой версии. Имейте это в виду и не тратьте время на эксперименты и выяснение причин неправильного результата. Сразу и рисуйте (или импортируйте) чертежи и преобразуйте в G-code в старой версии InkScape.
Лазер
Второй этап «борьбы» со станком начался после прихода лазера мощностью 15 Вт.
1. Отвод дыма от линзы. При первой резке фанеры мы увидели довольно густой дым, который клубами поднимался вверх и вполне мог осаждать частички сажи на поверхности фокусировочной линзы. Для борьбы с этим недугом была сделана несложная приспособа, крепящаяся к штатными крепежным резьбовым отверстиям на корпусе лазера (которые в нашем станке не используются).
К этой приспособе привинчен вентилятор , выводы питания которого подключены к разъему на плате управляющей станком рядом с разъемом блока питания. Эти контакты никак не помечены, но на них есть напряжение 12 В и они явно предназначены для подключения охлаждающего вентилятора.
2. Охлаждение модуля управления лазером. В процессе работы лазер периодически отключался из-за перегрева. Поставив сзади платы управления станком и модуля питания лазера внешний вентилятор (небольшой настольный) от этого недуга мы избавились. В будущем планируем вырезать корпус для этих плат, к которому будет крепиться вентилятор от процессорного кулера, что улучшит охлаждение электроники станка.
3. Столик для лазерной резки. При прорезании фанеры лазером на ее нижней поверхности выступает деготь. На фотографии ниже видны остатки дегтя после вырезания прямоугольной детали из трехмиллиметровой фанеры. В качестве подложки был использован фольгированный текстолит (лазер не прожигает медную фольгу).
Этот деготь налипает на столик, который пачкает им как текущую заготовку, так и последующие. Поэтому после каждой резки нужно оттирать выступивший деготь (мы это делали изопропиловым спиртом). Поэтому было принято решение сделать столик с минимальным количеством точек касания с заготовкой.
В интернете есть множество конструкций таких столиков (ячеистые из металлической ленты, из гвоздиков, набитых или припаянных к основанию столика и т. д.).
Но все это показалось трудоемким в изготовлении и от таких конструкций трудно добиться ровной поверхности и «эстетического» внешнего вида.
После некоторых размышлений и поисков в «закромах»» нашлось простое и изящное решение. У нас давно хранятся залежи старых микросхем в DIP корпусах еще советского производства.
Если такую микросхему перевернуть выводами вверх, то получится площадка с 14-ю тонкими точками касания, расположенными по периметру корпуса микросхемы на одной и той же высоте.
Дальше все просто: Берем лист текстолита или любого металла размером с будущий столик (в нашем случае 30 х 18 см) или чуть меньше и наклеиваем на него ряды микросхем кверху выводами. Я клеил на текстолит (не фольгированный) клеем «Момент». Шаг между рядами микросхем 14 мм, длbна ряда — от верхнего до нижнего края столика с небольшим расстоянием (3-4 мм) между микросхемами в ряду.
Важный момент: мы отбирали микросхемы в керамическом корпусе, так как пластиковый корпус лазер будет немного подплавлять и при этом может появляться запах горелой пластмассы (это мы не пробовали, но скорее всего это будет так). В нашем случае столик получился немного меньше размера рабочего стола станка, но его вполне достаточно для работы и с большими заготовками. Работает столик прекрасно.
4. Управление мощностью лазера. К сожалению в управляющей плате станка CNC 3018 не предусмотрено управление мощностью лазера и оборотами шпинделя с помощью ШИМ как в других станках, поэтому лазер здесь включается только на полную мощность.
Это неудобно так как на полной мощности трудно сфокусировать пятно лазера, добившись минимального размера этого пятна на поверхности заготовки, а при выжигании (лазерной гравировке) трудно подобрать режим (скорость гравировки), которая обеспечивает нужную толщину линии и интенсивность черного цвета на поверхности фанеры в зависимости от ее качества, цвета, фактуры.
У нашего лазера (точнее модуля питания лазера) есть разъем ШИМ, не задействованный в нашем станке (подключать его некуда). Но, как говорится - «наши руки не для скуки»!
При помощи платы ардуино (arduino UNO), переменного резистора и LCD дисплея мы исправляем этот недостаток. Собираем простую схему, в которой движок переменного резистора подключаем к аналоговому пину A0 платы ардуино, остальные два его вывода — к +5V и GND этой же платы. Подключаем LCD дисплей (с интерфейсорм I2C — очень он мне нравится) к ардуино как это описано в многочисленных примерах (+5V и GND дисплея к соответствующим выводам ардуино, SDA дисплея к A4, а SCL к A5). Теперь подключаем GND ардуино в черному проводу кабеля ШИМ лазерного модуля, а цифровой вывод D3 ардуино к красному проводу кабеля ШИМ лазера. Вот и все подключения.
Макетная плата на фотографии служит только для подключения всех устройств этой схемы к выводам +5V и GND платы arduino.
Питать плату ардуино можно с помощью кабеля USB, например от телефонной зарядки с разъемом USB.
Важно! Если подключить USB кабель ардуино к тому же компьютеру, к которому подключен станок, то соединение со станком пропадает (почему — неизвестно — возможно что программа станка перенастраевается на вновь найденную плату ардуино и перестает обмениваться с управляющей платой станка, которая по сути тоже является ардуиной. Прошивка для ардуино (arduino UNO, NANO и аналогичных) можно скачать отсюда.
Если будете использовать arduino Mega, Вам придется подключить SDA и SCL выводы дисплея к другим выводам платы ардуино (для Arduino Mega SDA — вывод D20, SCL - вывод D21). Кроме того у разных LCD I2C дисплеев бывают разные адреса на шине I2C. Если Ваш отличается, то его нужно изменить в программе. Все проверено — прекрасно работает, яркость луча лазера плавно регулируется переменным резистором от полной мощности (100% на индикаторе) до полного выключения (0% на индикаторе). Если у Вас происходит все наоборот — при 0% мощность максимальная, и при повороте движка переменного резистора его яркость снижается — поменяйте местами выводы переменника, подключенные к +5V и GND платы ардуино.
5. Софт для лазерной резки. Мы очень привыкли к набору софта для гравировки, описанному выше. Он очень простой и удобный. Но вот беда — плагин Gcodetools плохо подходит для работы с лазером. Проблемы при работе с ним следующие: - При запуске выполнения программы на станке в первый момент лазер включается в точке старта и горит все время пока он перемещается к началу контура первой детали. При этом на заготовке остается черная линия на всем пути от старта до первого вырезаемого контура. Это портит внешний вид готового изделия; - По завершении прохода текущего контура лазер поднимается на «безопасную» высоту, при этом он не выключается и продолжает жечь деталь, оставляя в конечных точках неаккуратные пятна, диаметр которых больше ширины общей линии реза. Отключается лазер только после того, когда он поднялся на безопасную высоту. И так на каждом проходе. При этом при поднятии лазера и опускании на новую глубину тратится дополнительное время, что увеличивает общее время резки деталей на заготовке.
Для того чтобы избежать вышеперечисленных «безобразий» была написана программа CNCConvert (работает в ОС Linux), которая обрабатывает файл с G-кодами, полученными после работы Gcodetools.
Работает она очень просто. Запускаете программу, выбираете исходный файл нажав кнопку "ВЫБОР ФАЙЛА".
нажимаете «Преобразовать», после чего программа в той же папке, где лежал исходный файл создает выходной файл с именем, в начале которого стоит LASER_ , а далее идет тоже имя и расширение, что и в исходном файле.
Программа работает в среде Linux (писалась и проверялась в Ubuntu 18.04, но должна также работать и на старых версиях Ubuntu и других Debian платформах). Для установки программы скачайте ее и скопируйте в любую папку Вашего компьютера, а затем найдите файл этой программы, нажмите на нем правой кнопкой мыши, выберите свойства файла и на вкладке «Права» поставьте галочку напротив настройки «Разрешить выполнение файла как программы». После этого просто запускайте программу двойным кликом левой кнопки мыши. В программе подразумевается настройка Gcodrtools, в которой безопасная высота для перемещения фрезы равна 3 мм (3.0000).
Если Вы у себя укажете другую — лазер все равно будет подниматься в конце каждого прохода по контуру, но остальные «глюки» проявляться не будут.
В самом Gcodetools при подготовке программы для резки выбирайте инструмент default, в настройках инструмента в поле "gcode before path" введите M03 (то есть перед началом контура включить лазер), в поле "gcode after path" введите M05 (то есть после конца контура выключить лазер, обе буквы M — латинские).
Глубину подачи фрезы "depth step" за проход укажите 1 мм, толщину материала (для фанеры 3 мм) — 3,5 мм так как ее реальная толщина «гуляет» и может превышать 3 мм. Горизонтальная скорость подачи инструмента "feed" зависит от Вашего лазера и типа фанеры. У меня получается 70 — 80.
В итоге 3 мм фанера прожигается насквозь за 4 прохода на полной мощности. После написания программы появилась идея ее модификации.
Есть проекты, в которых на детали наносится гравировка и затем они вырезаются. Так вот — силами Gcodetools это можно сделать только создав два отдельных файла — первый с программой гравировки, второй — резки и эти файлы нужно по очереди загружать в станок и выполнять. При этом Вам нужно следить когда закончилась гравировка чтобы потом руками загрузить файл резки и запустить его выполнение. Пустячок, но отвлекает от более приятных занятий.
Так вот эту программу можно модифицировать так чтобы она «склеивала» оба этих файла в один. Но это рассуждение чисто философское и если это окажется действительно полезным — я это сделаю. Кроме того — ничего не стоит перекомпилировать этот файл под нелюбимую мной Windows (мне это ни к чему, но если появятся желающие — пишите, сделаю).
Возможно эта статья может оказаться кому-нибудь полезной.
Доработки станка продолжаются.
Если у Вас возникли вопросы, замечания или комментарии - пишите, все дельное отразим на наших страницах.
Почта автора touzov@gmail.com
С уважением!
Александр