Калибровочный датчик BLTouch: что это и как это работает

1 августа 2023
0 комментариев

Ручная калибровка 3D-принтеров встречается все реже. В наше время эту задачу выполняют различные датчики, и сегодня мы расскажем о самом популярном — BLTouch.

Калибровочный датчик BLTouch: что это и как это работает

BLTouch — гибридный датчик, сочетающий контактный щуп с неконтактным, магнитным методом измерения за счет эффекта Холла. Этот датчик разработала корейская компания Antclabs, хотя на рынке можно встретить дешевые подделки. С «клонами» следует проявлять осторожность: во-первых, это вопрос качества, а во-вторых, многие из них на самом деле полагаются на другие методы измерения и не могут конкурировать по точности с оригиналом.

BLTouch совместим с большинством современных FDM 3D-принтеров, прост в установке и эксплуатации, надежен и, что не менее важно, работает со столиками из любых материалов — металлическими, стеклянными, с полимерными покрытиями, и так далее. Сам датчик состоит из микроконтроллера, соленоида и подвижного щупа.

Калибровочный датчик BLTouch: что это и как это работает


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

Виды калибровочных датчиков

Индуктивные датчики

Основное отличие индуктивных датчиков от BLTouch в том, что последний физически касается столика в процессе калибровки. Индуктивные датчики — это уже полностью бесконтактные сенсоры, улавливающие изменения в магнитном поле при сближении с металлическими объектами. Отсюда и главное ограничение таких датчиков: они работают только с металлическими столиками, что может быть проблематично для пользователей, предпочитающих, например, стекло.

Емкостные датчики

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

Калибровочный датчик BLTouch: что это и как это работает

Емкостный датчик на головке 3D-принтера

Микропереключатели

Это уже механические контактные датчики, обычно используемые в роли концевых выключателей на осях FDM 3D-принтеров. Они менее точны, чем BLTouch, и могут со временем изнашиваться, зато максимально дешевы, универсальны и просты в монтаже и пусконаладке.

Инфракрасные датчики

Инфракрасные датчики полагаются на излучение в ближнем инфракрасном диапазоне, обычно с помощью светодиодов. Такие датчики определяют дистанцию, улавливая отражаемый свет, а потому работают с разными поверхностями, в том числе стеклом. В последнем случае ИК-датчики предпочтительны индуктивным, так как измеряют дистанцию до верхней поверхности стеклянного столика, а не металлической платформы под ним.

Датчики Холла

Эти датчики, включая BLTouch, измеряют величину магнитного поля. В 3D-печати такие датчики обычно представлены гибридными устройствами c подвижным щупом, чье движение при контакте с поверхностью отслеживается уже бесконтактно — посредством эффекта Холла. Такие датчики хороши тем, что дают точные показания и при этом способны работать с любыми поверхностями.

Оптические датчики

Оптические датчики зачастую применяются в качестве более продвинутых концевых выключателей, чем механические, но могут быть использованы и в калибровке. Принцип действия обычно основан на прерывании луча объектом (например, подвижным щупом), проходящим между излучателем и приемником. В калибровке оптические датчики служат неплохой альтернативой датчикам Холла. Самый известный пример — CR Touch, предлагаемый компанией-производителем 3D-принтеров Creality.

Калибровочный датчик BLTouch: что это и как это работает

Оптический датчик CR Touch от Creality

Установка BLTouch

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

Во время монтажа убедитесь, что датчик установлен строго вертикально, а также измерьте расстояние между щупом и центром сопла по осям X и Y — это пригодится чуть позже. В отдельных случаях может потребоваться регулировка концевого выключателя по оси Z, чтобы он не мешал работе датчика.

Калибровочный датчик BLTouch: что это и как это работает

Подключение к материнской плате

Здесь потребуется подвести провода от датчика к плате, а затем подключиться к необходимому разъему: самый лучший, аккуратный вариант — следовать проводам от экструдера. Пошаговая инструкция:

  1. Выключите 3D-принтер и отсоедините оборудование от электросети, а затем демонтируйте панель, под которой находится плата.
  1. Пропустите провода от датчика параллельно проводке от экструдера — хотэнда, вентиляторов, термистора. Все эти провода можно связать стяжками, чтобы не было лишней путаницы.
  1. Найдите необходимый разъем на плате. Какой именно нужен — зависит от самой платы, так что сверьтесь с инструкциями или уточните у производителя. Имейте в виду, что некоторые устаревшие типы плат не имеют необходимых разъемов, например восьмиразрядные платы на ранних моделях 3D-принтеров Ender-3. Этот момент необходимо выяснить заранее, до покупки датчика, чтобы не попасть впросак.

