Чпу плоттер в виде принтера на arduino своими руками

Делаем контактный 3D-сканер из дешевого станка с ЧПУ на базе Ардуино

Продолжаем дорабатывать простой станок с ЧПУ на Arduino. Теперь делаем из него контактный 3D-сканер.
Механическая часть крайне проста. Значительная доработка потребуется для прошивки платы Ардуино, а также для программы управления станком.

Изготовление контактного датчика для 3D-сканера

Для создания 3D сканера из имеющегося станка с ЧПУ на базе Arduino нам потребуется контактный датчик.
Для его изготовления потребуется две металлических полоски, два гвоздя, рейка, резистор сопротивлением в диапазоне 1Ком-10Ком и провода.
Выглядит готовый датчик не очень презентабельно, однако функции свои выполняет. В дальнейшем можно изготовить более эстетичный и точный вариант датчика.
Последовательность изготовления деталей датчика и его сборка ясна по фотографии.

Фото контактного датчика для 3D-сканера. На рейку крепим две скобы из железных полос.
В каждую скобу продевается по гвоздю. Гвоздь под действием силы тяжести опускается вниз (можно поставить пружинки из авторучек). Между острым концом верхнего гвоздя и шляпкой нижнего имеется небольшой зазор.
Теперь, если нижний гвоздь (щуп) упрётся в сканируемый объект, он поднимается вдоль рейки и коснётся острия верхнего гвоздя. Таким образом замкнётся цепь датчика и на цифровом пине 2 Ардуино появится сигнал HIGH

Ардуино остановит движение вниз датчика и поднимет его на прежнюю высоту, а на компьютер отправит данные о полученном расстоянии до сканируемого объекта.
Обратите внимание, что на случай неполадок щупу 3D-сканера обеспечена возможность значительного хода без повреждения датчика или сканируемого объекта.

Сканер собираем на станке с драйверами шаговых двигателей DM420A, ибо работает он гораздо быстрее, однако можно собрать и на станке с ЧПУ с драйверами ШД на базе микросхемы ULN2003.
Схема подключения датчика приведена ниже:

На рисунке изображена схема подключения контактного датчика к плате Arduino. Резистор 1КОм-10КОм выполняет роль стягивающего, и при разомкнутой цепи датчика обеспечивает падение потенциала на цифровом входе до 0В.
При замыкании цепи датчика на цифровом пине, работающем в режиме INPUT, появляется значение HIGH (5В). Цепь датчика замыкается при касании щупа датчика сканируемого объекта.
Для работы сканера понадобится новая прошивка, которую можно скачать на странице Прошивка. Также необходима программа управления станком с ЧПУ версии не ниже 1.0.2, которую можно скачать на странице Программы.

Описание работы 3D сканера на базе Ардуино

Над рабочей областью строится решётка, в узлах которой с помощью датчика измеряется расстояние до сканируемого объекта. Далее, используя алгоритм бикубической интерполяции, рассчитываются значения расстояния до объекта в промежутках между узлами решётки.
Теперь, получив все необходимые данные, программа строит изображение или 3D-модель объекта.
Имеется возможность выгрузки полученных значений расстояний до объекта в узлах решётки в отдельный файл, который впоследствии может использоваться на усмотрение пользователя.

Шаг 2. Установка и активация ПО

Теперь нужно установить и активировать программу. Возьмите USB-ключ и запустите установщик. Затем выберите язык программы – один из семи доступных. Программа установится на ваш компьютер. После окончания установки найдите папку «Калибровка» (Calibration) на USB-ключе и выберите файл калибровки. Он находится в папке «Конфигурация» (Configuration). Лицензия активируются таким же образом. Найдите папку «Лицензия» (License) на USB-ключе и выберите файл для активации. Затем нажмите «Ок». Теперь, скорее всего, активация 3D-сканера успешно завершена.

Запустите программу. Вам нужно будет просмотреть условия предоставления услуг целиком и подтвердить свое согласие с ними. Поставьте флажок напротив «Не показывать снова» (Do not show me again). Теперь вы можете начинать работать со сканами.

