Лазерный гравер на RAMPS 1.4 с дисплеем и SD картой. Часть 1. Тест электроники.

Подписаться на 3Dtoday
AlexBoos
Идет загрузка
Загрузка
07.11.17
2145
29
печатает на Prusa i3 Kit
RepRap
15
"И покатился я по наклонной плоскости..." (с)

Меньше года назад приобрел 3 ДЭ принтер и вот потянуло... По тропе... Натоптанной... К лазерному граверу. Наверно, как следствие, докачусь до CNC и по на катанной дальше и дальше... Шутка. А может и нет.

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

Гравер, конечно, проще купить и пользоваться. Оно так на так и выйдет по расходам и убитому времени. Но тут интерес самому изучить 3D моделирование и самому напечатать и собрать. Короче хобби.

Итак, постановка задачи -

1. Размер A3 - для большинства задач достаточный и не слишком громоздкий. Больше - будут проблемы с размещением и хранением. Меньше - как то смысл теряется.

2. Печать с SD, независимость от компьютера.

3. Возможность устанавливать разные приблуды, типа перьевой ручки или фломастера. Плоттер.

Пока и все.

Электроника. Знал почти сразу, что надо брать CNC shild. Gbrl и куча программ и прошивок в помощь. Но проблемы с дисплеем и SD картой. Прошивок чтоб и то и сё не нашел. Остановился на RAMPS 1.4 - избыточно, но зато все в одном. Но проблемы с программами. Не Счастья в этом мире. Одни компромиссы.

Перелопатил кучу прошивок и gbrl в том числе. Начал уже путаться в конфигах и значениях кто от куда. Я не гуру Ардуино и самому писать скетчи рановато. В итоге остановился на прошивке Repetier-Host 0.92 .

Там заявлена поддержка Лазера и CNC. И нашел программу которая понимает эту прошивку как родную - LaserWeb.

Ограничения прошивки описаны внутри прошивки - лазер включается только во время движения. Защита от дурака. Чтоб не сгорело. Управление уровнем вроде предусмотрено, но по умолчанию выключено. Как включить не до пер. А так до значения 200 выключен, выше 200 включен. Как не пытался управлять уровнем - бесполезно. Вот и первый вопрос - как победить прошивку чтобы по M03 S<уровень> менять значения на выходе? Прошивка может работать в трех режимах - FFF, Laser, CNC. Режим можно выставить в прошивке по-умолчанию или менять командами по ходу печати. Но разницы в поведении как-то не заметил.

В итоге пришлось идти на уловку (впрочем как и все делают) - управлять лазером через выход вентилятора - командами M106 S<уровень> и M107 (выключение). В Inkscape c модулем для лазера - просто ставим эти команды и уровень в окошки и имеем рабочий код. Потом на SD карту и печать. В LaserWeb приходится искать строки с S<уровень> и добавлять перед ними M106 - Тогда все тоже работает как надо.
Вот и второй вопрос - как в LaserWeb заставить M106 ставить перед уровнем? В настройках программы есть замены команды на включение и выключение и выставление уровня. Но даже когда явно указываешь, уровень надо писать как M106 S<уровень>, она в коде все равно пишет просто S<уровень>. Про M106 забывает. Как вентилятор сделать инструментом по-умолчанию в прошивке?

Допилить бы прошивку до полноценной поддержки лазера. Так там почти все есть. Но напильником для Ардуины пока не владею. Марлин тоже пытался настраивать - тоже самое почти, но LaserWeb - пишет, что не совместимая прошивка и отваливается сразу. А так Марлин мне показалась более навороченной. Но там нет специальной поддержки лазера и CNC.

Ценность LaserWeb - работа с полутоновыми изображениями. Победить - решить почти все проблемы. Заменой кодов в конечном файле все работает, Но хотца - по-людски. ))) Ниже на видео итоговый тест электроники.
Как соберу все в кучу - напишу более подробный пост. Чтоб, идущим следом, было проще.
Подписаться на 3Dtoday
15
Комментарии к статье

Комментарии

