Подключение дополнительных датчиков ramps 1.4. Драйверы шаговых двигателей

Ramps 1.4 - один из самых распространнеых шилдов для Arduino Mega. Как он обрел такую популярность? Все дело в том, что он является неотъемлемой частью в домашнем 3d принтере. Именно эта плата расширения позволяет подсоединить к универсальной платформе Arduino Mega 2560 все необходимые комплектующие Вашего устройства прототипирования. Это бюджетный вариант для сборки 3d принтера и настоящий момент именно такая категория принтеров наиболее популярная, так как в основном им пользуются для домашних нужд и печати в сфере робототехники. Цена Ramps 1.4 очень мала, что делает его незаменимым. Но у таких вещей есть свои нюансы и об основных этих аспектах мы поговорим в этой статье.

Ramps 1.4 для Arduino Mega

Как же подключать шилд Ramps и какова его распиновка? Сперва стоит соединить его с Вашей ардуинкой. Это очень просто и там нельзя ошибиться, просто втыкаем пины в штекеры разом, чтобы та полностью вошла в пазы. А вот далее начнутся манипуляции посложнее. В первую очередь нужно обратить внимание на то, что написано на плате расширения в ее центре: X, Y и Z. Под каждой из букв можно видеть 2 параллельные дорожки штекеров "мама". Именно туда вставляются драйверы управления шаговыми моторами. О их видах и характеристиках мы расскажем в другой статье, а пока будем вещать на примере самых надежных и дешевых А4988. Вставлять нужно именно так, как показано на картинке. Могут возникать трудности с их установкой, так как место для них весьма мало. Отдельно ставится драйвер (или два, в случае двух экструдеров) для управления шаговиком экструдера, проталкивающего филамент. Также, перед тем, как втыкать А4988, под ними есть 6 пинов, которые надо попарно соединить джамперами, которые идут в комплекте. Не забудьте это сделать, это очень важно!!!

Посадочные гнезда для драйверов шаговиков

Установленные драйвера А4988

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

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

Далее идет подключение концевых выключателей, они же стоппреы. Концевиков у нас 3, на каждую ость. Как и куда их ставить на Зд принтере мы уже писали и . Они подсоединяются в слоты в верхнем правом углу шилда.

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

Следующим шагом идет подключение проводом термодатчиков стола и сопла. Они подключаются к контактам Т0, Т1 и Т2, в любые из них - все зависит от настроек прошивки. Если хотя бы с одного не будет идти информация по какой либо причине, и на экране будет не определена температура или стоять 0 - в этом случае принтер не даст зайти в меня и работать не будет. Поэтому проверьте на исправность термопар, правильность установки.

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

Следующим и завершающим элементом статьи будет рассказ о силовой части ramp 1.4 и о ее нюансах. Начнем с того, что у нас есть 2 входа на плату с блока питания через 4 коннектора в виде зеленого четырех канального терминала. Сразу скажем, что это крайне ненадежный элемент и очень часто он плавится или даже воспламеняется. Это очень опасно, если Вы оставляете печатать принтер на ночь и не следите за ним. Поэтому от блока питания тянем 4 достаточно толстых провода. Выпаиваем зеленый терминал из платы расширения большим паяльником (одновременно все контакты нужно прогреть) или феном и подсоединяем напрямую питание в шилд. Каждый из двух каналов питания подает ток на свою часть синего терминала, имеющего по 3 слота. Одна его часть служит для обдува сопла, другая - для нагрева экструдера, третья - разогревает стол. Опять же, нужно смотреть настройку прошивки. Поэтому в один канал подсоединяем провода от экструдера, в другой - вентилятора обдува (см. рисунок ниже), а в третий - провода от нагревателя стола.

Подключение питания

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

Установка охлаждения

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

Питание 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 кабеля.

Сборка 3д принтера, а в особенности одна из самых важных частей, подключение всех компонентов к плате ардуино мега и рампс 1.4 .

Это шилд (надстройка) для

Это шилд (надстройка) для . Ардуино преобразует G-коды в сигналы и управляет 3D принтером посредством силовой части - RAMPS 1.4.

Плата одевается поверх Arduino и все подключения, кроме USB , осуществляются через неё. Питание 12В на Arduino подаётся через RAMPS 1.4.

Схема подключения элементов нашего 3д принтера

Для наглядности по осям:

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


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

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

A4988
Максимальный ток 2 А
Минимальный микрошаг 1/16 шага
повышение тока.

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

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

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

Двигатели оси Z можно подключать:
  • параллельно - каждый штекер в своё гнездо. Это стандартное подключение к . Могут быть проблемы с рассинхронизацией двигателей, если есть разница в сопротивлении обмоток двигателей.
  • последовательно по схеме, одним штекером. При последовательном подключении проблем не должно быть.
  • Концевые выключатели (концевики, endstop, limit switch).

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

    Расположение концевых выключателей

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

    Концевой выключатель оси X

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

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

    Термистор можно проверить мультиметром как резистор . (Подсоединил к мультиметру - 87 кОм. Зажал пальцами - сопротивление стало падать, оно вообще не стоит на месте. )

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

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

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

    Схема подключения автомобильного реле (12В 40А)

    Подключение нагрева хотэнда.

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

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

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

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

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

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

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

  • Так же видеоматериалы:
  • Первая часть сборки
  • Сборка печатного экструдера
  • Часть 2 механика:
  • Схема по сборке зд принтера + ссылки на запчасти Алиэкспресса
  • Двигатели нема 17 (нужно либо 3 штуки +2 28 х, либо 5 штук)
  • Нема 17

Как собрать 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 печати, а также постараюсь дать полезные советы по созданию моделей и улучшению качества печати.

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

ЗАКАЗ

Приобретать платы в оригинале мне показалось слишком дорого. Съэкономить на пайке много по подсчетам также не получится. Соответственно заказ сделал на 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 и снова в «бой».