второй и третий." />
07.07.2015 21:00 Количество просмотров материала 3101 Время на чтение ~9.5 мин
Увеличить | Уменьшить Распечатать страницу

Собираем 3D принтер из LEGO-блоков - часть 2

Собираем 3D принтер из LEGO-блоков - часть 2


Снова приветствую всех мозгочинов! И выкладываю продолжение мозгоруководства по созданию своими руками 3D-принтера используя Lego-блоки.

 

sobiraem-3d-printer-iz-lego-blokov-chast-26

Начало...

 

 

Шаг 8: Электроника

 

sobiraem-3d-printer-iz-lego-blokov-chast-21

 

sobiraem-3d-printer-iz-lego-blokov-chast-22

https://www.youtube.com/watch?feature=player_embedded&v=BCJxLD84LLA

 

sobiraem-3d-printer-iz-lego-blokov-chast-23

Чтобы разобраться в электронных составляющих этой поделки рекомендую посетить эти ресурсы: первый, #Building-a-Prusa-i3-3D-Printer/">второй и третий.

Микрошаги
Двигатели Nema имеют 200 шагов/оборот, но и это число можно увеличить с помощью микростеппинга, то есть перемычек на плате Ramp (3 синих перемычки на фото). Перемычки микростеппинга выставляются до монтажа плат stepstick, и если используется драйвер двигателя A4988, то можно получить 16 микрошагов, а если Drv8825, то 32 микрошага.
Размер шага A4988

j1 j2 j3
no no no fullstep
yes no no halfstep
no yes no 1/4step
yes yes no 1/8step
yes yes yes 1/16step

Размер шага Drv8825

j1 j2 j3
no no no full step
yes no no half step
no yes no 1/4 step
yes yes no 1/4 step
no no yes 1/16 step
yes no yes 1/32 step
no yes yes 1/32step
yes yes yes 1/32step
Концевые выключатели

Для Lego-принтера можно использовать 6 концевиков, но достаточно и 3-х, по одному на каждую ось и подключаются они к контактам X1, Y1 и Z1. Каждый концевой выключатель имеет 3 провода с назначением:

- сигнал
- масса, заземление
- Vcc

 

Двигатели Nema

Шаговые двигатели имееют 4 провода для подключения к плате и пронумерованы слева направо 1A, 1B, 2A, 2B, где:

1А - черный
1В - зеленый
2А - синий
2В - красный

Весь даташит для двигателя находится 3303_0_Datasheet

После подключения всей электроники производится тестирование мозгоподелки, а именно функционирование двигателей, концевиков, экструдера и нагрева стола. Еще перед установкой софта Marlin на принтер следует изменить файл configuration.h. А вот уже после его загрузки можно начать 3D печать!

Во время моей первой печати я столкнулся с небольшими трудностями при подаче нити - была разница в настройках мозгонити и сопла экструдера, и вызвано это было настройками Pronterface. Фактический размер нити был 1.75кв.мм, а выставленный 3кв.мм, размер сопла по умолчанию был выставлен 0.5 с высотой слоя 0.4мм, а фактический диаметр сопла 0.3мм.

Заголовок и версия

#define STRING_VERSION "1.0.2"
#define STRING_URL "reprap.org"
#define STRING_VERSION_CONFIG_H __DATE__ "20150530" __TIME__ // - дата и время сборки
#define STRING_CONFIG_H_AUTHOR "(Госс, LegoPrinter)" // - указываем того, кто сделал изменения.
#define STRING_SPLASH " v "STRING_VERSION" - "STRING_URL // -будут показаны во время загрузки
Плата Ramp

В данной 3D мозгоподелке используется плата Ramps 1.4 и один экструдер.

#define MOTHERBOARD BOARD_RAMPS_13_EFB
#define EXTRUDERS 1
Термисторы и температура

Для нагрева стола используются два термистора и еще один на 100к в экструдере:

// 0 is not used
// 1 is 100k thermistor - best choice for EPCOS 100k (4.7k pullup)
// 2 is 200k thermistor - ATC Semitec 204GT-2 (4.7k pullup)
// 3 is Mendel-parts thermistor (4.7k pullup)
#define TEMP_SENSOR_0 1
#define TEMP_SENSOR_1 0
#define TEMP_SENSOR_2 0
#define TEMP_SENSOR_BED 1

Настройка температурного максимума зависит от применяемых компонентов - экструдера и нагревательного стола. Так для Geeetech Mk8 он составляет 280 градусов Цельсия.

#define HEATER_0_MAXTEMP 275
#define HEATER_1_MAXTEMP 275
#define HEATER_2_MAXTEMP 275
#define BED_MAXTEMP 150

 

Концевый выключатели и размер печатного пространства

Положение концевиков: значение 1 для максимального положения и - 1 для минимального. Начальная точка: по оси Y стол выдвинут вперед, по оси X экструдер находится слева, а по оси Z в нижнем положении. Для моего принтера эта точка описывается так:

#define X_HOME_DIR -1
#define Y_HOME_DIR -1
#define Z_HOME_DIR -1

Максимумы печатного пространства зависят от сборки:

#define X_MAX_POS 195
#define X_MIN_POS 0
#define Y_MAX_POS 215
#define Y_MIN_POS 0
#define Z_MAX_POS 200
#define Z_MIN_POS 0

 

Шаги, скорость и ускорение

Скорость подачи выставляется в мм/мин вместо мм/сс.

#define NUM_AXIS 4 // The axis order in all axis related arrays is X, Y, Z, E
#define HOMING_FEEDRATE {20*60, 20*60, 1*60, 0} // set the homing speeds (mm/min)

Шаговый двигатель Nema 17: 360/1.8=200 шагов за оборот
Микростеппинг Drv8825= 32 (max)
Микростеппинг a4988 = 16 (max)

Шаг/единицу для осей X и Y:

steps_per_mm = (шаг двигателя*микрошаг драйвера) / (расстояние между зубцами ремня* диаметр зубчатого шкива)= (200 * 32 шага) / (2 * 20 мм) = 160 шагов / мм

Шаг/единицу для оси Z:
Для 5мм-го резьбового стержня шаг зубца=0.8 (грубо) или 0.5(хорошо)
steps_per_mm = (шаг двигателя* микрошаг драйвера) / шаг зубца== (200 * 32) / 0,8 = 8000

Шаг/единицу для экструдера:

steps_per_mm = (шаг двигателя* микрошаг драйвера) / (диаметр шестерни* пи)
= (200 * 32) / (7 * 3,1415926) = 291,02618

#define DEFAULT_AXIS_STEPS_PER_UNIT {160, 160, 8000, 291.0261}
#define DEFAULT_MAX_FEEDRATE {1500, 1500, 2.5, 32} // (mm/sec)
#define DEFAULT_MAX_ACCELERATION {1500,1500,100,10000}
#define DEFAULT_ACCELERATION 1500 // X, Y, Z and E max acceleration in mm/s^2 for printing moves
#define DEFAULT_RETRACT_ACCELERATION 1500 // X, Y, Z and E max acceleration in mm/s^2 for retracts

Величины нагрева (нужна калибровка, вентилятор всегда на 100%)

#define PLA_PREHEAT_HOTEND_TEMP 180
#define PLA_PREHEAT_HPB_TEMP 70
#define PLA_PREHEAT_FAN_SPEED 255 // Insert Value between 0 and 255
#define ABS_PREHEAT_HOTEND_TEMP 240 #define ABS_PREHEAT_HPB_TEMP 100
#define ABS_PREHEAT_FAN_SPEED 255 // Insert Value between 0 and 255

 

 

Шаг 9: Настройка и калибровка

 

sobiraem-3d-printer-iz-lego-blokov-chast-24