7 Ноя 20:15
3
могу помоч - тож на репитере, пришлось полазить по сайтам и чуток поковырять прошивку (добавлять 2 файла и правка кода), зато теперь работает прекрасно: шим выставляет любой от S0 до S255 (через команду М3 для рабочего хода, или M42 P9 - для фокусировки на малой мощности. У меня выход подключен и привязан на D9 - шим аппаратный, частоту поднял до 4+ кГц. Также выход на шим прямой/инверсный (работает для M3, для М42 надо писать прямое значение, например для фокусировки я использую M42 P9 S251 ~1.5% мощности - у меня инверсный ШИМ
прошивка на ЯД
по софту что использую я:
растр (фото, печатные платы и прочее) - CHPU. ЧБ выжигается вообще без проблем, для градаций серого (фото, картинки) - не вздумай использовать выжигание с задержками, только включение на черном, иначе очень удивишся скорости - репитер их не переваривает категорически. К картинке применяеш джарвис (в программе) и доводиш до нужного результата, после чего работаеш, прожиг регулируеш скоростью и мощностью. еще один лайфхак - чтобы шло в несколько раз быстрее - открываем код в редакторе и автозаменой меняем G0 на G0 Fxxx (холостой ход 1000-3000мм/мин) и G1 на G1 Fxxx (выжигание, у меня от 300 до 1000 в зависимости от материала и мощности)
по вектору - плагин репитера для инскейпа

управляю всем через опять же репитер-хост
лазер реальной мощностью ~3Вт, гравирую фанеру/кожу, режу фанеру 3/4мм, делал печатные платы выжиганием краски на фольге (2 слоя матовой, дорожки от 0,3мм, площадки 0,8/1,3мм - сверло 0,8 только есть, вначале сверлю, потом 2 стороны и травить)

П.С. у меня все это дело работает на напечатанном Root2CNC , для лазера напечатал корпус с размерами фрезера, теперь замена одного на другое выполняеться за 1-2 минуты - вынуть одно, вставить другое и подсоеденить разъемы, фото крепежа выкладывал тут

сегодня прикупил уголков алюминиевых 15х15х1, сейчас черчу крепеж чтобы собрать основание для крепления фанеры и прочего - когда просто лежит на основании - неудобно полностью ровно растягивать/крепить
7 Ноя 21:17
0
Благодарю! Прошивку скачал, буду ковырять. Очень интересно. Программу тоже качнул. Проект CNC тоже заинтересовал - хитрое решение.
7 Ноя 23:21
1
там правок немного - смотри по дате 24 сентября конфиг и 2 файла
а по фрезеру - там уже полным ходом 3-я версия, дойдут руки - тож переделаю
8 Ноя 00:08
0
Интенсивность я посмотрел управляется обраткой - analogWrite(9, 255 - intensity) - то есть наоборот? Ну да - инверсный. Норма - разберемся...
8 Ноя 10:48
1
внимательнее смотри - в зависимости от LASER_ON_HIGH в конфиге (0 - инвертированный, 1 - нет). Это относиться только к М3.
Для М42 там пришлось бы побольше доработок в основном коде, что не совсем корректно, потому и не трогал
а текущие добавленные файлы - предусмотренный авторами хак, позволяющий переписывать некоторые функции своими без вмешивания в основной код, функции мелкие и простые, но чтобы разобраться пришлось порядком повозиться.
8 Ноя 09:36
1
А так Марлин мне показалась более навороченной. Но там нет специальной поддержки лазера и CNC.
Вот здесь я давал ссылку на версию марлина для лазера, там все просто с настройками.
8 Ноя 11:22
0
Да я видел и пробовал - но программы прошивку Марлин за свою не считают. А указанная прошивка не компилится. Ошибки, как не извращался. У многих тут на форуме не получилось откомпилировать. На импортном форуме нашел как исправить первые ошибки, но за ними пошел шлейф других и я бросил это дело. Текущую актуальную настроить пробовал. С SD печатать вполне можно.
9 Ноя 12:21
0
Добрый день! Спасибо за ссылку, вечером попробую подключить, подскажите, а как к рампс 1.4 можно на одну ось подключить два шд, именно в прошивке как можно прописать, чтобы две оси дублировались, а не подключать к одному драйверу два шд? Просто у мен\ два шд на X и два на Y.
9 Ноя 12:37
1
Вешайте по два ШД на один драйвер, меньше будет проблем. Картинка с подключением проводов есть в комментариях.
9 Ноя 12:45
0
Последовательно или параллельно? И на какой ток настраивать драйвер? Можете объяснить почему меньше проблем будет, все таки есть лишние драйвера и не пустить их в дело как то странно...
9 Ноя 13:16
1
Можете объяснить почему меньше проблем будет, все таки есть лишние драйвера и не пустить их в дело как то странно...
На самом деле споры о том как правильно подключать два двигателя на одну ось вспыхивают постоянно.
Можете изучить теорию и выбрать близкий вам по духу способ самостоятельно.
Я для себя выбрал такую, драйвер не греется, усилие развивают достаточное, ток одинаков на обоих двигателях, что еще нужно для счастья?
9 Ноя 18:01
0
Я так понимаю надо тогда увеличивать ток на драйвере в два раза?
13 Ноя 18:29
0
вот это не факт,я пробовал не в двое ,а до 1в так радиатор на драйвере кипел
14 Ноя 02:53
0
Обмотки последовательно надо включить и будет счастье. И ток останется в норме и тяга такая же будет.
9 Ноя 13:02
0

Типа как то так. А можно просто в параллель

Тут правильнее будет с цветами.
8 Ноя 13:29
0
не совсем в тему, но личный опыт запуск гравера. сделал все по шагам как тут написано https://www.thingiverse.com/thing:610934
Заработало все сразу. И остановился в области выжигания картинок.

Тоже есть желание делать полноценный g-code для движения по кривым. слышал что есть надстройка к inckscape.
И конечно работать с SD карты куда как приятней чем с компа.
Короче подписался :)
8 Ноя 16:36
1
Уважаемый Jager вверху дал ссылку на статью - там есть упоминание плагина и Inkscape. Плагин рабочий. Есть и другие плагины на сайтах производителей граверов. Но работают так же.
8 Ноя 22:11
1
блин жутчайше извиняюсь что дал неработающий код - ковырял одновременно 2 версии репитера, стабильную и дево
рабочая версия
там сейчас шим 490Гц, если нужно 4900 - раскомментировать в CustomEventsImpl.h 13 строку
TCCR2B = TCCR2B & 0b11111000 | 0x02;
8 Ноя 22:44
0
Первая прошивка компилится с предупреждениями - я их исправил и хотел копать дальше. ))) Буду смотреть эту. В первой простые неточности были.

