Строим JAP DLP. Прошивка

Подписаться на 3Dtoday
3DLab
Идет загрузка
Загрузка
28.09.17
1310
1
RepRap
16
Статья относится к принтерам:
JAP DLP
Приветствую!
Продолжаю цикл статей о постройке DLP-принтера.
Предыдущие статьи
Строим JAP DLP. Общее описание
Строим JAP DLP. Ось Z
Строим JAP DLP. Электроника
Статьи по проекторам
Ликбез по DLP-принтерам. Выбор проектора
Модификация объектива проектора для DLP-принтера
Сегодня речь пойдет о прошивке.
Выбор прошивки зависит, разумеется, от выбора электроники. Если это что-то RAMPS-совместимое, то подойдут Репетир, Спринтер и прочие Марлины, так как в минимальной комплектации управлять надо всего одной осью Z. Опционально еще один шаговик на слайд/наклон ванны и сервопривод на шторку объектива. С вопросом управления сервой этими прошивками я не разбирался.
Я использую связку Arduino Uno + CNC SWhild v.3 Для этого железа родной является прошивка GRBL. Версия 0.9 не поддерживает управление сервоприводом, хотя разработчики вроде собирались добавить в следующих версиях.
Есть форк GRBL+servo, но с ним тоже не всё гладко. На сервопривод подается только один управляющий импульс. В идеальном мире этого вполне достаточно, но китайское экономическое чудо вносит искажения. Далеко не все китайские сервоприводы поворачиваются на нужный угол с первого пинка импульса. Требуется несколько дополнительных контрольных импульсов (в моей прошивке их 179 :D )
Поскольку мне очень хотелось шторку на объектив и кнопки управления, пришлось написать свою прошивку под CNC Shild. О ней и будет подробный рассказ.
Есть два различных по логике варианта управления DLP-принтером.
Первый - когда всё управление осуществляется с компьютера (вкладка Control в Creation Workshop).
Второй - используются органы управления непосредственно на самом принтере, а в CW только нажимается "Play" :)
Какой вариант предпочесть - дело вкуса и привычки.
В моей прошивке пока реализован только второй вариант, так как он более удобен при разработке принтера, когда постоянно что-то меняется. Первый вариант будет реализован со временем.
Принципаальная разница в том, что в первом варианте необходимы концевые датчики и есть понятие "home", во втором датчиков нет (только опционально аварийный Z_max), печать начинается относительно текущего положения оси, которое устанавливается вручную.
71d5d49678969df2f0b6833640866c56.jpg
Кнопки управления. Стрелки - движение оси Z, красная кнопка без фиксации вкл./выкл. двигателя, желтая с фиксацией включение вентилятора (чисто железно, без привязки к прошивке)
83710f88f776c6fcfff0c4268d00da1b.jpg
Фундамент всего принтера - крутилка оси Z :)

Настройка прошивки

По умолчанию прошивка настроена на использование драйвера A4988 с делителем 16, двигателя 0.9 градуса на шаг и винта с шагом резьбы 4 мм. В этом случае вообще ничего настраивать не надо.
Для других случаев нужно поменять три значения:

#define STP_PER_MM - сколько микрошагов нужно сделать двигателю, чтобы переместить ось Z на один миллиметр. Посчитаем для нашего случая. За один оборот вала (360 градусов) ось Z смещается на 4 мм (шаг винта). Двигатель поворачивает вал на 0.9 градуса за шаг. Делим 360 на 0.9, получаем 400 шагов на полный оборот. У нас стоит делитель на 16, поэтому на один оборот получается 400х16=6400 микрошагов. То есть за 6400 микрошагов ось Z смещается на 4 мм, или на 1 мм за 1600 микрошагов. Ставим #define STP_PER_MM 1600

#define ACCEL_STP - ускорение в микрошагах в секунду за секунду. Нормальные значения 10-20 мм/с^2. Я взял 20, в микрошагах это 20х1600=32000. Ставим #define ACCEL_STP 32000.

#define ZBUTTON_STEP - минимальное перемещение при нажатии на кнопку вверх или вниз. Нормальные значения 1-2 шага, или 16-32 микрошага. Ставим #define ZBUTTON_STEP 16

Что и куда подключается
PREVIEW
Z+ endstop - аварийный нормальнозамкнутый концевик вверху оси Z. Если его не ставить, то необходимо замкнуть на землю 11-й контакт (поставить джампер).
Servo control - управляющий контакт сервопривода. Привод управляется командой M3 Sххх, где ххх - угол поворота в градусах.
Cooler control - можно подключить вентилятор через полевик и включать/выключать его командами M7(M245)/M9(M246). Я от этого отказался, включаю вентилятор отдельной кнопкой.
Z+ button - кнопка "вверх".
Z- button - кнопка "вниз".
Z motor on/off - включение/выключение двигателя.

Недавно добавил управление светодиодом через реле 12-м контактом командами M106/M107 для LCD-принтера.

На этом всё, удачи!

P.S. Я ВКонтакте
Мой Instagram
Подписаться на 3Dtoday
16
Комментарии к статье

Комментарии

30 Сен 10:56
1
Я бы добавил защиту кнопок от случайного нажатия, хоть бы и скобой - мебельной ручкой.

С Уважением,
Ski.

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

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

Обзор 3D-принтера NABU mini или как сделать 3D-принтер правильно!

Эксклюзивное интервью: как сделать собственный скейтборд с помощью генеративного дизайна и 3D-печати

Wanhao Duplicator I3 mini за 12500 руб.

Гидралиск из игры StarCraft

Акция - со склада в России по цене товара склада в Китае!

В ЮУрГУ разрабатываются высокоэффективные электродвигатели с 3D-печатными компонентами