Выход первых аппаратов для 3D-печати вызвал немало восторженных откликов. Поистине, это одна из наиболее ярких разработок сегмента IT в начале 21 века. На данный момент трехмерные принтеры достаточно прочно вошли в специализированные области приборостроения, промышленности и других сфер. Компании, которым нужен высокоэффективный аппаратный производитель небольших деталей, охотно покупают 3D-принтер. Цена, составляющая порядка 100 тыс. руб., их не останавливает, поскольку технологичное устройство себя окупает.

Что касается домашнего пользования, подобные вложения редко оправданы, так как смысл в приобретении такой техники есть. Сама потребность в наличии такого прибора объясняется, как правило, любопытством и желанием поэкспериментировать. Хотя, конечно, есть немало примеров, когда 3D-принтеры активно используются в быту. Так или иначе, методики самостоятельного изготовления инновационного устройства за последние годы обрели массу последователей. Подогревается же этот интерес к «трехмерному производству» успехами домашних мастеров.

Из чего создается принтер?

Как обычно бывает в самодельном творчестве, поле для реализации задумки безгранично. Каждый мастер вырабатывает свои рецепты и технологии, позволяющие воплотить идею в жизнь. И все же 3D-принтер своими руками изготовить без специальных методичек и знаний невозможно. Изначально примером для первых энтузиастов были продукты Z Corporation и 3D-Systems. Наиболее же весомый вклад в индустрию самодельных устройств внесла компания RepRap, занимающаяся разработкой комплектов для принтеров с трехмерной печатью.

Собственно, перед каждым, кто решит сделать подобный продукт, стоит дилемма: воспользоваться комплектом, требующим лишь сборки, или же приобретать комплектующие по-отдельности. Ответ на этот вопрос каждый решает сам, но 3D-принтер своими руками можно сделать только при наличии соответствующих знаний и технических навыков, которые обязательно потребуются в процессе изготовления.

Механические компоненты

Независимо от того, приобретен ли готовый пакет, или решено закупать составные части самостоятельно (желательно в Китае), ни одна сборка 3D-принтера не обходится без следующих элементов:

  • крепежные детали, при помощи которых формируется каркас прибора;
  • металлические направляющие для подвижных компонентов;
  • шестерни, на основе которых будет обеспечена трансляция от электроприводов к движимым узлам;
  • площадка, которая выступит специальным полем для изготовления объектов;
  • нагревательное устройство и термопара, с помощью которой будет контролироваться температура.

Сборка основной конструкции

Процесс сборки зависит от набора составляющих. При грамотном подходе его можно реализовать на глаз - но в этом случае надо четко придерживаться конфигурации расположения электропривода, направляющих и головки экструдера по осям. Без специального комплекта 3D-принтер своими руками можно скомпоновать из фанерных листов, подходящих шурупов и зажимов.

Мотор фиксируется каждой оси и будет выступать в качестве источника питания для поясной системы, которая отвечает за передвижение по направляющим. Также на одной из осей следует предусмотреть приводное устройство, за счет которого будет выполняться передвижение платформы. Другая ось, зафиксированная на верхушке 3D-принтера, обеспечит движение экструдера.

Электротехнические устройства

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

  • выключатели, которые будут отвечать за ограничение печати на «рабочей» области по главным осям;
  • шаговые электромоторы;
  • плата с микроконтроллером - данный компонент является одним из важнейших: он обеспечивает печать на 3D-принтере и управляет позициями каретки.

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

Подключение электроники

На этом этапе нужно реализовать установку центрального стержня (опоры) и головки экструдера, от которого зависит работа 3D-принтера и, в частности, техника печати. Далее последует соединение площадки для печати и элементов нагрева. В завершение останется подключить монтажную плату и обеспечить соединение кабелей с нагревателями, блоком питания и температурными индикаторами. Соединение проводов, как и другие операции, не вызовут проблем у тех, кто знаком с базовыми правилами радиотехники. Во многом ход работы схож с установкой перемычек на компьютерной «материнке».

Важно помнить, что от надежности каркаса во многом зависит, насколько качественной выйдет печать на 3D-принтере, поэтому все зажимы, крепежи и соединения следует выполнять максимально точно - без отклонений в пропорциях и последовательности.

Кроме этого, здесь же стоит предусмотреть возможность изъятия «рабочей» площадки. В ходе эксплуатации неизбежно возникнет необходимость ее чистки, поэтому зажимы должны легко отсоединяться. К слову, специальные комплекты располагают ZIP-локами, которые позволяют без труда фиксировать монтажную плату. Впрочем, их качество редко бывает высоким, поэтому следует быть готовым к замене фиксаторов.

Работа аппаратной начинки

Обработанный слайсером код передается в оперативную память устройства, после чего микроконтроллер начинает свою работу. В процессе исполнения алгоритма электроника может корректироваться в зависимости от состояния термодатчиков. Кроме этого, система управляет параметрами, в соответствии с которыми двигается экструдер для 3D-принтера и отслеживаются характеристики температуры. От корректности дозирования и выдавливания расходного материала будет зависеть качество полученного трехмерного объекта.

Точность печати и ее повышение

Помимо настройки контроллера немалую роль в параметрах работы каретки, напрямую определяющей точность печати, играет и шаговый мотор. Сразу важно отметить, что самодельный 3D-принтер, цена которого составит от 30 до 50 тыс. руб., несомненно, обойдется дешевле фирменного. Желательно обеспечить его производительным электроприводом. Этот мини-агрегат применяется для передвижения головки экструдера и определяет чувствительность его работы. Например, при 360-градусном повороте шпинделя число шагов электродвигателя составит 200, соответственно, будет обеспечена точность в 5 мкм. В случае если количество шагов будет 400 — точность обеспечивается на 2,5 мкм. Таким образом, электропривод, располагающий наибольшим числом шагов, сможет гарантировать и более высокую точность.

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

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

В фирменных устройствах компании специально разрабатывают софт, предназначенный для конкретных моделей. По сути, это несложные программы для 3D-принтера, которые также называются слайсерами. С подобными функциями справляются и приложения типа Skineforge, Slic3r и Kisslacer. Для плодотворной работы также потребуется 3D-редактор, который будет сохранять заготовки в файле STL. Стоит отметить, что при использовании крупных моделей принтер может некорректно выполнить нарезку из-за недостаточной площади платформы. Решение таких проблем заключается в элементарном разделении виртуального объекта на несколько частей.

Мне периодически задают вопросы по "малинкам", "апельсинкам" и тому, куда это вообще и зачем. И тут я начинаю понимать, что перед тем, как писать "узкие" инструкции по настройке, неплохо было бы вкратце рассказать о том, как эта кухня вообще работает, снизу вверх и слева направо. Лучше поздно, чем никогда, поэтому вашему вниманию предлагается некое подобие ликбеза по ардуинам, рампсам и другим страшным словам.

Тому, что у нас сейчас есть возможность за разумные деньги купить или собрать собственный FDM 3D-принтер, мы обязаны движению RepRap. Не буду сейчас о его истории и идеологии - нам сейчас важно то, что именно в рамках RepRap сформировался определенный "джентльменский набор" железа и софта.

Чтобы не повторяться, скажу один раз: в рамках данного материала я рассматриваю только "обычные" FDM 3D принтеры, не уделяя внимания промышленным проприетарным монстрам, это совершенно отдельная вселенная со своими законами. Бытовые устройства с "собственными" железом и софтом тоже остануться за рамками этой статьи. Далее под "3D принтером" я понимаю полностью или частично открытое устройство, "уши" которого торчат из RepRap.

Часть первая - 8 бит хватит всем.

Поговорим про восьмибитные микроконтроллеры Atmel с архитектурой AVR, применительно к 3D-печати. Исторически сложилось так, что "мозг" большинства принтеров - это восьмибитный микроконтроллер от Atmel с архитектурой AVR, в частности, ATmega 2560. А в этом виноват другой монументальный проект^ его название - Arduino. Программная его составляющая в данном случае не интереса - Arduino-код более прост для понимания новичками (по сравнению с обычным C/С++), но работает медленно, а ресурсы жрет как бесплатные.

Поэтому, когда ардуинщики упираются в нехватку производительности, они или бросают затею, или потихоньку превращаются в эмбеддеров ("классических" разработчиков микроконтроллерных устройств). При этом, кстати, "железо" Arduino бросать совершенно не обязательно - оно (в виде китайских клонов) дешевое и удобное, просто начинает рассматриваться не как Arduino, а как микроконтроллер с минимальной необходимой обвязкой.

По факту, Arduino IDE используется как удобный в установке набор из компилятора и программатора, "языком" Arduino в прошивках и не пахнет.

