Подключение дисплея к ramps 1.4.

31.01.2023 Компьютер


В этой статье речь пойдет об электронной части 3D принтера RepRap, а именно: о шаговых двигателях и драйверах для них, концевиках (endstops), управляющей плате, блоке питания и о том как всё это соединить между собой.

Шаговые двигатели

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

В RepRap Prusa Mendel используется четыре шаговых двигателя для позиционирования каретки (по одному на оси X и Y, и два на ось Z), и один для подачи прутка в экструдер. В типичном варианте все используемые двигатели имеют форм-фактор NEMA17. Это именно форм-фактор (по сути - размеры двигателя), а не какая-то конкретная модель двигателя.

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

При выборе двигателя нужно обратить внимание на его момент удержания (holding torque). Для двигателей приводящих в движение каретку достаточно 1.4 кг*см (если верить RepRap Wiki), а для двигателя экструдера нужно минимум 4 кг*см.

Также нужно обратить внимание на то, какой ток потребляет двигатель, поскольку самый часто используемый драйвер шаговых двигателей - A4988 (да и A4983) имеет ограничение в 2А. Поэтому если двигателю нужен ток выше 2А, то в лучшем случае он просто не будет выдавать нужный момент. Напряжение особого значения не имеет, т.к. его регулирует драйвер шагового двигателя, что бы поддерживать необходимый ток.

Для перемещения каретки я использовал двигатели SY42STH47-1684B. Это биполярный NEMA17 двигатель с моментом удержания в 4.4 кг*см, рассчитанный на ток в 1.68А. Кроме того, это весьма популярная модель, и такие двигатели можно найти в местном магазине.
Для экструдера я взял двигатель еще мощнее, а именно - Kysan 1124090 с моментом удержания в 5.5кг*см и током 1.5А.

Драйверы шаговых двигателей

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

Обычно для 3D принтеров используют популярные драйвера шаговых двигателей - Allegro A4988 и A4983. Они поддерживают ток до двух ампер, и микрошаговый режим 1/16 (т.е. между двумя шагами имеется 16 дополнительных микрошагов, а для двигателя с 200 шагами это целых 3200 микрошагов на оборот). Чип A4988 поддерживает некоторые дополнительные возможности, такие как, например, встроенная система отключения при перегреве и "low current microstepping" (см. ниже) так что лучше брать его.

Но сами эти чипы слишком мелкие что бы их припаять руками, и требуют некоторую обвязку из резисторов и конденсаторов. К счастью, есть готовые модули для управления шаговым двигателем, например Pololu или StepStick . Я в своем принтере использовал чипы Pololu. Со StepStick нужно быть осторожным, поскольку, в отличие от Pololu, это не конкретный производитель, а скорее просто открытая инструкция по сборке. Реализация же, как и её качество, может очень сильно варьироваться.

Если у вас модуль на основе A4988 я бы рекомендовал обратить внимание на эту статью. Если вкратце - для некоторых двигателей (в статье идет речь о двигателе с сопротивлением 1,65 Ом, и на моих двигателях описанная проблема также присутствовала) могут пропускаться микрошаги. Проблема и решение описаны в даташите к чипу в разделе "Low Current Microstepping". Собственно решение - пин ROSC должен быть закорочен на землю. В модуле Pololu этот пин подключен к земле через резистор R4, его нужно аккуратно закоротить перемычкой.

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

Вообще нужно по одному драйверу на каждый шаговый двигатель. Но, несмотря на то, что двигателей в RepRap Prusa Mendel используется пять - драйверов нужно четыре, т.к. два двигателя оси Z включены параллельно, и используют один драйвер.

Концевики

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

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

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

Существует два наиболее распространенных варианта концевиков - механические (по сути - просто кнопка), и оптические (срабатывает когда специальный флажок попадает в зазор между светодиодом и фоторезистором). Оптические концевики не содержат движущихся частей и более точны, поэтому предпочтительнее использовать их. Есть еще магнитные концевики, с датчиками Холла, но они не сильно распространены.

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

Блок питания

Обычно для питания принтера используют напряжение 12В. Для питания самого микроконтроллера нужно 5В, но он может питаться и от USB.

