Deniss 150 Опубліковано: 31 січня 2020 Поділитись Опубліковано: 31 січня 2020 Давным давно, еще когда телефоны были кнопочными а 3д принтеры фанерными я поставил на принтер датчик диаметра филамента. Оптический, датчик был огромный по размерам, ставил на прошивку марлин, но он работал и я был рад. Потом я стал думать, было неожиданно, мне понравилось думать. В результате мыслей и поиска в интернете решил попробовать сделать датчик на основе магнита и датчика Холла который регистрирует изменение силы магнитного поля. Попробовал, кое-что даже получилось, но как выяснилось у датчика от температуры меняются показатели. Применил проверенный метод, начал думать. В результате применил два датчика, и измеряется разница между показателями этих датчиков. так родился этот датчик И пока я не перешел на прошивку Клиппер он у меня работал. После перехода на Клиппер я подключил модуль tsl1401cl_filament_width_sensor и продолжил работать. Но в голове снова завелась МЫСЛЬ. Она мешала спать и пришлось ее думать. На самом деле у клиппера есть достаточно много свободных ресурсов а у платы есть неиспольсованные аналоговые входы, почему бы не отказатся от лишней платы Ардуино и что еще более важно дополнительного преобразования цифрового сигнала в аналоговый и обратного преобразования из аналога в цифру, как ни крути это потеря точности. Потому к клипперу был написан свой модуль для этого датчика. Будет ли он на гитхабе в релизе - не знаю, постараюсь сделать толковое описание и возможно тогда он там будет. итак, что надо для того чтобы запустить датчик на клиппере Предполагается что клиппер уже стоит и в октопринте есть плагин для клиппера скопировать модуль hall_filament_width_sensor.py отвечающий за работу с датчиком на малину/апельсину в папку ~/klipper/klippy/extras пока он не добавлен в основной репозиторий сделать это можно так cd ~/klipper git pull "https://github.com/test3210-d/klipper" Все уже добавлено в основной репозиторий клиппер далее перезагрузить клиппер sudo service klipper restart теперь можно идти в октопринт, открываем конфиг и добавлям параметры для работы с датчиком [hall_filament_width_sensor] adc1: analog11 #adc channel 1 adc2: analog12 #adc channel 2 Cal_dia1: 1.48 #REFERENCE DIAMETER 1 (mm) Cal_dia2: 1.97 #REFERENCE DIAMETER 2 (mm) Raw_dia1:9630 #RAW VALUE FOR REFERENCE DIAMETER 1 Raw_dia2:8300 #RAW VALUE FOR REFERENCE DIAMETER 2 default_nominal_filament_diameter: 1.75 # This parameter is in millimeters (mm) max_difference: 0.15 # mm measurement_delay: 70 #mm В данном конфиге ориентация на ардуино плату и aux2 разъем, у него как раз и питание есть и 2 канала АЦП. Так-же можно использовать и aux1 тогда в конфиге будут adc1: analog3 #adc channel 1 adc2: analog4 #adc channel 2 В любом случае этот вопрос не является чем-то критичным, зависит от того какие есть под рукой разъемы и как удобнее уложить провода. На платах отличных от меги соответственно будут отличатся названия ног, главное чтобы это были аналоговые входы. Сразу обращаю внимание, на платах с питанием 3.3 вольта датчик запитывается от 3.3 а на 5вольтовых от 5 вольт следующий шаг в конциге надо добавить в меню возможность смотреть диаметр филамента (если у вас нет дисплея то смело пропускаем эту секцию итак добавляем [menu __filament_width_current] type: item name: "Dia:{0:4.2f} mm" parameter: hall_filament_width_sensor.Diameter [menu __filament_raw_width_current] type: item name: "RAW:{0:4.0f}" parameter: hall_filament_width_sensor.Raw [menu __filament] type: list name: Filament items: __temp __hotend0_current, __temp __hotend0_target .__unload .__load .__feed __filament_width_current __filament_raw_width_current данные секции для дефолтного меню , в меню филамент появится строка с диаметром и цифровым значением датчика для директа подпункты .__unload .__load .__feed можно убрать, по крайней мере если они вам не нужны Далее , нам надо 2 сверла (или любых прутка с известным диаметром) у меня это были прутки 1.48 и 1.97 мм. Диаметры желательно 1.5 и 2 мм для прутка 1.75. Если филамент 3 мм то желательно 2.8 и 3.2 мм, с тем рассчетом чтобы номинальное значене было в середине. Прописываем ваши значения в конфиг Cal_dia1: 1.48 #REFERENCE DIAMETER 1 (mm) Cal_dia2: 1.97 #REFERENCE DIAMETER 2 (mm) Предварительно готово, сохраняем конфиг если есть дисплей идем в меню, вставляем калибровочный стержень 1 и засекаем raw значение при установленном стержне. повторяем для второго калибровочного стержня , в результате имеем два диаметра и 2 значения датчика для этих диаметров у меня это 9630 для 1.48 и 8300 для 1.97 записываем в конфиг. Raw_dia1:9630 #RAW VALUE FOR REFERENCE DIAMETER 1 Raw_dia2:8300 #RAW VALUE FOR REFERENCE DIAMETER 2 Если все сделано верно то после этого при установленном стержне в меню будет отображать правильный диаметр Если дисплея нет, есть команда QUERY_RAW_FILAMENT_WIDTH она позволяет получить значения с каналов АЦП и значение датчика так-же поддерживаются все команды от tsl1401cl_filament_width_sensor описанные в документации клиппера для совместимости G-кода с марлином можно добавить в конфиг [gcode_macro M405] gcode: ENABLE_FILAMENT_WIDTH_SENSOR [gcode_macro M406] gcode: DISABLE_FILAMENT_WIDTH_SENSOR [gcode_macro M407] gcode: QUERY_FILAMENT_WIDTH Либо использовать штатные команды клиппера. Датчик по умолчанию отключен, и если команда включения в G-коде отсутствует то печать будет идти без коррекции, Но если предыдущая печать его включила то дальше датчик уже будет работать, а потому я его включаю или отключаю в стартовом коде слайсера. Отключать надо для мягких (флекс) пластиков которые датчик сжимает и их из-за этого толком не может измерить. hall_filament_width_sensor.zip 1 1 Цитата Посилання на повідомлення Поділитися на інших сайтах
Cynic 121 Опубліковано: 1 лютого 2020 Поділитись Опубліковано: 1 лютого 2020 Отличная работа. Спасибо! Цитата Посилання на повідомлення Поділитися на інших сайтах
Deniss 150 Опубліковано: 1 лютого 2020 Автор Поділитись Опубліковано: 1 лютого 2020 Сейчас пробую несколько иной вид датчика, хочу отказатся от подшипников в пользу осей. я применил ролики от подшипника 4х8 (примерно такие https://podhibnikdnepr.ua.market/product/5443512-rolik-tsilindricheskiy-4h8.html ) мм соберу протестирую и отпишусь. В теории если получится то еще немного поднимется точность - минус биения подшипников. А вот как тянутся через датчик будет посмотрю fil_sensor.zip слой 02 без доролнительных поддержек, хватит тех что есть в модели. Надо винт м3 15-16 мм гайка м3 два датчика холла ss49e магнит ниодимовый диаметр 5 толщина 2 мм, пружинка от авторучки датчик ss49e - 2 шт https://aliexpress.ru/wholesale?SearchText=ss49e или купить по месту ролики или куски сверла 4 мм. Модель можно переделать под то что есть в доступности вместо ролика. 1 Цитата Посилання на повідомлення Поділитися на інших сайтах
Maks 29 Опубліковано: 5 червня 2020 Поділитись Опубліковано: 5 червня 2020 Всім привіт, знву з питаннями, дещо пробую на тв бокс і з датчиком неможу розібратись знову Internal error during connect: 'module' object has no attribute 'RunoutHelper' це черкз якесь оновлення? Цитата Посилання на повідомлення Поділитися на інших сайтах
KomAndr 355 Опубліковано: 5 червня 2020 Поділитись Опубліковано: 5 червня 2020 @Maks здається це схоже на перевезення бетону літаком АН2 Щось зібралось не правильно, може десь кому, або крапку пропустив у параметрах?! Цитата Посилання на повідомлення Поділитися на інших сайтах
Maks 29 Опубліковано: 5 червня 2020 Поділитись Опубліковано: 5 червня 2020 та думаю я просто в цьому не тямлю, і неможу знайти як правильно прописати в конфіг... хоча вже і запоров бокс ,перевстановлюю Цитата Посилання на повідомлення Поділитися на інших сайтах
KomAndr 355 Опубліковано: 5 червня 2020 Поділитись Опубліковано: 5 червня 2020 @Maks як писав Денис, для цього датчика потрібно використовувати два аналогових піни., якщо це кліппер, або з'єднання за допомогою ардуіно нано. Може трохи придушити жабу і налаштувати малину зеро(мінімум) та отримати результат? Цитата Посилання на повідомлення Поділитися на інших сайтах
Maks 29 Опубліковано: 5 червня 2020 Поділитись Опубліковано: 5 червня 2020 Та на малині в мене він працює, але до оновлення конфіга, (зараз попросив один протестити тему) і щоб не накосячити дістав тв-бокс і на ньому оновив конфіг звідси почалося... Тестував оце Цитата Посилання на повідомлення Поділитися на інших сайтах
KomAndr 355 Опубліковано: 6 червня 2020 Поділитись Опубліковано: 6 червня 2020 @Maks можно зробити імідж сд карти і потім не перейматися, що щось піде не так. Накатив імідж і знову робоча малина з кліппером і плюшками. Тема цікава! А от є доповнення до теми, можеш йому підказати. Зараз докладніше поясню. Коли виставляеш оффсет_з у кліппері, требі вводити команди у терміналі, але можно спростити собі роботу і написати свої кнопки з кодами у плагіні кастом сонтрол. Одне погано - всі твої кнопки знаходяться у меню контрол. Так от до чого я, Як би перемістити, або опціонально зробити кастомні команди у меню терміналу. Цитата Посилання на повідомлення Поділитися на інших сайтах
Maks 29 Опубліковано: 6 червня 2020 Поділитись Опубліковано: 6 червня 2020 Сьогодні так і зроблю, куплю дві СД (бо в одній малині стара...) для терміналу є окремий плагін... (так зараз на малині), для бокса маю одну сд і з неї відновлюю (але там трохи застаріла..) Цитата Посилання на повідомлення Поділитися на інших сайтах
StasYan 0 Опубліковано: 23 жовтня 2021 Поділитись Опубліковано: 23 жовтня 2021 On 6/6/2020 at 1:36 PM, Maks said: Сьогодні так і зроблю, куплю дві СД (бо в одній малині стара...) для терміналу є окремий плагін... (так зараз на малині), для бокса маю одну сд і з неї відновлюю (але там трохи застаріла..) А можете поділитись конфігом на кнопки Babystep Up Down, а то щось в мене не працює через термінал підчас друку. Цитата Посилання на повідомлення Поділитися на інших сайтах
KomAndr 355 Опубліковано: 23 жовтня 2021 Поділитись Опубліковано: 23 жовтня 2021 1 годину тому, StasYan сказав: щось в мене не працює через термінал підчас друку. Тільки значення підстав на свій смак. Працює тільки на klipper!! SET_GCODE_OFFSET Z_ADJUST=-0.1 MOVE=1 Цитата Посилання на повідомлення Поділитися на інших сайтах
Рекомендовані повідомлення
Приєднуйтесь до обговорення
Ви можете опублікувати повідомлення зараз, а зареєструватися пізніше. Якщо у вас є акаунт, увійдіть в нього для написання від свого імені.