Ультрафіолетовий 3D-принтер з похитуванням столу

3D-принтер для друку зі смоли ультрафіолетового затвердіння з похитуванням столу для кращого перемішування та ручним керуванням підйомом столу

Деталь надрукована з рідкої смоли, що твердне під впливом ультрафіолету.

Для цього плоский стіл занурюється в смолу на глибину одного шару друку. Після цього ультрафіолетовий проектор проектує на стіл чорно-біле зображення потрібного шару. У місці падіння світла (відповідає білій ділянці на монохромному зображенні шару) смола твердне. Після закінчення витримки проектор вимикається (переходить на відображення чорного поля). Після цього стіл занурюється у смолу глибше на товщину наступного шару та проекє зображення наступного шаром деталі. Програмне забезпечення CreationWorkshop відповідає за генерацію зображень шарів, доставку зображення на проектор та керування переміщенням столу в процесі друку.

[!УВАГА] Щоб уникнути пошкодження очей, область друку повинна бути закрита або захищена тонованим склом, непроникним для ультрафіолету!

Через те, що товщина шарів досить мала, після занурення смола не завжди досягає всієї поверхні деталі. Через це можуть з'явитися пори або внутрішні порожнини, що погіршує міцність готового виробу. Щоб уникнути цього, використовуйте функцію «Поворот столу» у перервах між експозиціями: стіл кілька разів похитується, що дозволяє рівномірніше розподілити смолу по всій поверхні друкарської деталі.

Механіка принтера

Основний друкований стіл занурений у ємність із рідкою фарбою та встановлений на ШВП, з'єднаних із кроковими двигунами. Це дозволяє піднімати та опускати стіл із високою точністю.

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

Над столом встановлено ультрафіолетовий проектор з відповідною оптикою, підключений до керуючого ПК кабелем HDMI.

Основний контролер підключається до цього ж ПК через USB (з емульованим COM-портом), через який передаються G-команди для керування принтером.

Бак із смолою можна нахиляти під невеликим кутом за допомогою крокового двигуна. У крайніх положеннях також встановлені кінцеві вимикачі для запобігання розгойдування. Для керування принтером використовується джойстик з фіксацією положень, який дозволяє піднімати та опускати стіл уручну.

У режимі друку будь-який рух джойстика зупиняє поточний рух. У звичайному режимі при натисканні та відпусканні джойстика вниз починається рух вниз доти, доки не спрацює нижній кінцевий вимикач. Якщо під час цього руху натиснути та відпустити джойстик вгору, рух зупиниться. Якщо ви знову натиснете і відпустите джойстик вгору, почнеться безперервний рух вгору, доки не спрацює верхній кінцевий вимикач або джойстик не переміститься і не опуститься вниз.

Для керування столом також можна використовувати елементи керування у програмі Creation Workshop.

Налаштування творчої майстерні

У програмі Creation Workshop завантажте профіль для роботи з принтером (Configure->Configure Slicing Profile->Slicing Profile-> mUVe.1.3) Задайте товщину шару (Configure->Configure Slicing Profile->Settings-> Slice Tickness (mm)->0,1)

Задаємо загальний час циклу, протягом якого будуть відбуватися всі рухи столу та плити для одного шару (Configure->Configure Slicing Profile->Lift and Sequence->Lift and Sequence time (ms)->8000) Цей час не повинен бути меншим, ніж повний цикл руху робочої плити та поворотного столу, налаштованого у прошивці. В іншому випадку експозиція наступного шару почнеться раніше, ніж стіл та плита повернуться до робочої точки!

При зміні налаштувань та перед друком щоразу відкривайте 3D-модель та використовуйте команду «Slice» з mUVe.1.3

Послідовність друку

Очікується, що на початку друку принтер встановлено у нульове положення. За бажанням ви можете скинути налаштування контролера.

При запуску експозиція першого кадру починається протягом 1 секунди (змініть Configure->Configure Slicing Profile->Settings- > Explosure time (ms)->1000). Потім проектор починає показувати чорну рамку. При використанні сервовідтвору об'єктива він закривається.

Відразу після закінчення експозиції хитний стіл починає рухатися вниз зі швидкістю 10 мм/сек (змінна TiltDownSpeed=3200) Стіл зупиняється через 2 секунди, пройшовши 20 мм ( змінна StepsToRaiseLowerVat)

Через 1,2 секунди після закінчення впливу (змінна TimeForRaiseBuild=1200)

Підйом робочої пластини починається зі швидкістю 2 мм/сек (змінна LiftUpSpeed = 1600) Пластина зупиняється через 2 секунди після проходження 4 мм (змінна StepsToRaiseLowerBuildPlate = 3200> )

Через 3,4 секунди з моменту закінчення впливу (змінна TimeForGoZeroPos=3400) починається опускання робочої плити і підйом столу, що коливається.

Стіл опускається зі швидкістю 1 мм/сек (змінна LiftDownSpeed = 800) і зупиняється через 4 секунди після проходження 3,9 мм (4 мм мінус товщина шару).

Гойдалка піднімається зі швидкістю 5 мм/сек (змінна TiltUpSpeed = 1600) і зупиняється через 4 секунди після проходження 20 мм

Через 8 секунд (змінна Creation Workshop->Lift and Sequencetime=8000) цикл рухів завершується, при використанні сервопривод об'єктива, затвор відкривається. Розпочинається експозиція наступного кадру.