Самый простой и практичный вариант - обычный компьютерный блок питания. Его просто найти, он дешево стоит, и выдает нужные нам напряжения (12В и 5В, на самом деле есть еще 3.3В, но они нам не нужны). Что касается мощности - я бы советовал брать блок питания способный отдавать около ток 20А. Один только стол с подогревом требует 10-12 ампер, а еще двигатели, хотэнд, да и вентилятор для обдува модели рано или поздно установить придется. Я себе для RepRap купил блок питания мощность 400W. Заявленный максимальный ток для 12В у него 18А, и пока мне его вполне достаточно.

При использовании компьютерного БП есть небольшой нюанс - у него нет кнопки включения, т.к. предполагается что включать его будет компьютер. Эту проблему легко решить - обычно компьютерные БП включаются путем замыкания двух контактов 20-пинового ATX коннектора, а именно PS_ON и GND.
Но будьте внимательны, т.к. цвета проводов на разных БП могут отличаться. А некоторые блоки питания вообще не включатся без нагрузки (хотя, на самом деле, все БП не рекомендуется включать без нагрузки).

Более подробно о использовании компьютерного блока питания для RepRap можно прочитать .

Контроллер

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

На высоком уровне работа контроллера выглядит следующим образом - в его память загружается (обычно посредством USB-подключения к компьютеру, но можно использовать и SD-карты памяти) программа на языке G-code , описывающая всё что принтеру нужно сделать для печати модели, а контроллер эту программу выполняет, команда за командой.

Условно контроллер можно разделить на две части: "логическую" и "силовую". В качестве логической части обычно выступает микроконтроллер с простейшей обвязкой (чаще всего используют микроконтроллеры AVR, но есть варианты контроллеров и с ARM процессорами). Силовая часть содержит все что необходимо для управления мощной нагрузкой - драйвера шаговых двигателей, и, обычно, полевые транзисторы для стола с подогревом и хотэнда.

Вариантов контроллеров для RepRap очень много, вот можно посмотреть на таблицу сравнения некоторых из них. Кроме наличия/отсутствия некоторых возможностей контроллеры также отличаются простотой сборки, например, тот же Generation 7 Electronics рассчитан на полностью самостоятельное изготовление, а, скажем, Smoothieboard сделать самому вряд ли удастся.

Двигатели оси Z подключаются параллельно, к одному драйверу.

Концевики

На RAMPS предусмотрено шесть разъемов для подключения концевиков, их порядок следующий- X min, X max, Y min, Y max, Z min, Z max. Подключать концевики нужно соблюдая полярность. Если смотреть на разъемы концевиков со стороны разъемов питания RAMPS, то порядок пинов будет следующий - Signal, GND, +5V.

Термисторы

RAMPS поддерживает три датчика температуры, разъемы для них подписаны - T0, T1, T2. В T0 обычно подключают термистор хотэнда. А T2 я подключил термистор стола с подогревом. Полярность отсутствует.

Нагреватели

Разъемы для подключения нагревательных элементов подписаны D8, D9, D10. Резистор хотэнда я подключил в D10, а резисторы подогревающие стол в D8. Обратите внимание, что провода по которым идет ток для подогрева стола должны быть рассчитаны на ток минимум в 10А, в противном случае может оплавиться изоляция и произойти КЗ.

Питание

Для подачи питания в RAMPS предусмотрено два разъема - 12V5A и 12V11A. Вход 12V5A используется для питания шаговых двигателей, и нагревателей D9, D10. Вход 12V11A используется для питания нагревателя D8, к которому подключен стол с подогревом. Подключать, разумеется, нужно оба. Входы 12V5A и 12V11A лучше питать от разных выходов компьютерного блока питания.

Заключение

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

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

Наша схема подключения

Питание RAMPS 1.4 происходит от блока питания на 12В 30А . Для использования одной пары проводов от блока питания можно припаять перемычку на плюсы, минусы уже соединены.

Для надёжности питания я припаял провода, вместо использования винтового соединения в разъёмах, а разъёмы оставил под другие нужды..
(на этой фотографии тоже припаяна перемычка, но в другом месте)

Обычно используют билинейные шаговые двигатели на 1,7А типоразмера Nema 17 . Провода желательно свить в косички для защиты от наводок .

Схема выводов . Цвета могут быть перепутаны, но пары легко прозвонить мультиметром .