Делаем 3D сканер с помощью веб-камеры

Для того чтобы изготовить самодельный 3d сканер, вам понадобится:

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

Учтите, что без соответствующего ПО вам не удастся создать цифровую модель объектов и предметов. Поэтому изначально позаботьтесь о наличии специальных программ. К примеру, базовыми считаются DАVID-lаserscаnner и TriAngles, но они нуждаются в применении вращающейся поверхности.

Начните с калибровочного угла. Для его создания напечатайте шаблон (он входит в комплект программы). Разместите его таким образом, чтобы он создал угол в 90 градусов

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

Калибровку камеры делают в автоматическом или ручном режиме, это также предусматривается ПО.

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

Важно поместить объект точно по центру изображения на экране. В настройках вебки нужно отключить все автоматические корректировки

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

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

Технологии сканирования

Существует несколько технологий в трехмерном сканировании:

  1. Лазерная. Основывается на работе лазерных дальномеров. Трехмерная модель считывается с максимальной точностью. Применение таких моделей невозможно для человека из-за того, что объект должен быть неподвижен во время процедуры.
  2. Оптическая. В таком методе используется лазер второго класса безопасности. Преимущество – высокая скорость сканирования. Возможны считывания даже при движении объекта. Не подходит для сканирования зеркальных, блестящих и прозрачных поверхностей. Отличный вариант для сканирования человека.

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

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

Для точного чертежа зачастую требуется немало замеров. 3D сканирование позволяет воссоздавать объекты, если обвести их по контуру, при этом вращая на столе. Аппарат быстро превратит физический объект в цифровую модель на компьютере. Более того она станет доступна для печати на 3D принтере или станках ЧПУ.

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

В этом видео дается мастер класс по технологии 3D-сканирования:

Технологии для землян

Так как устройства промышленного сектора были, мягко говоря, не по карману рядовому потребителю, а потребность сканировать реальность росла, появились дешевые настольные и ручные 3D-сканеры. Первые, как правило, имеют поворотный стол, на который помещается исследуемый объект. Спустя несколько минут после начала сканирования мы получим готовую модель. Конечно, качество сканирования и размер сканируемой области несравнимы с лидарами, зато стоят они на несколько порядков дешевле. Именно к такому классу устройств и относится разработанный нами сканер. Основная проблема этих сканеров в том, что сканируемый объект должен поместиться на поворотный стол, что сильно ограничивает область применения. Еще один существенный минус этих сканеров — неполнота сканирования и слепые зоны. Если вы, например, попытаетесь отсканировать вазу, то сканер увидит только ее внешнюю часть, а не полость внутри.

Второй тип сканеров — ручные 3D-сканеры. Их необходимо руками переносить вокруг объекта, но модель они строят с помощь камер. Алгоритм работы таких сканеров существенно сложнее, стоят они дороже, и качество результата хуже, зато они позволяют сканировать большие объекты и тратить на это меньше времени. Выглядят они примерно так:

Одно из основных преимуществ такого сканера — он не ограничен областью сканирования. Мы можем отсканировать, например, лицо человека без необходимости ставить его голову на поворачивающийся стол. При определенном усердии можно отсканировать даже целое помещение, если только точность позиционирования позволит это сделать. Чтобы повысить точность, можно наклеивать специальные метки, которые сканер находит и использует как реперные точки. Собственно, на фотографии выше так и сделано. Такой подход ограничивает область сканирования, но, к сожалению, здесь либо овцы целы, либо волки сыты.

В нашей лаборатории мы решили создать дешевый 3D-сканер, имеющий точность, сравнимую с точностью 3D-печати. Это был наш первый серьезный проект, поэтому мы допускали ошибки, многого не понимали и еще больше узнавали в процессе. Сначала мы построили простой лазерный дальномер из лазерной указки и

веб-камеры

