Лазерная рулетка схема. Лазерный дальномер из web камеры. Выполнение лазерного дальномера своими руками

Для реализации SLAMнеобходима аппаратная база. В совместной работе кафедры «Мехатроника и Робототехника» с предприятием ОАО «Восход КРЛЗ» был разработан сканирующий лазерный дальномер. Трехмерная модель сканера приведена на рисунке (Рисунок 3).

Технические характеристики:

    Тип лазера: Импульсный;

    Мощность лазерного излучения: 75 Вт в импульсе;

    Угол сканирования: 90 0 ;

    Высота плоскости сканирования относительно основания: 140 мм;

    Количество точек в одном скане: 5000 точек;

    Максимальное измеряемое расстояние: 31 м;

    Погрешность измерений: до ±2% от измеряемого расстояния;

    Напряжение питания: 12 В;

    Ток потребления: 0.9 А;

Рисунок 3 – Трехмерная модель сканера

    1. Структурная схема сканирующего лазерного дальномера

Техническое задание было сформировано предприятием ОАО «Восход КРЛЗ».

Основные положения ТЗ:

    Дальномер должен работать на основе импульсного метода дальнометрирования;

    Отказ от использования дорогостоящих ПЛИС схем;

    В качестве лазерного диода использовать SPL_PL90_3 фирмы изготовителя OSRAM;

    По возможности использовать компонентную базу производимую предприятием заказчиком

Во ходе работы была разработана структурная схема сканирующего лазерного дальномера (Рисунок 4).

Рисунок 4 – Структурная схема дальномера

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

Разработка сканирующего лазерного дальномера разделилась на этапы:

    Разработка электронных схем

    Разработка фотоприёмного устройства;

    Разработка лазерного излучателя;

    Разработка генератора стартового импульса;

    Разработка вычислительного блока;

    Разработка блока питания;

    Разработка механики лазерного сканирующего дальномера

    1. Разработка электронных схем

      1. Разработка фотоприёмного устройства

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

Рисунок 5 – Первый каскад усилителя

В схеме используется фотодиод КОФ137В производства КРЛЗ «Восход», он имеет следующие характеристики:

      Чувствительность: 0,75 А/Вт;

      Темновой ток: 10 нА;

Чувствительность отражает изменение электрического состояния на выходе фотодиода при подаче на вход единичного оптического сигнала. Количественно чувствительность измеряется отношением изменения электрической характеристики, снимаемой на выходе фотоприёмника, к световому потоку или потоку излучения, его вызвавшему.

В физикеиэлектроникетемновым током называют малыйэлектрический ток, который протекает пофотодиоду, в отсутствии падающихфотонов. Физической причиной существования темнового тока являются случайные генерацииэлектроновидыроквp-n слоеустройства, которые затем начинают упорядоченно двигаться за счет сильногоэлектрического поля. Темновой ток - один из главных источников шума .

Усилитель представляет собой 3 каскада выполненных на ОУ ADA4817-1, технические характеристики которого приведены в . Первый каскад является преобразователем ток-напряжение с коэффициентом усиления 2400. Второй и третий каскады – это одинаковые усилители с коэффициентом усиления 10 (Рисунок 6).

Рисунок 6 – Второй и третий каскады усиления

Одним из важнейших расчетов фотоприёмного устройства является энергетический расчет.

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

Исходя из формулы (6) шумовой ток прямо пропорционален корню квадратному из полосы пропускания фотоприёмника.

Для нахождения шумового тока рассчитаем полосу пропускания фотоприёмника. Резистор и конденсатор в обратной связи представляют собой фильтр верхних частот, а в паре с обвязочным конденсатором этот резистор образует фильтр верхних частот. Для расчета частоты среза RC-фильтров применяют формулу:

Используя формулу (7) найдем верхнюю и нижнюю границу полосы пропускания фотоприёмника:

Зная значения верхней и нижней границы можно рассчитать полосу пропускания:

Подставляя значение, полученное в (10), в формулу (6) рассчитаем величину шумового тока:

Для того чтобы определить полезный сигнал на фоне шумов, он должен быть в 5–10 раз больше чем сумма темнового тока фотодиода и шумового тока приёмника . Зададимся значением полезного сигнала, величиной 3 мкА. Исходя из чувствительности фотодиода, определим мощность оптического излучения, которое должно попадать на него для генерации тока равного 3 мкА:

(12)