Шаговый двигатель работает через драйвер . Ещё их называют StepStick. Для RAMPS 1.4 выпускают два вида драйверов A4988 и DVR8825 . Они отличаются током , выдаваемым на шаговый двигатель и минимальным микрошагом. Обязательно использовать радиатор. Обдув желателен. А если стол запитан не через реле, то обдув обязателен.
Ток на драйвере подстраивается опытным путём, гоняя 3D принтер на высокой скорости по всем координатам. Оптимальным считается, когда шаговые двигатели уже не гудят и ещё не пропускают шаги.

A4988
Максимальный ток 2А
Минимальный микрошаг 1/16 шага
Ток регулируется подстроечным резистором. По часовой стрелке - повышение тока.

Установка микрошага перемычками на RAMPS 1.4

DVR8825
Максимальный ток 2,2А
Минимальный микрошаг 1/32 шага
Ток регулируется подстроечным резистором. По часовой стрелке - понижение тока.

Установка микрошага перемычками на RAMPS 1.4

Перемычки установки микрошага на RAMPS 1.4 находятся под драйверами шаговых двигателей. Обычно используются A4988 с микрошагом 1/16 - все перемычки установлены .

P

Двигатели оси Z можно подключать:


  • параллельно - каждый штекер в своё гнездо. Э то стандартное подключение к RAMPS 1.4. Могут быть проблемы с рассинхронизацией двигателей, если есть разница в сопротивлении обмоток двигателей.

  • последовательно по схеме, одним штекером. При последовательном включении проблем быть не должно.


  • каждый на отдельный драйвер - второй подключается к незадействованному драйверу второго экструдера. Для этого нужно в прошивке Marlin раскомментировать строку во вкладке Configuration_adv.h

//#define Z_DUAL_STEPPER_DRIVERS

И здесь же настраивается использование отдельного концевика на второй шаговик

#define Z_DUAL_ENDSTOPS

#ifdef Z_DUAL_ENDSTOPS

#define Z2_STEP_PIN E2_STEP_PIN // Stepper to be used to Z2 axis.

#define Z2_DIR_PIN E2_DIR_PIN

#define Z2_ENABLE_PIN E2_ENABLE_PIN

#define Z2_MAX_PIN 36 //Endstop used for Z2 axis. In this case I"m using XMAX in a Rumba Board (pin 36)

const bool Z2_MAX_ENDSTOP_INVERTING = false ;

#define DISABLE_XMAX_ENDSTOP //Better to disable the XMAX to avoid conflict. Just rename "XMAX_ENDSTOP" by the endstop you are using for Z2 axis.

#endif

Пины концевиков RAMPS 1.4 смотрим в pins_RAMPS_13.h . Выбираем не используемый пин и подставляем в Z2_MAX_PIN и подключаем второй концевик в выбранное гнездо

#define X_MIN_PIN 3

#define X_MAX_PIN 2

#define Y_MIN_PIN 14

#define Y_MAX_PIN 15

#define Z_MIN_PIN 18

#define Z_MAX_PIN 19


  • каждый на отдельный драйвер - переназначением пинов во вкладке Pins.h. То есть пины драйвера оси Z дублируем в константы драйвера второго экструдера. Например:

#define Z_STEP_PIN 46
#define Z_DIR_PIN 48
#define Z_ENABLE_PIN 62

#define E1_STEP_PIN 46
#define E1_DIR_PIN 48
#define E1_ENABLE_PIN 62

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

было

WRITE(Z2_DIR_PIN,INVERT_Z_DIR);

#ifdef Z_DUAL_STEPPER_DRIVERS
WRITE(Z2_DIR_PIN, INVERT_X_DIR );
#endif

Концевые выключатели (концевики, endstop, limit switch) .

Наиболее часто используются оптические и механические концевые выключатели . Оптические из-за своей природы могут быть ненадёжны, поэтому их не рассматриваю. Узнать состояние концевиков можно командой M119. Обычно ставят 3 концевика в положении HOME и софтовое ограничение в прошивке. Остальные концевики рассчитаны на сбой, но шаговики слабые и повреждений не наносят, просто пропускают шаги при достижении препятствия. А по оси Z у Mendel90 должны гайки выкручиваться из кареток при давлении хотэнда на стол.



