Самодельный 3D принтер на гальванометрических сканаторах

История о том, как я делал свой первый 3D принтер.

Скажу сразу, статья больше обзорная и историческая, потому как деяния проходили в далёком 2013 году.

 Сначала определимся со способом формирования изображения. В данном случае — это лазерный луч, отклоняем сканирующей системой (гальванометрическим сканатором). Процесс создания объекта можно увидеть на GIF анимации ниже.

8d3ea37bc1ec3a303b086cc3077e22b4.gif

Отличие будет состоять лишь в том, что построение в моём принтере будет не от поверхности ко дну, а от дна к поверхности. У этого метода есть плюсы и минусы.

23594119d2ddf0bb35d393fd05e5acab.jpeg

Плюсы построения от дна:

  • простая механика (нет необходимости в выравнивающем устройстве);

  • необходимо меньшее количество фотополимера , находящегося в ванночке для выращиваия объекта;

  • ванночку можно сделать небольшую по высоте;

Минусы построения от дна:

  • необходимость обработки дна ванночки антиадгезионным покрытием;

  • борьба с эффектом «присоски»;

С минусами и плюсами понятно.

Но какие задачи необходимо будет решить, для изготовления принтера ? (считаем, что у нас ничего нет, и всё делаем с нуля)

  • порезать 3D модель на слои;

  • преобразовать слои в управляющую программу (УП);

  • сделать управление лазером и гальванометром согласно УП;

  • спроектировать корпус и собрать его;

  • подобрать фотополимер;

  • подобрать антиадгезионное покрытие дна ванночки;

  • порадоваться или наоборот разочароваться в результате;

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

Резка модели на слои.

Реализацию этой задачи я попросил заняться другого человека. Суть в следующем: берём 3D модель желаемого объекта, выбираем на нём грань, от которой будет идти построение модели и «режем» её на слои, параллельные выбранной грани. Шаг резки задаём в программе. В конечном итоге я получил на руки приложение, загрузив модель в которое на выходе получал 1-битные картинки, получившиеся нарезанием модели на слои.

Интерфейс программыИнтерфейс программы

Подготовка управляющей программы

Эту задачу как и все последующие я решал уже сам. Описывать процесс, думаю, нет смысла, просто покажу на примере одного слоя.
Допустим, у нас есть слой (один срез нашей 3D модели) размером 6×7 пикселей.

Пример слояПример слоя

Управляющая программа одного слоя будет выглядеть так:

step=0;
2_1–5;
3_1–6;
5_2–6;
6_3–6;
7_3–6;

Где step — текущий слой.
Строка 6_3–6. В строке 6 засвечиваем область от 3 до 6 пикселя включительно.
Если будет несколько областей, например, 3, то строка будет иметь следующий вид

17_3–3–6–13–22–23;

В 17 строке засвечиваем область от 3 до 3 пикселя (по факту засвечиваем 1 пиксель), засвечиваем область от 6 до 13 пикселя включительно, засвечиваем область от 22 до 23 пикселя, включительно. Засвечиваем область — имеется в виду наличие 3Д модели. Мне так показалось проще и так сделал.

Реализация управление лазером и гальванометром согласно УП

Многие, думаю, помнят старые добрые стрелочные индикаторы, наподобие такого:

киловольтметр)киловольтметр)

В его основе лежит гальванометр. Точно такой же гальванометр используется и в устройстве, управляющем отклонение зеркал. Отличие состоит лишь в том, что для зеркал используется обратная связь по положению ротора гальванометра для более точного и быстрого позиционирования зеркала.

Внешний вид гальванометрического сканатора (точнее элементов для управления):

037432e82c52380a83d25c1e5e4845da.png

Цифрами помечено: 1 — блок питания, 2 — драйвер гальванометров, 3 — демо плата с программами (была выкинута за ненадобностью), 4 — гальванометрические головы (2 шт)

Для того, чтобы управлять гальванометром необходимо на драйвер (на управляющий вход) подать напряжение в диапазоне 0–10 В. 0 В -это одно крайнее положение зеркала, 10 В — другое крайнее положение зеркала. Остальные положения получаются пропорционально изменению напряжения на входе. Для задания напряжения я использовал 12-ти битный ЦАП, точнее два ЦАПа, по одному на каждую ось.

Три ЦАПа и отладочная платаТри ЦАПа и отладочная плата

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

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

И немного изображений.

Результат мне понравился и обнадёжил!

Спроектировать корпус и собрать его

Т.к. угол отклонения зеркал гальванометров мал, то и для получения поля 100×100 необходимо чтобы расстояние от зеркал до дня ванночки должно быть порядка 400 мм. Поэтому, необходимо использовать зеркала с внешним отражающим слоем. Почему с внешним ? Напишу чуть позже. Сначала нарисовал на бумажечке то, как принтер будет выглядеть.