Но я немного отвлекся. Задача микроконтроллера - выдавать управляющие воздействия (осуществлять так называемый "ногодрыг") в соответствии с получаемыми инструкциями и показаниями датчиков. Очень важный момент: данные маломощные микроконтроллеры обладают всеми типичными чертами компьютера - в маленьком чипе есть процессор, оперативная память, постоянная память (FLASH и EEPROM). Но если ПК работает под управлением операционной системы (и она уже "разруливает" взаимодействие железа и многочисленных программ), то на "меге" у нас крутится ровно одна программа, работающая с железом напрямую. Это принципиально.

Часто можно услышать вопрос, почему не делают контроллеры 3D-принтеров на основе микрокомпьютера вроде того же Raspberry Pi. Казалось бы, вычислительной мощности вагон, можно сразу сделать и веб-интерфейс, и кучу удобных плюшек… Но! Тут мы вторгаемся в страшную область систем реального времени.

Википедия дает следующее определение: "Система, которая должна реагировать на события во внешней по отношению к системе среде или воздействовать на среду в рамках требуемых временных ограничений". Если совсем на пальцах: когда программа работает "на железе" непосредственно, программист полностью контролирует процесс и может быть уверен, что заложенные действия произойдут в нужной последовательности, и что на десятом повторении между ними не вклинится какое-то другое. А когда мы имеем дело с операционной системой, то она решает, когда исполнять пользовательскую программу, а когда отвлечься на работу с сетевым адаптером или экраном. Повлиять на работу ОС, конечно, можно. Но предсказуемую работу с требуемой точностью можно получить не в Windows, и не в Debian Linux (на вариациях которой в основном работают микро-пк), а в так называемой ОСРВ (операционная система реального времени, RTOS), изначально разработанной (или доработанной) для данных задач. Применение RTOS в RepRap на сегодняшний день - жуткая экзотика. А вот если заглянуть к разработчикам станков с ЧПУ, там уже нормальное явление.

Для примера - плата не на AVR, а на 32-битном NXP LPC1768. Smoothieboard называется. Мощи - уйма, функций - тоже.

А дело все в том, что на данном этапе развития RepRap, "8 бит хватит всем". Да, 8 бит, 16 МГц, 256 килобайт флеш-памяти и 8 килобайт оперативной. Если не всем, то очень многим. А тем, кому недостаточно (это бывает, например, при работе с микрошагом 1/32 и с графическим дисплеем, а также с дельта-принтерами, у которых относительно сложная математика расчета перемещений), в качестве решения предлагаются более продвинутые микроконтроллеры. Другая архитектура, больше памяти, больше вычислительной мощности. И софт все равно в основном работает "на железе", хотя, некоторые заигрывания с RTOS маячат на горизонте.

Marlin и Mega: частота сигнала STEP

Прежде чем переходить ко второй части и начинать разговор об электронике RepRap. Я хочу попытаться разобраться с одним спорным моментом - потенциальных проблемах с микрошагом 1/32. Если теоретически прикинуть, то исходя из технических возможностей платформу её производительности не должно хватать для перемещения со скоростью выше 125 мм/с.

Для проверки этого продположения я построил "тестовый стенд", подключил логический анализатор, и стал экспериментировать. "Стенд" представляет собой классический бутерброд "Mega+RAMPS" с переделанным пятивольтовым питанием, установлен один драйвер DRV8825 (1/32). Двигатель и ток упоминать смысла нет - результаты полностью идентичны при "полном" подключении, при наличии драйвера и отсутствии двигателя, при отсутствии и драйвера и двигателя.