Правильное подключение механических концевых выключателей в положении MAX. У оптических концевых выключателей используется дополнительно плюсовой контакт.

Подключение термисторов.

Термистор можно проверить мультиметром как резистор. Подсоединил к мультиметру - 87 кОм. Зажал пальцами - сопротивление стало падать, оно вообще не стоит на месте.
Также существуют термопары, но их редко подключают к RAMPS 1.4, так как нужна плата-адаптер . При подключении термопары важно соблюдать полярность.

Термистор стола и термистор горячего конца (хотэнда).

Подключение нагреваемого стола через реле.

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

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

Подключение LCD панели управления (экранчика).

На задней стороне мы видим два гнезда для подключения шлейфов, слот SD карты и регулятор яркости.

Подключение к RAMPS 1.4 происходит через переходник. Гнёзда так-же подписаны EXP1 и EXP2 для правильного подключения.

Переходник уже подключается к RAMPS 1.4

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

Как собрать 3D принтер RepRap Prusa Mendel

Предлагаю вам цикл публикаций Alik , в которых автор делится своим опытом по сборке, настройке и калибровке 3D принтера RepRap Prusa Mendel.

Электроника

В этой статье речь пойдет об электронной части 3D принтера RepRap, а именно: о шаговых двигателях и драйверах для них, концевиках (endstops), управляющей плате, блоке питания и о том как всё это соединить между собой.

Шаговые двигатели

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

В RepRap Prusa Mendel используется четыре шаговых двигателя для позиционирования каретки (по одному на оси X и Y, и два на ось Z), и один для подачи прутка в экструдер. В типичном варианте все используемые двигатели имеют форм-фактор NEMA17. Это именно форм-фактор (по сути - размеры двигателя), а не какая-то конкретная модель двигателя.

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

При выборе двигателя нужно обратить внимание на его момент удержания (holding torque). Для двигателей приводящих в движение каретку достаточно 1.4 кг*см (если верить RepRap Wiki), а для двигателя экструдера нужно минимум 4 кг*см.

Также нужно обратить внимание на то, какой ток потребляет двигатель, поскольку самый часто используемый драйвер шаговых двигателей - A4988 (да и A4983) имеет ограничение в 2А. Поэтому если двигателю нужен ток выше 2А, то в лучшем случае он просто не будет выдавать нужный момент. Напряжение особого значения не имеет, т.к. его регулирует драйвер шагового двигателя, что бы поддерживать необходимый ток.

Для перемещения каретки я использовал двигатели SY42STH47-1684B. Это биполярный NEMA17 двигатель с моментом удержания в 4.4 кг*см, рассчитанный на ток в 1.68А. Кроме того, это весьма популярная модель, и такие двигатели можно найти в местном магазине.

Для экструдера я взял двигатель еще мощнее, а именно - Kysan 1124090 с моментом удержания в 5.5 кг*см и током 1.5А.

Драйверы шаговых двигателей

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

Обычно для 3D принтеров используют популярные драйвера шаговых двигателей - Allegro A4988 и A4983. Они поддерживают ток до двух ампер, и микрошаговый режим 1/16 (т.е. между двумя шагами имеется 16 дополнительных микрошагов, а для двигателя с 200 шагами это целых 3200 микрошагов на оборот). Чип A4988 поддерживает некоторые дополнительные возможности, такие как, например, встроенная система отключения при перегреве и "low current microstepping" (см. ниже) так что лучше брать его.

Но сами эти чипы слишком мелкие что бы их припаять руками, и требуют некоторую обвязку из резисторов и конденсаторов. К счастью, есть готовые модули для управления шаговым двигателем, например Pololu или StepStick . Я в своем принтере использовал чипы Pololu. Со StepStick нужно быть осторожным, поскольку, в отличие от Pololu, это не конкретный производитель, а скорее просто открытая инструкция по сборке. Реализация же, как и её качество, может очень сильно варьироваться.

Если у вас модуль на основе A4988 я бы рекомендовал обратить внимание на . Если вкратце - для некоторых двигателей (в статье идет речь о двигателе с сопротивлением 1,65 Ом, и на моих двигателях описанная проблема также присутствовала) могут пропускаться микрошаги. Проблема и решение описаны в даташите к чипу в разделе "Low Current Microstepping". Собственно решение - пин ROSC должен быть закорочен на землю. В модуле Pololu этот пин подключен к земле через резистор R4, его нужно аккуратно закоротить перемычкой.

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

