roboforum.ru

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

Ультразвук

Программирование микроконтроллеров AVR, PIC, ARM.
Разработка и изготовление печатных плат для модулей.

Re: Ультразвуковой дальномер

Сообщение steel_monkey » 25 апр 2008, 02:45

В общем, начал я разрождаться УЗ дальномером. Проанализировав имеющиеся данные, решил раскачивать излучатель МАКСом 232, а для передового усилителя взял монолитный усилок для наушников LM386. Ему не нужно двух полярное питание и смещение, обвязки минимум, низкие шумы. Усиление можно выставить от 50 до 200, на 50 полоса 300 КГц, на 200 порядка 40 КГц, по всем параметрам вполне удовлетворяет. Дальше воткнул пиковый детектор-выпрямитель на диодах Шоттки. Наверно из-за такого пассивного выпрямителя сигнал получился слабым, дальность порядка 2х метров по нормали. Ближний предел порядка 6-10 сантиметров. Пока не знаю, буду ли сразу ставить ОУ (он там нужен хотябы для АЦП) в не инвертирующем включении, так как от сильный всплесков с начала излучения он может начать насыщаться и давать жуткие затяжки по времени. Завтра измерю все нормальным скопом. Сейчас тестирую так- выдаю на выход 10 импульсов и засекаю их на одном канале звуковухи. На другом канале смотрю сигнал с выхода приемника.

Добавлено спустя 7 минут 55 секунд:
Я оиентируюсь на самый дешевый и практичный вариант. Мой спаян на куске макетки 3 на 4 см (без контроллера, только аналог и макс), цена датчиков порядка 200 рублей за комплект, мега тридцать, макс порядка двадцати. Если оптом, то, думаю, в две сотни можно уложиться. Но параметры, конечно, пока что оставляют желать сильно лучшего. Иностранный Макссонар меряет порядка 6 метров! Правда, я еще хочу приделать к нему SPI/I2C/UART, чтобы имеь универсальный цифровой модуль, но проблему чувтсительности это не решит. В общем, по ка что все.
Вложения
vverh5.jpg
Главный максимум расположен в направлении нормали.
vverh4.jpg
Дальномер расположен не по нормали к поверхности
vverh3.jpg
Припятст
Препятствие на расстоянии 10-15 см.
vverh2.jpg
Два сигнала
vverh_1.jpg
Сигнал от потолка. Сонар расположен на уровне клавиатуры. Высота потолков обычная, порядка 2х с чем-то. Направление максимума диаграмы примерно в потолок.
moi_1.png
Схемка (нет программатора и индикации)
Аватара пользователя
steel_monkey
 
Сообщения: 346
Зарегистрирован: 14 июл 2007, 23:38
Откуда: SPb
прог. языки: немного албанский

Re: Ультразвуковой дальномер

Сообщение Myp » 25 апр 2008, 09:42

зачем ради 2х метрового УЗ городить огород с МАХ232 ?

а сообщение утащил
<telepathmode>На вопросы отвечает Бригадир Телепатов!</telepathmode>
Всё уже придумано до нас!
Аватара пользователя
Myp
скрытый хозяин вселенной :)
 
Сообщения: 18018
Зарегистрирован: 18 сен 2006, 12:26
Откуда: Тверь по прозвищу Дверь
прог. языки: псевдокод =) сила в алгоритме!
ФИО: глубокоуважаемый Фёдор Анатольевич

Re: Ультразвук

Сообщение steel_monkey » 25 апр 2008, 22:47

Вообще говоря, я хочу добиться дальности хотябы 3-3.5 метра. Тут без мощной раскачки никуда. Если считать, что ногой конироллера можно подать 10 вольт от пика до пика, то с МАКСом 40. У меня просто щас выпрямитель косячно сделан. Сегодня буду улучшать.
Аватара пользователя
steel_monkey
 
Сообщения: 346
Зарегистрирован: 14 июл 2007, 23:38
Откуда: SPb
прог. языки: немного албанский

Re: Ультразвук

Сообщение EdGull » 25 апр 2008, 22:59

а как это ты максом раскачаешь 40В?
помоему больше 24В не получится.
Аватара пользователя
EdGull
 
Сообщения: 10211
Зарегистрирован: 28 дек 2004, 20:33
Откуда: Тольятти
Skype: Ed_Gull
прог. языки: Bascom AVR Basic
ФИО: Гуль Эдуард Викторович

Re: Ультразвук

Сообщение steel_monkey » 25 апр 2008, 23:20

Тогда уж 32 Вольта по чесному ( у меня макс выдает вместо 10 только 8 ). Первая половина периода: напряжение на излучателе = напряжение первого входа минус напряжение второго, то есть, например, 8 - (-8) = 16 Вольт. Второй полупериод знаки напряжений на входах меняются: Uson= -8 - (+8) = -16 вольт. Полный размах напряжения составляет 32 Вольта. Или в чем-то косяк?
Аватара пользователя
steel_monkey
 
Сообщения: 346
Зарегистрирован: 14 июл 2007, 23:38
Откуда: SPb
прог. языки: немного албанский

Re: Ультразвук

