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

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

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

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

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

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

Для сканера в окончательной версии используется:

  1. Телефон Samsung S5
  2. Красный и зеленый лазеры с линзой для линии (90 градусов линия) на 30 мВт со стеклянной оптикой (не самые дешевые).
  3. Шаговые двигатели 35BYGHM302-06LA 0.3A, 0.9°
  4. Драйверы шаговых двигателей A4988
  5. Bluetooth модуль HC-05
  6. Плата STM32F103C8t

Драйверы A4988, выставлены на half step, что с редуктором 15->120 дает 400*2*8 шагов на PI.

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


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

LED Проектор.


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

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


Идея была проверена и сочтена годной. Но не для DIY исполнения, по причинам:

  1. Нужен достаточно мощный лазер, что бы после дифракции, метки были достаточно яркими (расстояние до объектива смартфона 1..2 метра). А глаза жалко. Лазер-точка уже с 30мВт не полезен.
  2. Требования к точности механической развертки в 2-х плоскостях – слишком высокие для DIY исполнения.

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


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


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

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

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



Хотя с самого начала предполагал, что это тупиковый вариант, не обеспечивающий необходимой точности, я все равно его проверил c различными ухищрениями:

  1. Ось мотора зафиксирована подшипником.
  2. Добавлен элемент трения и стопор для выборки люфта редуктора.
  3. Попытка определения «точной позиции» фототранзистором, по засветке лазером

Повторяемость возврата на то же место линии лазера оказалась низка – 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. В идеале облака точке должны сойтись, дополняя друг друга.

Статически параметры, выставляются максимально точно один раз:

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

Ну и конечно же максимальная фокусировка линз лазеров на заданное расстояние сканирования и «вертикальность» линий лазера.

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

До подстройки:


После подстройки:


Выводы


Такую конструкцию, пожалуй, может повторить любой. Я все детали вырезал из стеклотекстолита на ЧПУ.

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

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

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

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

Исходный код

