Команда калибровки датчика индуктивности на 3д принтере
Автоматическая калибровка стола - довольно распространенная функция в настольных FDM 3D принтерах. Однако в большинстве 3D принтеров с автоматической калибровкой стола используется бесконтактный индуктивный датчик, который прост в установке, эксплуатации и настройке. Эти индуктивные датчики хорошо работают в связке металлическими столами 3D принтеров, но столы из других распространенных материалов, таких как стекло, практически невидимы для индуктивных датчиков.
Возможно, именно из-за этого недостатка индуктивных датчиков, у многих на слуху датчики BLTouch: если вам нужно использовать неметаллическое основание слота 3D принтера, но при этом необходима автоматическая калибровка, эти датчики - отличный вариант. Еще один плюс этих датчиков - его высокая точность. Исходные показания BLTouch имеют одно из самых низких стандартных отклонений среди всех типов датчиков для автоматизации калибровки стола 3D принтера.
В этой статье мы рассмотрим датчик BLTouch, его достоинства и как его использовать для 3D принтера (к слову, существует множество клонов датчиков BLTouch, но оригинальная конструкция принадлежит компании Antclabs из Южной Кореи).
Что такое датчик BLTouch?
Согласно данным от Antclabs, оригинальному производителю датчика, "BLTouch - это датчик для автоматической калибровки стола 3D принтеров, который может точно измерять угол наклона поверхности стола". Этот датчик работает на любом типе поверхности, будь то металл, стекло, дерево и другие.
Сам датчик уровня наклона стола 3D принтера имеет довольно сложную конструкцию. Он состоит из микроконтроллера, соленоидного переключателя и наконечника, который непосредственно соприкасается со столом. В оригинальном BLTouch для обеспечения высокой точности используется датчик Холла, и этот датчик в сочетании с физическим наконечником позволяет использовать его со многими типами столов.
В некотором смысле этот датчик эквивалентен микровыключателю, установленному на сервоприводе. Когда инструментальная головка опускается, чтобы "вернуть" сопло по оси Z, стол толкает наконечник немного вверх, срабатывает датчик Холла, после чего головка инструмента поднимается.
BLTouch - один из самых точных и надежных датчиков, поэтому неудивительно, что некоторые производители, такие как MakerGear и CraftBot, используют это устройство на своих высокопроизводительных 3D принтерах.
Теперь, когда мы точно знаем, с чем имеем дело, давайте сравним BLTouch с двумя другими типами датчиков.
Разные типы датчиков для автоматической калибровки стола 3D принтера
Индукционный датчик
Ключевое различие между индуктивным датчиком и BLTouch заключается в том, что датчик BLTouch физически касается стола в процессе калибровки. Индуктивный датчик использует токи, индуцированные магнитными полями, для обнаружения металлических предметов поблизости, благодаря чему непосредственного физического прикосновения к столу не происходит.
Но в этом и заключается проблема: индукционные датчики работают только с металлическими столами, поскольку срабатывают только при контакте с металлом. Так что если вы используете стекло, то такой тип датчиков вам не подойдет.
Микросвич (механический концевой выключатель)
Не стоит также сбрасывать со счетов старомодный физический микровыключатель. По сравнению с BLTouch этот датчик менее точен и, возможно, менее надежен в долгосрочной перспективе, поскольку измерение зависит от физических деталей, которые могут со временем изнашиваться.
Однако эти механические переключатели дадут фору другим вариантам, если вопрос касается стоимости и простоты настройки. Поскольку механические переключатели являются очень простыми в реализации, легко настраиваются и дешево стоят, они нашли довольно широкое применение.
Альтернативы
Pinda Probe
Pina Probe - это датчик, разработанный Prusa Research, который представляет собой индукционный сенсор с термистором для учета изменений температуры слоя. Зонд Pinda специально разработан для линейки 3D принтеров Prusa, на которых установлены специальные точки маркеры для калибровки на столе, которые помогают с выравниванием и коррекцией перекоса.
Считается, что это очень точный датчик для 3D принтеров, и, хотя цифр в интернете особенно нет, отзывы кажутся положительными. Так что стоит учесть, что это хороший вариант, если на вашем 3D принтере стол из металла.
Ezabl Pro
Ezabl Pro - это емкостной датчик, изготовленный. Он поставляется с соединительной платой, в которой используется оптический изолятор, чтобы предотвратить повреждение материнской платы высоким напряжением в случае ошибок подключения.
Что касается точности, то он может выполнять измерения с точностью до одной тысячной миллиметра, а это то, что нужно 3D принтерам. Ezabl Pro также имеет полезные функции, такие как двойное экранирование, которое предотвращает любые помехи от других сигналов.
Основным недостатком Ezabl Pro стоит отметиь стоимость, которая составляет около 65 долларов. Но зато этот датчик может работать со стеклянными столами.
Пъезо датчики
Пьезоэлектрический датчик использует пьезоэлектрический эффект для улавливания изменений силы, давления или деформации и преобразования этих изменений в электрический импульс. Компания Precision Piezo из Великобритании - одна из немногих компаний, производящих пьезоэлектрические датчики для 3D принтеров. Они имеют точность, близкую к 7 микронам, что довольно точно для 3D принтера.
Преимущество пьезоэлектрического датчика заключается в том, что в качестве чувствительного элемента можно использовать сопло, не требуя установки дополнительных компонентов. Кроме того, пьезоэлектрический датчик можно разместить на печатающей головке или под платформой для измерения давления. Что касается цены, то она находится в том же диапазоне, что и BLTouch.
Основы настройки датчика BLTouch
Прежде чем приступить к модификации 3D принтера для BLTouch, вам необходимо проработать следующие моменты.
Монтаж датчика
Датчик BLTouch необходимо установить как можно ближе к печатающей головке. Вы можете найти множество конструкций, доступных для загрузки в интернете. Если вы хотите разработать конструкцию для монтажа самостоятельно, обязательно прочтите документацию BLTouch, чтобы учесть габаритные размеры датчика.
Некоторые пользователи сталкиваются с проблемой, когда сопло врезается в стол с одной стороны и идеально печатает с другой. Причина этого в том, что BLTouch установлен под углом по отношению к соплу. Поэтому при проектировании и установке оборудования убедитесь, что BLTouch установлен идеально под прямым углом и совмещен с соплом.
После установки датчика обязательно запишите расстояние между датчиком BLTouch и центром сопла как по оси X, так и по оси Y.
Конфигурация прошивки 3D принтера
Для запуска BLTouch, необходимо будет изменить прошивку 3D принтера в нескольких местах.
Мы использовали версию прошивки Marlin 1.1.9, которая была обновлена в марте 2020 года. Войдите в файл marlin.ino и перейдите на вкладку configuration.h.
Первый шаг - активировать датчик BLTouch, объявив его. Удалите две косые черты, чтобы раскомментировать оператор define:
Следующим шагом является установка смещения BLTouch с использованием расстояний X и Y, которые вы должны были измерить при установке датчика. Смещение по оси Z может показаться более сложной процедурой, так как датчик BLTouch выступает ниже сопла при непосредственных измерениях. Вам нужно будет найти расстояние между датчиком и концом сопла, когда датчик полностью выдвинут.
Кроме того, поскольку датчик опускается ниже сопла, смещение должно быть отрицательным. Мы рекомендуем установить его примерно на -2,5 для безопасных первых запусков, а затем отрегулировать. Вам нужно изменить значения следующих строк, чтобы они соответствовали вашим числам:
После того, как вы закончите со смещением, вам нужно будет выбрать тип выравнивания стола. Вы можете выбрать один из пяти различных методов компенсации, ниже мы приведем пример с использованием билинейного метода, поскольку с него легко начать.
Чтобы выбрать подходящий вариант, раскомментируйте его, убрав косую черту. Обратите внимание, что только один вариант можно оставить без комментариев. Ваш код должен выглядеть примерно так:
Вы также можете установить количество точек сетки, на основании которых вы будете проводить калибровку. По умолчанию установлено 9 точек, которые формируют сетку 3 на 3 по осям X и Y. Количество точек можно увеличить для получения более точных результатов, но имейте в виду, что время зондирования также будет также пропорционально увеличиваться.
Тестирование
После настройки прошивки вам нужно будет проверить, работает ли BLTouch должным образом, выполнив базовый тест. Как только он будет завершен, вы можете приступить к настройке смещения Z. Есть отличное видео от 3DMakerNoob, которое шаг за шагом проведет вас через весь процесс.
Настройка слайсера
Обязательно добавьте команду G29 в свой G-код сразу после команды G28.
Возможные проблемы
Обнаружение проблем
Создатели оригинального BlTouch в Antclabs упомянули, что оригинальные датчики поставляются с QR-кодом, встроенным в печатную плату на задней стороне. Также известно, что другие китайские производители, называемые TL Touch и 3D Touch, производят продукцию более низкого качества, что приводит к ухудшению качества. При покупке в интернете обязательно приобретайте у одного из авторизованных реселлеров, которые опубликованы на сайте Antclabs.
Известные проблемы BLTouch датчика
В последней версии BLTouch V3 были проблемы с принтерами Creality, на которых он не работал должным образом. Разработчики прошивки Marlin тесно сотрудничали с Antclabs и определили, что в прошивку необходимо внести определенные изменения.
Отличное обучающее видео по исправлению этой проблемы было подготовлено компанией Teaching Tech. После внесения изменений многие пользователи, наконец, решили проблему.
Недостатки BLTouch
Хотя BLTouch является чрезвычайно точным датчиком уровня, у него также есть несколько недостатков.
При использовании BLTouch важно, чтобы на поверхности кровати не было мусора. Механический датчик определяет поверхность стола и любое повреждение или мусор на поверхности приведет к неточным показаниям.
Также известно, что BLTouch страдает от помех от токов в проводах нагревателя хот энда. Эти помехи приводят к неправильным показаниям BLTouch. В прошивке Marlin есть специальная строка кода, которая поможет вам выключить обогреватели, пока срабатывает датчик. Чтобы активировать его, найдите и раскомментируйте следующее:
Для калибровки PID экструдера или стола используется команда:
M303 E0 S235 C8 U
N.B.: Имеет смысл перед калибровкой PID экструдера включить на половину мощности вентилятор обдува модели командой M106 S127 что бы привести ситуацию к более реальным условиям.
Вот пример результата калибровки в программе Repetier-Host (вывод в консоль):
Для калибровки уровня стола на принтере с установленным датчиком уровня BLTouch или 3DTouch, (при первой ли установке, просто так ли, или при любом вмешательстве в экструдер или печатную голову) необходимо выполнить серию команд, например в Repetier Host:
G90 - Переключение принтера на абсолютные координаты
M851 Z0 - Сбросить параметр Z offset, если он установлен в настройках
G28 - Парковка по всем осям
G29 - Запуск автокалибровки стола. Ждем пока закончится.
G1 X110 Y110 F6000 - Переместиться по координатам X=110 Y=110, со скоростью 6000 мм/мин (обычно в центр стола, тут имеется в виду стол 220мм на 220мм)
G1 Z0 F500 - Опустить головку в координату 0 по оси Z со скоростью 500 мм/мин
G91 - Переключение относительные координаты, что бы дальше подгонять зазор относительно текущего 0 по оси Z
M211 Z1 S0 - Отключить программные концевики оси Z, чтобы можно было уходить в минус по Z, если понадобится
Теперь с помощью листа бумаги калибруем зазор между соплом и столом с помощью команды:
G1 Zn - движение по Z, где n - величина перемещения в миллиметрах.
Возможны дробные величины, через точку. Возможны отрицательные величины. даем эту команду несколько раз, подгоняя зазор, что бы чувствовалось, как бумага трется об сопло. Например, зазор большой. Даем G1 Z1. Т.е. опускаем сопло на 1 мм. Если бумага свободно двигается, даем G1 Z1 еще раз. Если бумагу зажало, откатываемся вверх на 1 мм командой G1 Z-1 и начинаем опять опускать, но уже по чуть-чуть: G1 Z0.1 и т.п. Пока не будет нужного зазора.
M114 - После точной найтроки даем эту команду. Она Покажет текущие координаты. Координату по Z вносим в настройки, в параметр Z offset.
G92 - Сбросить все координаты в 0.
После чего сохраняем настройки в энергонезависимую память либо из меню принтера, либо с помощью команды M500.
После калибровки выключаем принтер, включаем снова, проверяем сохранился ли Z offset и пробуем что-либо напечатать и на первом слое подгоняем зазор с помощью babystepping-а. Значение, полученное в babystepping при идеальной толщине выкладки первого слоя добавляем к Z offset (если значение babystepping положительное, то увеличиваем Z offset, если значение babystepping-а отрицательное, то, соответственно, уменьшаем)
Индуктивный датчик — бесконтактный датчик, предназначенный для контроля положения объектов из металла. В основу его работы положено свойство дросселя с воздушным зазором изменять свою индуктивность при изменении величины воздушного зазора.
В данной схеме мы видим катушку в составе колебательного контура, частота колебаний которого (и вытекающая из этого индуктивность) зависит от расстояния между катушкой и феромагнитным материалом. Измеряя индуктивность (или амплитуду колебаний) можно делать выводы относительно расстояния между катушкой и феромагнитным материалом.
Это принцип используется в индуктивных датчиках приближения. Упрощенная функциональная схема выглядит следующим образом. Генератор создает колебания в катушке, при изменении амплитуды колебаний выше (или ниже) порогового значения, срабатывает триггер и подает на выход логический ноль (или единицу, в зависимости от настроек).
1. Генератор создает электромагнитное поле взаимодействия с объектом
2. Триггер переключает состояние логического выхода
3. Комплексная защита защищает датчик от переполюсовки, помех по питанию
4. Ключевая схема создает выходной сигнал датчика
Такие датчики крайне широко используются в промышленности, например, в станкостроении, автомобильной отрасли и т.д.
Зачем такой датчик потребовался мне? Небольшая предыстория.
В свое время, году в 2011-2012 (за давностью уже точно не помню) на Kickstarter появился новый многообещающий стартап – 3Д принтер Makibox. Обещания были просто космические- за 200 USD (на секундочку, 2012 год!) полностью функциональный, отлично выглядящий и работающий 3Д принтер с подогреваемым столом. Доставку обещали включить в цену. Ближайшие доступные конкуренты тогда стоили около 800-1000 USD.
Выглядел он на фотках просто шикарно. Дальше началась вполне обычная для Кикстартера песня – срыв сроков поставки на год, повышение цены и т.д. Мне просто фантастически повезло, т.к. я был в первых рядах, то почти через 2 года с момента оплаты, я получил в первой и последней партии свой принтер за 350 USD (так подросла цена) с 4 катушками пластика (компенсация за «не помню что»). С учетом пластика получилось весьма недурственно. Затем фирма лопнула и тысячи вкладчиков остались ни с чем.
У меня даже сохранилось видео работы Макибокса. Ниже кадр первого запуска и первая деталь, которая даже не смогла допечататься.
Проблемы посыпались сразу и валом. Печатающая головка (hot end) намертво забивалась пластиком в течении первых пяти минут работы с гарантией 99%, через пару дней экспериментов накрылся экструдер (система подачи пластикового прутка), конструкция принтера была настолько непродуманная и хлипкая, что изделия гуляли и извивались во всех направлениях.
Надо сказать, что я все равно крайне был доволен тем, что ввязался в эту авантюру. Во-первых, я знал, на что шел. И в моем случае риск себя оправдал. А во-вторых, устраняя все огрехи конструкции, я досконально разобрался во всех аспектах и нюансах 3Д печати.
Печатающая головка был заменена на другую — E3D v.5. Экструдер напечатан новый, с жесткостью конструкции была проведена большая работа. И принтер начал печатать.
Но полностью устранить конструктивные просчеты было невозможно, а ходовые гайки из обычной пластмассы вызывали грусть, и понимание неизбежности скорого вырабатывания ресурса принтера.
И я решил собрать свой принтер. Технологию перемещения печатающей головки выбрал CoreXY.
Вертикальную подачу стола я хотел сделать обязательно на ремнях, чтобы исключить искажения геометрии детали вдоль оси Z (wobbling). Также в голове сидели мысли – как бы подойти к решению проблемы выставления стола принтера «в горизонт».
На горизонтальности стола надо остановиться поподробнее. Это имеет непосредственно отношение к теме обзора и супер важно для качественной печати. Обычно все столы крепятся через систему пружинной регулируемой подвески в 3-х или 4-х точках.
И перед печатью необходимо долго и упорно гонять печатающую головку над столом и, крутя винты регулировки, добиваться максимально одинакового и точно заданного зазора (обычно 0.2-0.3 мм), причем на горячем (80-90 градусов) столе. Задача не самая, по правде говоря, интересная и увлекательная, да и обжечься можно. А т.к. настройки из-за вибрации и нагрева- охлаждения регулярно сбиваются, то эту процедуру надо повторять периодически. Причем процедура крайне важная – не будет идеального зазора и «горизонта» — деталь не приклеится к столу частично или полностью, и значит отвалится при печати или будет ужас какая кривая.
Поиски и раздумья привели меня к open source (свободно распространяемой) конструкции SmartRap Core. Привлек меня в ней именно набор всех моих хотелок в одном флаконе: это и CoreXY, и вертикальная подача стола на ремне и герой нашего обзора – индуктивный датчик, используемый для калибровки стола.
Так как проект “открытый”, то существует большое сообщество энтузиастов, предлагающих всякие альтернативные улучшения и «фишечки». Посидев пару деньков над OpenSCAD, я определился с параметрами конструкции, распечатал необходимые детали, заказал недостающее в Китае.
Электроника, стол с подогревом, и шаговые двигатели взял с донора MakiBox. Дозаказать пришлось лишь 3 шкива под зубчатый ремень, собственно сам ремень, индуктивный датчик и несколько подшипников. Все влезло менее чем в 20 долларов.
И вот принтер собран.
Оптимизируя цену и конструкцию я погнался за двумя зайцами. Первый заяц – тишина. Я слышал как работают 3Д принтеры с линейными подшипниками – это громко. Они все же лязгают и для них нужны закаленные линейные направляющие.
И второй заяц, за которым я погнался – цена. Все же 12 подшипников и 6 осей стоят денег.
И надо сказать, что своих зайцев я догнал. В качестве осей взял незакаленные оси из разобранных струйных принтеров, 8мм в диаметре, а в качестве подшипников – выточил подшипники скольжения из маслонаполненного капролона. Оси из принтеров мне ничего не стоили, а на капролон я потратил 280 рублей и еще осталось на 3 или 4 комплекта. Работает механика практически бесшумно. Конечно с «песней» шаговых двигателей ничего поделать невозможно, но это меньшее из зол.
И наконец, герой нашего обзора. Фотку датчика отдельно возьму из сети, т.к. свой уже закреплен на 3Д принтере
И вот он на моем станке
Что делает индуктивный датчик? В прошивке 3Д принтера (я использую Marlin) есть раздел в котором описывается калибровка стола принтера. Можно указать 4 точки, в которых будет измеряться расстояние от датчика до стола.
Далее все очень и очень просто. Датчик проезжает по этим четырем точкам, опускает – поднимает стол и определяет расстояние между датчиком и столом. Растояние между столом и печатающей головкой в этих точках определяется как (Расстояние между датчиком и столом) – (Расстояние между датчиком и печатающей головкой).
Затем все эти величины учитываются прошивкой 3Д принтера, и начинается печать.
Так выглядит протокол обмена информацией в окне программы Repetier Host.
G28 – команда Homing (определение начальных положений по осям). Принтер гоняет печатающую головку до касания концевых датчиков осей
G29 – Это как раз Auto Leveling (Авто калибровка уровня). Проход по четырем точкам
Ниже результаты работы, расчет отклонения значений измерений четырех точек и необходимых поправок при печати.
И как водится, на самом принтере печатаем узлы для дополнительных компонентов. Напечатал держатель катушки с нитью.
И как всегда небольшое видео работы индукционного датчика и автокалибровки уровня стола принтера.
Резюме. Крайне недорогой прибор, который может серьезно облегчить жизнь владельцу 3Д принтера. Настоятельно рекомендуется к покупке.
PID (ПИД, Пропорционально-интегрально-дифференцирующий регулятор) - регулятор, использующий сумму трех значения входного сигнала (Kp, Ki, Kd) для задания и поддержки температуры стола\хотенда в установленных пределах. Данные значения будут разными в зависимости от используемого железа, наличия обдува, силиконового носка и множества других факторов, поэтому калибровку необходимо производить как после первого запуска принтера, так и после изменения конфигурации хотенда\стола. Так же данную процедуру необходимо проводить при скачкообразных изменениях температуры и большом разбросе при удержании заданного значения.
В прошивку Marlin встроены инструменты для автоматической калибровки PID как для хотенда, так и для стола. Для управления нагревом стола с помощью PID необходимо предварительно активировать в прошивке параметр "PIDTEMPBED" (подробнее в разделе Прошивка -> Стол, данную процедуру необходимо провести перед калибровкой стола и прошить принтер, по умолчанию параметр выключен). Процедуру калибровки желательно проводить на максимально приближенных к печатным условиям, если у вас закрытый корпус - необходимо закрыть дверцу и надеть кожух\колпак, при калибровке хотенда стол должен находиться в непосредственной близости к соплу и обдув должен быть включен на максимум (либо значение, которое вы используете чаще всего). Внимание, во время проведения калибровки вам может показаться, что принтер завис, но это не так - тест довольно длительный и время его проведения зависит от количества установленных повторений.
Полученные значения можно внести в прошивку или сохранить в EEPROM, данная процедура описана в разделе "Прошивка". Также для калибровки хотенда можно воспользоваться готовым GCod'ом который проведет калибровку за вас и сохранит значения в EEPROM. Для этого необходимо скопировать код, описанный ниже (установив в нем свои значения номера экструдера, температуры, а также количество повторений) в текстовый файл, сохранить его с расширением ".gcode" и запустить на исполнение на вашем принтере; результаты тестирования будут автоматически сохранены. После завершения в терминал будут выведены текущие значения EEPROM для проверки, значения PID для экструдера находятся в строке с командой "M301".;HotEnd_PID_calibration.gcode
G28 ;Вернуться в начало координат
G1 Y100.0 X100.0 Z5.00 F1500 ;Переместить хотэнд на координаты X100 Y100 Z5
M106 S255 ; включить обдув модели на 100%
;
M303 E0 S240 C7 U ;E0<номер экструдера> S<температура> C<циклы> U<применить полученные значения>
M106 S0 ; выключить обдув модели
M500 ;Сохранить полученные значения в EEPROM
;
M503 ;Вывести текущие значения EEPROM для проверки
(необходимо активировать параметр PIDTEMPBED в прошивке)
Процедура калибровки PID для стола практически не отличается от калибровки хотенда. При наличии корпуса закройте дверцу и установите крышку принтера, чтобы создать закрытый объем внутри принтера. Обратите внимание, что команды для калибровки стола и хотенда совпадают, отличается лишь параметр номера экструдера, для стола это всегда будет "-1"
Полученные значения также вносятся в прошивку или сохраняются в EEPROM. Для тестирования стола также можно использовать GCode, указанный ниже, сохранив его в файл с расширением ".gcode" и запустив на принтере; он проведет тестирование и автоматически сохранит значения в EEPROM. После завершения в терминал будут выведены текущие значения EEPROM для проверки, значения PID для стола находятся в строке с командой "M304".
;Bed_PID_calibration.gcode
G28 ;Вернуться в начало координат
G1 Y100.0 X100.0 Z5.00 F1500 ;Переместить хотэнд на координаты X100 Y100 Z5
M106 S255 ; включить обдув модели на 100%
;
M303 E-1 S80 C7 U ;E-1<стол> S<температура> C<циклы> U<применить полученные значения>
M106 S0 ; выключить обдув модели
M500 ;Сохранить полученные значения в EEPROM
;
M503 ;Вывести текущие значения EEPROM для проверки
Значения, полученные после PID калибровки, записываются в разделе "PID Settings" в файле "Configuration.h" по порядку (без кавычек):
Для управления нагревом стола через PID необходимо раскомментировать параметр "PIDTEMPBED" (убрать "//"), после чего можно по порядку ввести значения Kp, Ki, Kd в разделе "PID > Bed Temperature Control" в файле "Configuration.h":
После прошивки принтера необходимо стереть EEPROM и загрузить в него значения, установленные нами в прошивке, для этого в терминале принтера нужно ввести две команды по порядку (до точки с запятой):
Терминал принтера
M502 ; Загрузить значения указанные в прошивке
M500 ; Сохранить значения в EEPROM
Не стоит забывать, что значения PID хранятся в энергонезависимой памяти контроллера и после перепрошивки вам необходимо либо восстановить в EEPROM значения, указанные нами в прошивке, либо, если вы не хотите перепрошивать свой принтер, вы можете сохранить значения напрямую в EEPROM, но не забывайте, что при использовании команды "M502" (записать значения из прошивки в EEPROM) придется повторно записать PID значения в EEPROM, так как они будут заменены теми, что указаны в прошивке. Для хранения данных значений предпочтительнее указывать их в прошивке - это убережет вас от множества проблем.
Терминал принтера:
M301 P<Kp value> I<Ki value> D<Kd value> ;Установить значения PID для хотенда
M304 P<Kp bed value> I<Ki bed value> D<Kd bed value> ;Установить значения PID для стола
M500 ; Сохранить значения в EEPROM
Хотэнд (HotEnd) - блок из нагревателя, термодатчика, сопла и корпуса, который отвечает за нагрев пластика
Стол (Bed, HeatBed) - Рабочая поверхность принтера, на которой располагается модель
EEPROM (ПЗУ) - Память контроллера для хранения настроек, которые сохраняются после отключения электроэнерги
M500 - Cохранить текущие значения в EEPROM
M502 - Загрузить значения из прошивки
M503 - Вывести текущие значения EEPROM
M106 S<speed> - Включение обдува модели (0 - выключить)
M301 P<Kp value> I<Ki value> D<Kd value> - Установить значения PID для хотенда
M303 E<номер экструдера(стол -1)> S<температура> C<циклы> U<применить полученные значения> - Автокалибровка PID
M304 P<Kp bed value> I<Ki bed value> D<Kd bed value>- Установить значения PID для стола
Надеюсь данный гайд был полезен, так же прошу прощения за упрощения\упущения и тавтологию данный текст в основном направлен на новичков в 3D печати посему упрощенно по максимуму. Если мой вариант изложения информации будет доступным и понравиться людям продолжу публиковать минигайды относительно 3D печати.
Иногда владельцу 3д-принтера приходится этим заняться. Поведаю хабра-сообществу о своём способе. Прошу заметить, что руководство подробное, но приводит к отличным результатам — прилипает модель на отлично и не отклеивается в процессе печати.
Для начала отмечу, что своё мастерство я оттачивал на принтере SmartCore Aluminium, приобретённом здесь.
Установка нагревательной платформы
Нагревательную (или не нагревательную, зависит от принтера) платформу для начала надо выставить по высоте. Для этого существует концевик для оси Z.
Концевой выключатель — электрическое устройство, применяемое в системах управления в качестве датчика, формирующего сигнал при возникновении определенного события, как правило, механическом контакте пары подвижных механизмов.
С помощью затяжного и прижимного болтов этот концевик можно регулировать по высоте.
Нужно выставить его так, чтобы поверхность платформы чётко касалась сопла экструдера.
Для дальнейшей калибровки будем использовать Pronterface из пакета ПО Printrun.
Преимуществом этого пакета вижу наглядное и удобное управление соплом и платформой принтера, но если кому-то удобнее использовать Repsnapper, он тоже вполне подойдёт. Cura не подойдёт для калибровки, за неимением необходимого для этого функционала.
Для продолжения давайте убедимся, что при нажатии на кнопку «Калибровка» («Home», изображен белый домик), платформа поднимается и упирается вплотную, но не пытается двигаться дальше, к соплу.
Так-как на моём принтере прошивка взята с напрямую с репозитория SmartCore Aluminium (пусть и не напрямую с Marlin), сопло выезжает на середину платформы. Если у вас это не так, и сопло остаётся в углу по нулевых координатах — ничего страшного, для дальнейшей калибровки это не принципиально.
Калибровка
- Нажать на калибровку оси Z
- Если упирается угол в сопло (центр должен упираться, как мы добились отрегулировав высоту концевика во время подготовки), то по чуть-чуть прижимаем болт платформы на этом углу, пока не появится минимальный просвет.
- Устраняем минимальный просвет, но не больше. В идеале у нас должно сопло стоять чётко впритык по всем углам и центру при нажатии на калибровку оси Z. Именно такого результата нам нужно добиться для качественной печати, о контроле результата позже.
- Теперь нужно убедиться, что при нажатии на будет появляться просвет. Если этого не произошло, можно немного отпустить болт, прижимающий этот угол и, нажимая последовательно то зелёный домик, то кнопку «0.1», повторять до получения желаемого результата.
После того, как мы закончили калибровку на всех пяти точках и контрольно прошлись по ним так, что не пришлось ничего менять, можно переходить к проверке результата калибровки.
Проверка
Для проверки я использую простую модель, нарисованную в FreeCAD и cгенерированный gcode в Cura. Пластик чем точнее диаметром, тем лучше — я беру здесь из-за заявленной точности и разнообразия цветов. Впрочем, для проверки будем использовать натуральный цвет ABS-пластика.
Смысл простой маленькой проверочной модели, наверное, ясен — экономия средств и времени.
Именно в такой последовательности есть смысл проверять. Впрочем, если вы уверены в своей калибровке, то можете сразу начать с шага 2. Ну если у вас уже есть опыт и вы абсолютно уверены в своей калибровке, то можете сразу перейти к шагу 3 — распечатывать 5pad.gcode.
Разница в количестве и расположении изделий.
Я же опишу проверку первого шага, поскольку остальные аналогичны.
Предположим, одна сторона платформы слишком высоко откалибрована. Это очень легко обнаружить в результате:
Вид сверху:
И что важнее сейчас для нас — вид снизу:
— вот так выглядит ободная кайма Cura, если сопло расположено слишком высоко к платформе. Пластик падает не точно, иногда цепляясь за соседние линии.
Рассмотрим обратную ситуацию — если сопло слишком прижато к платформе:
Как видим, здесь тоже не всё гладко, пластик, стремясь заполнить доступное пространство, налазит на соседние линии, а на следующем слое повторно цепляется сопло, вмазывается вновь по доступному пространству. Впрочем, надо отметить, что прилипает в таком случае модель очень хорошо, а дефект калибровки не виден на следующих слоях. Более того, может быть даже не заметен вовсе, если вы выберете в Cura подложку для прилипания модели к столу.
Наконец, желаемый и правильный результат:
Здесь вы видите небольшое нагорание, но оно связано с неубранным кусочком нити, что хорошо видно на фото вида снизу. Подобные нагорания присущи скорее предыдущему случаю, когда сопло слишком прижато. А в остальном — ровные линии, плотно уложенные. Так и должно быть. Примите поздравления — калибровка центральной точки, значит, успешна.
Нормальная ситуация, если такой результат получен на стекле при температуре 100 градусов. При этом, если стекло обезжирено и ровное, то после окончания калибровки, отлипать в процессе печати не будет. Вы можете попробовать отодрать деталь от нагретой платформы после печати. Пока не остынет до 90-80 градусов, у вас это может, даже и не получится, без повреждения стекла. Также, может быть важным отсутствие сквозняка, который влияет на не менее важную равномерность прогрева поверхности платформы.
Вот общие фото для удобства сравнения:
Вид сверху:
Вид снизу:
Дальнейшая проверка аналогична по своей сути, но распечатать следует 4pad.gcode — охватывает немного большую центральную область. И 5pad.gcode — покажет качество калибровки по углам.
Всем удачной калибровки!
На завершение развлекательное видео, на котором отображено наслаждение результатом:
Читайте также: