Новинка для RepRap или автобэдлевел точно в цель

в 7:01, , рубрики: diy или сделай сам, FDM, prusa mendel i2, робототехника

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

Для установки этого зазора существует несколько технических(и не очень) решений. Например:

— Подкладывание листа бумаги, и установки начальной точки пока бумага не станет двигаться между соплом и столом с легким усилием.
— Использование микровыключателя, который нажимается при приближении экструдера к столу. Вместо микровыключателя иногда используют оптический датчик, что так же немного добавляет точности к измерениям.
— Емкостной датчик приближения.

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

На моем Prusa Mendel i2 постоянно возникала необходимость установки высоты первого слоя после печати длительностью более часа. А когда принтер постоит без дела, приходилось опять корректировать высоту. Предполагаю, что при длительной работе принтера конструкция прогревалась и изменяла свои размеры, тем самым увеличивалась высота первого слоя. Т.к. после длительной работы необходимо было уменьшать высоту, а после остывания ее увеличивать.

Применив такой автолевел, я полностью избавился от «плясок с бубном» возле принтера при печати первого слоя.
Предлагаю «рукастым» обладателям 3D принтеров повторить мое решение.

Мной был разработан и успешно опробован на принтере Prusa Mendel i2, более точный метод установки расстояния между соплом экструдера и столом. Который основан на измерении силы прижима сопла экструдера к столу при помощи тензометрического датчика. Опытные пользователи и конструкторы ЧПУ скажут, что этот способ уже опробован и погрешность такого измерения будет зависеть от температуры окружающей среды, но поверьте (мне на слово, пока не дочитаете до конца), в данном решении нет зависимости от температуры.

Для повторения конструкции необходимо не так много:
— Тензометрический датчик.
— Усилитель сигнала с АЦП.
— 3D-принтер и немного пластика для печати некоторых элементов конструкции.

Первые 2 пункта стоят “копейки”: в Китае 200руб. (16.04.2015) или в России, естественно дороже. А наличие или приобретение в ближайшее время третьего пункта подтверждается тем, что вы еще читаете этот текст.

Время, необходимое на доработку принтера — не более одного вечера. Конечно, не считая времени, потраченного на печать элементов крепления при помощи 3D принтера.

А теперь подробности.

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

Что же такое тензодатчик и как он работает?

Тензометрический датчик (тензодатчик; от лат. tensus — напряжённый) — датчик, преобразующий величину деформации в удобный для измерения сигнал (обычно электрический):

Новинка для RepRap или автобэдлевел точно в цель - 1

Датчик, который я использовал, представляет из себя небольшой алюминиевый брусок 12,8 х 12,8 х 65мм, на двух его гранях приклеены 4 тензорезистора (резистор изменяющий свое сопротивление от величины растяжения). Эти резисторы соединены в мост Уинтстона. На вход этого моста подается напряжение, обычно 3-30 вольт, а на выходе мы получаем небольшое изменение напряжения от приложенного давления (искривления этого бруска) в пределах 0,7милливольт на 1 вольт подаваемого на вход. Но такие маленькие изменения напряжения невозможно измерить сразу при помощи микроконтроллеров, используемых в большинстве 3D принтеров.

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

Приобрел микросхему уже вместе с необходимой обвязкой:

Новинка для RepRap или автобэдлевел точно в цель - 2

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

Я выбрал вариант с установкой датчика на экструдере.

В моей реализации это выглядит так:

Новинка для RepRap или автобэдлевел точно в цель - 3

Радиатор хотэнда закреплен на одном конце датчика при помощи напечатанного крепления (на рисунке красный). Второй конец датчика прикручивается к каретке экструдера. Крепление датчика к экструдеру не должно касаться корпуса каретки или шагового двигателя.

Процедура калибровки и поиск нулевой точки по оси Z (homing) должна производиться на разогретом экструдере. Так как измерение усилия датчика происходит с небольшой задержкой необходимой для оцифровки напряжения и передачу его управляющему контроллеру, то измерение производится 2 раза с разной чувствительностью датчика:
Измерение сильного давления (200-500 грамм), при этом стол немного но заметно прижимается экструдером. В этот момент происходит выдавливание «соплей» пластика, которые могут содержаться на экструдере или на столе.
Подъем на небольшое расстояние и повторное, точное измерение (10-50 грамм), происходит легкое, и очень точное касание экструдером стола.

В живую работает это так:

Чтобы изменять чувствительность датчика между попытками, необходимо внести небольшие дополнения в прошивку принтера. Я внес изменения в прошивку Marlin, так как она была установлена у меня и есть небольшой опыт ее настройки и использования. Надеюсь, что когда нибудь мои изменения примут в основной репозиторий, а пока скачать можно тут: github.com/necdnk/Marlin.git (Конфиг настроен под мой Prusa Mendel i2)

Мне не хотелось строить велосипед (библиотеку для использования HX711), и была найдена замечательная библиотечка на гитхабе: github.com/bogde/HX711

Но как позже оказалось, пришлось ее немного переписать.

Схема подключения датчика к ардуине, простая до безумия, нужно просто соединить 8 проводков к платке с АЦП.
4 к тензодатчику:
E+ красный
E- черный
A- зеленый
A+ белый

И 4 к RAMPS(шилд для ардуины):
GND Земля
DT D4 пин ардуины
SCK D5 пин ардуины
VCC +5v
Пины на плате предназначены для подключения сервоприводов и находятся рядом.

Настройки в конфиге прошивки, которые влияют на силу срабатывания датчика:
#define WEIGHT_SENSIVITY_HARD 25 //первая попытка
#define WEIGHT_SENSIVITY_ACCURATE 2//вторая попытка

Если хочется указывать силу срабатывания в граммах, а не в условных единицах, как у меня, то нужно подбирать значение константы:
#define WEIGHT_SCALE 1000.f

Приобрести датчик и микросхему АЦП с необходимой обвязкой можно на всем известных торговых площадках.
Датчик ищется по ключвым словам «load cell 5kg».
Микросхему можно найти по ее наименованию HX711.

Готов выслушать вопросы, дополнения и исправления.

Автор: necdnk

Источник

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js