Датчик обрыва филамента своими руками

Lazy DIYer — Ленивый самодельщик

Лень — двигатель прогресса!

Датчик окончания филамента

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

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

Сразу скажу, мой принтер работает под управлением Octoprint на Raspberry Pi3, а так как свободных портов ввода-вывода на материнской плате принтера не осталось, то датчик мы будем прикручивать именно к малинке. Благо у нее свободных портов завались.

Приступим. Ставим (если еще не поставили) плагин Enclosure. Это мощный плагин, позволяющий управлять разнообразным вспомогательным оборудованием вокруг принтера. Датчики температуры/влажности/давления, освещение, обогреватели и еще куча всего, что вам удастся подключить к малине.

Наш датчик филамента, по сути будет хардварной кнопкой паузы. А уж на что он будет срабатывать — это дело только вашей фантазии и умения это реализовать.

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


В секцию «После того как печать будет приостановлена» вписываем следующее:

<% if pause_position.x is not none %>
; relative XYZE
G91
M83
; retract filament of 0.8 mm up, move Z slightly upwards and
G1 Z+30 E-0.8 F4500
; absolute XYZE
M82
G90
; move to a safe rest position, adjust as necessary
G1 X110 Y0

В секцию «Перед тем как печать будет возобновлена» вписываем:
<% if pause_position.x is not none %>
; relative extruder
M83
; prime nozzle
G1 E-0.8 F4500
G1 E0.8 F4500
G1 E0.8 F4500
; absolute E
M82
; absolute XYZ
G90
; reset E
G92 E<< pause_position.e >>
M82 ; extruder relative mode
; move back to pause position XYZ
G1 X<< pause_position.x >> Y<< pause_position.y >> Z<< pause_position.z >> F4500
; reset to feed rate before pause if available
<% if pause_position.f is not none %>G1 F<< pause_position.f >><% endif %>
<% endif %>

Сохраняем. Теперь надо проверить. Запустите печать чего нибудь небольшого и нажмите в веб интерфейсе на паузу. Голова должна подняться и отойти в сторону. После нажатия на «Продолжить», она должна вернуться обратно и продолжить печать с этого места.

Работает? Отлично. Теперь добавим обработку хардварной кнопки. Идем в настройки плагина Enclosure.


Создаем новый Input:

  • Input type: GPIO input
  • Action type: Printer
  • Input IO number: выбранный вами GPIO. Номера и расположение можно посмотреть там. Плагин по умолчанию использует BCM нумерацию.
  • Input pull resistor: Input pullup. Какую подтяжку использовать. К плюсу питания или к минусу. Так как мы кнопкой будем подавать минус на GPIO, то надо использовать pullup. Вообще, я считаю такое подключение наиболее безопасным, нежели подачу плюса кнопкой.
  • Event trigger: Rise. Тут автор плагина что то напутал. Потому что при нашем подключении должна быть сработка по спадающему (fall) фронту. Думаю автор имел ввиду не нарастающий/спадающий фронт, а передний/задний фронт. Тогда да, нам нужен именно передний.
  • Printer action: pause. То, что должно происходить при сработке.


Я выбрал GPIO5 потому что рядом с ним есть нужный нам минус.


А у меня в закромах завалялся проводок кнопки reset от старого системника, на котором есть очень удобная фишка. Которая идеально подходит к разъему малинки.


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

Читайте также:  Замена компрессора холодильника индезит своими руками

И напоследок небольшое видео, как это работает.

Источник

Обзор PAT9125 оптического датчика филамента для 3d печати

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

PAT9125 это оптический датчик который применяется на 3d принтерах Prusa. Этот датчик может отслеживать не только момент окончания филамента но и момент его застревания. Например если у вас возникла тепловая пробка.

Главная проблема датчика, его нельзя подключить напрямую к плате с Marlin. Поскольку Marlin поддерживает только подключение энкодера, а этот датчик должен быть подключен по интерфейсу I2C. Чтобы разрешить эту проблему я использовал attiny85 digispark. Датчик подключается к Attiny а уже Attiny в свою очередь эмулирует работу энкодера.

Настройка Marlin

В файле Configuration.h нужно раскомментировать параметр #define FILAMENT_RUNOUT_SENSOR . А вот параметр #define FIL_RUNOUT_PULLUP лучше закомментировать поскольку у нас ненастоящий енкодер то подтяжка attiny к линии питания будет только мешать работе.

