http://forum.getchip.net/

TSOP как датчик расстояния. Плохой результат- тоже результат
http://forum.getchip.net/viewtopic.php?f=17&t=511
Страница 1 из 4

Автор:  UnKaiF [ 08 сен 2014, 22:53 ]
Заголовок сообщения:  TSOP как датчик расстояния. Плохой результат- тоже результат

Смеху ради решил выложить результаты своей попытки превратить TSOP в датчик-измеритель расстояния. (Измерение, естественно, в сФкв. - Сфероконь в вакууме). Такие попытки периодически проскакивают в интернете.
Как ?
В самом TSOP ничего не покрутишь и не подстроишь. Остается только как-то модулировать сигнал ИК передатчика. Погуглив и немного подумав, изначально представлял себе несколько способов:
1. ШИМ несушей частоты 36 кГц.
2. Плавный уход в сторону от центральной частоты. (См. характеристику чувствительности TSOP от частоты).
3. Управление током диодов с помощью простого ЦАП. (Встречал в интернете несколько конструкций на таком принципе).
4. Спадающий ток ИК диодов, формируемый с помощью RC-цепочки.

По первому способу: (прочитал в блоге :) ) - TSOP'у пофиг ширина импульса.
По второму: на имеющемся у меня микроконтроллере "плавно" не получится. Всё, что можно - это 6 частот от центральной, до частоты, чувствительность на которой TSOP'а падает до 20% от максимума. (В принципе, - перспективный способ. Это с учетом того, что у меня получилось См далее :) )
Третий способ считаю излишним усложнением, да и по потребному количеству выводов контроллера - не фонтан.

Я решил использовать четвертый вариант, ввиду простоты схемы и нетребовательности к контроллеру. И так: формируем пачку из 255 периодов несущей частоты, одновременно замеряя длительность ответа TSOP'а. Чем длиннее импульс, - тем ближе преграда. Результат измерения отправляем по UART. Повторяем это дело 8 раз в секунду.
Схема выходного каскада:
Изображение
Кстати, АРУ у TSOP'а - жестокое, так что чаще повторять такие длинные пачки не стоит.
Форма тока чрез диоды (пачка):
Изображение
Ну и, наконец, то что получилось.
Преграда сначала на среднем расстоянии (около 4 м), затем далекая преграда (6,7 м) и преграда в упор (<1 м):
Изображение
Я медленно подхожу издалека и возвращаюсь обратно:
Изображение
Зеленые точки на графиках - данные измерений, а желтые - результат усреднения по 8 последним. Как видим, данные ну ООЧЕНЬ ШУМНЫЕ ! Ни о какой точности здесь говорить не приходится. Теперь шесть уровней по способу 2 кажутся вполне приемлемым вариантом.
Ну и напоследок сам девайс:
Изображение
Изображение

Автор:  GetChiper [ 09 сен 2014, 22:44 ]
Заголовок сообщения:  Re: TSOP как датчик расстояния. Плохой результат- тоже резул

Очень интересный эксперимент! И я бы не сказал, что результат плохой. Наоборот результат радует!
Уже даже сейчас точность может конкурировать у УЗ дальномером.
Давно хотел засесть за подобные опыты, но Вы меня опередили - теперь можно испытать свои идеи на чужом железе :)

Не хотите продолжить эксперименты (раз уж железо есть)?