cb5863d786304346bb8550d02d03ae68.jpeg

И создал 3D модель в SolidWorks.

3dd0535f03149e565ade30432885c53b.jpegНемного красивостей и рендеринга

2dfebf946ccc9e92ee372ea708762d35.jpeg002a127f0765d509b542b63a52b58b21.jpeg

Ну и начал собирать. Сначала каркас.

32d41c3b82e0a5dc7abda0af9d565568.jpeg

Гальванометр с лазерным модулем.

2ece6d4b087211b6cb1a509d5d1e6523.jpeg159188cb8f5cdbacf275b397f15422a9.jpeg

Принтер в сборе.

b76fe6756ef8a776ad96770ee57ccc7d.jpege876fcbab896d21d9bff085e81bf7213.jpeg

Хочу пару слов сказать о плате управления принтера. В его основе лежит микроконтроллер LM3S8962. Прошивку я делал на LabView. Вот так оно всё работает (на столе, что называется)

Немного от зеркалах

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

b2235919bbc5d57cb7ad64dfbada69cf.png

 Как можно видеть на чертеже, потоку света (красный луч), преломляясь, приходится проходить через стекло целых два раза — до отражающего слоя (отмечено жёлтым) и обратно. При этом теряется яркость, какое бы чистое и прозрачное оно не было. И самое главное, что при попадании под углом, отличным от 90 градусов свет в обычном зеркале отражается не только от самой отражающей поверхности, но и от поверхности самого стекла (фиолетовый луч) — все помнят, как видели в обычном стекле свое отображение. Мало того, часть светового потока, отражающегося от зеркальной поверхности отражается от внутренней поверхности стекла (серый луч), потом попадая снова на отражающий слой и так до бесконечности — эффект так называемого «призрачного отражения». Избежать такой «порчи» изображения позволяет специальное зеркало, у которого отражающий (серебряный) слой на стекле не закрыт защитным покрытием (отмечено чёрным), как на обычном зеркале. Такие зеркала используются в теле-, микроскопах и других высокоточных оптических приборах.

Что же это даёт на практике? Сверху — обычное зеркало, снизу — с внешним отражающим слоем.

59f0279200c8c2f44887797dfe5492e5.jpeg09e128d31db3c57fa08bacb00ec8841c.jpeg

Если зеркала засветить лазером под углом 10–20 градусов к поверхности стекла, то можно увидеть, какое отражение получим. Сверху — от обычного зеркала, снизу — от зеркала с внешним отражающим слоем.

6029d8f08d74b9b9f40820f9d65714b0.jpeg8bbdaa3176692518164d941ca2be5cc3.jpeg

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

Подбор фотополимера

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

Подбор антиадгезионного покрытия дна ванночки

Антиадгезонное покрытие — один из важнейших элемент 3D принтера. Это покрытие должно полностью препятствовать прилипание фотополимера ко дну ванночки. В данном принтере я использовал Dow Corning Sylgard 184 силиконовый оптически прозрачный заливочный компаунд. У него есть плюсы и минусы. Минусов больше Немного прозрачного силикона на оргстекле.

6cb2d4c194ed91b0dae833c01904633f.jpeg

Готовая ванночка, точнее аж 2 штуки.

e6882d162cb611b471ce48442082ca4e.jpeg

Результаты

Напечатанные изделия

Это вообще самая первая получившаяся печать. Именно, да, я хотел напечтать плоский прямоугольник, аналог «Hello, world!» из IT сферы)

118e83ece593619853e0425f14dca671.jpegf8f15a5d8d1295c3c2e7bd122a401bca.jpeg

Деталь форт.

3bde91486cb562599f2b7cc0bee0ecac.jpeg04a872168dc69e2e66033ae8d88a8cb8.jpeg

Деталь кольцо

12d5b708a032e3d0ee91cc0b565c4159.jpeg2cb8df6c8d81fc45d035707af29be959.jpeg

Деталь труба. Задача: напечатать кусок трубки с «кольцами» внешним диаметром 9 мм и внутренним 7 мм.

87d4f9d393729638764bd60e52fac5b6.jpegb1832545eea1988fef268842e20fc66e.jpeg

Время печати примерно 40 мин. С торцов сломано — это я сломал. Проверял на прочность

Деталь колпак.

056da1d6755dead3dac6c75629a993ee.jpeg453a6364684329588ee0c5c3e55a6c36.jpeg

Длина мелкого — 20 мм, длина большого — 30 мм. Объём большого 3 см.куб, объём мелкого 1,94 см.куб. Время печати большого — 2 ч 57 минут, время печати мелкого не знаю, т.к. печатался не один. Большой на фотках — справа, мелкий — слева. толщина «корки» большого колпака — 1,5 мм, малого — 2,5 мм.

На это всё про всё я потратил примерно 9 месяцев.

© Habrahabr.ru