Представляю вниманию DIY сканер на базе Android смартфона.
При проектировании и создании сканера, в первую очередь, интересовало сканирование крупных объектов. Минимум – фигура человека в полный рост с точность – хотя бы 1-2 мм.
Данные критерии успешно достигнуты. Успешно сканируются объекты при естественном освещении (без прямого солнечного света). Поле сканирования определяется углом захвата камеры смартфона и расстоянием, на котором лазерный луч сохраняет достаточную для детектирования яркость (днем в помещении). Это фигура человека в полный рост (1.8 метров) с шириной захвата в 1.2 метров.
Сканер был сделан из соображений «а не сделать ли что ни будь более или менее полезное и интересное, когда заняться нечем». Все иллюстрации – на примере «тестового» объекта (выкладывать сканы людей не корректно).
Как показал опыт, для сканера такого типа ПО — это вторично и на него было потрачено меньше всего времени (на окончательный вариант. Не считая эксперименты и тупиковые варианты). Поэтому в статье особенностей ПО касаться не буду (Ссылка на исходные коды в конце статьи.)
Цель статьи – рассказать о тупиковых ветках и проблемах, собранных на пути к созданию окончательной рабочей версии.
Для сканера в окончательной версии используется:
- Телефон Samsung S5
- Красный и зеленый лазеры с линзой для линии (90 градусов линия) на 30 мВт со стеклянной оптикой (не самые дешевые).
- Шаговые двигатели 35BYGHM302-06LA 0.3A, 0.9°
- Драйверы шаговых двигателей A4988
- Bluetooth модуль HC-05
- Плата STM32F103C8t
Драйверы A4988, выставлены на half step, что с редуктором 15->120 дает 400*2*8 шагов на PI.
Выбор технологии сканирования.
Были рассмотрены следующие различные варианты.
LED Проектор.
Вариант был рассмотрен и просчитан. Даже дорогие проекторы не обладают нужным разрешением для достижения необходимой точности. А про дешевые даже говорить смысла нет.
Механическая развертка лазерного луча в сочетании с дифракционной решеткой.
Идея была проверена и сочтена годной. Но не для DIY исполнения, по причинам:
- Нужен достаточно мощный лазер, что бы после дифракции, метки были достаточно яркими (расстояние до объектива смартфона 1..2 метра). А глаза жалко. Лазер-точка уже с 30мВт не полезен.
- Требования к точности механической развертки в 2-х плоскостях – слишком высокие для DIY исполнения.
Стандартная механическая развертка лазер-линии на неподвижный объект сканирования.
В конечном итоге был выбран вариант с двумя лазерами разного цвета
- Разные цвета лазеров позволяют независимо детектировать их на одном кадре.
- Расположение лазеров по разные стороны камеры позволяет за один проход получить два скана.
- Два скана за раз позволяет объективно оценить качество юстировки сканера (сканы должны сойтись и наложиться друг на друга).
Как оказалось, последний критерий самый важный. Качество скана целиком определяется точностью измерения геометрических размеров и углов сканера. А наличие двух сканов от двух лазеров позволяет сразу оценить качество сканирования:
Облака точек сошлись. Т.е. плоскости захваченные двумя лазерами сошлись на всей поверхности.
Неудачный вариант механической части на 28BYJ-48.
Хотя с самого начала предполагал, что это тупиковый вариант, не обеспечивающий необходимой точности, я все равно его проверил c различными ухищрениями:
- Ось мотора зафиксирована подшипником.
- Добавлен элемент трения и стопор для выборки люфта редуктора.
- Попытка определения «точной позиции» фототранзистором, по засветке лазером
Повторяемость возврата на то же место линии лазера оказалась низка – 2-3 мм на дистанции 1.5 метра. При работе редуктора, несмотря на кажущуюся плавность, заметны рывки в 1-3 мм на расстоянии 1.5 метра.
Т.е. 28BYJ-48 полностью не подходит для более или менее точного сканера крупных объектов.
Требования к развертке, исходя из моего опыта
Обязательным элементом развертки должен быть редуктор.
Не стоит заблуждаться насчет режима 1/x шагов. Опыты показали, что в режиме 1/16 на A4988 микро шаги не равномерные. И на 1/8 эта неравномерность заметна на глаз.
Самым оптимальным решением для редуктора оказалось использование ременной зубчатой передачи. Хотя она получилась довольно громоздкой, но простой в создании и точной.
Точность позиционирования (точнее повторяемость позиционирования начальной положения лазеров для сканирования) лазеров оказалась около 0.5 mm для 5 мм ширины лазерной линии на 4 метра расстояния. Т.е. на расстоянии сканирования (1.2-1.8 метра) это вообще затруднительно измерить.
Позиционирование – оптроны (китайский noname) на прорези в диске под лазерами.
Проблемы с передачей управляющих сигналов с телефона на модуль управления лазерами и шаговыми двигателями
Узким местом, с точки зрения скорости сканирования оказался управляющий канал. Поскольку это была DIY неторопливая разработка в собственное удовольствие, то были перепробованы все способы коммуникации со смартфоном.
Передача управляющих сигналов через Audio jack (phone Audio jack=> oscilloscope)
Самый тормозной способ для передачи данных в реальном времени. Да еще с плавающим временем. До 500 ms (!) от программной активации передачи аудио данных до фактического появления сигнала в Audio jack.
Эта экзотика была проверена, поскольку, по работе приходилось иметь дело с мобильными ридерами чиповых карт.
Фотодиоды на экране смартфона (кусочек экрана телефона=>фототранзисторы+ STM32F103)
Был ради интереса опробован даже такой экзотический способ, как фототранзисторы матрицей 2x2 в виде прищепки на экран.
Хотя этот способ выдачи информации с телефона оказался самым быстрым, но не настолько принципиально быстрее (10 ms vs 50ms) чем Bluetooth, что бы мирится с его недостатками (прищепка на экран).
IR канал (phone=>TSOP1736->STM32F103)
Практически проверен и способ передачи через IR канал. Даже некую реализацию протокола передачи данных пришлось сделать.
Но IR так же оказался не очень удобен (фотодатчик крепить на телефоне неудобно), и не слишком быстрее чем Bluetooth.
WiFi модуль (phone=>ESP8266-RS232->STM32F103)
Результаты проверки этого модуля оказались совершенно обескураживающими. Время выполнения запрос-ответ (эхо) оказалась непредсказуемо плавающим в диапазоне 20-300 ms (в среднем 150 ms). Почему и что – разбираться не стал. Наткнулся только на статью где рассказывалось о неудачной попытке использовать ESP8266 для обмена данными в режиме реального времени с жесткими требованиями по времени запроса/ответа.
Т.е. ESP8266 со «стандартной» прошивкой TCP -> RS232 не годится для подобных целей.
Выбранный вариант управляющего модуля и передачи сигналов
В конечном итоге, после всех экспериментов, был выбран Bluetooth (HC-05 модуль) канал. Дает стабильное (а это самое главное) время передачи данных запрос-ответ в 40ms.
Время довольно большое и сильно влияет на время сканирования (половина от всего времени).
Но лучшего варианта добиться не удалось.
В качестве управляющего модуля широко распространенная плата c SM32F103C8T.
Методы детектирования линии на кадре.
Самый простой способ выделить линии лазере на кадре – это использовать вычитание кадра с выключенным лазером и кадра с лазером.
В принципе, работает и поиск по кадру без вычитания. Но работает значительно хуже при дневном освещении. Хотя и этот режим был оставлен в ПО ради сравнительных тестов (фото режима ниже. Все остальные фотографии с режимом вычитания кадров).
Практическая ценность варианта без вычитания кадров оказалась низка.
Возможно и можно извлечь сигнал лазера из этой зашумленной информации. Однако возится не стал.
Вариант с вычитанием кадров работает хорошо.
Всякие эксперименты с попытками аппроксимации линии и обработкой всего кадра показали, что чем сложнее алгоритм, чем чаще он «ошибается» да еще и тормозит обработку «на лету». Самым быстрым (и простым) оказался алгоритм поиска лазера (лазерной точки) на горизонтальной линии:
- Для каждой точки линии считается сумма квадратов уровня цвета лазера (RGB) в окне, указанного в конфигурации (13 px – экспериментально оптимальная величина для окна)
- Точка лазера – середина окна с максимальным значением сумм уровней «цвета».
Время на обработку одного кадра поиском «зеленой» и «красной линии» — 3ms.
Облака точек для красного и зеленого лазера считаются отдельно. При правильной механической юстировке сводятся с точностью < 1 мм.
Точность и юстировка
Точность оказалась в пределах 1 мм на расстоянии 1.2 метров. По большей части обусловлена разрешением камеры телефона (1920x1080) и шириной луча лазера.
Очень важным для получения корректных сканов провести настройку статическую и динамическую. Точность/не точность настройки хорошо заметна при загрузке обоих облаков точек в MeshLab. В идеале облака точке должны сойтись, дополняя друг друга.
Статически параметры, выставляются максимально точно один раз:
- Тангенс угла поля зрения камеры.
- Длинна «плеч» лазеров (от центра объектива до оси вращения).
Ну и конечно же максимальная фокусировка линз лазеров на заданное расстояние сканирования и «вертикальность» линий лазера.
Динамический параметр фактического угла позиции лазеров относительно виртуальной плоскости кадра приходится подстраивать каждый раз заново при смешении телефона в креплении. Для этого сделан режим настройки в ПО. Сведением в центр экрана лазеров и подстройкой величины угла необходимо выставить расчетное расстояние максимально близко к истинному (измеренному) расстоянию для обоих лазеров.
До подстройки:
После подстройки:
Выводы
Такую конструкцию, пожалуй, может повторить любой. Я все детали вырезал из стеклотекстолита на ЧПУ.
Конечно без ЧПУ фрезера сделать шкив под лазер затруднительно. Но с учетом того что нужен угол поворота максимум в 90 градусов, то при должном терпении шкив можно выпилить и надфилем.
Но лучше все же делать на ЧПУ. Требования к осевому люфту поворотного узла высоки. Качество сканов на 100% определяется точностью изготовления и юстировки.
Сканер делал в фоновом режиме. Временами с перерывами по паре месяцев. Поэтому оценить суммарную трудоемкость его создания не могу.
Общая стоимость конструкции не слишком высока. Как показали мои эксперименты, хотя и до промышленных сканеров крупных объектов далеко, но вполне приличные сканы получить можно.
На качество сканов в первую очередь влияет точность механической части. В этом смысле в DIY бороться с механикой созданной для промышленных сканеров сложно.
Исходный код
Комментарии (52)
DEM_dwg
23.05.2018 07:29Тоже пытался сделать сканер помещений, но столкнулся с тем, что лазер для этого дела нужен довольно мощный.
Т.к. в дневном свете вычитание кадров не всегда срабатывает, при маломощном лазере.
Пытался работать с фильтрами и длиной волны играть.
Но пока отложил проект.mmMike Автор
23.05.2018 07:35Предел для:
- камера Samsung S5
- середина пасмурного дня в помещении не на солнечной сторон .
- лазеры 30 мВт.
Около 3-4 метра на светлых обоях. Дальше камера не берет. Точнее результат сильно «зашумленный»
(субъективные критерии конечно. Но фотоэкспономера нет)
DEM_dwg
23.05.2018 07:40Ну да, не на солнечной стороне и в пасмурную погоду, у меня лазер 50мВт вполне хорошо определялся…
Но мне то нужен сканер чтобы везде работал.
Хотя бы в помещениях.
Идея сделать не большой сканер бюджетный(до 100 тыс руб), который бы можно было использовать для сканирования помещений.mmMike Автор
23.05.2018 07:48Бюджетный сканер помещений (если не нужен цвет скана и не принципиально время сканирования, а важна точность) можно делать на линейках типа TDC1304.
Я на ней спектрометр делал.
Не дорого стоит, и разрешение (линии) всяко побольше чем у бюджетных камер.
Механика только… на коленке не сделать. Но это ВСЕХ сканеров касается. Основное в них — точность механики.DEM_dwg
23.05.2018 07:55Спасибо, за подсказку.
Нужно сканирование 360°, за 3-4 минуты максимум.
Зы. В личку напишу с описанием проекта, может быть заинтересуетесь.
Osnovjansky
24.05.2018 15:38Механика только… на коленке не сделать
В старых жестких дисках (например на 2 ГБ) два высокоточных шарикоподшипника — двигатель диска и узел подвеса блока головок. Мне кажется, что «лазерную указку» они выдержат. Для варианта как в статье двигатель удобнее — есть фланец для крепления
Нужна не столько точность, сколько повторяемость при работе, тогда точность можно получить калибровкой. Т.е. например, если угол будет не 90 градусов, а 88, но с высокой повторяемостью — это можно учесть в софтеmmMike Автор
25.05.2018 05:14Мне кажется, что «лазерную указку» они выдержат. Для варианта как в статье двигатель удобнее — есть фланец для крепления
И у меня такая мысль была.
Но, мне показалось гораздо проще купить очень доступные шаговики (сразу со шкивом на валу) платы драйверов для них. Их сплошь и рядом продают для 3D принтеров.
Чем возится с управляющим контуром для узла подвески и калибровать его (а в каждой модели HDD они разные). Выигрыш в размерах незначительный. А нудной возни — много.
А по поводу использования узла подшипников…
У меня валяет с пяток потрошенных корпусов от HDD. Пытался приспособить узел с подшипником от них как поворотный для этого же 3D сканера. И так прикладывал и сяк… и даже начал срезать лишнее дремелем. Извел 5 дисочков (вязкий метал… дюраль) — задолбался.
… И решил, что проще на ЧПУ вырезать самому из стеклотектолита конструкцию. Два обычных подшипника на одном валу вполне обеспечиваю необходимые требования к люфту оси.
40 минут на эскиз и подготовку файла с G-code. И час на вырезание. А стянуть болтами и закрепит все еще минут 20.
Ramzez
25.05.2018 09:59беда головок от HDD в том, что они не занимают какую либо позцицию при прикладывании потенциала к катушке. положительный потенциал — едет до конца в одну сторону, отрицательный — в другую. величина потенциала регулирует скорость.
с этой точки зрения, позиционировать что либо головкой от HDD представляется маловероятным, т.к. обратная связь в HDD идет через чтение инфы на жестком диске. а в самопале как понимать, в каком положении головка? энкодер еще туда лепить?jaiprakash
25.05.2018 10:54Индукционный или ёмкостный датчик.
Если у нас не шаговик — то нужна обратная связь, ПИД, вот это вот всё.
dinam
23.05.2018 23:40Если поднять планку до ~150 тысяч, то Basler ToF Camera очень хороша. К ней какой-нибудь odroid добавить для сбора и сохранения данных и вперед. Точность замечательная, промышленная железка, механику или оптику изобретать не надо, знай себе, тащи готовое облако точек, да считай. Если хорошо попросить, дают образец на недельку-другую попробовать :)
Gryphon88
24.05.2018 01:11+1Если не нужно высокой точности, можно попробовать эхолокацию (статья). Собственно, исходник не так интересен, как цитирующие статьи, где описывается улучшение точности и снижение требований к микрофону, динамикам и их расстановке Если интересно, скину самые интересные по моему мнению статьи на тему.
Gryphon88
24.05.2018 15:26PYROOMACOUSTICS: A PYTHON PACKAGE FOR AUDIO ROOM SIMULATION ANDARRAY PROCESSING ALGORITHMS
Autonomous Localization and Mapping Using a Single Mobile Device
Robust Reconstruction of Sensor Swarms Floating through Enclosed Environments
A Unified Framework for Acoustic Scene Analysis, Synthesis, and Processing (диссертация)
ACOUSTIC REFLECTOR LOCALIZATION AND CLASSIFICATION
Identifying Impedances of Walls Using First and Second Order Echoes Уже попытки использовать это 2го порядка и классифицировать материал стен
Uncalibrated 3D room geometry estimation from sound impulse responses
HEARING IN A SHOE-BOX: BINAURAL SOURCE POSITION AND WALL ABSORPTION ESTIMATION USING VIRTUALLY SUPERVISED LEARNING
HOW TO LOCALIZE TEN MICROPHONES IN ONE FINGER SNAPЕщё раз про то, что микрофоны можно расставлять почти случайно, а не ползать с линейкой
FIRST ORDER ECHO BASED ROOM SHAPE RECOVERY USING A SINGLE MOBILE DEVICE
Kelt_Rivera
23.05.2018 09:29Тоже раньше пытался баловаться с лазерами для 3D-сканов, но после того, как открыл для себя фотограмметрию, лазеры стали как-то абсолютно неинтересны. Честно говоря, не знаю даже, есть ли у них преимущества в домашних условиях.
jaiprakash
23.05.2018 12:07А как с объектами с однородной монотонной поверхностью?
Kelt_Rivera
24.05.2018 07:14С этим действительно были проблемы. Помню, у меня не получилось отсканировать монотонно окрашенную сторону яблока. Возможно, при лучшем освещении и оборудовании (я фотографировал на очень дешевую мыльницу, на кухонном столе), результаты были бы лучше. + можно нанести маркеры, да. Но с остальными объектами все было более, чем хорошо, учитывая мой ужасный опыт с лазерами до этого. Ну и у лазеров тоже есть недостатки (на мой взгляд их даже больше): использовать их не так удобно, как просто сфотографировать объект со всех сторон. Размер объекта заметно ограничен, проблемно сканировать блестящие объекты и т.д. Не говоря уже о том, что китайцы могут обмануть и прислать дефектный модуль лазера (как это у меня было и чисто бывает с зелеными лазерами в целом), а стоит все это достаточно много. Для бытового использования, мне кажется, фотограмметрия — лучший метод из доступных.
Ariez
23.05.2018 16:23Фотограмметрия, насколько я знаю по опытам с коллегами в плане анализа рельефа спины (осанки), имеет свои минусы. Например необходимость вручную «ставить» точки на координатной сетке, которые неправильно обсчитались программой по стереопаре, затем в отдельной программе простраивать 3d. В отличие от оптических анализаторов (представленных на рынке). Хотя точность фотограмметрии не вызывает ничего кроме восхищения
Kelt_Rivera
24.05.2018 07:07Спина действительно довольно однородна в плане цвета, так что могут быть проблемы. Я, конечно, имел в виду бытовое использование: я, например, сканировал разные предметы типа фигурок, еды и прочего, которые можно использовать для визуализации или игр. Учитывая, что фотографировал я на мыльницу за 3000р, результаты были более, чем впечатляющие. И никаких лазеров, двигателей и прочего. Размер сканируемого объекта тоже, по сути, неограничен. Ну или ограничен ресурсами ПК и удобством его фотографирования.
Gryphon88
24.05.2018 01:13Для фотограмметрии обязательны маркеры (естественные или искусственные), или достаточно знать смещение камеры относительно сцены?
Kelt_Rivera
24.05.2018 07:02На самом деле все сводится примерно к такому: берем объект с относительно неоднородной текстурой (с монотонно окрашенными объектами действительно были проблемы), фотографируем со всех сторон с нормальным освещением и фокусом, закидываем все эти фотографии в программу для обработки, а все остальное делается почти автоматически (строится облако точек, а по нему — модель). Маркеров не надо никаких.
mmMike Автор
23.05.2018 09:46По поводу зеркал…
Были сомнения:
- по точности управления углом (а это очень важно).
- У большинства готовых угол 15-20 максимум.
- готовые цифровые стоят безумные деньги.
И пр. сомнения. Да же не стал особо копать.
Не нужна здесь скорость перемещения высокая. Камера не скоростная ничуть…
Это хорошо заметно, когда в режиме позиционирования лазеров (20 градусов в сек) луч на экране телефона размазывается в полосу (и так же кадр в буфере выглядит).
Позиционирование шаговым двигателем бюджетное и предсказуемое решение.lingvo
23.05.2018 14:06Вроде встречал управление поворотом не на шаговых двигателях а на основе электромагнитов — т.е. грубо говоря в одну сторону зеркало поворачивает пружина, а в другую тянет электромагнит с управлением от ЦАП. Нелинейность компенсируется калибровкой и можно получить в принципе любую разрешающую способность в пределах механики. Проблема только с демпфированием колебаний.
vasimv
23.05.2018 16:49Бесколлекторные тихоходные моторы еще можно, в подвесках камер со стабилизацией вроде достаточную точность дают.
Mishootk
23.05.2018 14:20Рассмотрите вариант вращения лазера с постоянной скоростью. За объектом ставится юстировочная шкала, которая показывает реальное положение луча в пространстве. Луч вращается с постоянной скоростью. Момент съемки для каждого положения луча выбирается задержкой от прохождения контрольной точки по датчику на оси лазера (по ходу сканирования растет от 0 до максимума в конце шкалы). По ходу съемки в случае пропуска кадра (ошибка, уплывание скорости вращения) отдельные кадры доснимаются в процессе того же самого цикла сканирования (ничего крутить заново не надо, просто делаются допкадры в нужные моменты времени). Лазер (строительный) можно поставить на любую вращалку (хоть на проигрыватель пластинок). Главное, чтобы скорость вращения была не слишком большой для времени экспозиции. Таким образом сильно упрощается механическая часть. Вообще можно крутить лазер руками (важно лишь сохранить ось вращения неподвижной), софт сам ориентируясь по видеоанализу юстировочной шкалы делает фотоснимки и дает просьбу (можно прямо на экране), где еще надо медленно поводить лазером. Это как с мойкой автомобиля. Нужно водить струей (лучом) по объекту, а смывание (в нашем случае съемка) — всего лишь вопрос времени.
Итого, для ручного сканирования нам нужен поворотный строительный лазер (вертикальный луч), штатив для смартфона, распечатка юстировочной шкалы шириной во весь кадр. Далее голая математика. При наличии двух шкал (одна перед объектом, другая за ним) софт сам вычислит расположение оси лазера для левого и правого сканирования. Между левым и правым сканированием необходимо обеспечить неподвижность камеры, объекта и шкал. Ось вращения переносится руками в приблизительное место достаточное для стереобазы сканирования.Gryphon88
24.05.2018 01:17Такой метод будет работать без синхроимпульса, когда мотор и камера связаны по воздуху, с каким-то лагом связи? Когда тактирование общее, тут все очевидно.
Mishootk
24.05.2018 08:33Положение отметки луча на двух юстировочных шкалах однозначно дает нам ответ об угле поворота лазера в момент создания кадра. При более-менее постоянной скорости вращения луча (даже руками) по информации из предыдущего кадра можно спрогнозировать момент запуска экспонирования следующего кадра для ближайшего столбца сканирования.
Ramzez
23.05.2018 13:53+1В моем проекте используется прошивка TCPtoUart для ESP8266, начиная с версии 5.6 исправлена багуля, что ESP сначала ждем наполнения буфера в N байт, а потом отправляет их. Или, если не наполнен буфер, то отправляет то, что есть, каждые (примерно) 50 мс.
В старших версиях отправляется сразу все, что пришло на порт и обратно так же.
Кароче в моем проекте я из STM32 на пк общаюсь на скорость 4 мегабита (бодрейт).
Фактически, моих данных передается 40 пакетов по 1.5 килобайта в секунду (от STM32) и еще столько же запросов этих пакетов (от ПК).
Это в первом режиме. В другом режиме происходит тупо пинг и запрос статусов, не очень длинной посылки. Тогда уже примерно 100 пакетов в секунду от STM32 приходит. То есть фактически, на коротких посылках, пинг достигает 10 мс, получается.
Так что это вариант для вас ускорить систему.
esp8266.ru/forum/threads/proshivka-tcp2uart-perexodnika-s-nastrojkoj-po-web.146
тут есть прошивка. нужна версия больше 6 (чтоб наверняка)mmMike Автор
23.05.2018 13:55Большое спасибо.
Я нечто подобное и предполагал, но лезть в боковую ветку и разбираться с ESP8266 было не охота.
Обязательно попробую.Ramzez
23.05.2018 14:14Да не за что.
Я тоже себя когда то переборол и залез в эти дебри. Получил в общем целом очень удобный интерфейс связи с пк для моих устройств.
Там и веб морда есть. Соответственно, можно даже продавать такое, а каждый юзер будет настраивать модуль на свою точку доступа и юзать ваш девайс.
Единственный минус этой прошивки для меня — иногда эти настройки слетают и приходится лезть на веб морду. Чаще всего от сброса по питанию.
Я вычитал, что там есть настройка — детектирование положительных фронтов на юарте модуля при запуске и если что то есть — сброс настроек wi-fi. Хотя я ее и отключил, сбросы иногда случаются.
Возможно кто то тут знает в чем дело и может подсказать?
В общем целом о ESP8266 отзываются так, что API плохой, поведение модуля часто получается малопредсказуемым, типа модуль морально и технически устарел, смысла его мучать дальше нет.
Хотя дайте мне стабильный аналог TCP to UART с веб мордой, за 150 рублей, и я с радостью перейду))
lingvo
23.05.2018 14:09Еще вопрос в выборе платформы на Андроиде. Почему не выбрали что-то более подходящее? Например тот же Rpi с камерным модулем наверняка бы справился. В нем же уже есть возможности подключения управляемой периферии напрямую.
jaiprakash
23.05.2018 15:39Предположу, что телефон вот он лежит, а малину с камерой нужно заказать и ждать.
lingvo
23.05.2018 16:51Но ведь и остальные детали данного эксперимента тоже нужно было заказывать? Лазеры, моторы, тот же Bluetooth модуль.
mmMike Автор
23.05.2018 16:59Малина у меня есть. И не одного варианта.
Быстродействие старого Samsung S5 (уже далеко не топ) далеко превосходи Малину.
Ну и да… давно новый телефон. А старый просто валялся…
redpax
23.05.2018 17:40айфон нечто подобное делает за полсекунды, но принцип работы иной.
Aquahawk
23.05.2018 19:47а что это за софт?
redpax
23.05.2018 20:46Штатная программа «камера» создает с двух физических оптических камер 3Д картинку для наложения программной эмуляций малой ГРИП. Менять ГРИП и точку фокусировки можно на пост обработке, а пример приведенный выше позволяет посмотреть объемное изображение для точной фокусировки, но для этого нужен любой сторонний софт например программа focus.
Kelt_Rivera
24.05.2018 07:17Прячьте, пожалуйста, такие картинки под спойлеры. У меня из-за них браузер чуть не завис
Gozdi
23.05.2018 20:03Класс. А можно ли решить подобным образом задачу по определению реальной площади корпуса лодки? Все лодки разные, калькуляторы окраски не точны.
jaiprakash
23.05.2018 22:26Есть ещё вариант подключиться к USB телефона через IOIO. Обещают отзывчивость (latency) ~ 1 мс.
foxrus87
24.05.2018 05:26Вот если бы я был силён в программировании… а нельзя ли выложить просто готовый apk для смартфона? Ну и просто схему для stm? Просто я скорее ленивый, чем незнающий :-)
mmMike Автор
24.05.2018 05:27Считайте это входным барьером…
Если лень поставить Android Studio и выбрать пункт «Build», то и уже спаять провода и пр. точно будет леньfoxrus87
24.05.2018 05:50Буду считать ваши слова- пинком к действиям! Андроид студия есть на нетбуке. а паять… в конце концов паять то я умею :-D как ни как- работа такая, тем более, что сканер хочется сделать, чтобы знакомому отдать 3d модель для печати на станке (он его дособерёт вскоре).
Kogolbok
24.05.2018 05:30Здо?рово. Сколько же труда положено… А теперь поставить всё это на поворотную платформу и делать снимки на 360° и от потолка до пола!!! Когда-то нужен был такой аппарат.
f0ma85
24.05.2018 05:30А не рассматривали вы идею использования гальванометров (как в лазерных проекторах) для управления лазерным лучом? Плюсов вроде больше, высокое разрешение и скорость. Но я не такой уж и техник просто тоже думаю о сканере и пока все на стадии мыслей.
TEEN_true
24.05.2018 05:30Очень интересные решения. Сам пока же нахожусь на уровне сканирования препятствий в помещениях на плоскости.
А если вместо шаговиков на ременях использовать что-то вроде червячных двигателей от cd/dvd приводом для поворота лазеров? Будет намного компактнее и можно решить вопрос с точностью позициониования.
gshamshurin
Вот это я понимаю — серьёзный подход к хобби. Скажите, а на мелких объектах точность не проверяли? Получится достичь 0,02мм на объекте размером примерно 40х40х40мм?
mmMike Автор
Это другие конструкции под другие входные условия. Поворотные столики и маленькое расстояние до камеры.
Точность определяется:
На расстоянии 1.5 метра для камеры смартфона и 1 мм разрешения это очень хорошо.