Во второй тоже предупреждения. Но компилится. Буду пытаться исправить.
Если CustomEvents.h исправить так

extern bool SetMyLaserIntensity(uint8_t intensity);
extern bool MyLaserInitialise();

#undef EVENT_SET_LASER
#undef EVENT_INITALIZE_LASER
#define EVENT_SET_LASER(intensity) SetMyLaserIntensity(intensity)
#define EVENT_INITALIZE_LASER MyLaserInitialise()


А CustomEventsImpl.h вставить вывод такой

Com::printFLN("write ",intensity);

И в Configuration.h

#define HEATER_PWM_SPEED 3 // поменять на 2

То все компилируется без ошибок и предупреждений. Работу еще не проверял.
9 Ноя 00:37
1
у меня 1,8,3 ардуино, предупреждений быть не должно, Com::printInfoFLN должны быть закомментированы, в противном случае не работают шаговики у меня.
9 пин по причине доступности и аппаратного шима, в принципе можно и другой использовать, но со стандартной частотой или же откорректировать соответствующий таймер на нужную частоту и пин
9 Ноя 00:57
0
У меня 1.8.1. Поставлю 1.8.3. Завтра вечером настрою под себя и буду пробовать. Спасибо.
9 Ноя 20:17
0
Скачал выше прошивку и ошибку выдает, скачал ардуино 1.8.5 и теперь даже старая добрая прошивка выдавать стала ошибки, может кривую ардуинку скачал? Не подскажите, где вы качали свою?
9 Ноя 22:02
1
с офсайта (можно в архивах поковыряться)

посмотрите что за ошибка - м.б. отсутствуют какие библиотеки, например ug8lib

и да, плата выбрана Arduino/Genuino Mega or Mega2560? просто вспомнил что частенько сам пытаюсь для 328 или тини85 скомпилировать :D

ну и для начала можно попробовать скомпилировать не трогая конфиг чтоб быть уверенным
9 Ноя 22:18
0
Плата, порт, все выбрано правильно, библиотеку тоже подгрузил, драйвер ch340 тоже стоит на ардуинку свою. Уже много что перепробовал.
9f093f773e31df02c1bd1b820e6d0cf1.png