sobiraem-3d-printer-iz-lego-blokov-chast-25

Некоторые компоненты мозгоподелки требуют калибровки перед использованием. В этом помогут пункты этого шага, выполняя которые можно повысить качество печати.

Для тестирования экструдера я использовал настройки Prusa по умолчанию из предыдущего шага, и после разогрева экструдера удалось выдавить некоторое количество PLA. Но для качественной печати придется провести вычисление требуемых параметров, затем изменить файл конфигурации и загрузить его на ATmega. Кстати, перезагрузку файла нужно проводить после каждого изменения.

На сайте Reprap.org имеется вся подробная информация для калибровки принтера, вот только там нет описания ПИД-тюнинга, описание этого процесса можно найти на Reprap wiki. Свою калибровку самоделки я как раз начал с ПИД-тюнинга, все остальные настройки не зависят от этого процесса.

ПИД-тюнинг

С помощью софта Marlin контролируется нагрев стола и экструдера, и для этого нужно установить правильные температурные значения этих объектов. При включении принтера включается нагрев стола - через резистор течет ток и стол нагревается, при достижении нужной температуры нагрев стола отключается. При этом, вследствие задержек между повышением температуры и выключением нагрева, заданная температура будет немного превышаться. ПИД параметры хранят температурные характеристики стола и экструдера, и это позволяет замедлить нагрев при достижении нужной температуры во время печати.

Нижеследующая команда (после подключения принтера к pconsole ) включает нагрев стола до достижения температуры 60 градусов, и держит ее в течение 8-ми циклов.

M303 Е-1 S60 С8

Консоль дает результаты:

bias: 78 d: 78 min: 59.79 max: 60.19 Ku: 504.75 Tu: 10.22
Classic PID Kp: 302.85 Ki: 59.24 Kd: 387.04

Автонастройка ПИД закончена и нужно записать последние значения Kp, Ki, Kd в файл сonfiguration.h

После настройки нагревательного стола настраивается экструдер. Он имеет более высокое значение температуры:

M303 S190 E0 C8

Мои первые результаты таковы:

bias: 65 d: 65 min: 186.25 max: 194.55 Ku: 19.95 Tu: 51.51
Classic PID Kp: 11.97 Ki: 0.46 Kd: 77.09

Автонастройка ПИД закончена и нужно записать последние значения Kp, Ki, Kd в файл сonfiguration.h

Настройка продолжается до тех пор, пока значения перестанут изменяться. При этом процесс настройки всегда начинается с холодных стола и экструдера.  Мои окончательные результаты таковы (не используйте их в своем принтере, определите свои!):

#define PIDTEMP
#define DEFAULT_Kp 11.60
#define DEFAULT_Ki 0,40
#define DEFAULT_Kd 83.55

#define PIDTEMPBED
#define DEFAULT_bedKp 310,61
#define DEFAULT_bedKi 60.76
#define DEFAULT_bedKd 396,96
Двигатели

Судя по инструкции параметры для сборки PrusaI3 таковы:

#define DEFAULT_AXIS_STEPS_PER_UNIT {78.7402,78.7402,4000,760 * 1.1}
Если используется драйвер 8825 вместо 4988 (1/16 вместо 1/32 ) тогда параметры таковы:

#define DEFAULT_AXIS_STEPS_PER_UNIT {} 157.4804,157.4804,8000,317,6616

Но все эти значения не подходят к моему мозгопринтеру и нужно вычислять верные самостоятельно, что и вам рекомендую. Окончательные параметры таковы:

#define DEFAULT_AXIS_STEPS_PER_UNIT {160, 160, 8000, 291,0261}

Отличие всего лишь в 2.52 шаг/единицу, но разница в качестве заметна.

 

Экструдер

Мои вычисления следующие:
steps_per_mm = (шаг двигателя * микрошаг драйвера) / (диаметр шестерни* пи) = (200 * 32) / (7 * 3,1415926) = 291,02618