Комментарии (52)


  1. gshamshurin
    23.05.2018 07:16

    Вот это я понимаю — серьёзный подход к хобби. Скажите, а на мелких объектах точность не проверяли? Получится достичь 0,02мм на объекте размером примерно 40х40х40мм?


    1. mmMike Автор
      23.05.2018 07:22

      Это другие конструкции под другие входные условия. Поворотные столики и маленькое расстояние до камеры.

      Точность определяется:

      1. разрешение камеры.
      2. угол обзора
      3. ширина линии лазера.

      На расстоянии 1.5 метра для камеры смартфона и 1 мм разрешения это очень хорошо.


  1. DEM_dwg
    23.05.2018 07:29

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


    1. mmMike Автор
      23.05.2018 07:35

      Предел для:

      1. камера Samsung S5
      2. середина пасмурного дня в помещении не на солнечной сторон .
      3. лазеры 30 мВт.

      Около 3-4 метра на светлых обоях. Дальше камера не берет. Точнее результат сильно «зашумленный»
      (субъективные критерии конечно. Но фотоэкспономера нет)


  1. DEM_dwg
    23.05.2018 07:40

    Ну да, не на солнечной стороне и в пасмурную погоду, у меня лазер 50мВт вполне хорошо определялся…
    Но мне то нужен сканер чтобы везде работал.
    Хотя бы в помещениях.
    Идея сделать не большой сканер бюджетный(до 100 тыс руб), который бы можно было использовать для сканирования помещений.


    1. mmMike Автор
      23.05.2018 07:48

      Бюджетный сканер помещений (если не нужен цвет скана и не принципиально время сканирования, а важна точность) можно делать на линейках типа TDC1304.
      Я на ней спектрометр делал.
      Не дорого стоит, и разрешение (линии) всяко побольше чем у бюджетных камер.
      Механика только… на коленке не сделать. Но это ВСЕХ сканеров касается. Основное в них — точность механики.


      1. DEM_dwg
        23.05.2018 07:55

        Спасибо, за подсказку.
        Нужно сканирование 360°, за 3-4 минуты максимум.
        Зы. В личку напишу с описанием проекта, может быть заинтересуетесь.


      1. Osnovjansky
        24.05.2018 15:38

        Механика только… на коленке не сделать

        В старых жестких дисках (например на 2 ГБ) два высокоточных шарикоподшипника — двигатель диска и узел подвеса блока головок. Мне кажется, что «лазерную указку» они выдержат. Для варианта как в статье двигатель удобнее — есть фланец для крепления

        Нужна не столько точность, сколько повторяемость при работе, тогда точность можно получить калибровкой. Т.е. например, если угол будет не 90 градусов, а 88, но с высокой повторяемостью — это можно учесть в софте


        1. mmMike Автор
          25.05.2018 05:14

          Мне кажется, что «лазерную указку» они выдержат. Для варианта как в статье двигатель удобнее — есть фланец для крепления

          И у меня такая мысль была.

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

          А по поводу использования узла подшипников…
          У меня валяет с пяток потрошенных корпусов от HDD. Пытался приспособить узел с подшипником от них как поворотный для этого же 3D сканера. И так прикладывал и сяк… и даже начал срезать лишнее дремелем. Извел 5 дисочков (вязкий метал… дюраль) — задолбался.

          … И решил, что проще на ЧПУ вырезать самому из стеклотектолита конструкцию. Два обычных подшипника на одном валу вполне обеспечиваю необходимые требования к люфту оси.
          40 минут на эскиз и подготовку файла с G-code. И час на вырезание. А стянуть болтами и закрепит все еще минут 20.


          1. Ramzez
            25.05.2018 09:59

            беда головок от HDD в том, что они не занимают какую либо позцицию при прикладывании потенциала к катушке. положительный потенциал — едет до конца в одну сторону, отрицательный — в другую. величина потенциала регулирует скорость.
            с этой точки зрения, позиционировать что либо головкой от HDD представляется маловероятным, т.к. обратная связь в HDD идет через чтение инфы на жестком диске. а в самопале как понимать, в каком положении головка? энкодер еще туда лепить?


            1. jaiprakash
              25.05.2018 10:54

              Индукционный или ёмкостный датчик.
              Если у нас не шаговик — то нужна обратная связь, ПИД, вот это вот всё.


    1. dinam
      23.05.2018 23:40

      Если поднять планку до ~150 тысяч, то Basler ToF Camera очень хороша. К ней какой-нибудь odroid добавить для сбора и сохранения данных и вперед. Точность замечательная, промышленная железка, механику или оптику изобретать не надо, знай себе, тащи готовое облако точек, да считай. Если хорошо попросить, дают образец на недельку-другую попробовать :)


    1. Gryphon88
      24.05.2018 01:11
      +1

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



    1. donvictorio
      24.05.2018 03:10

      бюджетнее для помещений чем autodesk recap не существует :)


  1. Kelt_Rivera
    23.05.2018 09:29

    Тоже раньше пытался баловаться с лазерами для 3D-сканов, но после того, как открыл для себя фотограмметрию, лазеры стали как-то абсолютно неинтересны. Честно говоря, не знаю даже, есть ли у них преимущества в домашних условиях.


    1. jaiprakash
      23.05.2018 12:07

      А как с объектами с однородной монотонной поверхностью?


      1. Eugeny1987
        23.05.2018 18:14

        маркеры можно наклеить, а потом стереть


        1. jaiprakash
          23.05.2018 18:18

          Или лазером проецировать точки/полоски. Wait, oh shi~


      1. Kelt_Rivera
        24.05.2018 07:14

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


    1. Ariez
      23.05.2018 16:23

      Фотограмметрия, насколько я знаю по опытам с коллегами в плане анализа рельефа спины (осанки), имеет свои минусы. Например необходимость вручную «ставить» точки на координатной сетке, которые неправильно обсчитались программой по стереопаре, затем в отдельной программе простраивать 3d. В отличие от оптических анализаторов (представленных на рынке). Хотя точность фотограмметрии не вызывает ничего кроме восхищения


      1. Kelt_Rivera
        24.05.2018 07:07

        Спина действительно довольно однородна в плане цвета, так что могут быть проблемы. Я, конечно, имел в виду бытовое использование: я, например, сканировал разные предметы типа фигурок, еды и прочего, которые можно использовать для визуализации или игр. Учитывая, что фотографировал я на мыльницу за 3000р, результаты были более, чем впечатляющие. И никаких лазеров, двигателей и прочего. Размер сканируемого объекта тоже, по сути, неограничен. Ну или ограничен ресурсами ПК и удобством его фотографирования.


    1. Gryphon88
      24.05.2018 01:13

      Для фотограмметрии обязательны маркеры (естественные или искусственные), или достаточно знать смещение камеры относительно сцены?


      1. Kelt_Rivera
        24.05.2018 07:02

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


  1. netmaniac
    23.05.2018 09:40

    А если вращать не сами лазеры, а зеркала?


  1. mmMike Автор
    23.05.2018 09:46

    По поводу зеркал…
    Были сомнения:

    1. по точности управления углом (а это очень важно).
    2. У большинства готовых угол 15-20 максимум.
    3. готовые цифровые стоят безумные деньги.

    И пр. сомнения. Да же не стал особо копать.
    Не нужна здесь скорость перемещения высокая. Камера не скоростная ничуть…
    Это хорошо заметно, когда в режиме позиционирования лазеров (20 градусов в сек) луч на экране телефона размазывается в полосу (и так же кадр в буфере выглядит).

    Позиционирование шаговым двигателем бюджетное и предсказуемое решение.


    1. lingvo
      23.05.2018 14:06

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


      1. vasimv
        23.05.2018 16:49

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


    1. Mishootk
      23.05.2018 14:20

      Рассмотрите вариант вращения лазера с постоянной скоростью. За объектом ставится юстировочная шкала, которая показывает реальное положение луча в пространстве. Луч вращается с постоянной скоростью. Момент съемки для каждого положения луча выбирается задержкой от прохождения контрольной точки по датчику на оси лазера (по ходу сканирования растет от 0 до максимума в конце шкалы). По ходу съемки в случае пропуска кадра (ошибка, уплывание скорости вращения) отдельные кадры доснимаются в процессе того же самого цикла сканирования (ничего крутить заново не надо, просто делаются допкадры в нужные моменты времени). Лазер (строительный) можно поставить на любую вращалку (хоть на проигрыватель пластинок). Главное, чтобы скорость вращения была не слишком большой для времени экспозиции. Таким образом сильно упрощается механическая часть. Вообще можно крутить лазер руками (важно лишь сохранить ось вращения неподвижной), софт сам ориентируясь по видеоанализу юстировочной шкалы делает фотоснимки и дает просьбу (можно прямо на экране), где еще надо медленно поводить лазером. Это как с мойкой автомобиля. Нужно водить струей (лучом) по объекту, а смывание (в нашем случае съемка) — всего лишь вопрос времени.

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


      1. Gryphon88
        24.05.2018 01:17

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


        1. Mishootk
          24.05.2018 08:33

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


  1. 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 (чтоб наверняка)


    1. mmMike Автор
      23.05.2018 13:55

      Большое спасибо.
      Я нечто подобное и предполагал, но лезть в боковую ветку и разбираться с ESP8266 было не охота.
      Обязательно попробую.


      1. Ramzez
        23.05.2018 14:14

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

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

        Единственный минус этой прошивки для меня — иногда эти настройки слетают и приходится лезть на веб морду. Чаще всего от сброса по питанию.
        Я вычитал, что там есть настройка — детектирование положительных фронтов на юарте модуля при запуске и если что то есть — сброс настроек wi-fi. Хотя я ее и отключил, сбросы иногда случаются.

        Возможно кто то тут знает в чем дело и может подсказать?

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

        Хотя дайте мне стабильный аналог TCP to UART с веб мордой, за 150 рублей, и я с радостью перейду))


    1. jaiprakash
      23.05.2018 15:36

      rtl8710? Он чуть дороже.


  1. lingvo
    23.05.2018 14:09

    Еще вопрос в выборе платформы на Андроиде. Почему не выбрали что-то более подходящее? Например тот же Rpi с камерным модулем наверняка бы справился. В нем же уже есть возможности подключения управляемой периферии напрямую.


    1. jaiprakash
      23.05.2018 15:39

      Предположу, что телефон вот он лежит, а малину с камерой нужно заказать и ждать.


      1. lingvo
        23.05.2018 16:51

        Но ведь и остальные детали данного эксперимента тоже нужно было заказывать? Лазеры, моторы, тот же Bluetooth модуль.


        1. mmMike Автор
          23.05.2018 16:59

          Малина у меня есть. И не одного варианта.
          Быстродействие старого Samsung S5 (уже далеко не топ) далеко превосходи Малину.
          Ну и да… давно новый телефон. А старый просто валялся…


  1. redpax
    23.05.2018 17:40

    айфон нечто подобное делает за полсекунды, но принцип работы иной.

    image


    1. Aquahawk
      23.05.2018 19:47

      а что это за софт?


      1. redpax
        23.05.2018 20:46

        Штатная программа «камера» создает с двух физических оптических камер 3Д картинку для наложения программной эмуляций малой ГРИП. Менять ГРИП и точку фокусировки можно на пост обработке, а пример приведенный выше позволяет посмотреть объемное изображение для точной фокусировки, но для этого нужен любой сторонний софт например программа focus.

        image


        1. Kelt_Rivera
          24.05.2018 07:17

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


  1. Gozdi
    23.05.2018 20:03

    Класс. А можно ли решить подобным образом задачу по определению реальной площади корпуса лодки? Все лодки разные, калькуляторы окраски не точны.


  1. jaiprakash
    23.05.2018 22:26

    Есть ещё вариант подключиться к USB телефона через IOIO. Обещают отзывчивость (latency) ~ 1 мс.


  1. foxrus87
    24.05.2018 05:26

    Вот если бы я был силён в программировании… а нельзя ли выложить просто готовый apk для смартфона? Ну и просто схему для stm? Просто я скорее ленивый, чем незнающий :-)


    1. mmMike Автор
      24.05.2018 05:27

      Считайте это входным барьером…
      Если лень поставить Android Studio и выбрать пункт «Build», то и уже спаять провода и пр. точно будет лень


      1. foxrus87
        24.05.2018 05:50

        Буду считать ваши слова- пинком к действиям! Андроид студия есть на нетбуке. а паять… в конце концов паять то я умею :-D как ни как- работа такая, тем более, что сканер хочется сделать, чтобы знакомому отдать 3d модель для печати на станке (он его дособерёт вскоре).


  1. Kogolbok
    24.05.2018 05:30

    Здо?рово. Сколько же труда положено… А теперь поставить всё это на поворотную платформу и делать снимки на 360° и от потолка до пола!!! Когда-то нужен был такой аппарат.


  1. f0ma85
    24.05.2018 05:30

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


  1. TEEN_true
    24.05.2018 05:30

    Очень интересные решения. Сам пока же нахожусь на уровне сканирования препятствий в помещениях на плоскости.
    А если вместо шаговиков на ременях использовать что-то вроде червячных двигателей от cd/dvd приводом для поворота лазеров? Будет намного компактнее и можно решить вопрос с точностью позициониования.


  1. MrFrazer
    24.05.2018 05:30

    Когда увидел фото подумал — «Что это за колайдер в реальности делает?».