История о том, как я делал свой первый 3D принтер.
Скажу сразу, статья больше обзорная и историческая, потому как деяния проходили в далёком 2013 году.
Сначала определимся со способом формирования изображения. В данном случае – это лазерный луч, отклоняем сканирующей системой (гальванометрическим сканатором). Процесс создания объекта можно увидеть на GIF анимации ниже.
Отличие будет состоять лишь в том, что построение в моём принтере будет не от поверхности ко дну, а от дна к поверхности. У этого метода есть плюсы и минусы.
Плюсы построения от дна:
простая механика (нет необходимости в выравнивающем устройстве);
необходимо меньшее количество фотополимера , находящегося в ванночке для выращиваия объекта;
ванночку можно сделать небольшую по высоте;
Минусы построения от дна:
необходимость обработки дна ванночки антиадгезионным покрытием;
борьба с эффектом «присоски»;
С минусами и плюсами понятно.
Но какие задачи необходимо будет решить, для изготовления принтера ? (считаем, что у нас ничего нет, и всё делаем с нуля)
порезать 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Д модели. Мне так показалось проще и так сделал.
Реализация управление лазером и гальванометром согласно УП
Многие, думаю, помнят старые добрые стрелочные индикаторы, наподобие такого:
В его основе лежит гальванометр. Точно такой же гальванометр используется и в устройстве, управляющем отклонение зеркал. Отличие состоит лишь в том, что для зеркал используется обратная связь по положению ротора гальванометра для более точного и быстрого позиционирования зеркала.
Внешний вид гальванометрического сканатора (точнее элементов для управления):
Цифрами помечено: 1 – блок питания, 2 – драйвер гальванометров, 3 – демо плата с программами (была выкинута за ненадобностью), 4 – гальванометрические головы (2 шт)
Для того, чтобы управлять гальванометром необходимо на драйвер (на управляющий вход) подать напряжение в диапазоне 0-10 В. 0 В -это одно крайнее положение зеркала, 10 В – другое крайнее положение зеркала. Остальные положения получаются пропорционально изменению напряжения на входе. Для задания напряжения я использовал 12-ти битный ЦАП, точнее два ЦАПа, по одному на каждую ось.
Вот что в итоге можно получить, управляя зеркалами и, соответственно, отражённым от них лазерным лучом.
Естественно, мне захотелось сразу же что-нибудь попробовать вырастить перед тем, как буду делать корпус принтера.
И немного изображений.
Результат мне понравился и обнадёжил!
Спроектировать корпус и собрать его
Т.к. угол отклонения зеркал гальванометров мал,то и для получения поля 100х100 необходимо чтобы расстояние от зеркал до дня ванночки должно быть порядка 400 мм. Поэтому, необходимо использовать зеркала с внешним отражающим слоем. Почему с внешним ? Напишу чуть позже. Сначала нарисовал на бумажечке то, как принтер будет выглядеть.
И создал 3D модель в SolidWorks.
Немного красивостей и рендеринга
Ну и начал собирать. Сначала каркас.
Гальванометр с лазерным модулем.
Принтер в сборе.
Хочу пару слов сказать о плате управления принтера. В его основе лежит микроконтроллер LM3S8962. Прошивку я делал на LabView. Вот так оно всё работает (на столе, что называется)
Немного от зеркалах
Теории. При отражении от обычного зеркала световой поток деформируется и изображение теряет целый ряд важных качеств – яркость, четкость и соответственно контрастность. Кроме всего прочего картинка просто искажается. Причина тому в строении обычного зеркала.
Как можно видеть на чертеже, потоку света (красный луч), преломляясь, приходится проходить через стекло целых два раза – до отражающего слоя (отмечено жёлтым) и обратно. При этом теряется яркость, какое бы чистое и прозрачное оно не было. И самое главное, что при попадании под углом, отличным от 90 градусов свет в обычном зеркале отражается не только от самой отражающей поверхности, но и от поверхности самого стекла (фиолетовый луч) – все помнят, как видели в обычном стекле свое отображение. Мало того, часть светового потока, отражающегося от зеркальной поверхности отражается от внутренней поверхности стекла (серый луч), потом попадая снова на отражающий слой и так до бесконечности – эффект так называемого «призрачного отражения». Избежать такой «порчи» изображения позволяет специальное зеркало, у которого отражающий (серебряный) слой на стекле не закрыт защитным покрытием (отмечено чёрным), как на обычном зеркале. Такие зеркала используются в теле-, микроскопах и других высокоточных оптических приборах.
Что же это даёт на практике? Сверху – обычное зеркало, снизу – с внешним отражающим слоем.
Если зеркала засветить лазером под углом 10-20 градусов к поверхности стекла, то можно увидеть, какое отражение получим. Сверху – от обычного зеркала, снизу – от зеркала с внешним отражающим слоем.
При использовании обычного зеркала чётко видны затухающие переотражения. При использовании зеркала с внешним отражением такой эффект полностью отсутствует.
Подбор фотополимера
Когда я только начинал заниматься проектированием принтера на рынке, в свободном доступе было крайне мало фотополимеров. Но ситуация, стечением времени сильно изменилась. О полимерах, тестах и муках выбора можно посмотреть здесь.
Подбор антиадгезионного покрытия дна ванночки
Антиадгезонное покрытие – один из важнейших элемент 3D принтера. Это покрытие должно полностью препятствовать прилипание фотополимера ко дну ванночки. В данном принтере я использовал Dow Corning Sylgard 184 силиконовый оптически прозрачный заливочный компаунд. У него есть плюсы и минусы. Минусов больше Немного прозрачного силикона на оргстекле.
Готовая ванночка, точнее аж 2 штуки.
Результаты
Напечатанные изделия
Это вообще самая первая получившаяся печать. Именно, да, я хотел напечтать плоский прямоугольник, аналог "Hello, world!" из IT сферы)
Деталь форт.
Деталь кольцо
Деталь труба. Задача: напечатать кусок трубки с «кольцами» внешним диаметром 9 мм и внутренним 7 мм.
Время печати примерно 40 мин. С торцов сломано – это я сломал. Проверял на прочность
Деталь колпак.
Длина мелкого – 20 мм, длина большого – 30 мм. Объём большого 3 см.куб, объём мелкого 1,94 см.куб. Время печати большого – 2 ч 57 минут, время печати мелкого не знаю, т.к. печатался не один. Большой на фотках – справа, мелкий – слева. толщина «корки» большого колпака – 1,5 мм, малого – 2,5 мм.
На это всё про всё я потратил примерно 9 месяцев.
PS
Небольшое видео не только об этом принтере, но и вообще о моём принтеростроении)