суббота, 10 февраля 2024 г.

Переделка дальта 3D принтера в лазерный ЧПУ гравер

 FDM 3D принтеры стали популярными ЧПУ станками для изготовления прототипов а также даже производства настоящих полнофункциональных изделий и деталей в основном из пластмассы. Чаще всего 3D принтеры делают детали из PLA или ABS пластиков которые весьма дорогие (на момент написания данной стати) в состоянии прутка пригодного для FDM 3D принтера. Большинство FDM 3D принтеров легко переделать в лазерный гравер путем замены экструдера пластика на лазер. Для лазера (в отличии от например фрезера) не нужна жесткая конструкция + 3D принтер может менять фокусировку лазера в процессе работы, чего не могут даже некоторые лазерные граверы. Чтобы переделать 3D принтер в лазерный гравер нужно заменить хотенд принтера на лазерный модуль. Лазерные модули бывают разные. Лазеры бывают разных типов и мощностей. Самые дешёвые, компактые и легкие - это полупроводниковые лазеры они также уступают по мощности например CO2 лазерам но зато + к меньшим габаритам они имеют меньшую стоимость и могут быть установлены на дельта 3D принтеры типа Rostock mini. Обычно дельта на дельта принтеры не устанавливаются тяжелые головки но практика показала лазерный модуль оптической мощностью 5Вт (потребляемая мощность 40Вт) способный резать фанеру и пластик а также гравировать большинство материалов может работать с принтером Rostock mini.

Данный лазерный модуль имеет радиатор, вентилятор для охлаждения и одновременно сдувания дыма от разрезаемой поверхности для улучшения прохождения лазера до этой самой поверхности а также есть сопло которое направляет поток воздуха в разрезаемую точку чтобы лучше сдувать дым. Также есть защитная красная насадка для защиты глаз (на которую не стоит сильно полагаться) и плата управления с тремя выводами. Один вывод питания +12В, второй - земля GND 0В и вывод управления на который подается ШИМ с уровнями напряжения 0В и +5В. В комплекте шел кабель с разъемами. В кабеле 3 провода: красный +12В питания, черный 0В, желтый - ШИМ 0...+5В. Питание подключается к источнику от которого питается принтер. А желтый провод к одному из пинов контроллера RAMPS но только не к тому с которого выходит 12В например стола или вентилятора т.к. эти пины сожгут испортят плату. Нужен именно управляющий пин. Это может быть например свободный пин D4


 который предназначен для подключения сервомотора но также его можно использовать как обычный свободный GPIO командой например M42:

M42 P4 S150 ; включить пин D4 на гребенке с сервами с краю с ШИМом 150

Где M42 - это название команды, P4 - номер пина, S150 - уровень шима который м.б. от 0 (лазер полностью выключен и не работает) до 255 (лазер полностью включен и работает на пределе). К сожалению в прошивке Мерлина данная команда не синхронизированна с командой G1 перемещения головки в пространстве, поэтому резка и гравировка не будут точными а также в варианте прошивки для дельта принтера вообще нет команды с синхронизированной работой лазера и перемещением головки. К счастью данная прошивка является скетчем для ардуины Меги который можно подправить. Можно например добавить собственный нестандартный G код с синхронизацией лазера и перемещения головки в пространстве. Что и было сделано. В прошивке Мерлина есть файл "Configuration.h" в который вносятся изменения для настройки принтера. В данном файле изменяются специальные константы которые специально вынесены в данный файл для пользователя чтобы было удобнее и безопаснее чтобы не испортить случайно всю прошивку но добавить новую команду через этот файл нельзя. Добавить её можно в файле "Marlin_main.cpp". В данном файле есть функция "void process_commands()" внутри которой есть ветвление "switch((int)code_value())" внутри которого есть команды. Было замечено что в прошивке для дельта принтера Rostock mini G команды заканчиваются на G4 потом идет перерыв и начинаются с G10 которые заканчиваются на M командах. Для G команд и M команд существует какой общепринятый то стандарт и команда с синхронизацией должна иметь специальное обозначение что возможно позволит использовать для генерации кодов какую либо готовую программу. Однако поскольку для полного понимания прошивки и изучения стандарта нужно тратить время то для ускорения и упрощения можно просто добавить новую команду по аналогии с какой либо имеющейся и написать генератор G кодов самостоятельно. Чтобы добавить новую команду G5 нужно скопировать код:

и вставить после обработчика команды G4. Пример использования новой самодельной команды
 G5 X0 Y0 Z73 F300 P4 S150
означает переместиться в точку X0 Y0 Z73 со скоростью 300 и включить пин D4 с шимом 150.

Адрес биткоин кошелька для поддержки канала - bc1qlhrmmkh77x2lzhqe4lt9qwkglswj64tsqt2l5g