. Чтобы понять, как 2D-камера позволяет измерять расстояние, придется подключить воображение. Представьте себе натянутую в воздухе нить, по которой ползет паук. Если мы стоим вплотную к веревке, то видим, как паук ползет строго на нас (не очень приятное зрелище). А если теперь мы посветим на всю эту конструкцию лампой сбоку, на полу мы увидим тень. Так как свет поступает сбоку, проекция паука будет двигаться по проекции нити. Измеряя расстояние от начала тени нити до тени паука, мы можем вычислить, сколько паук прополз, умножив на некоторый коэффициент, ведь мы создаем сжимающее отображение.

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

Чем дальше стенка, тем ближе к пунктирной линии будет точка pfc на матрице камеры

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

Сам сканер собран из фанерных деталей, которые были вырезаны лазером. Для поворота стола используется шаговый двигатель, которым управляет разработанная нами плата. Она же управляет яркостью лазера и подсветки.

Обработка изображения с камеры происходит на компьютере, для этого была написана программа на Java. После окончания сканирования программа выдает так называемое облако точек, которые с помощью другой программы соединяются в полноценную модель. Эту модель уже можно напечатать на 3D-принтере, то есть получить копию реального объекта.

Не пропустите следующую лекцию:

Классификация лазерных 3D сканеров

Трехмерное сканирование подразделяется на 2 типа:

  1. Контактное. Метод представляет собой контакт с предметом.
  2. Бесконтактное. Перспективный метод сканирования, так как позволяет создавать скан моделей, находящихся в труднодоступных местах.

Бесконтактные подразделяются на 2 категории:

  1. Активные;
  2. Пассивные.

Контактные

Механический щуп соединен с контактами в сканере. Он снабжен датчиком, который измеряет высоту, глубину объекта. Координаты собраны в сетке, которые можно регулировать из программы. Механизмом могут допускаться угловые перемещения для впадин и отверстий. Процесс можно ускорить самостоятельно, изменяя шаги сетки: уменьшать сложные участки, повысив точность и сокращая время.

Данные устройства работают по следующему принципу: происходит зондирование предмета при помощи физического контакта, когда тот находится на прецизионной проверочной поверхности. Отличается от других видов сверхточной работой. Недостаток – может изменить или повредить объект. Такие сканеры проводят изучение объекта напрямую. Если объект лежит неправильно или двигается во время сканирования, его удерживают в неподвижном состоянии специальные тиски.

Пример контактного 3D сканера

В таком 3D сканере используется 3 вида механизма:

  • Каретка. Измерительная «рука», которая находится в неподвижном перпендикулярном положении. Исследование происходит в момент движения каретки, когда «рука» двигается вдоль объекта. Хороший метод сканирования плоских и выпуклых деталей.
  • Высокочастотный угловатый датчик. Сканирует внутреннее пространство объекта с углублениями и входными отверстиями. Производит сложнейшие математические вычисления.

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

Координатно-измерительная машина. Именно этот механизм сверхточно читает предмет и способен повредить или деформировать его. Такие минусы машины учитываются при сканировании исторических и хрупких объектов.

Бесконтактные

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

Зачастую сканируемые объекты находятся в освещенных местах. В таком случае используют отражение света в видимом диапазоне. Из этого следует, что бесконтактные 3D сканеры сравнимы с версией видеокамеры. Но такой освещенности недостаточно для подробного анализа, так как свет может распространяться неравномерно. В качестве дополнений используются специальные осветители, при этом увеличивается стоимость, и теряется компактность и мобильность.

Бесконтактный 3D сканер

Пассивные

Такие трехмерные сканеры анализируют отраженное излучение через свет. В качестве святилища используется лазерный луч, в основе которого имеется времяпролетный дальномер. Он рассчитывает расстояние и время движения луча туда и обратно. Используется как световой всплеск, а время его отражения фиксируется при помощи детектора. Как известно, скорость света неизменная величина, и, зная время полета луча в обе стороны, можно подсчитать расстояние от сканера до объекта. За 1 секунду времяпролетные 3D сканеры могут измерить до 100 000 точек.

Активные

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

Шаг 6. Подготовка детали