Після закінчення друку або спрацювання верхнього кінцевого вимикача друк припиняється і сервоклапан закривається

При зміні швидкості та відстані необхідно переконатися, що всі рухи завершені до початку експонування наступного кадру, та відповідним чином встановити змінні часу підйому та послідовності. Після його зміни або зміни товщини шару перед друком необхідно повторно використати команду «Зріз» із профілем mUVe.1.3

Основні параметри системи:

  • Основний контролер – Arduino Mega
  • Процесор – 16 МГц, ATmega2560
  • Пам'ять контролера - 256 КБ + 8 КБ SRAM + 4 КБ EEPROM.
  • Крокові двигуни – Nema 17 0,4А
  • Крутячий момент крокового двигуна – 26 Нсм.
  • Харчування – 12В 5А
  • Крок ШВП – 4 мм.
  • Мінімальна товщина друкарського шару – 0,00125 мм.
  • Час експозиції –2..8с (залежить від смоли, потужності проектора та товщини шару)

Прошивка принтера

На основі модифікованої прошивки Marvin для 3D-принтерів.

Роздрукувати змінні та їх налаштування за умовчанням для циклу підйому та послідовності (мс) = 8000

int PlatenStepsPerLayer = 80;

Дії переміщення товщини шару на одну товщину. Розраховується шляхом розподілу Товщини зрізу (мм) з налаштувань друку Creation Workshop на мм/крок. Для шару 0,05 мм гвинт із кроком 4 мм та 1/16 мікрокроку = 0,05/0,00125= 40 Для шару 0,1 мм гвинт із кроком 4 мм та 1/16 мікрокроку = 0,1/0,00125 =80

int StepsToRaiseLowerBuildPlate = 3200;

Кроки підйому столу між експозиціями Для гвинта з кроком 4мм і 3200 кроків на оборот - 3200 відповідає підйому 4мм (~2 сек при 1600крок/сек, ~4 сек при 800крок/сек)

int StepsToRaiseLowerVat = 6400;

Кроки підйому/опускання гойдалки Для гвинта з кроком 10 мм і 3200 кроків на оборот – 6400 відповідає підйому на 20 мм (~2 сек при 3200 крок/сек, ~4 сек при 1600 крок/сек). )

int TimeForRaiseBuild=1200; — Час від початку циклу до початку підйому робочої плити

int TimeForGoZeroPos=3400; Час від початку циклу, з якого плита та стіл починають повертатися в робоче положення, до початку наступного циклу не повинно працювати раніше робочої плити піднімається у верхнє положення, а поворотний стіл опускається у нижній

int MotorSpeed = 3200; - Швидкість руху в ручному режимі керування, кроків/с

int MotorAccel = 12000; - Прискорення руху в ручному режимі керування, кроків/с²

int LiftDownSpeed = 800; - Швидкість опускання робочої плити, крок/с;

int LiftDownAccel = 4000; - Прискорення при опусканні робочої плити, кроків/сек²;

int LiftUpSpeed = 1600; - Швидкість підйому робочої плити, кроків/с;

int LiftUpAccel = 12000; - Прискорення підйому робочої плити, кроків/с²;

int TiltDownSpeed = 3200; - Швидкість опускання поворотного столу, кроків/сек;

int TiltDownAccel = 12000;- Прискорення при опусканні хитного столу, кроків/с²;

int TiltUpSpeed = 1600; - Швидкість опускання поворотного столу, кроків/с;

int TiltUpAccel = 8000; - Прискорення при підйомі хитного столу, кроків/с²;

bool LiftMotorReverse=false; — інвертує напрямок руху двигуна робочої пластини. За замовчуванням вгору — за годинниковою стрілкою, вниз проти годинникової стрілки;

bool TiltMotorReverse=false; — інвертує напрямок руху двигуна поворотного столу. false – вгору за годинниковою стрілкою, вниз – проти годинникової стрілки. true – вниз за годинниковою стрілкою, вгору – проти годинникової стрілки.

Набір G-кодів для керування принтером:

  • Z0 – зупинити рух робочого столу;
  • Z+/-50 – безперервний рух робочого столу
  • Z+/-10 – один оборот двигуна робочого столу (3200 кроків)
  • Z+/-1 – 1/200 обороту двигуна робочого столу (16 кроків)
  • X0 – зупинити рух столу Swing
  • X+/-100 – безперервне переміщення столу Swing
  • Z+/-10 – Переміщення столу Swing у крайні положення (верхнє та нижнє)
  • Z+/-1 – 1/200 обороту двигуна поворотного столу (16 кроків)

Апаратне забезпечення

  • Ардуїно Мега – 1 шт.
  • Материнська плата 3D-принтера Ramps 1.4 – 1 шт.
  • Кроковий двигун – 3шт.
  • Драйвер крокового двигуна A4988 – 2 шт.
  • Кінцевий вимикач – 4шт.
  • Блок живлення 12В 5А – 1шт.
  • УФ-проектор – 1шт.

Схема підключення

Схема підключення

Можливі подальші покращення

  • Додати додаткові елементи керування принтером (кнопки зупинки, аналогові контролери параметрів тощо)
  • Додати сервовідтвор для закриття об'єктива проектора (зменшує розсіяне світло).
  • Друк без підключення до ПК (на основі набору фотографій та контрольних G-кодів, завантажених на зовнішній носій)

Фотографії

Основні компоненти, зібрані для тестування

Головний контролер