Автоматическое выравнивание стола с платой Румба - Сервопривод не развертывается

Кому-нибудь удалось установить автоматическое выравнивание стола на плату Rumba с прошивкой Marlin?

У меня есть последняя стабильная версия 1.1.0 RC6.

Я был бы признателен за некоторые указания, особенно в отношении:

  • Как и какой штифт активировать для сервопривода?
  • Как проверить это с помощью G-кода, прежде чем перейти к настройкам последовательности зондов?

На данный момент я установил только аппаратное обеспечение (сервопривод 5 В), подключенное к Ext. 3 (EXP3):

  • Вывод 2 (+5В);
  • Вывод 4 (GND) и;
  • Вывод 6 (ШИМ),

Servo and RAMPS 1.4 and RUMBA connections

RUMBA EXP3 pinout

но я не могу переместить его с помощью команды G-кода M280 P0 S180. Я понятия не имею, куда девать прошивку, чтобы все это началось. Однако моя конечная цель - установить ABL.

, 👍6

Обсуждение

Чтобы иметь два переключателя Z min, вам придется подключить их параллельно так, чтобы при срабатывании любого из них плата увидела бы это, но это не стандартный способ реализации автоматического выравнивания, и вы захотите убедиться, что при нормальной работе переключатель выравнивания сетки всегда будет нажиматься первым, и, возможно, установите второй переключатель на 5 мм ниже, так что будет легкое, но не вредное столкновение со столом, будет почти невозможно заставить их обоих сработать одновременно и все же получить преимущества выравнивания сетки., @Jexoteric


2 ответа


Лучший ответ:

3

Общее примечание, у меня нет этой платы, поэтому я не могу проверить эти шаги самостоятельно, прочитайте документацию в configuration.h, она очень подробная и должна помочь вам довольно хорошо. Я специально смотрю на Marlin 1.1 RC7 на Github, поэтому строки ниже могут незначительно отличаться от того, что вы видите.

Что касается контактов для подключения на плате для сервопривода, pins_RUMBA.h - это место, где они определены / сопоставлены. Для других плат существует pins_[your_board_name].h, который будет определять контакты для любой данной платы.

Штифт сервопривода по умолчанию для Румбы:

#define SERVO0_PIN         5

Штифт 6, по-видимому, используется для третьего нагревателя экструдера.

#define HEATER_2_PIN        6   // ЭКСТРУДЕР 3

В конфигурации.h вы должны раскомментировать (удалить косые черты "//" в начале) строки и заполнить углы укладки и развертывания во второй строке для сервопривода. Найдите эти строки под заголовком "Параметры зонда Z".

//#define Z_ENDSTOP_SERVO_NR 0
//#define Z_SERVO_ANGLES {70,0} // Углы развертывания и укладки сервопривода Z

Определите смещения зонда от сопла экструдера:

#define X_PROBE_OFFSET_FROM_EXTRUDER 10  // X смещение: -влево + вправо [сопла]
#define Y_PROBE_OFFSET_FROM_EXTRUDER 10  // Смещение Y: -спереди + сзади [сопла]
#define Z_PROBE_OFFSET_FROM_EXTRUDER 0   // Смещение Z: -ниже + выше [сопла]

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

Раскомментируйте эту строку:

//#define Z_MIN_PROBE_ENDSTOP

и прокомментируйте эту строку:

#define Z_MIN_PROBE_USES_Z_MIN_ENDSTOP_PIN

Затем установите высоту каретки так, чтобы комната z-зонда могла качаться вниз и двигаться:

#define Z_PROBE_DEPLOY_HEIGHT 15 // Поднять, чтобы освободить место для развертывания зонда / уложить
#define Z_PROBE_TRAVEL_HEIGHT 5  // Поднять между точками зондирования.

Для раскомментации выравнивания autobed:

//#define AUTO_BED_LEVELING_FEATURE // Удалить комментарий, чтобы включить

Затем установите углы точек зонда:

#if ENABLED(AUTO_BED_LEVELING_GRID)

#define LEFT_PROBE_BED_POSITION 15
#define RIGHT_PROBE_BED_POSITION 170
#define FRONT_PROBE_BED_POSITION 20
#define BACK_PROBE_BED_POSITION 170

#define MIN_PROBE_EDGE 10 // Минимальные квадратные стороны зонда Z не могут быть меньше этого.

Установите количество точек для зондирования в каждом направлении (x и y), по умолчанию 2, поэтому он будет зондировать 4 местоположения, другой общий выбор - 3, поэтому он будет зондировать сетку из 9 местоположений.

// Задайте количество точек сетки для каждого измерения.
// Вам, вероятно, не нужно больше 3 (квадрат = 9).
#define AUTO_BED_LEVELING_GRID_POINTS 2

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

Надеюсь, это поможет!


,

Спасибо за ваш ответ. Основная проблема, с которой я сталкиваюсь, заключается в том, чтобы заставить сервопривод двигаться. Если я подключу его в соответствии с моим вопросом, он не сдвинется с места. Читая ваш ответ, похоже, что я должен подключить его к 2, 4 и PWM к 5, а затем использовать Servo0 в конфигурации и в Gcode. Ты это имеешь в виду? Я добавил в свой вопрос рисунок, показывающий диаграмму ext.3., @FeliceM

Да, лучшее, что я могу сказать, это подключить сигнальную линию к контакту 5, который является pwm1., @Jexoteric

Я сделал все в соответствии с вашим ответом. Мне также пришлось активировать поддержку сервопривода, где я определил СЕРВОПРИВОД NR 1. Я проверил функциональность сервопривода с помощью платы arduino, и все в порядке. Однако, когда я отправляю Gcode M280 P0 S90, сервопривод не перемещается! Не уверен в том, что делать., @FeliceM

Под каким углом в данный момент находится ваш сервопривод? Если он уже находится на 90, он не будет двигаться, вы можете попробовать другой угол, чтобы проверить. Кроме того, вы уверены, что индекс сервопривода начинается с 0 на этой плате? Попробуйте M280 P1 S80 и M280 P0 S80. Между этими двумя командами он проверит оба моих предложения. В остальном я думаю, что сделал все, что мог, чтобы помочь, даже не используя доску для румбы., @Jexoteric

Спасибо за вашу помощь. Поскольку мне нужно было определить количество сервоприводов в разделе Поддержка сервоприводов, я использовал 1, если я даю P1, он возвращает "сервопривод вне диапазона", в то время как с P0 ничего не происходит. Не определяя номер сервопривода, прошивка не компилируется и возвращает ошибку "определить номер сервопривода". Я снова протестировал сервопривод с помощью Arduino, и все в порядке. Я попробовал оба вывода 6 и 5 ext. 3, но он не двигается. Если я запускаю G29, принтер выполняет ABL, но сервопривод не перемещается. Я переместил его вручную в промежуточное положение, чтобы избежать того, чтобы он уже находился в конечном положении. Ничего!, @FeliceM

Я не решил свою проблему с сервоприводом, однако вы дали мне хороший ответ в ответ на мой вопрос, и поэтому вы заслужили награду. Спасибо за ваши усилия., @FeliceM


4

Для дальнейшего использования.

Моя проблема с тем, что сервопривод не двигался, была вызвана ошибкой проводки. Exp. 3 имеет 14 контактов в соответствии с этой схемой.

Однако, когда вы физически смотрите на плату, вы видите следующее:

Я взял первые 2 контакта справа от такого разъема и 3-й из первого ряда, думая, что подключаю контакты 2-4-5 Exp. 3. Я был неправ, потому что первые 2 (1-2) штыря не являются частью Exp. 3.

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

Затем используйте PWM1 (вывод 5 Ext.3). Я решил оставить след этой проблемы и соответствующее решение для тех, кто может столкнуться с той же проблемой.

,