Есть несколько предложений по улучшению исходя их личного опыта:
1 TSOP в трубке? По рисунку вроде да. Это хорошо! Еще нужно поставить на входе красный светофильтр (желательно прямо утопить в трубку. Это уменьшает внешние засветки, соответственно АРУ TSOP будет меньше "скакать" - что уменьшит разброс замеров.
2 Мне кажется 255 импульсов излишне длинная пачка. Частые длинные пачки "садят" АРУ, что опят сказывается на точности. Думаю нужно попробовать 128, а то и 64 импульса на пачку (в общем то разрешающую способность замера можно пожертвовать ради точности)
3 Количество пачек за секунду можно оставить таким как есть, а можно попробовать уменьшить до 4 - нужно попробовать.
4 Если длина пачки уменьшилась - нужно будет уменьшить R1, чтобы за цикл разрядить конденсатор.
5 Для выходных результатов лучше брать не реальное значение замера а интегрированное значение. Например вот так
значение_для_выдачи = (предыдущее_выданное_значение / 2) + текущее_измеренное_значение
это создаст некоторую инерционность, но зато уберет "шум" из замеров.

Пока все что пришло в голову - жду новых результатов!

Автор:  UnKaiF [ 09 сен 2014, 23:47 ]
Заголовок сообщения:  Re: TSOP как датчик расстояния. Плохой результат- тоже резул

Рад, что вам понравилось :-)
1.
Да. Он в тубусе диаметром 4 мм. и глубиной 20 мм. Светофильтр попробую, но не заметил особой разницы при направлении на освещенную солнцем поверхность с той же поверхностью в сумерках. Может на предельном расстоянии ?
2.
Опять таки попробую. Мне думается он (TSOP) просто не может "сдетектировать" надежно на интервале короче минимальной детектируемой пачки (по докам 8-10 периодов для этого типа). Т.е. изначально можно было надеятся получить 255/(8 или 10) стабильных уровней. Извините, если непонятно - сам не могу сообразить как это выразить. По моей логике нужно для получения 8 бит разрешающей способности наоборот увеличивать пачку до 255*(8 или 10) периодов. Тут уже проблемы с АРУ начнутся. Вообще, мне думается, что начинка современных приемников от Vishay слишком уж "интеллектуальна". Надо будет наш "дедушкин" ILMS5360 попробовать.
3. Изначально у меня было 5 раз/сек. Пробовал уменьшать до 2-х. На разброс не повлияло, зато усреднение гораздо медленнее ворочается.
4.
Само собой ;)
5.
У меня на графиках зеленым - сырые данные. Желтые точки соединенные красной линией - это скользящее среднее по 8-ми отсчетам. Без применения оконных функций (Хэмминги и проч.). Интегрирование существенно скажется на динамике. Т.е. я хочу сказать зафильтровать я бы и круче мог, но практически - это выкинет устройство из задуманной для него ниши применения.

Автор:  GetChiper [ 10 сен 2014, 22:32 ]
Заголовок сообщения:  Re: TSOP как датчик расстояния. Плохой результат- тоже резул

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

Автор:  UnKaiF [ 11 сен 2014, 00:12 ]
Заголовок сообщения:  Re: TSOP как датчик расстояния. Плохой результат- тоже резул

Есть предположение, что "шум" измерений распределён не по Гауссу. Поэтому простые методы фильтрации столь неэффективны. На днях проверю. Это так - мысли в слух.

Автор:  GetChiper [ 15 сен 2014, 21:50 ]
Заголовок сообщения:  Re: TSOP как датчик расстояния. Плохой результат- тоже резул

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

Автор:  UnKaiF [ 16 сен 2014, 14:13 ]
Заголовок сообщения:  Re: TSOP как датчик расстояния. Плохой результат- тоже резул

Дельная идея !

Автор:  UnKaiF [ 17 сен 2014, 23:11 ]
Заголовок сообщения:  Re: TSOP как датчик расстояния. Плохой результат- тоже резул

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

Автор:  mcmega [ 18 сен 2014, 12:11 ]
Заголовок сообщения:  Re: TSOP как датчик расстояния. Плохой результат- тоже резул

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

Автор:  GetChiper [ 18 сен 2014, 19:45 ]
Заголовок сообщения:  Re: TSOP как датчик расстояния. Плохой результат- тоже резул

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

Может второй пик - это работа АРУ? Попробуй формировать пачки раз в секунду.
Еще будет интересно посмотреть распределение при импульсном методе.

Страница 1 из 4 Часовой пояс: UTC + 3 часа [ Летнее время ]
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/