Фотоприёмное устройство, помимо фотодиода и схемы усиления, содержит в своём составе оптическую систему, включающую в себя линзу диаметром 30 мм и фокусным расстоянием 51 мм, и оптический фильтр, пропускающий только излучение с длинной волны 905 нм. Оптический фильтр необходим для уменьшения влияния засветки на фотодиод. Он расположен между линзой и фотодиодом, при его установке необходимо учитывать что фокусное расстояние увеличится на величину равную толщине фильтра. Это происходит потому, что свет распространяется в фильтре параллельными лучами.

Для того чтобы определить максимально возможное расстояние, на котором полезный сигнал будет различим на фоне шумов, проведем энергетический расчет. Лазерный луч, попадая на объект, отражается от него в виде полусферы, и в результате не все излучение попадает на фотоприёмник (Рисунок 7).

Рисунок 7 – Отражение лазерного луча от объекта сканирования. 1 – ФПУ; 2 – лазерный излучатель; 3 – объект сканирования.

Конус, образующийся площадью линзы фотоприёмника и расстоянием до объекта сканирования, называется зрительным углом. Он определяет ту мощность, которая непосредственно попадет на ФПУ. В этом и заключается цель энергетического расчета фотоприёмника.

– мощность лазерного излучения (для SPLPL90_3); D – диаметр линзы ФПУ (D=30 мм);r – расстояние до объекта.

Преобразовав формулу (13), выведем r:

Подставив значения в формулу (14) получим максимальное расстояние которое возможно измерить:

(15)

Значение полученное в выражении (15) является идеальным, в реальности же большинство объектов поглощают часть излучения. Для объектов, с отражательной способность 18%, максимальное расстояние будет равно:

ФПУ включает в себя компаратор, необходимый для получения логического сигнала. В схеме используется компаратор ADCMP600, технические характеристики которого приведены в (Рисунок 8).

Рисунок 8 – Компаратор

В продаже, есть большое количество дешевых датчиков – дальномеров, в их числе ультразвуковые и инфракрасные. Все эти устройства работают хорошо, но из-за значительного веса, не подходят для летающих роботов. Миниатюрный робот вертолет, например, может нести около 100 г полезной нагрузки. Это даёт возможность использовать, для поиска препятствий и предотвращения столкновений с ними, машинное зрение, используя веб-камеры (или другие миниатюрные, беспроводные камеры с подключением к компьютеру через USB). А еще лучше, установить две камеры, что обеспечит роботу, стерео зрение, таким образом, благодаря информации о глубине изображения, улучшится обход препятствий. Недостатком этой идеи является сравнительно большой вес камеры.

1. Лазерный дальномер из веб-камеры

1.1. Принцип работы

Лазерная точка проектируется на возможное препятствие, лежащие в поле зрения камеры, расстояние до этого препятствия может быть легко вычислено. Математика здесь очень простая, обработку данных лучше всего производить в компьютерных приложениях. (см. рис. 1.1)

Рисунок 1.1 – Принцип действия дальномера

Итак, вот как это работает. Лазерный луч проецируется на объект в поле зрения камеры. Этот луч должен быть идеально параллелен оптической оси камеры. Лазерная точка захватывается вместе с остальной сценой. Простой алгоритм ищет на изображении яркие пиксели. Предполагая, что точка лазера является яркой на фоне более тёмной обстановки (я использовал обычную лазерную указку купленную в магазине за доллар), изначально положение точки в кадре не известно. Затем нам нужно рассчитать дальность до объекта, основываясь на том, где вдоль оси Y находится лазерная точка, чем ближе она к центру изображения, тем дальше находится объект.

Как мы видим из рисунка выше, расстояние (D) может быть рассчитано по формуле:

Конечно, для решения этого уравнения, вы должны знать, h – фиксированное расстояние между лазерной указкой и камерой. Знаменатель высчитывается так:


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

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


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

1.2. Компоненты

Для сборки дальномера требуется не так много деталей: веб-камера и лазерная указка. Для соединения лазерной указки и камеры необходимо вырезать раму из жести или фанеры:


Собранный дальномер должен выглядеть примерно следующим образом:

1.3. Программное обеспечение

Программа-обработчик написана на двух языках: Visual C ++ и Visual Basic. Вы, вероятно, подумаете, что программа на Visual Basic проще, чем на VC ++ в плане кода, но во всём есть компромисс. Код на VC ++ можно собрать бесплатно (при условии, что у вас есть Visual Studio), в то время как код VB требует приобретение программных пакетов сторонних производителей (в дополнение к Visual Studio).

Коды программ написанных на Visual Basic и Visual C ++ можно найти по ссылке: www.cxem.net

1.4. Дальнейшая работа

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

2. Фазовый лазерный дальномер

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

2.1. Выбор метода измерений

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

Существует несколько методов измерения дальности:

1. Метод триангуляции.

2. Частотный.