Настройка прошивки

Большинство современных версий прошивок уже предусматривает возможность работы с BLTouch, а значит обновление не потребуется. На всякий случай проверьте, какая прошивка стоит на 3D-принтере, и при необходимости обновите до текущей версии. Самый популярная прошивка не сегодняшний день — Marlin, доступная бесплатно вместе с обновлениями на официальном сайте.

После установки и/или обновления Marlin все еще потребуется выполнить кое-какие настройки, а для этого необходим инструмент чтения кода. Самый простой вариант — открыть Marlin в редакторе Visual Studio Code от Microsoft. После загрузки файла marlin.ino в редактор откройте вкладку configuration.h.

1. Пропишите BLTouch

Сначала нужно сделать так, чтобы прошивка распознавала датчик. Необходимая команда в файле уже должна быть, но оформленная в виде комментария. Для активации просто удалите косые черты до и после команды, чтобы она выглядела следующим образом:

 #define BLTOUCH

2. Выставьте смещение по X, Y и Z

Эти значения помогут скоординировать измерения и работу системы позиционирования. Два значения у вас уже должны быть на руках, если вы измерили расстояние между щупом и центром сопла на этапе монтажа, как рекомендовано выше. Значение по оси Z можно получить, измерив разницу в высоте между кончиками сопла и полностью вытянутого щупа. Разница небольшая, так что если у вам возникнут проблемы с точными замерами, попробуйте просто ввести -2.5. Если потребуется, позднее эту величину можно будет скорректировать.

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

 #define X_PROBE_OFFSET_FROM_EXTRUDER <замер по оси X>
// X offset: -left +right [of the nozzle]
#define Y_PROBE_OFFSET_FROM_EXTRUDER <замер по оси Y>
// Y offset: -front +behind
#define Z_PROBE_OFFSET_FROM_EXTRUDER <замер по оси Z>
// Z offset: -below +above

Если 3D-принтер не распознает заданное смещение по оси Z, убедитесь, что до и после строки ниже нет косых черточек:

 #define RESTORE_LEVELING_AFTER_G28

3. Выберите тип калибровки

В нашем примере используем самый простой вариант — двухлинейный. Чтобы выбрать тип калибровки, опять-таки найдите строку c требуемым вариантом (в нашем случае BILINEAR) и уберите косые черты. В итоге текст должен выглядеть следующим образом:

 //#define AUTO_BED_LEVELING_3POINT
//#define AUTO_BED_LEVELING_LINEAR
#define AUTO_BED_LEVELING_BILINEAR
//#define AUTO_BED_LEVELING_UBL
//#define MESH_BED_LEVELING

Также можно задать количество точек, в которых будут проводиться замеры. По умолчанию калибровка проводится по девяти точкам, то есть выстраивается сетка 3х3 по осям X и Y. При желании количество точек можно увеличить, но имейте в виду, что чем больше замеров, тем больше времени будет занимать калибровка. Количество точек по X и Y можно задать в строках ниже (здесь указаны три точки по оси X, а для оси Y значение дублируется, то есть «как по оси X»):

 // Set the number of grid points per dimension.
#define GRID_MAX_POINTS_X 3
#define GRID_MAX_POINTS_Y GRID_MAX_POINTS_X

4. Включите предохранение от помех

Иногда электрические термоблоки хотэндов создают помехи, мешающие работе BLTouch. Чтобы этого не происходило, термоблоки можно отключать на время калибровки с помощью специальной команды. Для активации опять-таки удалите косые черточки, чтобы команда выглядела следующим образом:

 #define PROBING_HEATERS_OFF

5. Проведите испытания

После внесения изменений в прошивку остается провести тест и при необходимости скорректировать смещение по осям, как описано в пункте 2.

Настройка слайсера

Калибровочный датчик BLTouch: что это и как это работает

При желании слайсер можно настроить так, чтобы калибровка выполнялась автоматически перед стартом каждой 3D-печати. Для этого в стартовый сегмент G-кода необходимо вставить команду G29 (автоматическая калибровка) сразу после команды G28 (парковка головки «по нулям»), как на иллюстрации выше.