Анализатор - китайский клон Saleae Logic, подключен к пину STEP драйвера. Прошивка Marlin 1.0.2 настроена следующим образом: максимальная скорость 1000 мм/с на ось, CoreXY, 160 шагов на мм (это для двигателя с шагом 1.8", 20-зубого шкива, ремня GT2 и дробления 1/32).

Методика эксперимента

Задаем маленькое ускорение (100 мм/с) и запускаем перемещение по оси X на 1000 мм с различными целевыми скоростями. Например, G-код G1 X1000 F20000. 20000 - это скорость в мм/мин, 333.3(3) мм/с. И смотрим, что у нас с импульсами STEP.

Общие результаты


То есть, отталкиваясь от частоты прерываний в 10 КГц, мы получаем эффективную частоту до 40 КГц. Применив к этому немножко арифметики, получаем вот что:

до 62.5 мм/с - один шаг на прерывание;
до 125 мм/с - два шага на прерывание;
до 250 мм/с - четыре шага на прерывание.

Это теория. А что на практике? А если задать больше 250 мм/с? Ну, хорошо, даю G1 X1000 F20000 (333.3(3) мм/с) и анализирую полученное. Измеренная частота импульсов при этом составляет почти 40 КГц (250 мм/с). Логично.

На скорости выше 10000 мм/мин (166,6(6) мм/с) я стабильно получаю провалы в тактировании. На обоих движках синхронно (напомню, CoreXY). Длятся они 33 мс, находятся примерно за 0.1 с до начала снижения скорости. Иногда такой же провал есть в начале движения - через 0.1 после завершения набора скорости. Вообще, есть подозрение, что он устойчиво пропадает на скорости до 125 мм/с - то есть, когда не применяются 4 шага на прерывание, но это только подозрение.

Как интерпретировать этот результат - я не знаю. С какими-то внешними воздействиями она не коррелирует - с общением по последовательному порту не совпадает, прошивка собрана без поддержки всяких дисплеев и SD-карт.

Мысли

1. Если не пытаться что-то нашаманить с Marlin, потолок скорости (1.8", 1/32, 20 зубов, GT2) - 250 мм/с.
2. На скоростях выше 125 мм/с (гипотетически) есть глюк с провалом тактирования. Где и как он будет проявляться в реальной работе - я предсказать не могу.
3. В более сложных условиях (когда процессор что-то усиленно считает) точно будет не лучше, а скорее - хуже. Насколько - вопрос для куда более монументального исследования, ведь придется сопоставлять запланированные программой перемещения с реально выданными (и захваченными) импульсами - на это у меня пороху не хватит.

Часть 2. Шаговый квартет.

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


Move it!

В «прямоугольных» принтерах нужно обеспечить перемещение по трем осям. Допустим, двигать печатающую головку по X и Z, а стол с моделью - по Y. Это, например, привычный, любимый китайскими продавцами и нашими покупателями Prusa i3. Или Mendel. Можно двигать голову только по X, а стол - по Y и Z. Это, например, Felix. Я практически сразу как вляпался в 3D-печать (с МС5, у которого XY-стол и Z-голова), так стал поклонником перемещения головы по X и Y, а стола - по Z. Это кинематика Ultimaker, H-Bot, CoreXY.

Короче, вариантов много. Давайте для простоты считать, что у нас три мотора, каждый из которых отвечает за движение чего-нибудь по одной из осей в пространстве, согласно декартовой системе координат. У «прюши» за вертикальное перемещение отвечают два двигателя, суть явления это не меняет. Итак, три мотора. Почему в заголовке квартет? Потому что надо еще пластик подавать.

В ногу

Традиционно используются шаговые двигатели. Их фишка - хитрая конструкция обмоток статора, в роторе используется постоянный магнит (то есть, контактов, касающихся ротора нет - ничего не стирается и не искрит). Шаговый двигатель, согласно своему названию, двигается дискретно. Наиболее распространенный в рамках RepRap образчик имеет типоразмер NEMA17 (по сути, регламентируется посадочное место - четыре крепежных отверстия и выступ с валом, плюс два габарита, длина может варьироваться), оснащен двумя обмотками (4 провода), а полный оборот его состоит из 200 шагов (1.8 градуса на шаг).

В простейшем случае, вращение шагового двигателя осуществляется путем последовательной активации обмоток. Под активацией понимается приложение к обмотке напряжения питания прямой или обратной полярности. При этом схема управления (драйвер) должна не только уметь коммутировать «плюс» и «минус», но и ограничивать потребляемый обмотками ток. Режим с коммутацией полного тока называется полношаговым, и у него есть весомый недостаток - на низких скоростях двигатель жутко дергается, на чуть более высоких - начинает греметь. В общем, ничего хорошего. Для увеличения плавности движения (точность не увеличивается, дискретность полных шагов никуда не пропадает!) применяется микрошаговый режим управления. Он заключается в том, что ограничение тока, подаваемого на обмотки, изменяется по синусоиде. То есть, на один реальный шаг приходится некоторое количество промежуточных состояний - микрошагов.

Для реализации микрошагового управления двигателями применяются специализированные микросхемы. В рамках RepRap их две - A4988 и DRV8825 (модули на основе этих микросхем обычно называются так же). Плюс, осторожно сюда начинают проникать хитроумные TMC2100. Драйверы шаговых двигателей традиционно выполняются в виде модулей с ножками, но бывают и напаяны на плату. Второй вариант с первого взгляда менее удобен (нет возможности изменить тип драйвера, да и при выходе оного из строя возникает внезапный геморрой), но плюсы тоже имеются - на продвинутых платах обычно реализуется программное управление током двигателей, а на многослойных платах с нормальной разводкой запаянные драйверы охлаждаются через «пузо» чипа на теплоотводный слой платы.

Но, опять же, говоря о самом распространенном варианте - микросхема драйвера на собственной печатной плате с ножками. На входе у нее три сигнала - STEP, DIR, ENABLE. Еще три вывода отвечают за конфигурацию микрошага. На них мы подаем или не подаем логическую единицу, устанавливая или снимая джамперы (перемычки). Логика микрошага прячется внутри чипа, нам туда влезать не надо. Можно запомнить только одно - ENABLE разрешает работу драйвера, DIR определяет направление вращения, а импульс, поданный на STEP, говорит драйверу о том, что необходимо сделать один микрошаг (в соответствии с заданной джамперами конфигурацией).

Основное отличие DRV8825 от A4988 - поддержка дробления шага 1/32. Есть другие тонкости, но для начала достаточно этого. Да, модули с этими чипами вставляются в колодки управляющей платы по-разному. Ну, так получилось с точки зрения оптимальной разводки плат модулей. А неопытные пользователи жгут.

В общем случае, чем выше значение дробления, тем плавнее и тише работают двигатели. Но при этом увеличивается нагрузка на «ногодрыг» - ведь выдавать STEP приходится чаще. О проблемах при работе на 1/16 лично мне не известно, а вот когда возникает желание полностью перейти на 1/32, уже может возникнуть нехватка производительности «меги». Особняком тут стоят TMC2100. Это драйверы, которые принимают сигнал STEP с частотой как для 1/16, а сами «додумывают» до 1/256. В результате имеем плавную бесшумную работу, но не без недостатков. Во-первых, модули на TMC2100 стоят дорого. Во-вторых, лично у меня (на самодельном CoreXY под названием Kubocore) с этими драйверами наблюдаются проблемы в виде пропуска шагов (соответственно, сбой позиционирования) при ускорениях выше 2000 - с DRV8825 такого нет.

Резюмируя в трех словах: на каждый драйвер нужно две ноги микроконтроллера, чтобы задать направление и выдавать импульс микрошага. Вход разрешения работы драйвера обычно общий на все оси - кнопка отключения двигателей в Repetier-Host как раз одна. Микрошаг - это хорошо с точки зрения плавности движений и борьбы с резонансами и вибрацией. Ограничение максимального тока двигателей надо настраивать с помощью подстроечных резисторов на модулях драйверов. При превышении тока мы получим чрезмерный нагрев драйверов и двигателей, при недостаточном токе будет пропуск шагов.

Спотыкач

В RepRap не предусмотрено обратной связи по положению. То есть, программа управляющего контроллера не знает, где в данный момент находятся подвижные части принтера. Странно, конечно. Но при прямой механике и нормальных настройках это работает. Принтер перед началом печати перемещает все, что можно, в начальную позицию, и от нее уже отталкивается во всех передвижениях. Так вот, противное явление пропуска шагов. Контроллер выдает драйверу импульсы, драйвер пытается провернуть ротор. Но при чрезмерной нагрузке (или недостаточном токе) происходит "отскок" - ротор начинает поворачиваться, а потом возвращается в исходное положение. Если это происходит на оси X или Y, мы получаем сдвиг слоя. На оси Z - принтер начинает "вмазывать" следующий слой в предыдущий, тоже ничего хорошего. Нередко пропуск происходит на экструдере (из-за забива сопла, чрезмерной подачи, недостаточной температуры, слишком малого расстояния до стола при начале печати), тогда мы имеем частично или полностью непропечатанные слои.

С тем, как проявляется пропуск шагов, все относительно понятно. Почему это происходит? Вот основные причины:

1. Слишком большая нагрузка. Например, перетянутый ремень. Или перекошенные направляющие. Или "убитые" подшипники.

2. Инерция. Чтобы быстро разогнать или затормозить тяжелый объект, нужно затратить больше усилий, чем при плавном изменении скорости. Поэтому сочетание больших ускорений с тяжелой кареткой (или столом) вполне может вызвать пропуск шагов при резком старте.

3. Неправильная настройка тока драйвера.

Последний пункт - вообще тема для отдельной статьи. Если вкратце - у каждого шагового двигателя есть такой параметр, как номинальный ток. Он для распространенных моторов находится в диапазоне 1.2 - 1.8 А. Так вот, при таком ограничении тока у вас должно все хорошо работать. Если нет - значит, двигатели перегружены. Если нет пропуска шагов с более низким ограничением - вообще прекрасно. При снижении тока относительно номинала уменьшается нагрев драйверов (а они могут перегреваться) и двигателей (больше 80 градусов не рекомендуется), плюс, снижается громкость "песни" шаговиков.

Часть 3. Горячка.

В первой части цикла я рассказывал о маленьких слабеньких 8-битных микроконтроллерах Atmel архитектуры AVR, конкретно - о Mega 2560, которая "рулит" большинством любительских 3D-принтеров. Вторая часть посвящена управлению шаговыми двигателями. Теперь - о нагревательных приборах.

Суть FDM (fused deposition modeling, торговая марка Stratasys, всем обычно до лампочки, но острожные люди придумали FFF - fused filament fabrication) в послойном наплавлении филамента. Наплавление происходит следующим образом: филамент должен расплавиться в определенной зоне хотэнда, и расплав, подталкиваемый твердой частью прутка, выдавливается через сопло. При движении печатающей головки происходит одновременное выдавливание филамента и приглаживание его к предыдущему слою концом сопла.

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

Здесь мы вторгаемся в чертоги дисциплины под названием ТАУ (теория автоматического управления). Не совсем моя специальность (айтишник, но выпускающая кафедра АСУ), но курс такой у нас был, с преподавателем, который показывал слайды на проекторе и периодически над ними угорал с комментариями: «Ой, доверил этим студентам лекции в электронный вид переводить, они тут таких косяков налепили, ну, ничего, вы разберетесь». Ладно, лирические воспоминания в сторону, поприветствуем ПИД-регулятор.

Нельзя писать про ПИД-регулирование без этой формулы. В рамках данной статьи она просто для красоты.

Очень рекомендую ознакомиться со статьей , там довольно доступно написано про ПИД-регулирование. Если же совсем упростить, то выглядит картина так: у нас есть некоторое целевое значение температуры. И с определенной частотой мы получаем текущее значение температуры, и нам необходимо выдать управляющее воздействие, чтобы уменьшить ошибку - разницу между текущим и целевым значением. Управляющее воздействие в данном случае - ШИМ-сигнал на затвор полевого транзистора (мосфета) нагревателя. От 0 до 255 «попугаев», где 255 - максимальная мощность. Для тех, кто не знает, что такое ШИМ - простейшее описание явления.


Итак. Каждый «такт» работы с нагревателем нам необходимо принять решение о выдаче от 0 до 255. Да, мы можем просто включать или выключать нагреватель, не заморачиваясь ШИМ. Допустим, температура выше 210 градусов - не включаем. Ниже 200 - включаем. Только в случае с нагревателем хотэнда такой разброс нас не устроит, придется поднимать частоту «тактов» работы, а это дополнительные прерывания, работа АЦП тоже не бесплатная, а у нас крайне ограниченные вычислительные ресурсы. В общем, надо управлять точнее. Поэтому ПИД-регулирование. П - пропорциональное, И - интегральное, Д - дифференциальное. Пропорциональная составляющая отвечает за «прямую» реакцию на отклонение, интегральная - за на накопленную ошибку, дифференциальная в ответе за обработку скорости изменения ошибки.

Если еще проще - ПИД-регулятор выдает управляющее воздействие в зависимости от текущего отклонения, с учетом «истории» и скорости изменения отклонения. Нечасто я слышу о калибровке ПИД-регулятора «марлина», но функция такая имеется, в результате мы получаем три коэффициента (пропорциональный, интегральный, дифференциальный) позволяющие наиболее точно управлять именно нашим нагревателем, а не сферическим в вакууме. Желающие могут почитать про код M303 .


График температуры хотэнда (Repetier-Host, Marlin)

Чтобы проиллюстрировать крайне низкую инерцию хотэнда, я на него просто дунул.

Ладно, это про хотэнд. Он есть у всех, если речь идет о FDM/FFF. Но некоторые любят погорячее, так возникает великий и ужасный, жгущий мосфеты и рампсы, нагревательный стол. С электронной точки зрения с ним все сложнее, чем с хотэндом - мощность относительно большая. А вот с позиций автоматического регулирования проще - система более инертная, да и допустимая амплитуда отклонения выше. Поэтому стол с целью экономии вычислительных ресурсов обычно управляется по принципу bang-bang («пыщь-пыщь»), этот подход я выше описывал. Пока температура не достигла максимума, греем на 100%. Потом пусть остывает до допустимого минимума, и снова греем. Также отмечу, что при подключении горячего стола через электромеханическое реле (а так нередко делают, чтобы «разгрузить» мосфет) только bang-bang является допустимым вариантом, ШИМить реле не надо.

Датчики

Напоследок - про терморезисторы и термопары. Терморезистор изменяет свое сопротивление в зависимости от температуры, характеризуется номинальным сопротивлением при 25 градусах и температурным коэффициентом. По факту, устройство нелинейное, и в том же «марлине» есть таблицы для пересчета полученных с терморезистора данных в температуру. Термопара - редкий гость в RepRap, но попадается. Принцип действия иной, термопара является источником ЭДС. Ну, то есть, выдает определенное напряжение, величина которого зависит от температуры. Напрямую к RAMPS и подобным платам не подключается, но активные адаптеры существуют. Что интересно, также в «марлине» предусмотрены таблицы для металлических (платиновых) термометров сопротивления. Не такая уж редкая вещь в промышленной автоматике, но встречается ли «живьем» в RepRap - мне не известно.

Часть 4. Единение.

3D-принтер, работающий по принципу FDM/FFF состоит, по сути, из трех частей: механики (передвижение чего-то в пространстве), нагревательных приборов и электроники, всем этим управляющей.

В общих чертах я уже рассказал, как каждая из этих частей работает, а теперь попробую порассуждать на тему "как это собирается в одно устройство". Важно: многое буду описывать с позиций кустаря-самодельщика, не оснащенного дерево- или металлообрабатывающими станками и оперирующего молотком, дрелью и ножовкой. И еще, чтобы не распыляться, в основном про "типовой" RepRap - один экструдер, область печати в районе 200х200 мм.

Наименее вариативное

Оригинальный E3D V6 и его очень недобрая цена.

Начну с нагревателей, тут популярных вариантов не очень много. Сегодня в среде самодельщиков наиболее распространен хотэнд E3D .

Точнее, его китайские клоны весьма плавающего качества. Про мучения с полировкой цельнометаллического барьера или использование трубки боудена "до сопла" не буду - это отдельная дисциплина. Из личного небольшого опыта - хороший металлический барьер прекрасно работает с ABS и PLA, без единого разрыва. Плохой металлический барьер нормально работает с ABS и отвратно (вплоть до "никак" - с PLA), и в таком случае бывает проще поставить столь же плохой термобарьер, но с тефлоновой вставкой.

В целом же, E3D очень удобны - можно поэкспериментировать как с термобарьерами, так и с нагревателями - доступны как "маленькие", так и Volcano (для толстых сопел и быстрой брутальной печати). Тоже условное деление, кстати. Сейчас использую Volcano с соплом 0.4. А некоторые изобретают втулку-проставку, и работают себе спокойно с короткими соплами от обычного E3D.

Программа минимум - покупаем типовой китайский комплект "E3D v6 + нагреватель + набор сопел + кулер". Ну и, рекомендую сразу пачку разных термобарьеров, чтобы когда дело дойдет до этого, не ждать очередной посылки.

Второй нагреватель - это не второй хотэнд (хотя тоже неплохо, но не будем погружаться), а стол. Можно причислить себя к рыцарям холодного стола, и вообще не поднимать вопрос нижнего подогрева - да, тогда сужается выбор филамента, придется немного подумать о надежной фиксации модели на столе, но зато вы никогда не узнаете про обугленные клеммы RAMPS, глубокие отношения с тонкими проводами и дефект печати типа "слоновья нога". Ладно, пусть нагреватель все-таки будет. Два популярных варианта - из фольгированного стеклотекстолита и алюминия.

Первый - простой, дешевый, но кривой и "жидкий", требует нормального крепления к жесткой конструкции и ровного стекла сверху. Второй

По сути, та же печатная плата, только в качестве подложки - алюминий. Хорошая собственная жесткость, равномерный прогрев, но стоит дороже.

Неочевидный недостаток алюминиевого стола - это когда китаец плохо приляпывает к нему тонкие провода. На текстолитовом столе заменить провода просто, имея базовые навыки пайки. А вот припаять 2.5 квадрата к дорожкам алюминиевой платы - задача продвинутого уровня, с учетом отличной теплопроводности данного металла. Я использовал мощный паяльник (который с деревянной ручкой и жалом в палец), а в помощь ему пришлось призвать термовоздушную паяльную станцию.

Самое интересное


3D-принтер с кинематикой "руки робота".

Самая вкусная часть - это выбор кинематики. Я в первом абзаце обтекаемо упомянул механику как средство "передвижения чего-то в пространстве". Вот, теперь как раз к тому, что и куда двигать. В общем и целом, нам надо получить три степени свободы. А двигать можно печатающую головку и стол с деталью, отсюда и все многообразие. Есть радикальные конструкции с неподвижным столом (дельта-принтеры), есть попытки воспользоваться схемами фрезерных станков (XY-стол и Z-головка), есть вообще извращения (полярные принтеры или позаимствованная из робототехники SCARA-механика). Про весь этот беспредел можно долго рассуждать. Так что, ограничусь двумя схемами.

"Прюша"

XZ-портал и Y-стол. Политкорректно назову эту схему "заслуженной". Все более-менее ясно, сто раз реализовано, допилено, модифицировано, на рельсы посажено, в габаритах смасштабировано.

Общая идея такова: есть буква "П", по ногам которой ездит перекладина, приводимая в движение двумя синхронизированными двигателями с помощью передачи "винт-гайка" (редкая модификация - с ремнями). На перекладине висит двигатель, который за ремень таскает влево-вправо каретку. Третья степень свободы - это движущийся вперед-назад стол. Плюсы конструкции есть, например, изученность вдоль и поперек или чрезвычайная простота в кустарной реализации из подручных материалов. Минусы тоже известны - проблема синхронизации двигателей Z, зависимость качества печати аж от двух шпилек, которые должны быть более-менее одинаковы, сложно разогнаться до высоких скоростей (поскольку двигается относительно тяжелый инертный стол).

Z-стол

При печати медленнее всего изменяется координата Z, да еще и только в одну сторону. Вот и будем двигать по вертикали стол. Теперь надо придумать, как перемещать в одной плоскости печатающую головку. Есть решение проблемы "в лоб" - по сути. берем портал "прюши", кладем его на бок, заменяем шпильки на ремень (и убираем лишний движок, заменяя его на передачу), поворачиваем на 90 градусов хотэнд, вуаля, получаем нечто вроде MakerBot Replicator (не последнего поколения).

Как еще улучшить эту схему? Надо добиться минимальной массы подвижных деталей. Если откажемся от директ-экструдера и будем подавать филамент по трубке, все равно остается двигатель X, который нужно зазря катать по направляющим. И вот тут включается настоящая инженерная смекалка. По-голландски она выглядит как куча валов и ремней в ящике под названием Ultimaker. Конструкция доведена до такого уровня, что многие считают Ultimaker лучшим настольным 3D-принтером.

Но есть более простые инженерные решения. Например, H-Bot. Два неподвижных мотора, один длинный ремень, горстка роликов. И это дело позволяет перемещать каретку в плоскости XY путем вращения двигателей в одну или в разные стороны. Красиво. На практике предъявляет повышенные требования к жесткости конструкции, что несколько усложняет изготовление из спичек и желудей, особенно при использовании деревянных подшипников.


Классическая CoreXY с перекрещенными ремнями.

Более сложная схема, с двумя ремнями и бОльшей кучкой роликов - CoreXY. Считаю лучшим вариантом для реализации, когда вы уже собрали свою или китайскую "прюшу", а творческий зуд не утих. Можно делать из фанеры, алюминиевого профиля, табуреток и других ненужных предметов мебели. По принципу действия результат похож на H-Bot, но меньше склонен к заклиниванию и скручиванию рамы в бараний рог.

Электроника

Если нужно сэкономить деньги - то Mega+RAMPS в китайском исполнении просто вне конкуренции. Если же нет особых познаний в электрике и электронике, а нервы не лишние, то лучше посмотреть в сторону более дорогих, но грамотно сделанных плат от Makerbase или Geeetech.

Основные болячки бутерброда в виде "не тех" выходных транзисторов и питания всего пятивольтового колхоза через стабилизатор на плате Arduino там вылечены. Если говорить о совсем альтернативных вариантах, то я жду, когда появится возможность приобрести плату на LPC1768, например, ту же MKS SBase, и поразвлекаться с 32-битным ARM и прошивкой Smoothieware. А параллельно - неторопливо изучаю прошивку Teacup применительно к Arduino Nano и Nanoheart.

Самодельщику

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

В общем-то, отталкиваться надо от финансовых возможностей и от того, что можно найти в гараже или подвале. А также от наличия или отсутствия доступа к станкам и радиуса кривизны рук. Грубо говоря, есть возможность потратить 5 тысяч рублей - хорошо, обходимся самым минимумом. За десятку уже можно немного разгуляться, а приближение бюджета к 20 тысячам изрядно развязывает руки . Конечно, сильно облегчает жизнь возможность купить китайский конструктор "прюши" - можно и разобраться в основах 3D-печати, и получить отличный инструмент для развития самопала.

Тем более, что большинство деталей (двигатели, электроника, часть механики) спокойно перекочует и в следующую конструкцию. Короче говоря, покупаем акриловое барахло, допиливаем до вменяемого состояния, печатаем детали для следующего принтера, пускаем предыдущий на запчасти, намылить, смыть, повторить.

Начало сборки Kubocore 2.

На этом пожалуй всё. Возможно, получилось немного галопом. Но по-другому объять необъятное в рамках общего обзорного материала сложно. Хотя, полезных ссылок для размышления я накидал, ищущий по-любому обрящет. Вопросы и дополнения традиционно приветствуются. Ну и, да, в обозримом будущем будет продолжение - уже о конкретных решениях и граблях в рамках проектирования и постройки Kubocore 2.

Пока не настали те времена, когда 3D принтер можно будет купить в любом магазине электроники по цене картриджа для него же, а цены на готовые 3D принтеры в специализированных интернет-магазинах, мягко говоря, вызывают удивление. Поэтому человеку со здраво мыслящей головой проще сделать 3D принтер своими руками из 4-ех моторчиков и нескольких железок, продающихся в любом строительном центре за пару тысяч рублей, тем самым сократив бюджет на постройку 3D принтера как минимум в два, а то и во все десять раз.

Мы тоже не будем отставать от этого человека с головой, и сделаем 3D принтер своими руками из доступных материалов!

Неподготовленного читателя сперва может смутить вид самодельного 3D принтера, но хочу напомнить, что смысл RepRap 3D принтера в том, что он может сам для себя печатать детали. Поэтому собрав изначально 3D принтер своими руками из подручных материалов вы постепенно обновите все его детали и станете обладателем вот такого вот пластикового красавчика, как на фото. Ну или какого-нибудь другого… какого сами захотите

Создавать 3D принтер своими руками я начал с конструкции, относящейся к классу Delta-роботов. Попытался создать так называемый Дельта 3D принтер. Он обладает достаточно простой конструкцией для изготовления своими руками, которую вполне возможно сделать достаточно жесткой, чтобы обеспечить высокую точность при достаточно высоких скоростях 3D печати, характерных именно для Dleta 3D принтеров.

Как видно из фотографии, все оси у Delta 3D принтера располагаются параллельно на трех ребрах жесткости, которые одновременно могут быть и направляющими для кареток осей. Ребра жесткости образуют треугольник с углами в 120°, образуя латинскую букву Δ - Дельта. Отсюда и название.

Но пока я временно заморозил строительство делта 3D принтера своими руками по причине того, что для его печатающей головки требуются шариковые шарниры стоимостью не менее 300 рублей за штуку. А надо их по 4 на каждую ось. Итого выходит 300 руб Х 4 шт Х 3 оси = 3600 рублей только на одни шарниры. Это уже немного не бюджетно, поэтому я в фоновый мозговой процесс погрузил задачу снижения стоимости шарниров для Дельта 3Д принтера.

А пока этот процесс выполняется, я начал делать 3D принтер своими руками по более традиционной конструктивной схеме — в виде кубика с ортогональным размещением осей X и Y, а также подъемным столиком с подогревом в качестве оси Z. И в процессе конструирования у меня появились некоторые мысли по поводу того, как минимизировать размер занимаемого 3D принтером пространства на рабочем столе. В итоге должно получиться не менее компактно по площади, чем у Delta-принтера, и гораздо меньше в высоту. Слишком большая высота — это как раз один из минусов Delta 3D принтеров.

Корпус моего первого 3D принтера выполнен из обычной ламинированной ДСП. Ее всегда можно купить в любом строительном торговом центре или в фирмах по распиловке ДСП. Когда делаешь 3D принтер своими руками в виде кубика, то получаешь дополнительные преимущества в виде защиты от сквозняков, от которых часто страдают модели, печатаемые ABS-пластиком. На круглые дырки в стенке не обращайте внимания — они остались от предыдущего недоделанного проекта, и на самом деле их там быть не должно

Как видите, в верхней крышке короба 3D принтера проделано оконце для подачи пластика в печатающую головку. Я решил сделать выносной экструдер, чтобы максимально облегчить вес печатающей головки, оставив на ней только нагреватель и сопло (так называемый «горячий конец» — HotEnd 3D принтера).

Сама печатающая головка висит на направляющих осей X и Y, которые тоже прикручены к верхней крышке 3D принтера. Когда делаешь 3D принтер своими руками, то нужно стараться выбирать для монтажа только ровные поверхности, полученные промышленным способом. Так, например, поверхность ДСП можно считать условно ровной (укладывающейся в приемлемые допуски по точности). Поэтому мы можем смело разместить в разных концах этой поверхности по одной направляющей, и считать их параллельными (плоскости ДСП, разумеется), без необходимости их юстировки (точного выставления параллельности).

Параллельность этих же направляющих в другой плоскости мы будем выставлять уже при помощи собранной каретки оси X. Сперва мы перемещаем каретку X вдоль оси Y в одно крайнее положение и засверливаем отверстия для крепежа, затем ведем вдоль оси Y в другое крайнее положение и засверливаем уже с другого конца. Фиксируем держатели направляющих винтами также перемещая каретку сперва в одно крайнее положение, затем в другое.

На фотографиях выше также очень хорошо виден подъемный столик с подогревом. Это ось Z нашего 3D принтера. Он тоже сделан своими руками из обычного куска ДСП, у которого по углам вырезаны отверстия для крепления подшипников скольжения, ходящих вдоль четырех направляющих. Направляющие и подшипники скольжения — это то, что в любом случае скорее всего придется купить.

Если же вы хотите сделать 3D принтер своими руками, минимизируя количество покупных компонентов, то направляющие и подшипники скольжения можно вынуть из старых струйных принтеров. Как раз парочку я недавно нашел на помойке, когда вывозил мусор. Но так везет все реже, поэтому что-то все равно придется покупать

Приводом для перемещения каретки по осям X и Y служат зубчатые ремни, вращаемые шаговыми двигателями. На оси X стоит всего один шаговый двигатель, т.к. ему достается самая легкая работа — таскать печатающую головку, состоящую из лёгенького HotEnd’а. Вдоль оси Y будут трудиться уже два шаговых двигателя на зубчатых ремнях, каждый из которых будет тянуть свою сторону каретки оси X. Изготавливая 3D принтер своими руками лучше лишний раз перестраховаться и исключить возможные перекосы каретки из-за недостаточной жесткости, а жесткости будет всегда не хватать, когда во главу угла ставиться максимальная экономия.

Если поставить всего один двигатель на ось Y, расположив его с одной стороны каретки оси X, то вторая сторона каретки будет перемещаться по направляющей рывками. Расположив же сразу два двигателя с разных сторон каретки оси X, мы не только обеспечим синхронное движение подшипников скольжения на направляющих, но также сможем в любое время скорректировать перпендикулярность осей X и Y, немного подкрутив вручную один из двигателей, оставив другой неподвижным. Таким образом, делая 3D принтер своими руками и ставя два двигателя на одну ось, мы оставляем себе большее пространство для маневра в плане регулировки точности 3D принтера.

Одной из самых важных задач при настройке 3D принтера своими руками является регулировка параллельности плоскости XY и плоскости столика с подогревом, перемещаемого по оси Z. В каждой точке столика сопло печатающей головки должно находиться строго на одном и том же расстоянии от поверхности печати. Это необходимо, чтобы при формировании первого слоя детали не произошло отслоения пластика от подогреваемого столика. Если сопло будет слишком далеко от стола, то пластик просто не сможет к нему прилипнуть, что может привести к порче всей детали.

Для обеспечения возможности установки параллельности столика 3D принтера, его делают регулируемым с четырех сторон винтами, внатяг подпертыми пружинами. Регулировка осуществляется поочередным подтягиванием или отпусканием регулировочных винтов в тот момент, когда сопло находится в непосредственной близости от регулируемого в данный момент винта. Придется несколько раз подгонять печатающую головку 3D принтера к каждому из винтов, чтобы выставить плоскость достаточно точно.

Если вы не очень доверяете своему глазомеру, то для выставления одинакового расстояния от сопла печатающей головки до нагревательного столика 3D принтера можно воспользоваться обычным листом бумаги. Если лист перестает двигаться по столу, значит сопло его уже прижало, и регулировочный винт можно оставить в этом положении.

Теперь про ось Z, вдоль которой будет подниматься подогреваемый столик 3D принтера. От разрешающей способности оси Z в большей степени зависит итоговое качество напечатанной детали. Поэтому чем меньший шаг может обеспечить ваша ось Z, тем более детализованной получится итоговая деталь. Но, правда, и печататься она будет гораздо дольше, это мы уже будем решать отдельно для каждой напечатанной детали. Главное, чтобы у нас была возможность печатать максимально точно, если уж мы делаем 3D принтер своими руками.

Для этого привод оси Z обычно делается на винтовой передаче, а не на зубчатом ремне. Если взять в качестве винта строительную шпильку с шагом резьбы в 1 мм и шаговый двигатель с 200 шагами на один оборот (стандартный двигатель с 1,8° на шаг), то минимальное теоретическое перемещение оси Z нашего 3D принтера получится 1/200 мм или 0,005 мм (5 микрон)! На практике такое перемещение вряд ли осуществимо с применением стандартных направляющих и подшипников скольжения, поэтому даже 0,05 мм нам хватит за глаза.

Я решил для своего подъемного столика установить две винтовых передачи с разных сторон и вращать их двумя шаговыми двигателями, подключенными параллельно. Такая возможность уже заложена в ставшую стандартом плату RAMPS 1.4, где под ось Z предполагается подключение сразу двух двигателей. Однако есть риск получить артефакты на итоговой детали в виде волнистых перепадов между напечатанными слоями. Это будет свидетельствовать о несинхронном вращении винтов или о неких перепадах шага резьбы на винтах. В конце концов, строительная шпилька производится, чтобы стянуть две доски опалубки при заливке бетона, а не для оси 3D принтера с микроперемещениями

В любом случае, если такие артефакты появятся, то можно потом будет переделать конструкцию столика, убрав одну ось и переместив его всего на две направляющих, немного удлиннив их при этом. Что в итоге получится, читайте на моем ТехноБлоге Dimanjy и следите за обновлениями.

Кстати, снял небольшое видео 3D принтера. Показан подъемный столик в работе. Вроде движется и не клинит, хотя движочки поставил довольно слабенькие: ток обмотки всего 0,4 А и момент на валу 1,7 кг х см. Покуда движков два и подключены они параллельно, то на драйвере выставил двойной ток — около 800 мА. Не нравятся мне эти стандартные драйвера A4988 — у них после прекращения поступления шагов включается режим удержания, причем его ток значительно превышает номинальный, и движки начинают греться. На винтовой передаче вообще удержание не требуется, но я не знаю, как это отключить на этих драйверах. Прям хоть снова свои драйвера паяй

А вот видео 3D принтера, в котором я испытывал ось X. Перемещения довольно бодрые, но при этом корпус немного пошатывает. При печати это обязательно скажется, поэтому нужно корпус связать треугольными перемычками, которые не дадут ему расшатываться в этой плоскости. У корпусной мебели для этих целей служит обычно задняя стенка из ДВП, которая прибивается по всему периметру и не дает корпусу шататься по диагоналям.

Теперь по поводу экструдера для 3D принтера. Ему я посветил отдельную статью, потому как он является довольно ответственной частью 3D принтера. В этой статье я расскажу, как изготовить .

Обновление от 28.11.2015

Начал усиливать элементы конструкции. Жесткости одних направляющих не хватает. Вернее, хватило бы, но для этого нужно делать более массивные крепления самих направляющих, а это крадет драгоценные сантиметры полезной поверхности, по которой могла бы кататься каретка. Я хочу сделать конструкцию прочной и компактной (хотя одно другому противоречит).

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

Благодаря точности моего ЧПУ станочка, я могу выпиливать посадочные места для подшипников качения и жестко запрессовывать их туда без необходимости их дополнительного крепежа (хрен их оттуда потом вынешь — приходится ломать всю балку и вытачивать новую). Это куда более надежно, чем пластмассовые затяжки, которые я сперва применял, насмотревшись фоток любительских конструкций 3D принтеров в интернете.

Обновление от 3.12.2015

Работа кипит. Я так вдохновился результатами конструирования 3D принтера из фанеры, что решил построить 3D принтер своими руками из фанеры целиком! Но для такого ответственного мероприятия у меня уже не хватает воображения для плоского моделирования деталей 3D принтера в QCAD, поэтому я переключился на объемное моделирование во FreeCAD. Конечно, освоение параметрического моделирования идет туговато, но кое-что уже получается. Тяжело в учении — легко в бою! Вот примерно так будет выглядеть мой 3D принтер из фанеры:

Особенность данной конструкции 3D принтера будет заключаться в том, что в нее заложена возможность роста в прямом смысле слова. Верхняя печатающая часть будет легко сниматься и переставляться на более высокую коробку с осью Z.

Кстати, я, как и советовали мне в комментариях, решил пересмотреть кинематическую схему и попробовать CoreXY. Кратко об основных преимуществах кинематики CoreXY:

1. Мы не таскаем с собой двигатели — они жестко крепятся на раме. Отсюда возможность получить ускорения, недостижимые со стандартной кинематикой (когда приходится с собой таскать двигатель оси X).

2. Уравновешенность моментов на каретке. Отсутствие сил скручивания, стремящихся нарушить перпендикулярность осей X и Y.

Вот, пожалуй, и все преимущества Но уже их достаточно для того, чтобы отказаться от стандартной кинематики. Тем более, что кинематика CoreXY теперь очень хорошо поддерживается в популярной прошивке Marlin. Как раз с весны по лето разработчики активно допиливали именно эту кинематику.

Посмотрим, что получится.

Обновление от 9.12.2015

Ну вот, работа над корпусом почти закончена. Пробные выпиливания на моем станке с ЧПУ выявили некоторые погрешности проектирования, которые тут же исправляю в файле проекта. Ни разу еще не делал конструкцию по чертежам. 3D принтер своими руками — это мой первый проект, в котором я применил сурьезный инженерский подход — сперва подумать, потом сделать. Обычно делаю все наоборот:)

Тем не менее, то, что у меня получается на данный момент мне и самому нравится. Оказывается, правильно спроектированный 3D принтер из фанеры может быть довольно прочным. Я даже начинаю проникаться уважением к такому материалу, как фанера. Надо будет попробовать сделать из нее ее что-нибудь.

Теперь возвращаясь к моему самодельному 3D принтеру из фанеры, хочу отметить невероятную компактность своей конструкции. По площади основания он получился точь в точь как мой настольный лазерный принтер! Для дома — самое то.

Однако я не забыл про возможности роста. Если внимательно посмотреть на фото 3D принтера, то видно, что верхушка у него съемная. Достаточно открутить несколько винтов и переставить печатающую часть на коробку повыше, и можно печатать высоченные вазы. Более подробно с конструкцией моего 3D принтера из фанеры можно ознакомиться в статье про .

Все, что остается на данный момент — это натянуть зубчатый ремень и установить винтовую передачу на ось Z. Ах, да! Еще экструдер

Обновление от 15.12.2015

Ура! Я сделал 3D принтер своими руками! Переходим теперь к .

  • Направляющие (полированные валы Ф12 мм) 1,5 м = 1 080 руб
  • Линейные подшипники LM12UU — 6 шт х 150 руб = 900 руб
  • Шаговые двигатели Nema 17 — 4шт х 750 руб = 3 000 руб
  • Ремень GT2 300 см по 300 руб/м = 900 руб
  • Шкивы 20 зубов 3 шт в наборе = 840 руб
  • Контроллер (Arduino Mega 2560 r3 + Ramps 1.4 с драйверами шаговиков) = 2 000 руб
  • Стекло с каптоном 200 х 200 мм = 230 руб
  • Нагреватель стола 220 V 200 x 200 мм = 1 000 руб
  • HotEnd E3D v5 с соплом 0,3 мм, фитингом и фторопластовой трубкой = 2 200 руб
  • Блок питания ATX 350 Вт = 650 руб
  • Лист фанеры 8 мм = 300 руб
  • Винты Ф3 х 25, гайки, шайбы = 400 руб

Итого: 13 500 руб

Все детали куплены в специализированных магазинах в Москве. Те, кто любит все заказывать в Китае, наверное, могли бы сэкономить еще больше денег.

Желание иметь в своем хозяйстве 3D принтер встречается у многих, но возможность приобрести такой аппарат есть не у всех. Эта статья рассказывает о том, как сделать своими руками очень низкобюджетный принтер, что построенный в основном из переработанных электронных компонентов. В результате работы был построен мелко форматный принтер стоимостью меньше 100$.

Прежде всего, мы узнаем, как работает универсальная систему ЧПУ (сборка и калибровка подшипника, направляющих и пластикового волокна), а затем научимся управлять принтером с помощью инструкций g-кода . После этого добавим небольшой пластиковый экструдер , вставив параметры калибровки, регулятор мощности двигателя и несколько других операций, что приведут принтер к жизни. Следуя данной инструкции, вы получите небольшой «карманный принтер», что на 80% будет состоять из компонентов перерабатываемой электроники, которые придадут ему большой потенциал и помогут значительно снизить стоимость.
Эта статья поможет вам разобраться в более сложных проблемах связанных с утилизацией электронных устройств.

Шаг 1: Координатные оси X, Y и Z

Необходимые компоненты:

  • 2 стандартных CD/DVD привода от старого компьютера.
  • 1 Floppy дисковод.

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

Шаг 2: Подготовка моторов

Компоненты:
3 шаговых двигателя от CD/DVD приводов;
1 NEMA 17 шаговый двигатель, что необходимо приобрести для проекта. Этот тип двигателя будет использован для пластикового экструдера, где необходимо больше мощности для перемещения пластикового волокна;
ЧПУ электроника: RAMPS или RepRap Gen6/7 . Это важно, чем будете пользоваться Sprinter/Marlin открытой прошивкой. В данном примере будем пользоваться электроникой RepRap Gen6, но вы можете выбрать другой вариант в зависимости от цены и доступности;
Блок питания;
Кабели, разъемы, термоусадочные трубки.
Первое что необходимо сделать, когда у вас появятся шаговые двигатели, это припаять к ним провода. В этом случае 4 провода должны быть на своих местах, в соответствии с последовательностью цветов (описание в паспорте двигателя).
Паспортные данные для CD/DVD шаговых моторов: http://robocup.idi.ntnu.no/wiki/images/c/c6/PL15S020.pdf
Паспортные данные для NEMA 17 шагового двигателя: http://www.pbclinear.com/Download/DataSheet/Stepper-Motor-Support-Document.pdf

Шаг 3: Подготовка блока питания

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

Шаг 4: Arduino IDE

Теперь необходимо проверить двигатели. Для этого скачиваем Arduino IDE (физическая вычислительная среда), что можно найти по адресу: http://arduino.cc/en/Main/Software.
Нужно загрузить и установить версию Arduino 23 .
После этого скачаем прошивку. В проекте выбор пал на Marlin , что уже настроен и может быть загружен по ссылке.
Marlin:
После того, как была установлена Arduino, подключим компьютер к ЧПУ контроллеру Ramps/Sanguino/Gen6-7 с помощью USB кабеля, выбираем соответствующий последующий порт под Arduino IDE => инструменты/ последовательной порт и находим тип контроллера под => инструментами/плата Ramps(Arduino Mega 2560) , Sanguinololu/Gen6(Sanguino W/ ATmega644P – Sanguino должен быть установлен внутри).
Основные параметры, параметры конфигураций находятся в файле «configuration.h »:
В среде Arduino открываем прошивку, загруженный файл и видим параметры конфигурации, прежде чем загрузить прошивку на наш контроллер.
1) #define MOTHERBOARD 3 значение, в соответствии с реальным оборудованием, мы используем (Ramps 1.3 or 1.4 = 33, Gen6 = 5, …);
2) Термистор 7 значение, RepRappro использует «горячее сопло» Honeywell 100k ;
3) PID это значение делает «горячее сопло» более стабильным с точки зрения температуры;
4) Шаги на единицу (Steps per unit ), это важный момент для настройки любого контроллера (шаг 9).

Шаг 5: Управление принтером с помощью программного обеспечения

Управление принтером осуществляется по средствам программного обеспечения: существуют различные программы, что находятся в свободном доступе, позволяют взаимодействовать и управлять принтером (Pronterface, Repetier, …), в проекте использовался Repetier Host , который вы можете скачать http://www.repetier.com/ . Простая установка и интеграция slicer. Slicer — это часть программного обеспечения, что генерирует последовательные секции объекта, что мы хотим напечатать. После генерации происходит соединение секций в слои и генерация g-кода для принтера. Slicer можно настроить с помощью таких параметров как:
высота секции;
скорость печати;
заполнение и т.д., что важны для качества печати.
Обычную конфигурацию slicer можно найти по следующим ссылкам:
Skeinforge конфигурация http://fabmetheus.crsndoo.com/wiki/index.php/Skeinforge
Slic3r конфигурация http://manual.slic3r.org/

Иван Зарубин

IT-специалист, DIY-стартапер.

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

Сразу хотелось бы внести ясность - почему не стоит покупать дешманский китайский принтер за 15 тысяч рублей.

Как правило, они идут с акриловыми или фанерными корпусами, печать деталей с таким принтером превратится в постоянную борьбу с жёсткостью корпуса, калибровками и прочими событиями, которые омрачат всю прелесть владения принтером.

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

Владельцы таких рам часто колхозят различные усилители/уплотнители и постоянно вносят изменения в конструкцию, убивая тем самым своё время и настроение заниматься именно печатью, а не доработкой принтера.

Стальная рама даст возможность насладиться именно созданием деталей, а не борьбой с принтером.

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

Руководство рассчитано в основном на новичков, гуру 3D-печати, скорее всего, не найдут здесь для себя ничего нового. А вот те, кто хотел бы приобщиться, после сборки такого комплекта будут чётко понимать, что к чему. При этом не требуется специальных навыков и инструментов, достаточно паяльника, набора отвёрток и шестигранников.

Стоимость комплектующих актуальна на январь 2017 года.

Заказываем детали

1. Основа для принтера - рама, чем она крепче и тяжелее, тем лучше. Тяжёлую и крепкую раму не будет колбасить при печати на повышенных скоростях, и качество деталей будет оставаться приемлемым.

Стоимость: 4 900 рублей за штуку.

Рама идёт со всем необходимым крепежом. Винтиков и гаечек ребята кладут с запасом.

2. Направляющие валы и шпильки M5. Резьбовые шпильки и направляющие валы не идут в комплекте с рамой, хотя на картинке они есть.

  • Полированные валы идут комплектом из 6 штук .

Стоимость: 2 850 рублей за комплект.

Возможно, найдёте и подешевле. Если будете искать, то выбирайте обязательно полированные, иначе все косяки валов отразятся на деталях и общем качестве.

  • Шпильки M5 необходимо приобрести парой .

Стоимость: 200 рублей за штуку.

Это, по сути, обычные шпильки, которые можно приобрести и в строительном магазине. Главное, чтобы они были как можно более ровными. Проверить несложно: нужно положить шпильку на стекло и прокатить её по стеклу, чем лучше катается, тем ровнее шпилька. Валы проверяются соответствующим способом.

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

Стоимость комплекта: 1 045 рублей.

RAMPS 1.4 - плата расширения для Arduino. Именно к ней подключается вся электроника, в неё вставляются драйверы двигателей. За всю силовую часть принтера отвечает она. В ней нет мозгов, гореть и ломаться в ней нечему, запасную можно не брать.

Arduino Mega 2560 R3 - мозг нашего принтера, на который мы будем заливать прошивку. Советую взять запасной: по неопытности его легко спалить, например вставив неправильно драйвер шагового двигателя или перепутав полярность при подключении концевика. Многие с этим сталкиваются, и я в том числе. Дабы вам не пришлось неделями ждать новую, берите сразу ещё хотя бы одну.

Шаговые драйверы A4988 отвечают за работу моторов, желательно приобрести ещё один комплект запасных. На них есть построечный резистор, не крутите его, возможно он уже выставлен на необходимый ток!

  • Запасная Arduino MEGA R3 .

