Меню

andipanda.dev

Graber i3: независимое управление двигателями оси Z на RAMPS 1.4

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

Но оставалась ещё одна особенность конструкции, на которую я решил обратить внимание — два двигателя оси Z.

Они отвечают за вертикальное перемещение портала с осью X, и от согласованности их работы зависит положение сопла относительно поверхности стола.

Два двигателя на одном драйвере

В моём Graber i3 установлена плата RAMPS 1.4.

В стандартной конфигурации оба двигателя оси Z подключаются к двум разъёмам, которые управляются одним драйвером.

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

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

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

Мне хотелось получить возможность корректировать положение каждой стороны независимо.

Свободный канал второго экструдера

RAMPS 1.4 рассчитана на подключение двух экструдеров.

Но в моём принтере установлен только один, поэтому канал второго экструдера E1 оставался свободным.

Я решил использовать его для второго двигателя оси Z.

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

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

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

Всё необходимое уже было на RAMPS 1.4.

Конфигурация Klipper

К этому моменту принтер уже работал под управлением Klipper, поэтому оставалось изменить его конфигурацию.

Основной двигатель оси Z описывается в секции stepper_z, а второй — в stepper_z1.

Для дополнительного двигателя я использовал выводы канала E1 на RAMPS 1.4.

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

Но теперь появилась возможность управлять ими независимо при выполнении процедур калибровки.

Стоит отметить, что такая возможность существует не только в Klipper. Marlin также поддерживает независимые драйверы Z и автоматическое выравнивание.

Просто на момент этой модернизации я уже перешёл на Klipper и продолжал работать с ним.

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

Для чего вообще понадобилось разделять управление двигателями?

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

Небольшой перекос может появиться из-за особенностей механики или изменения положения одного из двигателей при отключённом питании.

В результате ось X оказывается наклонена относительно стола.

Раньше такую разницу приходилось компенсировать вручную.

Теперь же появилась возможность изменять положение каждой стороны портала отдельно.

В Klipper для этого предусмотрена процедура Z_TILT_ADJUST, которая использует измерения датчика стола для определения и коррекции наклона портала.

Таким образом, установленный ранее датчик получил ещё одно возможное применение.

Однако здесь важно понимать разницу между выравниванием портала и компенсацией неровностей стола.

Z_TILT_ADJUST корректирует взаимное положение сторон портала, а BED_MESH_CALIBRATE позволяет учитывать особенности поверхности стола во время печати.

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

Что дала модернизация

Главным результатом стало то, что два двигателя оси Z перестали зависеть от одного драйвера.

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

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

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

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

Поэтому работа над Graber i3 на этом не закончилась.

Что дальше

Следующим этапом стала замена драйверов шаговых двигателей.

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

Мне хотелось уменьшить шум двигателей, не меняя всю управляющую электронику.

Именно об этой модернизации расскажу в следующей статье.