3D лазерный сканер на Android телефоне / Хабр

3D лазерный сканер на Android телефоне / Хабр 3d печать
3d scanning, android development, stm32f103, laser scanner, scanner

3D лазерный сканер на Android телефоне

3D лазерный сканер на Android телефоне / Хабр

Представляю вниманию DIY сканер В смартфонах на базе Android.

При проектировании и создании сканера , меня в основном интересовало сканирование крупных объектов. Минимум — это фигура человека с заполнением не менее 1-2 мм.

Эти критерии были успешно достигнуты. Успешно сканировались объекты при естественном освещении (без прямого солнечного света). Поле сканирования определяется углом наклона камеры смартфона и расстоянием до него лазерный Луч сохраняет достаточную яркость для обнаружения (в помещении и в дневное время). Фигура человека в полный рост (1,8 метра) при ширине 1,2 метра.

Сканер был создан на основе идеи: «Почему бы не сделать что-то более или менее полезное и интересное, когда больше ничего нельзя сделать». Все иллюстрации созданы на примере «тестовых» объектов (публиковать некорректно сканы (людей некорректно).

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

Цель этой статьи — рассказать о суете и проблемах, собранных на пути к созданию окончательной функциональной версии. Для сканера Используемые в финальной версии:

  1. Samsung S5
  2. Красный и зеленый лазеры Со стеклянной оптикой 30mW line lens (90 degree line) (не самая дешевая).
  3. Шлейфовый двигатель 35BYGHM302-06LA 0. 3a, 0. 9°.
  4. A4988 драйвер рулевого колеса
  5. Блок Bluetooth HC-05
  6. Плата STM32F103C8T

Выбор технологии сканирования.

Были исследованы следующие различные варианты

Светодиодный проектор.

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

Механическое сканирование. лазерного луча в сочетании с дифракционной решеткой.

Идея опробована и хорошо себя зарекомендовала. Но не для DIY исполнения по определенным причинам:

  1. Должен быть очень мощным. лазер Должно быть достаточно мощности, чтобы после преломления маркер стал достаточно светлым (расстояние от объектива смартфона 1 … 2 метра). А это жалко для глаза: точечный лазер мощностью 30 мВт уже не годится.
  2. Требования к точности машинного сканирования на двух уровнях — очень высокие для DIY-проектов.

Обычное механическое сканирование лазерных линий на неподвижных объектах сканирования.

Конечный результат — двойная лазерами разного цвета

  1. Разные цвета лазеров система позволяет им быть независимыми в одном кадре.
  2. Расположение лазеров С другой стороны камеры может быть сделан только один проход. два скана .
  3. Два скана Пользователь может объективно оценивать качество выравнивания каждый раз. сканера ( сканы (Два лазера должны сходиться и перекрывать друг друга).

Неудачный вариант механической части на 28BYJ-48.

3D лазерный сканер на Android телефоне / Хабр

Сначала мы думали, что это тупик и не даст нужной нам точности, но все равно испытали его с помощью различных ухищрений.

  1. Вал двигателя удерживается на месте с помощью подшипников.
  2. Для устранения сопротивления шестерен были добавлены фрикционные элементы и ограничители.
  3. Исходя из освещения, мы пытаемся определить «точное положение» с помощью фототранзистора! лазером

Это означает, что 28BYJ-48 совершенно не подходит для более или менее точных измерений. сканера крупных объектов.

Требования к развертке, исходя из моего опыта

Редуктор должен быть неотъемлемой частью сканирования.

Не совершайте ошибку, работая с шагом 1/x. Эксперименты показали, что в режиме 1/16 у A4988 микрошаги неравномерны. А в режиме 1/8 эта неравномерность более заметна.

Лучшим решением для редуктора оказалось использование ременных передач. Хотя они оказались довольно громоздкими, зато просты и точны в изготовлении. Точность размещения (точнее, повторяемость начального размещения) лазеров для сканирования) лазеров составила примерно 0,5 мм для массивов шириной 5 мм. лазерной линии на расстоянии 4 м. Это означает, что на расстоянии сканирования (от 1,2 до 1,8 метра) это было бы довольно трудно измерить.

Размещение — оптопара в дисковом слоте (китайское noname) под лазерами .

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

Узким местом для скорости сканирования оказался канал управления. Поскольку это была ее собственная DIY свободная разработка, она перепробовала все возможные способы связи со смартфоном.

Передача управляющих сигналов через Audio jack (phone Audio jack=>(Осциллограф)

Самый медленный способ передачи данных в реальном времени. И даже в переменном времени. До 500 миллисекунд (!) между программной активацией передачи аудиоданных и фактическим появлением сигнала на аудиоразъеме. .

Эта экстравертность подтвердилась, когда на работе нам пришлось иметь дело со считывателями чиповых карт для мобильных телефонов.

Фотодиод в экране смартфона (часть экрана). телефона =>Фототранзистор + STM32F103)

Ради интереса пробовали даже такие экзотические методы, как матричный фототранзистор 2х2 в форме прищепки на экране.

Это метод извлечения информации, с телефона оказался самым быстрым, но не намного быстрее Bluetooth (10 мс против 50 мс), поэтому с его недостатками (снятие одежды на экране) можно мириться.

IR канал (phone=>TSOP1736->STM32F103)

Методы передачи по ИК-каналу также были продемонстрированы на практике. Это также потребовало реализации протокола передачи данных.

Однако ИК также оказался менее удобным (неудобным для модификации на телефоне неудобным) и не таким быстрым, как Bluetooth.

WiFi модуль (phone=>ESP8266-RS232->STM32F103)

Результаты этого раздела теста оказались совершенно неутешительными. Время ответа на заявку (ECHO) неожиданно оказалось в диапазоне от 20 до 300 миллисекунд (в среднем 150 миллисекунд). Я не стал разбираться в причинах этого; нашел только статьи о провале попыток обмена реальными данными с очень жесткими требованиями к времени запросов/ответов с помощью ESP8266.

Т.е. ESP8266 со «стандартной» прошивкой TCP ->RS232 не подходит для таких приложений.

Выбранные варианты блоков управления и передачи сигналов

Наконец, после всех экспериментов был выбран канал Bluetooth (блок HC-05). Он предлагает фиксированное (и это самое важное) время приложения/отклика 40 мс.

Это время значительно больше и существенно влияет на время сканирования (половина от общего времени). Тем не менее, лучшего выбора достичь не удалось.

Для блока управления используется широко распространенная плата C SM32F103C8T.

3D лазерный сканер на Android телефоне / Хабр

Методы детектирования линии на кадре.

Простейший способ маркировки линий лазере В контексте, использование удаления кадров и лазером и кадра с лазером .

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

3D лазерный сканер на Android телефоне / Хабр

Фактическое значение варианта без удаления кадра оказалось ниже.

Возможно, удастся экспортировать сигнал лазера из этой зашумленной информации. Однако меня это не волновало.

Вариант ‘удаление кадра’ сработал хорошо.

Всевозможные эксперименты показали, что чем сложнее алгоритм, приближаясь к линии и обрабатывая весь кадр, тем чаще он допускает «ошибки» и замедляет обработку «на ходу». Самыми быстрыми (и простыми) являются алгоритмы для поиска лазера ( лазерной (ключевых точек) горизонтальных линий:

  • Для каждой части линии, сумма квадратов цветового уровня лазера (RGB) окна, заданного в конфигурации (экспериментально оптимальным является окно размером 13 px).
  • Точка лазера — Центр окна с максимальным значением суммы «цветовых» уровней.

Облако красных и зеленых точек. лазера Рассчитывается индивидуально. Точно назначается соответствующее механическое выравнивание< 1 мм.

Точность и юстировка

Точность в пределах 1 мм на расстоянии 1,2 метра. В основном для анализа камеры. телефона (1920×1080) и ширины луча. лазера .

Для получения правильного изображения, сканов Статическая и динамическая адаптация. Когда оба облака загружены в meshlab, хорошо видна точность/неточность адаптации. В идеале облака точек должны сходиться и дополнять друг друга.

При статической адаптации параметры настраиваются с максимально возможной точностью.

  1. Угол поля зрения камеры.
  2. Длинна «плеч» лазеров (от центра линзы до оси вращения).

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

3D лазерный сканер на Android телефоне / Хабр

3D лазерный сканер на Android телефоне / Хабр

Выводы

Этот тип конструкции, вероятно, может повторить каждый. Каждый кусок стекловолокна вырезается на ЧПУ.

Конечно, без фрезеровки на ЧПУ было бы трудно сделать шкив. под лазер Она и есть трудная. Однако имейте в виду, что требуется угол поворота в 90 градусов. Если у вас достаточно терпения, вы можете вырезать их скребком.

Однако лучше изготовить их на станке с ЧПУ. Требования к осевой игре разрывного узла выше. Качество. сканов На 100% определяется точностью обработки и выравнивания.

Сканеры были на втором плане. Иногда бывают перерывы по два месяца. Поэтому я не могу поблагодарить все усилия по его созданию.

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

Оцените статью