Стоимость: 679 рублей за штуку.

  • Запасные драйверы шагового двигателя A4988 . Советую дополнительно взять ещё запасной комплект из 4 штук.

Стоимость: 48 рублей за штуку.

Стоимость: 75 рублей за штуку.

Он необходим для защиты нашей Arduino. В ней есть свой понижающий регулятор с 12 В на 5 В, но он крайне капризен, сильно греется и быстро умирает.

Стоимость комплекта: 2 490 рублей.

В комплекте 5 штук, нам необходимо только 4. Можно поискать комплект из четырех, но я взял весь комплект, пусть будет один запасной. Его можно будет пустить на апгрейд и сделать второй экструдер, чтобы печатать поддержки вторым экструдером или двухцветные детали.

Стоимость комплекта: 769 рублей.

В этом комплекте есть всё необходимое для данного принтера.

Стоимость: 501 рубль за штуку.

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

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

Стоимость: 1 493 рубля за штуку.

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

Стоимость: 448 рублей за штуку.

Необходим для печати ABS-пластиком. Для печати PLA и другими видами пластика, не дающими усадки при остывании, можно печатать не нагревая платформу, но стол обязателен, на него кладётся стекло.

Стоимость: 99 рублей за штуку.

Стоимость: 2 795 рублей за штуку.

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