Сообщение EdGull » 26 апр 2008, 11:26

Второй полупериод знаки напряжений на входах меняются: Uson= -8 - (+8) = -16 вольт. Полный размах напряжения составляет 32 Вольта.

ну поменял ты знаки, а с чего напруге-то удвоиться??
Аватара пользователя
EdGull
 
Сообщения: 10211
Зарегистрирован: 28 дек 2004, 20:33
Откуда: Тольятти
Skype: Ed_Gull
прог. языки: Bascom AVR Basic
ФИО: Гуль Эдуард Викторович

Re: Ультразвук

Сообщение steel_monkey » 27 апр 2008, 02:22

Получается Umax- Umin = 32 Вольта. Амплитуда действительно 16 Вольт, но размах 32.
Рисунки: верхний и средний это входы сонара, нижний- напряжение на нем. Слева три рисунка соответствуют раскачке восьмью Вольтами с одного входа (второй заземлен). Группа рисунков справа- раскачка МАКСом.
Вложения
max232.png
max232.png (6 КиБ) Просмотров: 3612
Аватара пользователя
steel_monkey
 
Сообщения: 346
Зарегистрирован: 14 июл 2007, 23:38
Откуда: SPb
прог. языки: немного албанский

Re: Ультразвук

Сообщение steel_monkey » 07 май 2008, 23:31

Еще одна схема. Работает не намного лучше :o . Суммарное усиление уже достигло 80 дБ, но на расстоянии 2 метра человека уже не видно, что по сути является провалом. При работе слышно, как передатчик шлет импульсы. 40 КГц, конечно, не слышу, а вот НЧ огибающую вполне хорошо. Причина пока не ясна.
Вложения
sonic_new.png
Аватара пользователя
steel_monkey
 
Сообщения: 346
Зарегистрирован: 14 июл 2007, 23:38
Откуда: SPb
прог. языки: немного албанский

Re: Ультразвук

Сообщение Digit » 08 май 2008, 08:29

Напиши ЛС товарищу mandigit'у. Он года полтора назад вполне приличный УЗ-модуль на I2C сделал. Вполне возможно, вам будет интересно пообщаться. Если что-то полезное выяснишь, то не поленись сюда запостить - для потомков :)
злой полицейский
Аватара пользователя
Digit
 
Сообщения: 3339
Зарегистрирован: 27 ноя 2004, 00:42
Откуда: совсем Москва
ФИО: Григорий

Re: Ультразвук

Сообщение -= Александр =- » 18 июл 2008, 19:02

Посмотри осцилом что на выходе макса творится - я сомневаюсь что он в состоянии нормально раскачать излучатель - в кондерах 0.1 мкФ нормальной энергии не накопишь... Кстати можно попробовать их увеличить - но там уже могут быть глюки. Неизвестно какой ток он может выдавать продолжительно.
Ниндзя - круче всех. Они умеют ходить по воде, делить на ноль и угадывать шаффл в АйПоде.
Аватара пользователя
-= Александр =-
Мастер Самоделкин
 
Сообщения: 3678
Зарегистрирован: 11 окт 2004, 19:20
Откуда: Россия, СПб
прог. языки: C/C++, Python, asm
ФИО: Курмис Александр Андреевич

Re: Ультразвук

Сообщение EdGull » 18 июл 2008, 19:42

а не проще из локет лаунчера жахнуть? или это не по джидайским правилам? (с)
я в смысле не проще на 34063 раскачать до честных 28 вольт
Аватара пользователя
EdGull
 
Сообщения: 10211
Зарегистрирован: 28 дек 2004, 20:33
Откуда: Тольятти
Skype: Ed_Gull
прог. языки: Bascom AVR Basic
ФИО: Гуль Эдуард Викторович

Re: Ультразвук

Сообщение steel_monkey » 18 июл 2008, 19:55

Я сразу поставил в накачку керамические кондеры по 2.2 мкФ.
Купил себе нормальную звуковуху, она может писать 96 КГц ( встроенный звук этого не мог), теперь отладка намного проще. Оказалось, LM386 неправильно работает, зараза. То ли в насыщение вгоняется, то ли вообще накрылась ( уже вторая !), и шумит сильно. Не буду выеживаться, и поставлю пару недорогих рыл-ту-рыл оперов. Железо близко к завершению. Но не уверен, что осилю програмную часть. Хочу использовать не компаратор, а АЦП. Сигнал сразу можно перегнать через УАРТ и посмотреть.

Добавлю: импульсный преобразователь это морока. Хотя все равно, его тоже наверно попробую. Чесно говоря, я не знаю, как для такой нагрузки считать рабочую индуктивность в преобразователь. В формулах используется ток нагрузки. Усреднять за период? А он у меня будет еще много раз меняться, и вообще может быть не будет постоянным.
Аватара пользователя
steel_monkey
 
Сообщения: 346
Зарегистрирован: 14 июл 2007, 23:38
Откуда: SPb
прог. языки: немного албанский

Re: Ультразвук

Сообщение -= Александр =- » 18 июл 2008, 20:01