3. Импульсный метод.

4. Фазовый метод.

Разрабатываемый лазерный дальномер предлагается выполнить но основе фазового метода. Фазовый метод измерения расстояний основан на определении разности фаз посылаемых и принимаемых модулированных сигналов.

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

2.2. Создание макетного образца

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

В качестве излучателя при разработке макетного образца использован стандартный модуль красного лазерного светодиода (см. рис. 2.1) мощностью 5 мВт длиной волны 650 нм.

Рисунок 2.1 – Модуль лазерного светодиода

Для регистрации отраженного лазерного излучения в качестве фотоприемника использован pin-фотодиод bpw24r (см. рис. 2.2). К преимуществам данного фотодиода следует отнести высокую чувствительность в красной области видимого спектра, узкую диаграмму направленности и малую емкость р-п-перехода (5 пФ). Максимальная рабочая частота 35 МГц.

Рисунок 2.2 – PIN-фотодиод bpw24r

Для генерации рабочего и опорного сигналов использован модуль DDS генератора сигналов на базе микросхемы AD9850 (см. рис. 2.3). Рабочий диапазон генерируемых синусоидальных колебаний лежит в пределах от 1 Гц до 40 МГц, шаг перестройки 1 Гц, относительная нестабильность частоты 10 -5 .

Рисунок 2.3 – Модуль AD9850 DDS генератора сигналов

В качестве микропроцессорного модуля управления использована стандартная плата Arduino Uno (см. рис. 2.4) на базе современного микро-контроллера ATmega328 c тактовой частотой 16 МГц.

Рисунок 2.4 – Микропроцессорный модуль Arduino Uno

На рисунке 2.5 приведена схема модулятора лазерного излучения. Гармоничный сигнал частотой 10 МГц и амплитудой 0,5 В с выхода DDS генератора поступает на электронный усилитель с коэффициентом усиления по напряжению K U  = 3, построен на базе операционного усилителя DA1 AD8042. С помощью подстроечного резистора R1 обеспечивается выбор оптимального положения рабочей точки по постоянному току.

Рисунок 2.5 – Функциональная схема модулятора лазерного излучения

На рисунке 2.6 представлена схема отраженного лазерного сигнала, состоящий из фотоусилителя на DA1, смесителя и двухкаскадного избирательного усилителя на DA2 и DA3. Фотопидсилювч превращает измерительный оптический сигнал в электрический. На выходе смесителя формируется низкочастотный разностный сигнал с частотой 1 кГц, который после фильтрации двухзвенный фильтром нижних частот (R3, R4, C4, C5) поступает на избирательный усилитель с коэффициентом усиления около 10000.

Модулятор лазерного излучения и измерительного канала отражен-ного сигнала собраны на отдельных беспаечних монтажных платах (см. рис. 2.7 и 2.8). Программное обеспечение модуля разработано в среде Arduino 1.0.5. Для управления DDS генератором использована стандартная библиотека AH_AD9850.h .


Рисунок 2.6 – Функциональная схема измерительного канала отраженного лазерного излучения

В результате испытаний макетного образца получили:

– Уровень шумов на выходе избирательного усилителя составляет 5 мВ;

– Уровень полезного сигнала на выходе избирательного усилителя при расстоянии до объекта 2 м составляет 200 мВ;

– Самовозбуждение усилителя отсутствует;

– Внешняя засветка фотодиода на результаты измерений не влияет.


Рисунок 2.7 – Макетная плата модулятора


Рисунок 2.8 – Макетная плата измерительного канала отраженного сигнала

3. Заключение

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

Список источников

  1. Лазерный дальномер из web камеры. – [Электронный ресурс] – Режим доступа: www.cxem.net – Дата доступа: апрель 2014 года. – Загл. с экрана.
  2. Денисюк Р.Э., Кузнецов Д.Н. Лазерный дальномер для систем машинного зрения роботов/Cборник тезисов докладов Второго регионального научно-практического семинара Теоретические и практические аспекты приборостроения, 18 апреля 2013, Луганск, кафедра Приборы, ВНУ им. В.Даля. – c. 20–21.

На сегодняшний день в робототехнике не так уж и много методов навигации внутри помещений. Определение положения робота в пространстве с использованием лазерного сканера - один из них. Важное достоинство этого метода - он не требует установки в помещении каких-либо маяков. В отличие от систем, использующих распознавание изображения с камер, обработка данных с дальномера не так ресурсоемка. Но есть и недостаток - сложность, и соответственно, цена дальномера.
Традиционно в робототехнике используются лазерные сканеры, использующие фазовый или времяпролетный принцип для измерения расстояния до объектов. Реализация этих принципов требует довольно сложной схемотехники и дорогих деталей, хотя и характеристики при этом получаются приличные - используя эти принципы, можно добиться высокой скорости сканирования и большой дальности измерения расстояния.
Но для домашних экспериментов в робототехнике такие сканеры мало подходят - цена на них начинаются от 1000$.
На помощь приходят дальномеры, использующие триангуляционный принцип измерения расстояния. Дальномер такого типа впервые появился в роботах-пылесосах Neato:

Довольно быстро любители расшифровали протокол этого дальномера, и начали использовать его в своих проектах. Сами дальномеры в качестве запчастей появились на ebay в небольших количествах по цене около 100$. Через несколько лет китайская компания смогла выпустить сканирующий дальномер RPLIDAR, который поставлялся как полноценный прибор, а не запчасть. Только цена этих дальномеров оказалась достаточно высокой - 400$.

Самодельный дальномер

Как только я узнал о дальномерах Neato, мне захотелось собрать самому аналогичный. В конце концов, мне это удалось, и процесс сборки я описал на Робофоруме .
Первая версия дальномера:


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

Устройство сканирующего триангуляционного лазерного дальномера

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




Таким образом, ключевые оптические компоненты такого дальномера - лазер, объектив и фотоприемная линейка.
Так как дальномер сканирующий, то все эти детали, а так же управляющая электроника устанавливаются на вращающейся головке.
Тут может возникнуть вопрос - зачем нужно вращать оптику и электронику, ведь можно установить вращающееся зеркало? Проблема в том, что точность дальномера зависит от расстояния между объективом и лазером (базового расстояния), так что оно должно быть достаточно большим. Соответственно, для кругового сканирования понадобится зеркало диаметром, большим базового расстояния. Дальномер с таким зеркалом получается достаточно громоздким.
Сканирующая головка дальномера при помощи подшипника закрепляется на неподвижном основании. На нем же закрепляется двигатель, вращающий головку. Также в состав дальномера должен входить энкодер, предназначенный для получения информации о положении головки.
Как видно, дальномеры Neato, RPLIDAR и мои самодельные сделаны именно по этой схеме.


Самое сложное в самодельном дальномере - изготовление механической части. Именно ее работа вызывала у меня больше всего нареканий в ранних версиях дальномера. Сложность заключается в изготовлении сканирующей головки, которая должна быть прочно закреплена на подшипнике, вращаться без биений и при этом не нее нужно каким-то образом передавать электрические сигналы.
Во второй версии дальномера первые две проблемы я решил, использовав части старого HDD - сам диск использовался как основание сканирующей головки, а двигатель, на котором он закреплен, уже содержал качественные подшипники. В то же время, при этом возникла третья проблема - электрические линии можно было провести только через небольшое отверстие в оси двигателя. Мне удалось сделать самодельный щеточный узел на 3 линии, закрепленный в этом отверстии, но получившаяся конструкция получилась шумной и ненадежной. При этом возникла еще одна проблема - линии, чтобы пробросить сигнал энкодера, не было, и датчик энкодера в такой конструкции должен быть установлен на головке, а диск энкодера с метками - на неподвижном основании. Диск энкодера получился не жестким, и это часто вызывало проблемы.
Фотография второй версии дальномера:




Еще один недостаток получившегося дальномера - низкая скорость сканирования и сильное падение точности на расстояниях больше 3м.
Именно эти недостатки я решил устранить в третьей версии дальномера.

Электроника

В принципе, электронная часть триангуляционного дальномера достаточно проста и содержит всего два ключевых компонента -светочувствительную линейку и микроконтроллер. Если с выбором контроллера проблем нет, то с линейкой все значительно сложнее. Светочувствительная линейка, используемая в подобном дальномере, должна одновременно иметь достаточно высокую световую чувствительность, позволять считывать сигнал с высокой скоростью и иметь маленькие габариты. Различные CCD линейки, применяемые в бытовых сканерах, обычно довольно длинные. Линейки, используемые в сканерах штрихкодов - тоже не самые короткие и быстрые.
В первой и второй версии дальномера я использовал линейки TSL1401 и ее аналог iC-LF1401. Эти линейки хорошо подходят по размеру, они дешевые, но содержат всего 128 пикселей. Для точного измерения расстояния до 3 метров этого мало, и спасает только возможность субпискельного анализа изображения.
В третьей версии дальномера я решил использовать линейку ELIS-1024:




Однако купить ее оказалось непросто. У основных поставщиков электроники этих линеек просто нет.
Первая линейка, которую я смог купить на Taobao, оказалась нерабочей. Второю я купил на Aliexpress (за 18$), она оказалась рабочей. Обе линейки выглядели паянными - обе имели облуженные контакты и, судя по маркировке, были изготовлены в 2007 году. Причем даже на фотографиях у большинства китайских продавцов линейки именно такие. Похоже, что действительно новую линейку ELIS-1024 можно купить только напрямую у производителя.
Светочувствительная линейка ELIS-1024, как следует из названия, содержит 1024 пикселя. Она имеет аналоговый выход, и достаточно просто управляется.
Еще более хорошими характеристиками обладает линейка DLIS-2K. При сходных размерах, она содержит 2048 пикселей и имеет цифровой выход. Насколько мне известно, именно она используется в дальномере Neato, и возможно, в RPLIDAR. Однако, найти ее в свободной продаже очень сложно, даже в китайских магазинах она появляется не часто и дорого стоит - более 50$.


Так как я решил использовать линейку с аналоговым выходом сигнала, то микроконтроллер дальномера должен содержать достаточно быстрый АЦП. Поэтому я решил использовать серию контроллеров - STM32F303, которые, при относительно небольшой стоимости, имеют несколько быстрых АЦП, способных работать одновременно.
В результате у меня получилась такая схема:


Сигнал с линейки (вывод 10) имеет достаточно высокий уровень постоянной составляющей, и ее приходится отфильтровывать при помощи разделительного конденсатора.
Далее сигнал нужно усилить - для этого используется операционный усилитель AD8061. Далеко расположенные объекты дают достаточно слабый сигнал, так что пришлось установить коэффициент усиления равным 100.
Как оказалось в результате экспериментов, даже при отсутствии сигнала, на выходе выбранного ОУ по какой-то причине постоянно присутствует напряжение около 1.5В, что мешает обработке результатов и ухудшает точность измерения амплитуды сигнала. Для того, чтобы избавится от этого смещения, мне пришлось подать дополнительное напряжение на инвертирующий вход ОУ.


Плату разводил двухстороннюю, сделать такую плату в домашних условиях качественно довольно сложно, так что заказал изготовление плат в Китае (пришлось заказать сразу 10 штук):




В этом дальномере я использовал дешевый объектив с резьбой M12, имеющий фокусное расстояние 16мм. Объектив закреплен на печатной плате при помощи готового держателя объектива (такие используются в различных камерах).
Лазер в данном дальномере - инфракрасный (780 нм) лазерный модуль, мощностью 3.5 мВт.
Изначально я предполагал, что излучение лазера нужно будет модулировать, но позже оказалось, что с используемой линейкой в этом нет смысла, и поэтому сейчас лазер включен постоянно.
Для проверки работоспособности электроники была собрана вот такая конструкция, имитирующая сканирующую головку дальномера:




Уже в таком виде можно было проверить, какую точность измерения расстояния позволяет обеспечить дальномер.
Для анализа сигнала, формируемого линейкой, были написаны тестовые программы для микроконтроллера и ПК.
Пример вида сигнала с линейки (объект на расстоянии 3 м).




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

Механическая часть

После того, как электроника была отлажена, настало время изготовить механическую часть.
В этот раз я не стал связываться с механикой из HDD, и решил изготовить механические детали из жидкого пластика, заливаемого в силиконовую форму. Эта технология подробно описана в Интернете, в том числе и на Гиктаймс .
Уже после того, как я изготовил детали, стало понятно, что изготовить детали на 3D принтере было бы проще, они могли выйти тверже, и возможно, можно было бы сделать одну деталь вместо двух. Доступа к 3D принтеру у меня нет, так что пришлось бы заказывать изготовление детали в какой-либо компании.
Фото одной из деталей сканирующей головки дальномера:



Эта деталь является основой головки. Она состоит из втулки, на которую позже надевается подшипник, и диска. Диск предназначен для крепления второй детали башни, кроме того, на него снизу наклеивается диск энкодера.
Втулка и диск содержат сквозное отверстие, в которое вставляется покупной щеточный узел на 6 линий - его видно на фотографии. Именно те провода, что видны на фотографии, могут вращаться относительно корпуса этого узла. Для повышения стабильности работы для передачи сигналов GND и UART TX используется 2 пары линий щеток. Оставшиеся 2 линии используются для передачи напряжения питания и сигнала энкодера.


Силиконовая форма для отливки этой детали:



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


Для крепления сканирующей головки к основанию дальномера используется шариковый подшипник. Я использовал дешевый китайский подшипник 6806ZZ. Честно говоря, качество подшипника мне не понравилось - ось его внутренней втулки могла отклонятся относительно оси внешней на небольшой угол, из-за чего головка дальномера тоже немного наклоняется. Крепление подшипника к детали с диском и основанию будет показано ниже.


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

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


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




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


Вот так выглядит собранный дальномер:


Вид сверху:


Разъем сзади дальномера используется для прошивки микроконтроллера.
Для балансировки сканирующей головки на нее спереди устанавливается крупная гайка - она практически полностью устраняет вибрацию при вращении головки.


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


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

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


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


Эволюция самодельных дальномеров:




Габаритные размеры получившегося дальномера:
Размер основания: 88x110 мм.
Общая высота дальномера: 65 мм (может быть уменьшена до 55 при уменьшении высоты стоек).
Диаметр сканирующей головки: 80 мм (как у mini-CD диска).


Как и у любого другого триангуляционного дальномера, точность измерения расстояния этого дальномера резко падает с ростом расстояния.
При измерениях расстояния до объекта с коэффициентом отражения около 0.7 у меня получились примерно такие точностные характеристики:


Расстояние Разброс
1 м <1 см
2 м 2 см
5 м 7 см

Стоимость изготовления дальномера:


DIY, $ Опт., $
Основание
Пластина основания 1,00 0,50
Двигатель 0,00 1,00
Подшипник 1,50 1,00
Щеточный узел 7,50 5,00
Крепежные детали 0,00 2,00
Сканирующая головка
Контроллер STM32F303CBT6 5,00 4,00
Фотоприемная линейка 18,00 12,00
Остальная электроника 4,00 3,00
Плата 1,50 0,50
Объектив 2,00 1,50
Держатель объектива 1,00 0,50
Лазер 1,00 0,80
Пластиковые детали 3,00 2,00
Крепежные детали 0,00 1,00
Сборка 0,00 20,00
Итого: 45,50 54,80

В первой колонке - во сколько дальномер обошелся мне, во второй - сколько он мог бы стоить при промышленном изготовлении (оценка очень приблизительная).

Программная часть дальномера

Перед написанием программы нужно рассчитать тактовую частоту, на которой будет работать фотоприемная линейка.
В старых версиях дальномера частота сканирования была ограничена 3 Гц, в новом дальномере я решил сделать ее выше - 6Гц (это учитывалось при выборе линейки). Дальномер делает 360 измерений на один оборот, так что при указанной скорости он должен быть способен производить 2160 измерений в секунду, то есть одно измерение должно занимать менее 460 мкс. Каждое измерение состоит из двух этапов - экспозиция (накопление света линейкой) и считывание данных с линейки. Чем быстрее будет произведено считывание сигнала, тем длиннее может быть время экспозиции, а значит, и тем больше будет амплитуда сигнала. При тактовой частоте линейки 8 МГц время считывания 1024 пикселей будет составлять 128 мкс, при 6 МГц - 170 мкс.


При тактовой частоте микроконтроллера серии STM32F303 в 72 МГц максимальная частота выборок АЦП - 6 MSPS (при разрядности преобразования 10 бит). Так как я хотел проверить работу дальномера при тактовой частоте линейки 8 МГц, я решил использовать режим работы АЦП, в котором два АЦП работают одновременно (Dual ADC mode - Interleaved mode). В этом режиме по сигналу от внешнего источника начала запускается ADC1, а затем, через настраиваемое время, ADC2:




Как видно из диаграммы, суммарная частота выборок АЦП в два раза выше, чем частота триггера (в данном случае это сигнал от таймера TIM1).
При этом TIM1 также должен формировать сигнал тактовой частоты для фотоприемной линейки, синхронный с выборками АЦП.
Чтобы получить с одного таймера два сигнала с частотами, различающимися в два раза, можно переключить один из каналов таймера в режим TIM_OCMode_Toggle, а второй канал должен формировать обычный ШИМ сигнал.


Структурная схема программы дальномера:


Ключевой частью программы является именно захват данных с линейки и управление ей. Как видно из схемы, этот процесс идет на аппаратном уровне, за счет совместной работы TIM1, ADC1/2 и DMA. Для того, чтобы время экспозиции линейки было постоянным, используется таймер TIM17, работающий в режиме Single Pulse.


Таймер TIM3 генерирует прерывания при срабатывании компаратора, соединенного с энкодером. За счет этого рассчитывается период вращения сканирующей головки дальномера и ее положение. По полученному периоду вращения рассчитывается период таймера TIM16 таким образом, чтобы он формировал прерывания при повороте головки на 1 градус. Именно эти прерывания служат для запуска экспозиции линейки.