Теперь нам потребуется подготовить деталь к сканированию. 3D-сканер может определять свое местоположение относительно объекта с помощью меток, геометрии или даже цвета. Данная деталь имеет довольно сложную геометрию. Мы должны обеспечить хороший трекинг, но есть блестящие элементы, которые сканеру оцифровать проблематично.

На блестящие элементы можно нанести матирующий спрей, что позволит отсканировать их вместе с остальными за одну сессию. Также можно наклеить на объект несколько позиционных меток, это поможет сканированию. Геометрия этой детали не требует меток, но мы их используем, поскольку это рекомендуется и позволяет повторно отсканировать объект, если какие-то части оказались пропущены.

Миф четвертый: точность всегда одинакова

Еще одно популярное заблуждение о 3D-сканировании. Несмотря на то, что разные производители могут указывать одну и ту же номинальную точность своего оборудования, на практике все обстоит иначе. Проблема заключается в том, что единого стандарта точности попросту не существует. 

Представим, что есть два 3D-сканера разных марок, для которых изготовители указали одинаковый уровень точности

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

Но если речь идет об измерениях вне помещения или в условиях шума или вибрации, данные могут существенно различаться. 

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

Размер объекта также имеет значение. К примеру, вы пытаетесь измерить с помощью сканера, предназначенного для небольших деталей, объект длиной в полтора метра. В этом случае точность двух сканеров также может сильно различаться, несмотря на одинаковые заявленные показатели. Важным параметром будет являться величина накапливаемой погрешности на каждый метр измерений. Если производитель не указывает этот параметр, скорее всего его сканер не предназначен для сканирования объектов, превышающих его собственную рабочую зону сканирования. Ведь сшивка фрагментов 3D-модели не может осуществляться без заложенной в математические алгоритмы погрешности, влияющие на точность этой сшивки. 


Работа со сложной поверхностью с помощью ручного 3D-сканера Creaform HandySCAN BLACK

На результаты измерения влияет и поверхность объекта: темные, блестящие или полупрозрачные детали могут по-разному влиять на работу сканера. Таким образом, если вы сканируете объекты со сложными поверхностями, вполне возможны отличающиеся друг от друга результаты. 

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

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

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

Важные моменты перед работой

Необходимо правильно использовать устройство, чтобы оно не навредило здоровью человека. Среди основных правил использования можно выделить:

  • Лазер является опасным. Запрещено светить им в людей и животных, особенно в глаза. Есть риск, что он вызовет ожоги сетчатки.
  • Нельзя смотреть на лазер через оптические приборы. Они усиливают функции лазера.
  • Запрещено направлять лазер на бытовую технику и транспортные средства.
  • Не давайте устройство детям.
  • Не следует использовать лазер, если его мощность превышает 5 мВт, поскольку даже отражение такого луча способно причинить непоправимый ущерб здоровью.
  • Купите специальные защитные очки.

Миф первый: цены на 3D-сканеры со временем снижаются

Мы часто слышим от людей, что со временем стоимость 3D-сканеров все равно снизится, поэтому нужно просто немного подождать, а затем купить оборудование по меньшей цене. На самом же деле, если посмотреть на ценовую динамику всех проданных нами сканеров, с течением времени стоимость большинства из них только выросла, пусть и незначительно. Конечно, существуют устройства любительского уровня, которые находятся совершенно в иной ценовой категории. Среди них есть и новые модели от наших поставщиков. Однако функционал таких сканеров достаточно ограничен: как правило, у них меньшая точность и менее высокое качество полученных данных.

Если проследить ценовую динамику конкретной модели за последние 15 лет, то можно смело утверждать, что сканеры со временем только прибавляют в цене. Почему так происходит? Как правило, модернизированные модели сканеров выходят с обновленными функциями, предполагающими более высокую точность и разрешение, что обеспечивает повышение качества данных. Также немаловажную роль в ценообразовании играет и стоимость сертификации сканера, поскольку более мощным моделям требуется сертификация уровня ISO, а в случае России – включение в состав измерительных средств Госреестра РФ. 


Портативный 3D-сканер Creaform Go!SCAN SPARK – пример устройства метрологического класса нового поколения