Вообще нужно по одному драйверу на каждый шаговый двигатель. Но, несмотря на то, что двигателей в RepRap Prusa Mendel используется пять - драйверов нужно четыре, т.к. два двигателя оси Z включены параллельно, и используют один драйвер.

Концевики

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

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

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

Существует два наиболее распространенных варианта концевиков - механические (по сути - просто кнопка), и оптические (срабатывает когда специальный флажок попадает в зазор между светодиодом и фоторезистором). Оптические концевики не содержат движущихся частей и более точны, поэтому предпочтительнее использовать их. Есть еще магнитные концевики, с датчиками Холла, но они не сильно распространены.

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

Блок питания

Обычно для питания принтера используют напряжение 12В. Для питания самого микроконтроллера нужно 5В, но он может питаться и от USB.

Самый простой и практичный вариант - обычный компьютерный блок питания. Его просто найти, он дешево стоит, и выдает нужные нам напряжения (12В и 5В, на самом деле есть еще 3.3В, но они нам не нужны). Что касается мощности - я бы советовал брать блок питания способный отдавать около ток 20А. Один только стол с подогревом требует 10-12 ампер, а еще двигатели, хотэнд, да и вентилятор для обдува модели рано или поздно установить придется. Я себе для RepRap купил блок питания мощность 400W. Заявленный максимальный ток для 12В у него 18А, и пока мне его вполне достаточно.

При использовании компьютерного БП есть небольшой нюанс - у него нет кнопки включения, т.к. предполагается что включать его будет компьютер. Эту проблему легко решить - обычно компьютерные БП включаются путем замыкания двух контактов 20-пинового ATX коннектора, а именно PS_ON и GND.

Распиновка коннекторов ATX

Цветовое кодирование универсально для всех блоков питания:

  • Черный: Земля
  • Красный: +5V
  • Желтый: 12V
  • Оранжевый: +3.3V
  • Белый: -5V (отсутствует на некоторых новых БП)
  • Голубой: -12V
  • Серый: Индикатор питания
  • Пурпурный: standby power output (не нужен для RepRap)
  • Зеленый: power on input

Я для этих целей сделал перемычку из куска провода:

Перемычка для включения компьютерного блока питания

Но будьте внимательны, т.к. цвета проводов на разных БП могут отличаться. А некоторые блоки питания вообще не включатся без нагрузки (хотя, на самом деле, все БП не рекомендуется включать без нагрузки).

Более подробно о использовании компьютерного блока питания для RepRap можно прочитать .

Контроллер

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

На высоком уровне работа контроллера выглядит следующим образом - в его память загружается (обычно посредством USB-подключения к компьютеру, но можно использовать и SD-карты памяти) программа на языке G-code , описывающая всё что принтеру нужно сделать для печати модели, а контроллер эту программу выполняет, команда за командой.

Условно контроллер можно разделить на две части: "логическую" и "силовую". В качестве логической части обычно выступает микроконтроллер с простейшей обвязкой (чаще всего используют микроконтроллеры AVR, но есть варианты контроллеров и с ARM процессорами). Силовая часть содержит все что необходимо для управления мощной нагрузкой - драйвера шаговых двигателей, и, обычно, полевые транзисторы для стола с подогревом и хотэнда.

Вариантов контроллеров для RepRap очень много, вот можно посмотреть на таблицу сравнения некоторых из них. Кроме наличия/отсутствия некоторых возможностей контроллеры также отличаются простотой сборки, например, тот же Generation 7 Electronics рассчитан на полностью самостоятельное изготовление, а, скажем, Smoothieboard сделать самому вряд ли удастся.

Двигатели оси Z подключаются параллельно, к одному драйверу.

Концевики

На RAMPS предусмотрено шесть разъемов для подключения концевиков, их порядок следующий- X min, X max, Y min, Y max, Z min, Z max. Подключать концевики нужно соблюдая полярность. Если смотреть на разъемы концевиков со стороны разъемов питания RAMPS, то порядок пинов будет следующий - Signal, GND, +5V.

Термисторы

