Scara-робот. Вторая итерация. Первые результаты
Приветствую всех кто решил снова почитать о мои "приключениях".
В этот раз я не буду жаловаться на мир и всех кто мог оказаться виновным в моих неудачах. Меня ждал нынче успех. Вот и доказательства:
Уже стало немного интереснее? Появилась интрижка?
Начнем с начала. Нарисовал снова проект:
Приехал домой и собрал. Скачал Marlin. Настроил среду для редактирования и компилирования. Как раз вышел стабильный релиз, добавили кинематику MPSCARA. Решил проверить ее. Все паркуется, все ездит. Но она не подходит (там математика не скаравская, для ее использования требуется адаптировать конечный g-code через скрипт). Переключаюсь на MORGAN_SCARA, правлю немножечко код под REAL_SCARA из smothieware. Запускаю и все. Оси XY не паркуются, а Z гудит и дергается. (Видео не снял)
Ковыряюсь в коде пытаясь понять почему так ведет себя принтер. Ничего не выходит, там в этом коде все так запутано. Думаю, а добавлю-ка я туда свою кинематику, а не буду редактировать то что есть. А тут с этим еще хуже. Нельзя так просто взять и добавить туда свою кинематику, тебе надо еще научить прошивку с ней работать. И смотря на аналогию с имеющейся для MORGAN_SCARA, я плюнул на Marlin и забил как на страшный сон.
Осталась SmoothieWare. С ней у меня было меньше проблем. Здесь тебе и поддержка real_scara (то что нужно) и инструменты для настройки и калибровки ScarЫ (в Marlin тоже есть команды для калибровки, но не такие удобные), все движки работают правильно и парковка работает. Благодать. Приступил к настройке конфига. Я и так эти параметры меняю и эдак, но результат не соответствует ожиданиям. Как будто область печати совсем не там где я хочу.
Полез в google в поисках истины. Нахожу для примера такое видео:
Здесь парень показывает как его робот печатает. Использует модифицированный Marlin. Лезу в его исходник:
Right handed? Значит у меня леворукая скара? Не проблема. Сделаем ее праворукой. Печати-то на пару часов.
Ну теперь-то должна заработать. Но она так не считала и работала по своему. Давай мерить углы между руками после парковки и соотносить с тем что выдает принтер. Не сходится. Правлю код, что выдавал больше отладочной информации о расчетах, углах и положениях. Накидал табличку в Excel со всеми расчетами и параметрами:
Играюсь с параметрами всяко разно, вроде подобрал. По таблице все получается, но в реальности принтер работает не правильно. Ну что же я делаю не так?
Выход один надо разобраться в вопросе подробнее. Вспоминаем тригонометрию
Угол увеличивается при движении против часовой стрелки. А у меня? А меня по часовой стрелке. Причем обе руки. Правим конфиг на смену направлений парковки и о чудо, принтер стал работать предсказуемо, но не так как предполагается. Необходимо разобраться откуда какой угол отсчитывается и все такое и попадаются мне такие видео:
Очень доходчиво все объяснено.
Пытаюсь ориентировать свой принтер на координатной плоскости:
Уже стало понятнее, перенесем это на схему:
И после этого ко мне пришло окончательно понимание работы этой кинематики. Видно, что после парковки угол Theta (он же мотор Х) должен иметь отрицательное положение и это его минимальное положение, а угол Psi (он же мотор Y) стремится к 180 градусам, но там стоит концевик и поэтому данный угол является максимальным.
Осталось поправить конфиг. Но возникло одно пара НО!. X паркуется в свое минимальное положение, но при этом имеет свое максимальное положение на координатной плоскости, пришлось сделать так:
alpha_homing_direction home_to_min alpha_min 212alpha_max -10
beta_homing_direction home_to_max beta_min 180beta_max -38
Вот теперь то все и заработало. Руки движутся туда куда и должны и все работает предсказуемо. Осталось откалибровать и пробовать печатать.
Калибровка здесь не сложная (ориентировался по этой инструкции ссылка)
Посылаем команду:
M360
Принтер паркуется и принимает положение при котором X рука занимает нулевой положение и должно быть параллельно оси OX, если это не так, то перемещая по Y (Y+ / Y-) добиваемся параллельности. Когда все готово вводим команду
M360 P0
и принтер сам вычисляет и сохраняет полученное значение.
Таким образом мы настроили отступ от концевика для X, который будет применятся после каждой парковки. Для Y действия аналогичны, только используются команды
M364
M364 P0
Если вы не уверены в посчитанных шагах на градус, то это тоже можно настроить. Для X используются команды
M361 и M361 P0
рука займет положение в 90 градусов и требуется перемещением Y+/Y- настроить точность положения, вторая команда сама пересчитает шаги и сохранит в памяти. Для Y аналогично
M363.1 и M363 P0
После настройки шагов откалибруйте отступы для X Y заново.
И на этом все. Осталось сохранить изменения на карте командой
M500
По указанной выше ссылке еще написано применить команду
M366
Эта команда преобразует полученные отступы в смещение домашней позиции. После ее применения принтер стал неадекватно дергаться при изменении положения. В итоге я не стал этим пользоваться.
Перейдем к первой печати (это самое первое видео в статье). Это был самая первая попытка что-либо напечатать. И каково было мое удивление, когда вместо прямых линий получились дуги.
С ребристостью стенок все и так стало понятно при печати. Жесткости не хватает. Подшипники люфтят, ремни натянуты слабо, рельса по которой перемещается тоже люфтит. Но вот дуг вместо линий я не ожидал.
Сперва подумал на не точно измеренные длины рук, но отбросил это. Проблема крылась в другом. Я забыл про параметр
mm_per_line_segment 0.2
который делит прямую линию на короткие отрезки, то что нужно для нелинейных кинематик.
Стало немного лучше. По размерам соответствует, но по геометрии проблемы. Надо перепроверить длинны рук, может еще что-нибудь.
С жесткостью бороться можно лишь полностью переделав принтер. Это один самых интересных этапов, но сперва следует найти качественные подшипники. Продумать конструкцию, а не как в этот раз.
Если порассуждать, то можно найти много достоинств ScarЫ перед другими видами принтеров.
Желаю себе удачи, а вас с Наступающим Новым Годом.
Еще больше интересных статей
Изменения в следующей версии 3D-принтер PonyBot
Подпишитесь на автора
Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых статьях.
Отписаться от уведомлений вы всегда сможете в профиле автора.
•Порт...
Скорость, температура и перевод RAMPS 1.5 на 24В
Подпишитесь на автора
Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых статьях.
Отписаться от уведомлений вы всегда сможете в профиле автора.
Печать 4-мя сменными соплами в массы! Часть 1.
Подпишитесь на автора
Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых статьях.
Отписаться от уведомлений вы всегда сможете в профиле автора.
Работа над реализацией печа...
Комментарии и вопросы
Здравствуйте. Скачать модель м...
Поделитесь, пожалуйста, модель...
И кто там "международный" был?
Посоветовали мне для корректир...
Образовалась пробка в тефлонов...
Всех приветствую. Принтером не...
Не могу получить каких-либо пр...