51c1eb416650404a59a78acabd5a10ac.png
10 Ноя 00:51
0
Залил я наконец прошивку товарища, чью ссылку выше кидали ( https://mysku.ru/blog/aliexpress/40000.html ) Всего то 4 часа просидел в поисках и чтениях различных форумов со схожими проблемами)). Пришлось пару файлов поменять. Но выдает такое дело: что памяти не хватает (Глобальные переменные используют 77%). Это ладно, надо будет подумать, может и не беда. Но дисплей светиться во весь экран множеством букв nnnnnnnnnnnn. У товарища этого другой дисплей использовался, может кто помочь настроить прошивку на дисплей LCD2004A?
10 Ноя 02:23
0
Из статьи из Мусек не пошла прошивка. Ошибки. Файлы тоже искал и добавлял. Рекомендую на сайте Репитора в конфигураторе слепить как надо и качнуть себе. Она то работает. Просто тут напильником хочется добиться идеальной работы, типа. :D
10 Ноя 08:40
0
Если бы я ещё умел... Неужели готового не найти, лазерных резаков столько сделано?
13 Ноя 21:43
0
Вообщем все работает. Если кратко - 9 и 10 выводы в прошивке могут работать в PDM режиме (Что это тут). Немного изменил файлы дополнений и все пошло без ошибок и предупреждений. Сделал себе прошивку где на 9 вывод командой M106 можно управлять и по M3 на 10 контакт. Программу обработки можно наворотить по своему желанию. Но пока, что возможности с желаниями не совпадают.


Содержание файлов:

CustomEvents.h


extern bool SetMyLaserIntensity(uint8_t intensity);
extern bool MyLaserInitialise();

#undef EVENT_SET_LASER
#undef EVENT_INITALIZE_LASER

#define EVENT_SET_LASER(intensity) SetMyLaserIntensity(intensity)
#define EVENT_INITALIZE_LASER MyLaserInitialise()

CustomEventsImpl.h


bool SetMyLaserIntensity(uint8_t intensity) {
if (LASER_ON_HIGH)
analogWrite(10, intensity);
else analogWrite(10, 255 - intensity);
Com::printFLN(PSTR("New Intensity:";),(int)intensity);
return false;
//
}

bool MyLaserInitialise(){
SET_OUTPUT(10);
//TCCR2B = TCCR2B & 0b11111000 | 0x02;
return false;
}


В консоль выводит значение интенсивности нормально, для отладки. Настройку таймера TCCR2B = TCCR2B & 0b11111000 | 0x02; не использовал. Частоту импульсов не мерял, но довольно высокая. Уже когда аппарат заработает - можно будет поиграть частотами.

Кратко как пользовать -
1. Открываем конфигуратор Repetier-Firmware configuration tool for version 0.92.9 version
2. Настраиваем механику и геометрию под свое железо.
3. Лазер включаем на 10 пин - это Heater 0
4. Режим работы экструдера и вентилятора вместо PWM во вкладке Tools ставим галки на PDM
Enable PDM for heaters (instead of PWM) (PDM_FOR_EXTRUDER)
Enable PDM for fans (instead of PWM) (PDM_FOR_COOLER)
5. Во вкладке Features включаем вентилятор на его же пин.
6. Конфигурируем дисплей как вам надо, но бипер не включаем, так как он жрет ресурсы таймера и нам их может не хватить.

7. Качаем готовую прошивку к себе.
8. Добавляем 2 выше указанных файла
9. В configuration.h добавляем строку

#define CUSTOM_EVENTS
после
#ifndef CONFIGURATION_H
#define CONFIGURATION_H


Все! Режем картон на мелкие полоски... :D
12 Ноя 02:25
0
https://github.com/repetier/Repetier-Firmware/tree/development/src/SampleEventSystems/Laser%20PWM%20and%20DAC - тут решение для полутоновой печати. Но с дополнительным оборудованием. Как вариант. Пока пробую без лишнего.

Для написания комментариев, пожалуйста, авторизуйтесь.

Читайте в блогах

Набор юного мехостроителя

«Что цело, то и годно в дело»*.

Черная пятница: скидки до 50% на весь ассортимент!

Wanhao D7 v 1.4 Red edition. Главное - работает!

В Новосибирске налаживают аддитивное производство титановых имплантатов

Голая статистика или жизнь после сертификации