После того, как DMA передаст все 1024 значения, захваченные ADC, в память контроллера, программа начинает анализ эти данных: сначала производится поиск положения максимума сигнала с точностью до пикселя, затем, при помощи алгоритма поиска центра тяжести - с более высокой точностью (0.1 пикселя). Полученное значение сохраняется в массив результатов. После того, как сканирующая головка сделает полный оборот, в момент прохождения нуля этот массив предаются в модуль UART при помощи еще одного канала DMA.

Использование дальномера

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

Однако дальномер делался не для того, чтобы просто лежать на столе - он был установлен на старый пылесос Roomba 400 вместо дальномера второй версии:


Также на роботе установлен компьютер Orange Pi PC, предназначенный для управления роботом и связи с ним.
Как оказалось, из-за большой просадки напряжения на линейном источнике питания двигателя дальномера, для работы на скорости 6 об/сек дальномеру требуется питающее напряжение 6В. Поэтому Orange Pi и дальномер питаются от отдельных DC-DC преобразователей.


Для управления роботом и анализа данных от дальномера я использую ROS .
Данные от дальномера обрабатываются специальным ROS-драйвером (основанном на драйвере дальномера Neato), который получает по UART данные от дальномера, пересчитывает их в расстояния до объектов (используя данные калибровки) и публикует их в стандартном формате ROS.
Вот так выглядит полученная информация в rviz (программа для визуализации данных ROS), робот установлен на полу:


Длина стороны клетки - 1 метр.


После того, как данные попали в ROS, их можно обрабатывать, используя уже готовые пакеты программ. Для того, чтобы построить карту квартиры, я использовал hector_slam . Для справки: SLAM - метод одновременного построения карты местности и определения положения робота на ней.
Пример получившейся карты квартиры (форма несколько необычна, потому что дальномер "видит" мебель, а не стены, и не все комнаты показаны):


ROS позволяет объединять несколько программ ("узлов" в терминологии ROS), работающих на разных компьютерах, в единую систему. Благодаря этому, на Orange Pi можно запускать только ROS-драйверы Roomba и дальномера, а анализ данных и управление роботом вести с другого компьютера. При этом эксперименты показали, что hector_slam нормально работает и на Orange Pi, приемлемо загружая процессор, так что вполне реально организовать полностью автономную работу робота.


Система SLAM благодаря данным от дальномера позволяет роботу определять свое положение в пространстве. Используя данные о положении робота и построенную карту, можно организовать навигационную систему, позволяющую "направить" робота в указанную точку на карте. ROS содержит в себе пакет программ для решения этой задачи, но, к сожалению, я так и не смог заставить его качественно работать.


Видео работы дальномера:


Добавить метки

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

К группе приборов, которые измеряют расстояние при помощи электроники, относятся: лазерный дальномер, ультразвуковой дальномер.

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

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

Основные причины для монтажа лазерного дальномера

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

  • лазерный дальномер;
  • ультразвуковой дальномер.

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

Лазерный дальномер, сделанный своими руками, состоит из нескольких частей:

  • плата;
  • микроконтроллер;
  • усилитель лазерного сигнала;
  • лазер;
  • фотоприемник;
  • фильтр.

В основном излучение лазера возникает при помощи синусоидального сигнала.

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

Вернуться к оглавлению

Чтобы изготовить дальномер своими руками можно за основу взять схему лазерной связи. В данном случае передача данных происходит очень быстро, скорость равна 10 Мбит. Такая величина соответствует имеющейся частоте модуляции.

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

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

В качестве лазера выступает привод, установленный в DVD-приставках. Такое устройство имеет вполне достаточную мощность для функционирования на частоте, достигающей 10 МГц.

В состав приемника входит:

  • фотодиод;
  • усилитель.

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

Когда увеличивается частота, начинают уменьшаться сигналы фотодиода. Усилитель подобной конструкции является главной и сильно уязвимой частью. Его настройка требует очень высокой точности. Желательно отрегулировать коэффициент усиления таким образом, чтобы получать максимальные значения. Самым простым способом будет подача на транзистор 3 В. Можно установить обыкновенную батарейку.

Чтобы приемник начал работать, необходимо подать 12 В. Для этого устанавливается специальный блок питания.

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

Описанная выше система позволит создать самодельный лазерный дальномер в бытовых условиях.


Олег Н 16-04-2007 15:18

В общем бютжетные способы измерения расстояний. Делимся, обсуждаем, предлагаем.