RAMPS поддерживает три датчика температуры, разъемы для них подписаны - T0, T1, T2. В T0 обычно подключают термистор хотэнда. А T2 я подключил термистор стола с подогревом. Полярность отсутствует.

Нагреватели

Разъемы для подключения нагревательных элементов подписаны D8, D9, D10. Резистор хотэнда я подключил в D10, а резисторы подогревающие стол в D8. Обратите внимание, что провода по которым идет ток для подогрева стола должны быть рассчитаны на ток минимум в 10А, в противном случае может оплавиться изоляция и произойти КЗ.

Для подачи питания в RAMPS предусмотрено два разъема - 12V5A и 12V11A. Вход 12V5A используется для питания шаговых двигателей, и нагревателей D9, D10. Вход 12V11A используется для питания нагревателя D8, к которому подключен стол с подогревом. Подключать, разумеется, нужно оба. Входы 12V5A и 12V11A лучше питать от разных выходов компьютерного блока питания.

Заключение

В подключенном виде контроллер выглядит примерно вот так:

Собранный и подключенный контроллер RepRap

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

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

Шилд RAMPS 1.4 подключение.

Рассмотрим подключение платы Shield-RAMPS-1.4 на примере 3D принтера Mendel90.

RAMPS 1.4 это шилд (надстройка) для Arduino Mega 2560. Ардуино преобразует G-коды в сигналы и управляет 3D принтером посредством силовой части - RAMPS 1.4.
Плата RAMPS 1.4 одевается поверх Arduino и все подключения, кроме USB, осуществляются через неё. Питание 12В на Arduino подаётся через RAMPS 1.4.

Двухэкструдерная схема подключения

Схема подключения с одним экструдером

Обычно используют билинейные (четыре провода) шаговые двигатели на 1,7 А типоразмера Nema 17. Провода желательно свить в косички для защиты от наводок.

Шаговые двигатели для оси Z можно подключать двумя способами:

  • Первый способ.
    Параллельное подключение пары шаговых двигателей на одну ось Z - это когда штекер каждого шагового двигателя подключается к своему индивидуальному разъему на плате RAMPS 1.4.
    Такой способ подключения шаговых двигателей для оси Z является стандартным подключением к плате RAMPS 1.4.
    Следует заметить, что при параллельном (стандартном) подключении могут возникать проблемы с рассинхронизацией шаговых двигателей, если будет иметь место разница в сопротивлении обмоток у подключаемой пары шаговых двигателей.
  • Второй способ.
    Второй способ это подключить шаговые двигатели последовательно одним штекером по схеме показанной ниже.
    При таком последовательном подключении двух шаговых двигателей по оси Z проблем с рассогласованием пары движков уже не будет наблюдаться.


Питание на RAMPS 1.4 подаётся от блока питания 12В 30А.

Подключение концевых выключателей

Шилд Shield-RAMPS-1.4 - одна из самых распространённых плат для сборки 3D принтеров.

(адаптер в комплекте).

ЗАКАЗ

Приобретать платы в оригинале мне показалось слишком дорого. Съэкономить на пайке много по подсчетам также не получится. Соответственно заказ сделал на e-bay. При этом прекрасно осознавал, что платы могут оказаться весьма посредственного качества. Рискнул! Три недели ожидания, и платы у меня в руках.

ТЕСТИРОВАНИЕ

Первым делом, по привычке, платы подверглись тщательному визуальному осмотру. Первая попалась в руки Arduino MEGA 2560 R3 ATmega2560. Она оказалась весьма приемлемого качества.
За ней — RAMPS 1.4. И тут огромное разочарование — сильно окислившиеся (даже проржавевшие) контакты силового разъема.

При высоких токах оставлять такое безобразие мне показалось неправильным!!! Пришлось аккуратно выпаять разъем. На фото он синего цвета. И запаять найденный в закромах подобный (на фото зеленый). Совет для тех, кому попадется эта засада — перед тем как выпаивать корпус разъема лучше «раскусить» бокорезами . Контактный площадки платы, да и проводники, выполнены достаточно хорошо. Плата успешно пережила «ремонт». Перед отмывкой еще раз просмотрел пайки. В результате обнаружил, что вокруг штыревых контактов большое количество шариков припоя. Замочил плату в спирте на 20 минут и хорошо промыл…


