roboforum.ru

Технический форум по робототехнике.
Текущее время: 01 мар 2025, 21:03

Часовой пояс: UTC + 4 часа




Начать новую тему Ответить на тему  [ Сообщений: 59 ]  На страницу Пред.  1, 2, 3, 4  След.
Автор Сообщение
 Заголовок сообщения: Re: направление источника звука
СообщениеДобавлено: 12 окт 2011, 15:37 
Не в сети

Зарегистрирован: 27 авг 2008, 10:45
Сообщения: 1981
Откуда: Харьков
прог. языки: С/С++
Вообще формула простая, я думаю автор до нее дошел, осталось только правильно ловить фронты звука.

alfa = arccos((t2-t1)*Vs/L), где t2-t1 - разность времени, Vs - скорость звука, L - база (расстояние между микрофонами).

На самом деле можно сразу вычислить базу в микросекундах: T = 10^6*L/Vs. Vs=340 м/с, 1 см = 29.4 мкс.

Тогда alfa = arccos((t2-t1)/T).

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

"У каждого говорящего базовая частота основного тона индивидуальна и обусловлена особенностями строения гортани. В среднем для мужского голоса она составляет от 80 до 210 Гц, для женского — от 150 до 320 Гц" (с) вики. Буква А - это не И, будем считать что не выше 200 даже у детей. 200 гц = 5 мс, 1 мс = 340 мм, т.е. 5 мс это полтора метра, а то и больше. Значит, робот вполне может работать с отдельными фронтами гласного звука, наловить скажем несколько десятков разностей фронтов, усреднить, выкинуть самые "непохожие" чтобы не портили статистику и уже результат подставить в формулу выше. Естественно arccos считать не библиотечной функцией, а по таблице приближенно.

Кстати, сразу видно что АЦП аврки тут не сильно подходит, потому как у него одно преобразование пары значений - 130 мкс, да еще и не одновременно, а у нас разброс фронтов при расстоянии 10 см около 300 мкс максимум, получаем меньше 3 градаций возможных. Но! АЦП аврки можно разогнать, тут бродил пример вообще с видеосигналом. Но я считаю, что обычных ног порта должно хватать, главное правильно намерять и хорошо усреднить.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: направление источника звука
СообщениеДобавлено: 12 окт 2011, 15:39 
Не в сети

Зарегистрирован: 03 ноя 2009, 13:58
Сообщения: 109
Откуда: Москва
С компаратором - не ахти получится. Нужно цифровать оба канала и, варьируя задержку между ними, находить максимум корреляции. Только, боюсь, микроконтроллер слабоват окажется - на ПЛИСе можно попробовать. Или на PC для отработки алгоритма.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: направление источника звука
СообщениеДобавлено: 12 окт 2011, 15:43 
Не в сети

Зарегистрирован: 24 дек 2008, 17:55
Сообщения: 203
Откуда: Актюбинск
Цитата:
alfa = arccos((t2-t1)*Vs/L), где t2-t1 - разность времени, Vs - скорость звука, L - база (расстояние между микрофонами).

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: направление источника звука
СообщениеДобавлено: 12 окт 2011, 15:50 
Не в сети
Аватара пользователя

Зарегистрирован: 05 окт 2005, 12:03
Сообщения: 3340
Откуда: Литва
прог. языки: asm
2chinga:
chinga писал(а):
"))" и ")" ничего не означает
этого я не знал :oops: , позор мне...
chinga писал(а):
человек, не может повернуть голову точно туда откуда издастся звук.
это точно!
chinga писал(а):
примерно может определить.
неа, только предположить...
chinga писал(а):
и еще, человек может определить звук самого хлопка и его отраженные сигналы, и мк все сигналы.
это я не понял :(
chinga писал(а):
но теперь какой способ можно применить?

ИМХО усреднение - нужный способ. А варианты либо усреднять механически (см.выше что я писАл), либо математически, как описАл boez :)
2boez:
boez писал(а):
Но я считаю, что обычных ног порта должно хватать, главное правильно намерять и хорошо усреднить.
+1. АЦП тут явно не в струю...

_________________
_________
Sincerely,
Vovan


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: направление источника звука
СообщениеДобавлено: 12 окт 2011, 15:55 
Не в сети

Зарегистрирован: 24 дек 2008, 17:55
Сообщения: 203
Откуда: Актюбинск
Цитата:
Нужно цифровать оба канала и, варьируя задержку между ними, находить максимум корреляции.

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

мы же слышим эхо? а микрофон принимает все) даже ветер.
Цитата:
либо математически, как описАл boez :)

это я и делаю, но дело не доходит до градусов. время не можем точно определить.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: направление источника звука
СообщениеДобавлено: 12 окт 2011, 17:25 
Не в сети
Аватара пользователя

Зарегистрирован: 05 окт 2005, 12:03
Сообщения: 3340
Откуда: Литва
прог. языки: asm
дык звук же уже цифрой идет с компаратора, или как?
Как определить время, ужЕ ведь описано неоднократно, ну а градусы - величина зависимая от ентого времени.
Вот forum68/topic7990.html тут еще обсуждали, помоему подробно описано...

_________________
_________
Sincerely,
Vovan


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: направление источника звука
СообщениеДобавлено: 12 окт 2011, 18:55 
Не в сети

