roboforum.ru

Технический форум по робототехнике.

Лазерный дальномер на МК

Лазерный дальномер на МК

alad » 18 май 2006, 14:15

Здравствуйте.

Очень понравился лазерный дальномер, разработанный для проекта Diana
http://club.roboclub.ru/pmwiki.php?n=Diana.Intro на робоклубе... Еще
обсуждение на Железном Феликсе было... И все бы хорошо, но там "большой" комп...
Вот и сел я анализировать возможность реализации такой штуки на МК.

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

Я тут почитал... подумал... Первая задача решаема.
Вероятнее всего, веб-камера (любая) состоит из двух основных частей - матрица
с контролером, который её обслуживает, и интерфейсная микруха, отвечающая за передачу
данных на компьютер по usb, например. Если выдрать матрицу вместе с контроллером,
то получим следующий интерфейс:
- данные 8 пин.
- питание 2 пина
- синхро и команды 2 пина
Дальше нужно искать мануал (где?), брать кривые_руки.sys и МК... и RTFM! :)
Скорее всего нужно будет подавать синхроимпульсы, и по спаду импульса линии комадн
на линиях данных получим байт яркости пиксела (для ч.б камеры).. На МК это не сложно.

Теперь про обработку.
Для камеры 320х240 имеем 76800 байт.. Для МК мого, но не смертельно. Но мы рассмотрим
смертельный случай: 640х480=307200 :( МНОГО! НЕРЕАЛЬНО! Или...?

Автор дальномера упоминал где-то, что для упрощения процесса фильтрации помех и
роста быстродействия он жестко устонавливал камеру и лазер в одной плоскости и
анализировал ТОЛЬКО одну среднюю строку. Это 640 байт - копейки!!! Но мы опять же
усложним задачу и для верности проанализируем 3 средние строки пиксклов:
640х3=1920 байт. Это приемлемо, но можно уменьшить. Делаем так: считываем с линий данных
байт пиксела, ксорим черыре нижних бита и кладем его в память. Потом берем второй байт,
сдвигаем вправо на 4 бита и кладем в ячейку памяти к первому... и т.д.
Получаем (в зависимости от протокола управления чипом матрицы) до 10 (макс) тактов на байт
данных и по одному байту хранения на два байта данных. Плюс, уже проведена предворительная
фильтрация помех отрезанием инф. по слабым шумам в нижних четырех битах.
Итого: 960 байт и 19200 тактов.

С алгоритмом дальнейшей фильтрации я не определился (не силен), но в лоб получается не больше
чем по 30 тактов на байт хранения при использовании побитовых операций, т.е. около 28800 тактов
Плюс тактов (макс) 100 на вычисление дальности.
Всего имеем не более 50000 тактов. Для МК 5МГц получается 50 мс... :)

Честно говоря, мне кажется что обработка реальна... Более того, она не в МК будет упираться,
а в быстродействие матрицы и её контролеера... Там ведь для компьютера около 20-25 fps,
значит матрица один кадр отдает за 40 мс...

В виду всего вышеизложенного, имеет ли смысл попробовать реализовать микропроцессорный
лазерный дальномер, рассчитснный на ~1 измерения в секунду? Какие мысли у кого?

-= Александр =- » 18 май 2006, 18:37

Смещение идет только по горизонтали. Значит в Боьбруйск все эти матрицы, можно взять вектор. (Из сканера какого-нить выдрать) - просто и сердито.  :wink:

alad » 18 май 2006, 20:08

Вектор? Ага... никогда о них ничего не слышал... :(  
А какие у них размеры? По идее - это длииинная тонкая дрянь, так?
На маааленького робота влезет? Там же еще нужно разнести лазер и сенсор на мин. 10 см.... И можно ли на него изображение сфокусировать?... или "оно" само умеет?

-= Александр =- » 18 май 2006, 23:02

Это та-же матрица, тока все пиксели в ряд. Размеры те-же. Работать с ним будет намного проще, но и достать на порядок сложнее. Видел готовые модули вектор в корпусе с линзой - как запчасть а сканеру или копиру, в общем то что надо. Еще надо где-нить достать описание его работы, с этим тоже не просто...  :roll:

alad » 19 май 2006, 00:03

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

Саша, а у того, который ты видел, какой угол обзора оптика могла дать? На вскидку?

-= Александр =- » 19 май 2006, 01:41

Большой... Градусов 120. Она была довольно близко к стеклу и видела всю ширину листа...

M@xSoft » 19 май 2006, 09:01

Пример работы с матрицей от сканера относительно недавно был на http://www.avrfreaks.net/. Точную ссылку не помню.

alad » 19 май 2006, 15:24

Вообщем, день не прожит зря :)
Удалось покопаться внутри старого сказевого мастековского сканера и покрутить в руках евойный сенсор...

Есть ощущуние, что не пройдет такая штука под лазерный дальномер  :cry:

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

Хотя сама мысль о векторе была очень здравая. И заманчивая.

2 M@xSoft: хороший сайтик, спасибо. Много интересного почитал.
И нашел ссылочку http://www.jrobot.net/  - неплохо описано подключение CDD сенсора к атмеге... с Открытым софтом и схемами.

Буду читать.

alad » 19 май 2006, 15:49

Подробное тех. описание камеры OV6620, которую они использовали:

http://www.premier-electric.com/files/O ... 0_6620.pdf

Статья о матрицах OmniVision Technologies http://www.rib.by/stats/N5/PremElec.htm

alad » 19 май 2006, 17:29

Поздравьте меня!

Только что купил на комке раритетную и идеальную для использования с МК веб-камеру:

Камера Connectix. Изображение размера до СIF (352*300)
Подключается к LPT и PS/2 клавиатуре для питания. В комплекте софт для видеофона. Системные требования типа P-100.

Обошлась в 150р. :)

Для дальномера самое то :) :)
Вложения
6c5160e04faf96a59b7619af0001c19c.jpg

-= Александр =- » 20 май 2006, 03:02

Хм... А ЛПТ - это ж самое оно! =)
Можно читать не всю матрицу, а только нужную строку! Обработка в разы упростится!

Я себе это дело так представляю: вырубили лазер, причтиали строку в А, врубили, прочитали в В. А-В - и вот наша точка.  :roll:

alad » 20 май 2006, 15:03

Да. :) Имеено по такому принципу все еще проще. (лез на форум, чтобы запостить, но ты меня опередил!  :lol:  )

Вообщем, буду реализовывать.

Вопрос: А какие еще задачки можно попробовать реализовать? Чтобы не слишком ресурсоемкие... не распознавание образов!  :P   А? ....на вскидку, приходит на ум поиск источников света.

-= Александр =- » 20 май 2006, 15:16

Хм... Штрихкоды например читать, если лазер-полосу поставить (в  Чипе-Дипе есть лазер дающий полосу или крест) Кстати советую добыть красное стекло - поможет точку распознавать.

alad » 20 май 2006, 15:32

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

Только зачем роботу штрих-коды... не по квартире же их развешивать...  :shock: Хотя...!!!! Может на тапочки налепить? Пусть находит и тащит

-= Александр =- » 20 май 2006, 15:43

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


Rambler\'s Top100 Mail.ru counter