quote: Механический дальномер.
Как самому сделать прибор дальномер, который позволяет сравнительно точно определять расстояния до предметов, удаленных от наблюдателя почти на 100 м. Минимальное расстояние, которое способен определить прибор, составляет 70 см.
Основанием 1 дальномера служит металлическая пластина толщиной 1,5 мм и размерами 8О х 130 мм. У одного длинного края пластины прикрепляют подвижную металлическую планку 2 шириной 18 мм, у которой отогнуты края высотой 13 мм. В одном таком крае сверят отверстие диаметром 2 мм, а в другом пропиливают паз такой же ширины. У другого длинного края пластины крепят два уголка. В первом уголке (3) сверлят отверстие диаметром 2 мм, а во втором (5) пропиливают паз шириной 2 мм. Расстояние между отверстиями уголка и подвижной планки должно быть 65 мм - оно соответствует примерному расстоянию между центрами зрачков глаз большинства школьников.
Винт крепления подвижной планки затягивают настолько, чтобы планка могла свободно поворачиваться вокруг него. При этом будет изменяться угол между прямыми линиями, проведенными через центры отверстий и прорезей подвижной пластины и уголков, а значит, будет изменяться и угол наблюдения. Чем больше этот угол, тем дальше предмет от наблюдателя. Остается измерить угол и по нему определить расстояние до предмета. Но мы не будем заниматься какими-либо расчетами, а сделаем такое устройство отсчета, которое позволит сразу определить величину расстояния.
Устройство отсчета представляет собой ручку 4, выпиленную из алюминия, дюраля или другого металла толщиной 1,5 мм. Обод ручки имеет поверхность с переменным радиусом кривизны относительно осевого, что позволяет при повороте ручки плавно перемещать подвижную планку. Ручку укрепляют на таком расстоянии от планки, чтобы в положении максимального отклонения планки линии, проведенные через центры отверстий и прорезей планки и уголков, были параллельны Тогда другое крайнее положение ручки будет соответствовать минимально возможному измеряемому расстоянию
Подвижная планка прижимается к ручке отсчета устройством, состоящим из ограничительной пластины 6 и пружины 7, Под один ил винтов крепления пластины зажимается конец пружины, другой конец которой вставляется в отверстие отгиба планки.
Если теперь взять дальномер в руки, через отверстии и прорези можно наблюдать различные предметы. Вращая ручку отсчета, добейтесь, чтобы предмет был виден одновременно обоими глазами (для контроля нужно попеременно зажмуривать глаза). Это положение будет соответствовать определенному углу зрения, а значит, и определенному расстоянию до предмета. Величину расстояния отсчитывают по шкале напротив плоскости боковой грани ручки. Естественно, шкалу придется отградуировать самостоятельно, устанавливая предмет на заранее измеренные расстояния от места наблюдения. Сделать это несложно, и, надеемся, вы справитесь с таким заданием.

Ещё где-то предлагали использовать ЛЦУ в спарке с оптикой.

Ну всё, щас хомяками закидают

Hobott 16-04-2007 16:50

Расстояние между отверстиями уголка и подвижной планки должно быть 65 мм - оно соответствует примерному расстоянию между центрами зрачков глаз большинства школьников.

Это все хорошо, только придется везде носить с собой школьнега? Теряется такое немаловажное преимущество прибора как компактность... А вообще-боян. Накопи на Никон. Я смог и всем советую.

Hobott 16-04-2007 19:46

Ууу, брат, это жулики... (с) ЖЖдальномеры, в принципе, дальномеры... Народ тут пользует... плюется,правда... Но всяко лучше чем твой вариант со школьнегом. Бери. Но, помни! (с)- из штатов никон за 220$ с пересылкой

Олег Н 16-04-2007 20:06

Значит JJ - "дальномер" в кавычках, также как и "прицел" Tasco? Буду копить на Никон.

ober 16-04-2007 20:57

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

Nytrator 17-04-2007 12:52

1, и ничего что там внутри антишоковая система на скотче, зато починить всегда можно в полевых устовиях

ПММ 17-04-2007 22:32

Мне тоже подарили JJ дальномер,пашет пока,проверял рулетой растояние на 55 м.Ошибка + - 1м.Максимум замерил в солн. погоду 734м

Alexandr Sh. 777 04-05-2007 03:54

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

Eskoff 30-05-2007 16:43

При такой базе реальная дальность измерения до 10 (может 15 м). Раньше на фотоаппаратах стояли аналогичные дальномеры, иногда продавались отдельно. Только там два зеркальца, одно полупрозрачное. Ну и замерялся наклон оптических осей. По такой схеме можно сделать дальномер с приличной точностью для дальности метров 100, но базу надо увеличивать до 500-600 мм.

svadim 31-05-2007 12:35

quote: Значит JJ - "дальномер" в кавычках, также как и "прицел" Tasco? Буду копить на Никон.

Незнаю я его пока пользую, всё ОК. Может раз на раз не приходится?1


Top