Зарегистрирован: 24 дек 2008, 17:55
Сообщения: 203
Откуда: Актюбинск
Цитата:
дык звук же уже цифрой идет с компаратора, или как?

ну да) с компаратор
проблема в этом, время не могу точно находить.

Добавлено спустя 12 минут 3 секунды:
завтра попробую расстояние между микрофонами уменьшить.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: направление источника звука
СообщениеДобавлено: 12 окт 2011, 19:51 
Не в сети
Аватара пользователя

Зарегистрирован: 07 окт 2009, 00:29
Сообщения: 6028
Откуда: СПб
HarryStar писал(а):
У вас какой-то странный алгоритм судя по коду. Или по крайней мере очень непрозрачно написан.

Плюс стопятьсот.
Как пишете, так и работает.
Не нужно НИЧЕГО предполагать.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: направление источника звука
СообщениеДобавлено: 12 окт 2011, 20:03 
Не в сети
Аватара пользователя

Зарегистрирован: 01 июл 2009, 08:59
Сообщения: 2254
Откуда: Екатеринбург
прог. языки: асемблер AVR
Пора отделить мух от котлет. С математикой вроде разобрались, осталась проблема измерения времени. Попробую кратко резюмировать проблему топикстартера. Уши - это не просто микрофоны, а датчики, выдающие сигнал 0/1 (ничего не слышу/ой, что-то услышал). Насколько я понял после микрофона стоит полосовой фильтр (или ФНЧ), затем стоит компаратор. Фильтром отстраиваемся от ветра и прочего ВЧ шума, компаратором отстраиваемся от переотражений и эха от стен. Далее задача тривиальная - читать две ноги порта на предмет их изменения, включить таймер при изменении, снова читать две ноги порта до нужного изменения, выключить таймер. Никакого АЦП нет и не надо!!! Топикстартер говорит, что время каждый раз разное и грешит на свою программу. Я бы посоветовал подключить оба выхода компараторов к двухканальному осциллографу и понаблюдать как они себя ведут. Если ведут себя как положено - косяк в программе, если фронты скачут как зайцы - ковырять схемотехнику датчиков. Все это еще на первой странице написал Vovan.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: направление источника звука
СообщениеДобавлено: 12 окт 2011, 21:09 
Не в сети

Зарегистрирован: 24 дек 2008, 17:55
Сообщения: 203
Откуда: Актюбинск
Цитата:
У вас какой-то странный алгоритм судя по коду. Или по крайней мере очень непрозрачно написан

что непонятного там?

Цитата:
Плюс стопятьсот.
Как пишете, так и работает.
Не нужно НИЧЕГО предполагать.

это вы к чему?)

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

постараюсь завтра проверить.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: направление источника звука
СообщениеДобавлено: 12 окт 2011, 21:16 
Не в сети
Аватара пользователя

Зарегистрирован: 07 окт 2009, 00:29
Сообщения: 6028
Откуда: СПб
Это я к тому, что с логикой у вас в программе туго.
Вы _предполагаете_, что все происходит так, как вам хочется.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: направление источника звука
СообщениеДобавлено: 12 окт 2011, 21:36 
Не в сети

Зарегистрирован: 27 авг 2008, 10:45
Сообщения: 1981
Откуда: Харьков
прог. языки: С/С++
Вот как бы делал я:

Код:
unsigned char oldport, newport, dir;
unsigned short cnt;


while((oldport=PINA & 3) != 0x00);

while ((newport=PINA) == oldport) cnt++;

dir=0;
if (newport == 0x03) {
    if (oldport == 0x01) dir=1;
    if (oldport == 0x02) dir=2;
}

На выходе получаем dir=0 - неправильно измерено, dir=1 - условно слева, dir=2 - условно справа, count - временная разность |t1-t2| в условных единицах.

А датчики надо изучать - что они выдают, есть там выпрямитель или нет. Т.е. условно на одно полусекундное "А" они дают 1 импульс или 50?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: направление источника звука
СообщениеДобавлено: 12 окт 2011, 21:55 
Не в сети
Аватара пользователя

Зарегистрирован: 07 окт 2009, 00:29
Сообщения: 6028
Откуда: СПб
boez писал(а):
Вот как бы делал я:

Написана, имхо, шляпа. Очевидно, oldport всегда равен нулю?

Нету там выпрямителя никакого. Тупо компаратор.
Хорошо, если только 50 :)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: направление источника звука
СообщениеДобавлено: 12 окт 2011, 22:36 
Не в сети

Зарегистрирован: 24 дек 2008, 17:55
Сообщения: 203
Откуда: Актюбинск
Цитата:
что все происходит так, как вам хочется

а как еще надо делать?
Цитата:
Т.е. условно на одно полусекундное "А" они дают 1 импульс или 50?

просто один скачек и все кажется.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: направление источника звука
СообщениеДобавлено: 12 окт 2011, 22:51 
Не в сети
Аватара пользователя

Зарегистрирован: 07 окт 2009, 00:29
Сообщения: 6028
Откуда: СПб
chinga писал(а):
Цитата:
что все происходит так, как вам хочется

а как еще надо делать?

Вы пропустили подчеркнутое слово, я для кого подчеркивал?
Уже третий раз говорю - не предполагать!


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 59 ]  На страницу Пред.  1, 2, 3, 4  След.

Часовой пояс: UTC + 4 часа


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

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


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
phpBB SEO