Кроме того нужно раскомментировать параметр #define FILAMENT_RUNOUT_DISTANCE_MM это скажет Marlin что у нас не концевой выключатель, а энкодер. Значение параметра надо уменьшить по умолчанию там стоит 25мм. Чтоб вы понимали сколько это, принтер успеет уложить два слоя калибровочного куба воздухом прежде чем заметит что что-то не так. Я поставил там 5мм можно и меньше но тогда можно столкнутся с ложными срабатываниями.

В файле Configuration_adv.h нужно раскомментировать #define ADVANCED_PAUSE_FEATURE

В файле Pinout вашей платы надо задать пин к которому будет подключен датчик в параметре #define FIL_RUNOUT_PIN.

Особенности работы датчика

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

Следующая особенность касалась уже Attiny. Сначала я подключил принтер к пину P3 и Attiny просто не стала запускаться. То есть без подключения к принтеру все прекрасно работает, а стоит подключить Attiny не стартует. После этого я подключил принтер к пину P5, Attiny загрузилась но порт просто не работал на нем всегда был высокий потенциал, возможно у меня оказалась бракованная Attiny. Все заработало только когда я подключил принтер к пину P1, пин на котором располагается диод.

Также я хочу отметить что датчик отслеживает отдельно движение по оси X и по оси Y. В моем случае используется ось X, но если вы захотите расположить датчик по другому. Например расположить его перпендикулярно движению филамента, то надо в прошивке Attiny заменить ось X на Y.

Источник

Контроллер подачи филамента на основе ГМР- датчика угла

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

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

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

Статья относится к принтерам:

«Принтер печатает- пластик подается, пластик не подается,

а принтер все равно печатает….»

Такая неприятная и многим знакомая картина… И если подобная ситуация произошла, то отсутствие подачи филамента — это не только зря потраченное время и ценный филамент, но и возможная перспектива ремонта принтера: разбор экструдера для удаления остатков филамента, смена сопла из-за выгорания и закоксовывания пластика.

Причин «печати воздухом» может быть несколько:

  • Обрыв филамента или его окончание;
  • Запутывание филамента на катушке, вызванное случайным перехлестом во время установки катушки на принтер, либо дефектом намотки филамента при производстве;
  • Локальное увеличение диаметра филамента (брак в производства);
  • Засорение сопла посторонними включениями в филаменте (или по другим причинам);
  • Образование пробки филамента в хотэнде.

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

Читайте также:  Как красиво сделать шторы своими руками

С помощью более сложных датчиков, оптических или на основе энкодеров, можно отследить не только обрыв, но и отсутствие движения филамента при печати. Такие датчики имеются на рынке. Так, например, китайская компания BIGTREETECH недавно выпустила датчик на перфорированном диске с длиной срабатывания в 7 мм, канадская компания Monirad Robotics представила на кикстартере интересную разработку на основе механического инкрементального энкодера с редуктором, компания Duet3D из Великобритании представила вариант оптического и магнитного датчика филамента с длиной срабатывания 3 мм. И если произошла аварийная остановка движения филамента или его окончание, то датчики срабатывают, принтер становится на паузу, и после прочистки сопла или смены филамента, можно попытаться продолжить процесс печати дальше.

Однако, перечисленные выше датчики контроля филамента не могут выявить более «коварные» проблемы в процессе 3D печати из-за своей низкой точности измерения длины филамента. При засорении сопла или образовании пробки, прекращение подачи филамента не всегда происходит мгновенно. Как правило, сначала наблюдается процесс недоэкструзии, и только потом происходит его полная остановка. Но возможен вариант, когда печать с недоэкструзией так и будет продолжаться, физически филамент идет, но результат печати будет с браком.

Пример печати с временной недоэкструзией

Примеры с интернета

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

О нашем контроллере движения филамента и его возможностях.

Контроллер выполнен на базе 32х битного микропроцессора серии STM32F0. Контроллер выполнен как полностью независимое устройство, которое может работать с любым 3D принтером, а для его работы нужно подать с управляющей платы 3D принтера как минимум два сигнала — STEP и DIR от драйвера экструдера и внести ему в память коэффициент подачи пластика экструдера STEP/mm.

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

Основа контроллера — это измерительное металлическое зубчатое колесо с диаметрально намагниченным магнитом. Угловое положение колеса считывает микросхема TLE5012 (ГМР-датчик угла до 360°).

Применение TLE5012, которая выдает 32768 значений на 1 оборот измерительного колеса, дает возможность добиться разрешающей способности датчика приблизительно в 1.5 микрометра, а такая точность измерения позволяет с легкостью оценивать любые изменения в физической подачи филамента и достоверно определять недоэкструзию в процессе печати.

Упрощенно, контроллер работает следующим образом: микропроцессор STM32F0 контроллера филамента переводит импульсы STEP и направление DIR от платы 3D принтера в теоретическое перемещение филамента, и далее, сравнивая с физическим перемещением филамента на основе измерительного колеса и TLE5012, контроллер определяет все отклонения в подаче пластика, и в зависимости от настроек срабатывания, выдает сигнал на паузу 3D принтера при нештатных ситуациях.

Контроллер реализует три основных функционала:

  1. Срабатывание при любых остановках филамента или при превышении порога проскальзывания. Порог на остановку филамента можно задать от 50 мкм до 10 мм. Более мелкий порог применим в случае наличия у принтера функционала по возобновлению печати, т.е. управляющего входа от датчика окончания филамента . Увеличенный порог применим в случае отсутствия управляющего входа, т.е. когда при срабатывании датчика необходимо перезагрузить или отключить на время плату управления от блока питания посредством внешнего реле. Срабатывание при превышении порога проскальзывания.Срабатывание при определении факта недоэкструзии филамента — это самые «коварные» случаи, когда при печати филамент поступает, но при этом, через сопло выдавливаются меньшие его дозы. При превышении установленного порога проскальзывания пластика, контроллер может поставить принтер на паузу.Оба эти параметра, можно включить или отключить, работают они независимо и имеют настраиваемые коэффициенты.
  2. Функция диагностики подачи филамента в реальном времени. При подключении к контроллеру компьютера, с USB порта контроллера поступает информация о фактически измеренных ретрактах и проскальзывании филамента в реальном времени. Данные можно посмотреть любой терминальной программой и, анализируя эту информацию, оценить весь печатающий тракт 3D принтера, от подающего механизма до хотэнда методом статистического сравнения. Пример подобной оценки приведен на нижепредставленном скриншоте. Подающий механизм в данном примере использовался на основе китайской версии экструдера E3D Titan. Наблюдается следующая интересная картина. Ретракты, следующие друг за другом, подряд, ближе к установленным в слайсере, нежели единичные ретракты, следующие через более продолжительные интервалы времени. Перспективно применение режима диагностики при удаленном управлении принтером (например, с помощью октопринт). В этом случае, при передаче данных о ретрактах и проскальзывании и их отображениях в виде временных графиков в программе управления, можно получать не только видеоизображение процесса печати, но и следить за фактическим состоянием принтера и иметь числовые данные, характеризующие качество получаемой модели. В 3D печатных фермах такая обратная связь по физическим перемещениям филамента будет огромным плюсом и сильно упростит обслуживание большого количества 3D принтеров.
  3. Черный ящик. Записывает в память различные отклонения в параметрах подачи последнего цикла печати и, в случае неудачной печати, дает возможность считать эти параметры, получить картину процесса печати, по которой можно ориентировочно определить причину аварийной остановки филамента.
Читайте также:  Вязаная лежанка для кота своими руками

Дополнительно о конструкции контроллера.

У контроллера имеется специальный вход для дистанционного управления датчиком с настраиваемым функционалом, два светодиода отображающие режим работы, кнопка включения выключения и micro USB порт для настройки контроллера или считывания данных на компьютер.

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

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

О сложностях разработки датчика.

Для точного измерения длины перемещения филамента, необходимо обеспечить хорошее зацепление измерительного колеса. Очевидно, что это колесо должно быть с острыми зубчиками, но филаменты бывают разные по жесткости. Если филамент мягкий, то острые зубчики будут врезаться в толщу пластика и, следовательно, «изменится» длина окружности измерительного колеса, что приведет к погрешности при измерении. С другой стороны, мелкие острые зубчики могут легко забиться пылью от филамента. Поэтому, если сформулировать требования к измерительному колесу, можно сказать, что оно должно быть цепкое, с неострыми зубчиками. И при этом сила вдавливания пластика в колесо должна быть минимальна, чтобы измерения были стабильны во времени при любом составе пластика и без каких либо регулировочных манипуляций с прижимом. Также, надо учитывать, что сильное сдавливание мешает корректному измерению обратных движений филамента при ретрактах.

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

Немного фотографий прототипов.

Экспериментальный. На нем отрабатывали все режимы, формы зубчиков колес.

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

Фрезерованные части корпуса контроллера филамента для опытной партии, выполненные из полиацеталя.

Состояние проекта на сегодняшний момент: Собираем тестовую партию и производим окончательные испытания программы микропроцессора и стального измерительного колеса с закалкой (в первых образцах использовалась латунь).

Источник

Оцените статью