Затем попытался соединить силовую плату с контроллером. Вышло! Но с большим трудом. Во-первых ответные разъемы плохо совпадают:(. Во-вторых корпус разъема питания контроллера уперся в «ногу» разъема питания силовой платы (на фото справа) — пришлось скусить «ногу» бокорезами !


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


После «приятных мучений» с силовой платой в руках оказалась интерфейсная плата. А вот здесь обнаружился брак, который после включения питания мог привести к краху! Индикатор напаяли без установки стоек и посредством короткого разъема. В результате чего корпус ЖКИ панели замкнул контакты входящего разъема!!!


По хорошему, неплохо бы перепаять индикатор. Но из-за отсутствия времени на поиски высокого разъема PLS решил временно установить сложенный лист бумаги (на фото).
После того как подправил все косяки, подключился к USB порту — вспышки с хлопками не случилось! Значит пришло время заливать прошивку.
Остановился я на проекте Marlin . К моему восторгу исходники прекрасно закомментированы… Настройка индивидуальной прошивки осуществляется через включение/выключение нужных описаний в исходном коде. Настраиваем, компилируем, прошиваем, включаем.


Программа пошла. Но из-за отсутсвия датчика температуры остановилась на ошибке (снизу дисплея). Нашел подходящий термодатчик, установил. Контроллер полностью заработал — «Mendel is ready». Настало время подключить приводы и протестировать соединение с компьтером. Как подобрать шаговые приводы можно посмотреть . В моем проекте использованы, показанные на фото ниже.

Убедившись в рабтоспособности электронных узлов платы концентрируемся на сборке корпуса принтера…

РАЗМЕЩЕНИЕ ЭЛЕКТРОНИКИ

Корпус собран! Начнем раскидывать электронику… Если с корпусом все было достаточно прозрачно, то с размещением электронных узлов пришлось основательно поразмыслить. Просмотрев большое количество инструкций по сборке подобных принтеров, мне бросилось в глаза отсутствие информации в них о том каким образом размещать электронику и, что не менее важно, как тянуть провода. Бросать на самотек и вешать провода без разбору мне не захотелось. Свободное «болтание» проводов может привести к самым непредсказуемым последствиям.

БЛОК ПИТАНИЯ И ПЛАТЫ УПРАВЛЕНИЯ

Блок питания, как и в основной массе подобных устройст, расположил на правой боковой стойке каркаса. Отверстия для крепления сделал по-месту, обмеряя расположение крепежных отверстий БП. Здесь хочу отметить, что мне попался достаточно удачный БП. Мощность 250Вт в относительно маленьком корпусе.


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


Для разметки пришлось разобрать сборку. Далее по плате ARDUINO разметил и просверлил крепежные отверстия. Затем установил плату ARDUINO на винты в центре платы (досупа в сборке к ним не будет).

После этого установил плату RAMPS и закрепил оставшиеся винты через силиконовые стойки и шайбы.


Для того, чтобы безопасно протянуть провода питания (12В) от БП, провод от мотора осей Y, Z и концевика оси Y к сборке плат, предварительно разместил на резьбовых шпильках обычные строительные кабельные каналы.



ДАТЧИКИ ПОЛОЖЕНИЯ НУЛЯ

Настало время устанавливать «нулевые» концевики. При выборе варианта крепления платы концевиков я остановился на детале . Конструкция мне показалась весьма удобной и проверять на моделях не стал. А на самом деле вышло, что подходит она исключительно для оси Z. Установил на ось Z. В качестве датчика концевика оси использовал полоску из нержавейки, приклееную клеевым пистолетом как показано на фото.

Далее пришлось долго поломать голову над тем как установить концевики на оси Y и X. C осью Y оказалось проще — удалось приспособить держатель, который установил на ось Z. Закрепил его стяжками к резьбовой шпильке. В качестве датчика также поставил полосу из тонкой нержавейки. В таком варианте регулировать положение срабатывания концевика не представляется возможным (определяется длиной самого датчика).


А вот с установкой концевика X пришлось повозиться! Для начала сделал из текстолита переходник.
Затем сделал крепежные отверстия М3 в ДЕРЖАТЕЛЕ ПРИВОДА, установил концевик и отрегулировал его положение. Датчик снова сделал из полоски нержавейки, которую прикрутил снизу ДЕРЖАТЕЛЯ ЭКСТРУДЕРА (допустимо приклеить клеевым пистолетом).

НАГРЕВАТЕЛЬ СТОЛА

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


После получения платы нагревателя я не стал детально ее осматривать. А вот перед монтажем решил осмотреть с пристрастием качество монтажа проводов. Итогом осмотра стало решение перепаять провода — провода были с явными разрывами жил и плохо залужены… В ситуации, когда предполагается движение стола и как следствие возможные изгибы у места пайки, необходимо качественное соединение!

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

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


Настало время собирать в «кучу» провода, идущие от экструдера. Этот узел не вызвал особых сложностей. Единственное, что я изначально не протянул провода для вентилятора! Но с моим экструдером понадобятся аж два вентилятора. Об этом я расскажу в статье «РАБОТА НАД ОШИБКАМИ». Закрепить кабельный канал возможно очень удобно как показано на фотографиях. При креплении по предложенной схеме не потребуется сверлить дополнительных отверстий…

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

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

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

НАБОР ДЛЯ СБОРКИ

Полный набор электроники доступен в интернет-магазине по ссылке http://www.zdvstore.ru/prusa-electronic/ .
В набор включена плата контроллера, содержащая прошивку в которой учтены все особенности, описанные в моих статьях. Установив этот набор электроники, Вы сразу запустите принтер…

КАЧЕСТВО ЗАПЧАСТЕЙ С ALIEXPRESS (ДОПОЛНЕНИЕ ОТ 01-04-2016)

После посещения моего интернет-магазина мне часто задают вопрос о «завышенной» стоимости электроники на его прилавке! Я готов ответить на этот вопрос.

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

И вот уже больше года я пытался найти хорошего поставщика электроники в Китае. За адекватные деньги надлежащий товар мне так и не удалось отыскать.

Скажу честно, что только Arduino MEGA 2560 R3 ATmega2560 и нагреватель стола MK2B DUAL POWER приходят в надлежащем виде за редким исключением. С остальными платами ну просто БЕДА! Особенно это касается плат RAMPs v1.4 и драйверов шаговых двигателей DRV8825. В независимости от продавца поступают приблизительно такие изделия:

Самый распространенный косяк — это неотмытая плата с огромным количеством припоя, размазанного по паяльной маске;(. Следующая беда в том, что в последнее время стали ставить на платы разъемы с контактами стального цвета. Эти контакты не «хотят» даже лудиться! Не говорю о нормальной пайке контактов. Особенно это относится к драйверам шаговых двигателей. Дальше идут всяческие «приколы», начиная с перевернутых разъемов (на фото выше:), заканчивая неправильно запаянными потенциометрами на платах индикатора.

Одним словом, мне приходится достаточно долго вычищать припой, пропаивать разъемы, исправлять косяки и отмывать платы!

Надеюсь, что на вопрос я дал исчерпывающий ответ:)!?

ВЫПУСК ПЛАТ RAMPs (ДОПОЛНЕНИЕ ОТ 01-04-2016)

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

Первыми пойдут силовые платы RAMPs v1.4 в двух модификациях. Различие в установленных на входе питания предохранителях. На одной плате предусмотрены самовосстанавливающиеся, на другой — плавкие автомобильные.

Помимо этого уже закупил партию транзисторов с сопротивлением открытого канала в 5 раз меньше, чем у установленных на оригинальных платах, и мощностью рассеивания 300 Вт.

Также для тех, кто любит возиться с паяльником в мае 2016 будут доступны наборы для сборки силовых плат обоих модификаций:).

Следите за анонсами на сайте и интернет-магазине!!!

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

КАК УМИРАЕТ RAMPs С ALIEXPRESS (ДОПОЛНЕНИЕ ОТ 27-04-2016)

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

Прошло чуть больше года… И… В самый «подходящий» момент, во время печати срочного заказа, срабатывает температурная защита прошивки! Принтер останавливается на середине детали…

Детальный осмотр показал прогоревший разъем входного питания.

Несмотря на то, что на плате стоит 9-ти амперный предохраниель (должен быть 11-ти амперный), выгорел котакт разъема. Пришлось убить время на перепайку. На место выгоревшего разъема установил подобный от DEGSON и снова в «бой».