Разработка новых сканеров требует серьезных исследований и прочей трудоемкой работы. Более того, пользователи 3D-сканеров промышленного класса рассчитывают на качественное обслуживание и ремонт в случае поломки. Обычно на это оборудование распространяется годичная гарантия, которая покрывает все возможные расходы. В то же время не стоит забывать, что рынок 3D-сканеров достаточно ограничен. Если бы мы могли продавать тысячи единиц в год, это бы повлияло на снижение цены. Тем не менее, объем продаж остается небольшим. Но главным образом на цену сканера влияет стоимость датчиков и компонентов, в частности пластиковых частей корпуса. 

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

Шаг 8. Сканирование объекта

Нажмите на «Сканировать» (Scan). Удерживайте желтую кнопку и, соблюдая адекватную дистанцию (порядка тридцати сантиметров от объекта), начинайте процесс сканирования.

Слева на фото вы видите полосу. Если она горит зеленым, вы находитесь на правильном расстоянии. Желтым — слишком близко, синим — слишком далеко.

Приступайте к сканированию. Нужно обойти вокруг объекта, чтобы запечатлеть отдельные выпуклости и щели и чтобы сканер «увидел» каждую деталь целиком. Однако здесь он прекрасно считывает геометрию и с одной-двумя метками, которые мы наклеили на объект.

Отслеживание может прерваться. В таком случае на экране появится оповещение, показывающее статус позиционирования. При прерывании отслеживания вы можете просто вернуться к детали с метками или к детали, которую вы сканировали ранее, и 3D-сканер восстановит процесс отслеживания, а вы сможете продолжить сканирование. Перед нами довольно сложный объект, но вы можете видеть, что устройство выполняет отслеживание очень хорошо.

Программа для персонального компьютера

Используется образ «FabScan Ubuntu Live DVD». На образе диска залито программное обеспечение FabScan. Можно записать образ на флэш-носитель с помощью Win32DiskImager и использовать его без установки linux os на ваш персональный компьютер.

Важное примечание! Если вы используете опцию «Try Ubuntu», убедитесь, что вы сохранили файлы перед тем как выключить персональный компьютер!

Следуйте инструкции, фотографии к которой приведены ниже:

  • Выберите SerialPort;
  • Выберите Camera;
  • File — Control Panel;
  • Нажмите detect laser (пока что не устанавливайте никаких объектов перед сканером) и выберите ‘enable’;
  • Нажмите «Fetch Frame» и убедитесь, что синяя горизонтальная линия касается вершины вращающегося стола, а желтая горизонтальная линия касается нижней части вращающегося стола. Кроме того, желтая вертикальная линия должна совпадать с центром вращающегося стола. Если камера установлена некорректно, результат сканирования будет не четким!

После настройки закройте окно, установите объект в 3 D сканере и нажмите кнопку Start Scan.

Сохранение 3D изображения

Когда процесс 3Д сканирования завершится, вы сможете сохранить сканированный 3D объект с расширением .pcd или .ply. Можно сохранить и в формате 3D stl файла, но эта возможность доступна не на всех платформах. Открыть сканированный и сохраненный ранее объект можно, выбрав File — OpenPointCloud.

Что дальше?

Вы можете использовать MeshLab для обработки сканированного 3Д объекта и распечатать его на 3D принтере!

При обработке файла в MeshLab:

1. Убедитесь, что вы сохранили объект как .ply файл.

2. Откройте файл с помощью MeshLab.

3. В MeshLab рассчитайте нормали (Filters/Point Set/Compute normals).

4. После этого перестройте поверхность, используя Poisson reconstruction (Filters/Point Set/Surface Reconstruction: Poisson)

Все!

Окончательно собранная конструкция приведена на фото ниже.

Видео работы оригинального FabScan 3-Д сканера:

Огромное спасибо команде FabScan за потрясающий open-source сканер на Arduino!!!

Оставляйте Ваши комментарии, вопросы и делитесь личным опытом ниже. В дискуссии часто рождаются новые идеи и проекты!