А скорости АЦП хватит?
Я бы кстати тоже поставил конвертер вольт на 30 и полевик на включения передатчика. Конвертер + дроссель будет не дороже макса. Кстати можно вообще без конвертера - самим процом дроссель дергать через полевик...
Ниндзя - круче всех. Они умеют ходить по воде, делить на ноль и угадывать шаффл в АйПоде.
Аватара пользователя
-= Александр =-
Мастер Самоделкин
 
Сообщения: 3678
Зарегистрирован: 11 окт 2004, 19:20
Откуда: Россия, СПб
прог. языки: C/C++, Python, asm
ФИО: Курмис Александр Андреевич

Re: Ультразвук

Сообщение steel_monkey » 06 сен 2008, 22:36

Железо стало еще ближе к завершению :D
Наладил прием, аналоговую фильтрацию и аналого-цифровое преобразование. Цифрую сигнал с частотой 25 КГц, записываю 900 отсчетов в память и отсылаю по UARTу. Если исходить из точности, то это неопределенность в 1.3 сантиметра. Но если учесть, что расстояние как бы измеряется дважды, то неопределенность уменьшается в 2 раза, и уже равна максимальной, указанной в даташите ( полволны звука?).
Собственно, схема ( лепил из того, что было). Все более менее стандартно, только добавил амплитудный ограничитель чтобы не вводить АРУ. Сигнал на выходе фильтра отстает примерно на 0.1 миллисекунды от входного, но без этого появляются комбинационные частоты- не кошерно. Возится с активными фильтрами не хотелось- взял просто 2 RC цепочки. Делитель после выпремителя поставлен, чтобы не вгонять 358 в насыщение. В готовом варианте возьму четверенный rail-to-rail.
shematic.png
Схема на данном этапе

Вопросы пока вызывает дальность. Максимум, что я ловил - порядка 4.8 метра. Сильно зависит от угла падения и материала объекта.
Вот так видна стена на расстоянии около двух метров ( данные с АЦП приняты в порт и обработаны).
wall.gif
Отражение от стены. Первый большой вспоеск- паразитный сигнал, напрямую прошедший от передатчика к приемнику. Пытался проложить между ними звукоизолирующий материал- не помогло. Второй отклик- край кровати (получается сильно снизу луча). Третий- стена. Падение звука- нормальное.

С малой дальностью тоже не все просто. Минимум окажется сантиметров 15, дальше сигнал и прямое эхо от передатчика сливаются.
На этой картинке я придвигаю руку к дальномеру. Видно, как максимумы сливаются.
decr_dist.gif
Уменьшение измеряемой дистанции. Первый пик- паразитный, второй- от объекта. Третий я трактую как вторичное эхо, то есть еще один проход от излучателя к объекту и назад, но это, в принципе, уже не важно.

Ну а вот 10 сантиметров- можно только сказать, что препятствие есть.
10_cm.gif
Измерение при дистанции 10 сантиметров до объекта. Паразитный сигнал и эхо слились.


Дальше будет работа над ПО. 25 КГц позволяют провести обработку в реальном времени- между прерываниями будет 480 тактов кварца. Правда как искать множественные максимумы я пока не представляю. Посмотрел книжки по DSP- там только фильтры. В идеале, все должно сводисть к вычислению, типа разности разностей ( во блин), то есть типа определение изменения знака производной. Но тут я не в теме, может уважаемые программеры, предложите чего?

Посмотрел осцилограммы напряжения на выходе макса - там что-то непонятное творится. Сначала 40 КГЦ с падающей огибающей снизу ( <0 ), затем то же самое сверху (>0). Попробую потом поставить MC63.
Аватара пользователя
steel_monkey
 
Сообщения: 346
Зарегистрирован: 14 июл 2007, 23:38
Откуда: SPb
прог. языки: немного албанский

Re: Ультразвук

Сообщение steel_monkey » 14 сен 2008, 01:22

Еще пример.
Измеряемый объект : ближний край кровати на расстоянии полутора метров, ниже направления "взгляда" УЗД. Затем подушка на расстоянии 40 см от края кровати, примерно на линии взгляда. Следующий объект- стена, расстояние 2.70 от УЗД. Направление на неё нормальное.

Сначала сигнал с выхода второго операционника, записанный через звуковуху. Первый всплеск паразитный сигнал. Второй - край кровати, третий - подушка и четвертый - стенка. Что идет потом-неизвестно ( на этом комната заканчивается :D ). Я интерпретирую это как шумы.
Clipboard02.gif
Оцифрован звуковухой на выходе второго опера

Вот что увидела мега. Намного чище и приятнее. Розовые точки - результат работы алгоритма ( типа нескольких условий) по определению максимумов сигнала. Видно, что за максимумы выдаются также маленькие бугорки за первым и последним всплесками. Такую мелкую подгонку уже можно осуществлять по более сложным законам.
adc_signal.gif
То же, оцифрованое АЦП. Розовое- попытка найти максимумы
Аватара пользователя
steel_monkey
 
Сообщения: 346
Зарегистрирован: 14 июл 2007, 23:38
Откуда: SPb
прог. языки: немного албанский

Пред.След.

Вернуться в Микроконтроллеры

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 3