Металл2024 Реклама
Метобр2024 Реклама

Датчик толщины нити. Обзор конструкций, подключение и настройка

Ghozt
Идет загрузка
Загрузка
27.05.2016
25994
32
Техничка

Подпишитесь на автора

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

Отписаться от уведомлений вы всегда сможете в профиле автора.

41
Датчик толщины нити. Обзор конструкций, подключение и настройка
В этой статье хочу поведать вам об одной весьма редкой в наших краях штуке, зовущейся за океаном как filament diameter sensor. Предназначена она для измерения диаметра филамента в реальном времени.

Принцип работы такого устройства довольно прост: нить пропускается через закрытую камеру между светодиодом и фотодатчиком, луч светодиода освещает нить и она отбрасывает тень на фотодатчик. По величине тени можно судить о диаметре нити. С помощью микроконтроллера показания фотодатчика переводятся в вольты. Если диаметр 3мм - на выходе 3в, 2,75мм - 2,75в и т.д. Все это делается в реальном времени, и если толщина нити отклоняется от номинальной, то принтер/экструдер увеличивает или уменьшает подачу пластика, чтобы компенсировать недостаток/избыток пластика на выходе. Вот более подробный зарубежный обзор , если кому интересно.

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

Оригинальный проект на thingiverse все еще находится в стадии прототипа. Он построен на базе микроконтроллера MC9S, в качестве датчика используется TSL1401CL. Лично я подобные МК вижу впервые, да и доступны они только на mouser.

Также я нашел несколько ремиксов (1, 2, 3), выполненных на куда более привычных мне МК AVR. Все они основаны на том же принципе, что и оригинал - светодиод, фотодатчик и закрытая камера. Пройдемся вкратце по каждому из них.

Первый вариант самый простой в плане изготовления, основан на Arduino Pro Micro. Минимум деталей и максимум простоты, возможность калибровки 2мм-штырем (в оригинальном используется 1,57мм - пойди, найди его у нас), односторонняя плата.

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

Второй вариант выполнен на ATTiny85, деталей чуть больше, функционал тот же. Плата двусторонняя, что может создать проблемы при повторении девайса.

Третий вариант является ремиксом первого. Отличительной его особенностью является то, что он просвечивает нить с 3 ракурсов: 0, -45 и +45 градусов. По словам автора, это должно дать дополнительную точность, если филамент, например, овальный. Этот датчик имеет имеет ограничение по толщине филамента (2,5мм максимум), вызванное шириной фотосенсора TSL1401, т.е. предназначен он только для 1,75мм-филамента. Плата в этом проекте тоже двустороняя, что создает определенные трудности при повторении.

К изготовлению своими силами можно советовать любой из этих трех датчиков. Одно из требований - измерительная камера должна не пропускать свет и быть матовой. В идеале корпус нужно распечатать в черном пластике, но можно и в любом другом с последующей покраской камеры (так сделано на заглавной картинке). Кстати, суммарная стоимость деталей для любого из ремиксовых датчиков будет в районе 1200-1500р, в отличие от оригинального проекта при условии изготовления платы своими силами.

Подключение.



В оригинальном проекте есть файл с подключением на различные типы плат. Наиболее распространенной здесь все равно является RAMPS, так что приведу схему подключения для нее. Из датчика выходят 3 провода: +5v, GND и выход. Подключаются они к следующим пинам:
Датчик толщины нити. Обзор конструкций, подключение и настройка

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



На данный момент только Marlin поддерживает filament sensor. Настройки датчика находятся в самом низу configuration.h



Раскомментируйте строку ниже, чтобы включить поддержку датчика

//#define FILAMENT_SENSOR

#define FILAMENT_SENSOR_EXTRUDER_NUM 0 //Номер экструдера, на котором стоит датчик (0,1,2). Пока что датчик поддерживается только для одного экструдера

#define MEASUREMENT_DELAY_CM 14 //задержка измерения в см. Это расстояние от камеры датчика до середины горячей зоны экструдера

#define DEFAULT_NOMINAL_FILAMENT_DIA 3.0 //Диаметр нити, который используется (3.0/2,85/1,75) - тот, что прописан в слайсере. Используется для сравнения с истинной толщиной

#define MEASURED_UPPER_LIMIT 3.2 //верхний порог прохождения валидации в мм. Выставляется чуть меньшим, чем отверстие в датчике, иначе филамент в нем просто застрянет.

#define MEASURED_LOWER_LIMIT 1.90 //Нижний порог прохождения валидации в мм.

#define MAX_MEASUREMENT_DELAY 20 //размер буфера задержки измерения в байтах (1 байт = 1 см) - ограничивает максимально допустимую задержку измерения (должен быть больше, чем MEASUREMENT_DELAY_CM, но не слишком большим для экономии RAM)

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

//#define FILAMENT_LCD_DISPLAY

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

To be continued

Подпишитесь на автора

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

Отписаться от уведомлений вы всегда сможете в профиле автора.

41
Комментарии к статье
Кремень КБ Реклама
Кремень КМ Реклама