Стоимость: 124 рубля за штуку.

Собственно, необходим для обдува PLA и прочих медленно затвердевающих видов пластика.

Стоимость: 204 рубля за штуку.

Очень нужен. Больший кулер существенно уменьшит шум от принтера.

Стоимость: 17 рублей за штуку.

При засорении проще поменять сопла, чем чистить. Обратите внимание на диаметр отверстия. Как вариант, можно набрать разных диаметров и выбрать для себя. Я предпочёл остановиться на 0,3 мм, качества получаемых деталей с таким соплом мне достаточно. Если качество не играет особой роли, берите сопло шире, например 0,4 мм. Печать будет в разы быстрее, но слои будут более заметны. Берите сразу несколько.

Стоимость: 31 рубль за штуку.

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

Стоимость: 56 рублей за штуку.

В комплекте 5 штук, 4 используем для стола, одну пружинку используем для ограничителя оси X.

Процесс сборки достаточно увлекателен и чем-то напоминает сборку советского металлического конструктора.

Собираем всё по инструкции за исключением следующих пунктов

В пункте 1.1, в самом конце, где крепятся торцевые опоры, не ставим подшипники 625z - впрочем, мы их и не заказывали. Ходовые винты оставляем в «свободном плавании» в верхней позиции, это избавит нас от эффекта так называемого вобблинга.

В пункте 1.4 на картинке присутствует чёрная проставка. В комплекте с рамой её нет, вместо неё идут пластиковые втулки, используем их.

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

Для этого надо перепаять клемму на заднюю часть платы:

В пункте 2.4 у нас другой экструдер, но крепится он точно так же. Для этого нужны длинные болты, их мы берём из комплекта для регулировки стола (18-я позиция в списке). В наборе с рамой нет таких длинных болтов, как и в местных магазинах.

В пункте 2.6 мы начинаем сборку нашего «бутерброда» из Arduino и RAMPS и сразу же сделаем очень важную доработку, про которую редко пишут в мануалах, но которая тем не менее очень важна для дальнейшей бесперебойной работы принтера.

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

Припаиваем регулятор напряжения ко входу питания, который заблаговременно выставляем на 5 В, попутно выпаивая стандартное гнездо питания. Приклеиваем регулятор кому куда удобнее, я приклеил на заднюю стенку самой Arduino.

Питание от блока питания к RAMPS я припаял отдельно к ножкам, чтобы оставить свободной клемму для подключения других устройств.

Перед запуском проверяем, что нигде ничего не заедает, каретка двигается до ограничителя и обратно без препятствий. Поначалу всё будет двигаться туго, со временем подшипники притрутся и всё пойдёт плавно. Не забудьте смазать направляющие и шпильки. Я смазываю силиконовой смазкой.

Ещё раз смотрим, что нигде ничего не коротит, драйверы шаговых двигателей поставлены правильно согласно инструкции, иначе сгорит и экран, и Arduino. Ограничители тоже необходимо поставить соблюдая правильную полярность, иначе сгорит стабилизатор напряжения на Arduino.



Подготовка к эксплуатации

Если всё подключено верно, можно переходить к следующей инструкции по эксплуатации.

Полезные материалы по некоторым параметрам нашей прошивки

  • Мой настроенный и рабочий вариант прошивки под этот принтер и экструдер. Он слегка откалиброван под те детали, которые мы заказали.

Заливаем прошивку через IDE Arduino 1.0.6, выбираем на экране принтера Auto Home, убеждаемся в правильном подключении концевиков и правильной полярности шаговиков. Если двигается в противоположную сторону, просто поверните клемму у мотора на 180 градусов. Если после начала движения слышен противный писк, это писк драйверов шаговиков. Надо подкрутить на них подстроечный резистор согласно инструкции .

Советую начать печатать из PLA-пластика: он не капризен и хорошо прилипает к синему скотчу, который продаётся в строительных магазинах.

Я беру пластик фирмы Bestfilament. Брал фирмы REC, но мне не понравилось, как ложатся слои. Есть ещё море различных брендов и видов пластика: от резиновых до «деревянных», от прозрачных до металлизированных… Ещё одна фирма, которую я порекомендую, - Filamentarno. У них чумовые цвета и отличный собственный вид пластика с отличными свойствами.

Пластиком ABS и HIPS я печатаю на каптоновом скотче, намазанном обычным клеем-карандашом из магазина канцтоваров. Такой способ хорош тем, что нет запаха. Есть много других разных способов повышения адгезии детали к столу, об этом вы узнаете сами в процессе проб и ошибок. Всё достигается опытным путём, и каждый выбирает свой способ.

Почему именно этот принтер на базе Prusa i3?

  1. Принтер «всеяден». Печатать можно любыми доступными видами пластика и гибкими прутками. На сегодня рынок различных видов пластика достаточно развит, нет такой необходимости иметь закрытый бокс.
  2. Принтер прост в сборке, настройке и обслуживании. Ковыряться с ним может даже ребёнок.
  3. Достаточно надёжен.
  4. Распространён, соответственно в Сети море инфы о его настройке и модернизации.
  5. Пригоден для апгрейда. Можно заказать второй экструдер или экструдер с двумя печатными головками, заменить линейные подшипники на капролоновые или медные втулки, тем самым повысив качество печати.
  6. Доступен по деньгам.

Фильтр для филамента

Печатал крепление для экструдера E3D V6, печатал какое-то время этим экструдером с боуден-подачей. Но вернулся обратно на MK10.

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

Утеплил стол для более быстрого разогрева: подложка с отражающим фольгированным слоем и клейкой основой. В два слоя.

Сделал подсветку из светодиодной ленты. В какой-то момент надоело включать свет для контроля печати. В дальнейшем планирую закрепить камеру и подключить к принтеру Raspberry Pi для удалённого наблюдения и отправки моделей в печать без передёргивания флешки.

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

Кстати, по стране сейчас активно открываются детские технопарки, в которых детей обучают новым технологиям, в том числе моделированию и трёхмерной печати. Иметь такой принтер дома будет очень полезно для увлечённого ребёнка.

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

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

Спасибо за внимание, если есть вопросы, задавайте.

Весьма полезный русскоязычный ресурс, на котором вы найдёте любую информацию по этому направлению:



Эта статья также доступна на следующих языках: Тайский

  • Next

    Огромное Вам СПАСИБО за очень полезную информацию в статье. Очень понятно все изложено. Чувствуется, что проделана большая работа по анализу работы магазина eBay

    • Спасибо вам и другим постоянным читателям моего блога. Без вас у меня не было бы достаточной мотивации, чтобы посвящать много времени ведению этого сайта. У меня мозги так устроены: люблю копнуть вглубь, систематизировать разрозненные данные, пробовать то, что раньше до меня никто не делал, либо не смотрел под таким углом зрения. Жаль, что только нашим соотечественникам из-за кризиса в России отнюдь не до шоппинга на eBay. Покупают на Алиэкспрессе из Китая, так как там в разы дешевле товары (часто в ущерб качеству). Но онлайн-аукционы eBay, Amazon, ETSY легко дадут китайцам фору по ассортименту брендовых вещей, винтажных вещей, ручной работы и разных этнических товаров.

      • Next

        В ваших статьях ценно именно ваше личное отношение и анализ темы. Вы этот блог не бросайте, я сюда часто заглядываю. Нас таких много должно быть. Мне на эл. почту пришло недавно предложение о том, что научат торговать на Амазоне и eBay. И я вспомнила про ваши подробные статьи об этих торг. площ. Перечитала все заново и сделала вывод, что курсы- это лохотрон. Сама на eBay еще ничего не покупала. Я не из России , а из Казахстана (г. Алматы). Но нам тоже лишних трат пока не надо. Желаю вам удачи и берегите себя в азиатских краях.

  • Еще приятно, что попытки eBay по руссификации интерфейса для пользователей из России и стран СНГ, начали приносить плоды. Ведь подавляющая часть граждан стран бывшего СССР не сильна познаниями иностранных языков. Английский язык знают не более 5% населения. Среди молодежи — побольше. Поэтому хотя бы интерфейс на русском языке — это большая помощь для онлайн-шоппинга на этой торговой площадке. Ебей не пошел по пути китайского собрата Алиэкспресс, где совершается машинный (очень корявый и непонятный, местами вызывающий смех) перевод описания товаров. Надеюсь, что на более продвинутом этапе развития искусственного интеллекта станет реальностью качественный машинный перевод с любого языка на любой за считанные доли секунды. Пока имеем вот что (профиль одного из продавцов на ебей с русским интерфейсом, но англоязычным описанием):
    https://uploads.disquscdn.com/images/7a52c9a89108b922159a4fad35de0ab0bee0c8804b9731f56d8a1dc659655d60.png