Кремень КД Реклама
Кремень КМ Реклама

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

3DLab
Идет загрузка
Загрузка
28.09.2017
6196
1
RepRap

Подпишитесь на автора

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

Отписаться от уведомлений вы всегда сможете в профиле автора.

16
Приветствую!

Продолжаю цикл статей о постройке 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), печать начинается относительно текущего положения оси, которое устанавливается вручную.
Строим JAP DLP. Прошивка
Кнопки управления. Стрелки - движение оси Z, красная кнопка без фиксации вкл./выкл. двигателя, желтая с фиксацией включение вентилятора (чисто железно, без привязки к прошивке)
Строим JAP DLP. Прошивка
Фундамент всего принтера - крутилка оси 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

Что и куда подключается
Строим JAP DLP. Прошивка
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

Подпишитесь на автора

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

Отписаться от уведомлений вы всегда сможете в профиле автора.

16
Комментарии к статье