Но это в теории, а на практике все по-другому. Экструдер работал абы как, еще потому что я выставил неверное значение диаметра сопла. После установки верного диаметра 0.3мм принтер стал выдавать слишком много нити, и я думал что это из-за удвоенного значения, может микрошаг драйвера не 1/32, а 1/16. От подачи (с помощью Pronterface) 10см нити сопло использовало лишь 5.4см, поэтому я умножил мои значения на 0.54 и повторил тест после перезагрузки прошивки принтера. И наконец, со значением 191 шаг/мм, принтер выдавал нужное количество 100мм нити.

Следующий параметр который я настраивал это скорость подачи экструдера (второе фото). Начал я с 100мм нити с скоростью 10мм/сек, это заняло 10 минут. Затем выставил 30мм/сек с расходом все тех же 100мм нити и повышал я значение скорости до тех пор, пока экструдер уже не смог справиться с назначенными 100мм нити, это произошло на скорости 75мм/сек. После этих тестов я выставил безопасное значение - 60мм/сек.

 

Выравнивание стола

Этот процесс подробно описывается в Reprap wiki - Leveling the Print Bed.

 

Программное обеспечение

По умолчанию размер сопла выставлен 0.5мм, а фактический размер 0.3мм, поэтому требуется изменить настройки в программном обеспечении перед печатью. Моя первая тестовая печать оказалась неудачной, так как я использовал значение по умолчанию, что привело к неправильной подачи нити и слишком большой высоте слоя.

 

 

Шаг 10: Печать

 

sobiraem-3d-printer-iz-lego-blokov-chast-26

sobiraem-3d-printer-iz-lego-blokov-chast-27

sobiraem-3d-printer-iz-lego-blokov-chast-28

sobiraem-3d-printer-iz-lego-blokov-chast-29

sobiraem-3d-printer-iz-lego-blokov-chast-210

На данном этапе, хотя и нужна некоторая калибровка, принтер работает нормально. В дальнейшем мне нужно изменить параметры нити.

Оси принтера должны двигаться плавно, мозгодвигатели не должны делать пропуски. С этими проблемами, кстати, я столкнулся во время первой печати.

Данное видео показывает работу Lego-принтера до калибровки.

 

https://www.youtube.com/watch?feature=player_detailpage&v=lC0Og3qXLqk

 

Будет полезно обучиться работе в Pronterface и научиться создавать stl-файлы. Себе я скачал несколько уроков и учусь управлять 3D-принтером, а научившись чему-либо полезному поделюсь.

Доработка на 3 июня 2015:

Мне удалось поменять настройки Pronterface изменив вручную GCode (выставить высоту слоя 0.1мм). Далее я скачал stl-файл и начал печать. Все шло нормально, но потом принтер начал делать пропуски по осям X и Y. Причина оказалась в том, что подшипник LM8UU, купленный на популярном ресурсе, не скользил как должен. После замены подшипников (во время которой я сделал несколько фото Y-каретки) я снова запустил печать и все прошло отлично!

Полностью завершать печать я не стал, так как не хватило нити, да и заняло бы это 7 часов. Хотя понижения процента заполнения может решить обе проблемы.

 

 

Шаг 11: Печать LEGO-блока

 

sobiraem-3d-printer-iz-lego-blokov-chast-211

https://www.youtube.com/watch?feature=player_embedded&v=nZb0KmKBaO4

 

sobiraem-3d-printer-iz-lego-blokov-chast-212

https://www.youtube.com/watch?feature=player_embedded&v=6LpYUot-bZI

 

sobiraem-3d-printer-iz-lego-blokov-chast-213

sobiraem-3d-printer-iz-lego-blokov-chast-214

sobiraem-3d-printer-iz-lego-blokov-chast-215

 

Доработка на 5 июня 2015:

Решил посмотреть - сможет ли поделка распечатать Lego-блок. Скачал stl-файл с Lego-кирпичиком и со второго раза, с высотой слоя 0.2мм получилось все-таки распечатать кирпичик. Может не совсем идеальный, но достаточно точный (первое фото). Заняло это всего 25 минут времени.

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

 

https://www.youtube.com/watch?feature=player_detailpage&v=6LpYUot-bZI

 

На втором фото показаны первый кирпичик (оранжевый), кирпичик второй попытки и настоящий Lego-кирпич.
Доработка на 8 июня 2015:

Откалибровал подачу сопла (шаг калибровки), скачал stl-файл полого мячика и запустил печать. Расчетное время печати с высотой слоя 0.2мм составит 1 час 37 минут (и 1746см нити).

На одном из своих видео процессов печати я увидел отклонение влево ремня оси X, поэтому я заменил Lego-колесико в конце ремня на настоящий шарикоподшипник. Это дало повышение качества при последующей мозгопечати.

 

 

Шаг 12: Первая не пробная печать

 

sobiraem-3d-printer-iz-lego-blokov-chast-216

sobiraem-3d-printer-iz-lego-blokov-chast-217

sobiraem-3d-printer-iz-lego-blokov-chast-218

sobiraem-3d-printer-iz-lego-blokov-chast-219

sobiraem-3d-printer-iz-lego-blokov-chast-220

Дважды распечатав полый шарик, я заметил, что нить слишком долго остается расплавленной, особенно на свесах и перемычках, и в результате шарик получается овальным, а не круглым. Наверное по этой причине многие принтеры имеют дополнительное охлаждение рядом с соплом.

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

Первым завершенным распечатанным объектом стала полигональная ваза, которую я распечатал по закаченному и немного модифицированному файлу в пропорции 3:22.

Поделка работает не как Lego-игрушка, а как настоящий 3D-принтер. Обновленные оси X и Y дают действительное повышение качества печати.

 

 

Шаг 13: Улучшения

 

sobiraem-3d-printer-iz-lego-blokov-chast-221

sobiraem-3d-printer-iz-lego-blokov-chast-222

sobiraem-3d-printer-iz-lego-blokov-chast-223

sobiraem-3d-printer-iz-lego-blokov-chast-224

Полный список результатов и изменений таков:

- Два первых теста (квадратные пластинки): большинство параметров прошивки стоят по умолчанию, без калибровки.

- Стопор двери: регулировка параметров X и Y на основе измеренных значений первой печати. Видны пропуски работы шаговых двигателей.

- Третья и четвертая попытка: между этими распечатками были заменены все подшипники и сокращена подача нити.

- Первый Lego-кирпичик (желтый): нить отстает от нагревательного стола. Печать слоем 0.1мм дает хороший результат.

- Lego-кирпич с высотой слоя 0,2 мм.

Все результаты в довольно быстрые сроки.
Последующие улучшения (уже выполненные)

Главное преимущество создания мозгопринтера из Lego-блоков в том, что его конструкцию можно изменить. Одной из проблем возникших в процессе сборки было соединение оси Z c 5мм резьбовым стержнем, и решилась эта проблема установкой трубки от анкера (см. фото).

Позднее я приобрел 2 муфты двигателя М5 оси Z, они цельнометаллические и имеют внутреннюю резьбу, их можно использовать вместо больших металлических пробок. Красный технический кирпичик 1х8 (последнее фото) оси Z соединен с муфтой и вследствие чего, вся ось может свободно перемещаться по резьбовому стержню.

А теперь сайты полезные для сборки мозгопринтера:

Prusa i3 Rework, #Building-a-Prusa-i3-3D-Printer/">Building a Prusa i3, 3D Printer botbuilder

И на этом руководство по созданию Lego-поделки завершено, надеюсь было полезно.

Удачи в творчестве!

( Специально для МозгоЧинов #LEGO-3d-Printer

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]


Вверх