Форум программистов, компьютерный форум, киберфорум
Наши страницы
Микроконтроллеры
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.57/21: Рейтинг темы: голосов - 21, средняя оценка - 4.57
Tiom11t
0 / 0 / 0
Регистрация: 10.03.2010
Сообщений: 225
1

Обработка жестов с помощью ультра звукового дальномера

20.04.2016, 22:29. Просмотров 3899. Ответов 12
Метки нет (Все метки)

Есть задача обработать несколько жестов, даже не жестов, а взмахов руками, перед китайским ультразвуковым дальномером.
Дальномер серии HC-SR04
Микроконтролер Atmego328
Язик Си.

Конкретно задача такова. Машу раз возле дальномера, виходить одно событие. Машу два раза, тоесть туда - обратно, ето другое событие. Дальность дальномера ограничел до пол метра. То есть в диапазоне 50 см нужно ловить взмахи. Проблема в том что немогу четко обработать взмахи туда - обратно.
Частота опроса дальномера примерно 20Гц. Время за которое нужно обработать жесты 1 сек.
У кого какиу идеи?
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.04.2016, 22:29
Ответы с готовыми решениями:

Обработка звукового потока
В общем суть вопроса таково, есть поток http://online.radiorecord.ru:8102/brks_128 есть библиотека...

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

Запись и обработка звукового сигнала в реальном времени
Скажите пожалуйста (или подскажите с литературой), как звук, записанный с микрофона представляется...

Обработка и проигрывание звукового файла без использования сторонних библиотек
Всем доброго времени суток! Мне задали в качестве экзаменационного задания по WINAPI, написать...

Обработка звука: в wav-файле удалить 20 секунд звукового файла из середины трека
Помогите с заданием, в файле с расширением Wav нужно удалить 20 секунд звукового файла из середины...

12
otixsom
0 / 0 / 0
Регистрация: 07.02.2106
Сообщений: 1,183
20.04.2016, 22:59 2
Я бы делал такое примерно так - один "поток" постоянно отслеживает расстояние с достаточно большой периодичностью и обновляет текущее состояние (выставляет соответствующее значение переменной). При этом, если датчик глюкавый, то нужно делать аппроксимацию нескольких последних измерений чтоб было все гладко.
Второй "поток" это конечные автоматы. По набору правил проходим цепочку и если все условия одного из КА удовлетворяются, то профит - мы поймали действие.
0
MostirOtixiy
0 / 0 / 0
Регистрация: 24.02.2010
Сообщений: 804
21.04.2016, 09:49 3
Цитата Сообщение от otixsom
...с достаточно большой периодичностью...
Эта фраза не подходит к HC-SR04. Сам производитель рекомендует не чаще чем через 60 мс давать импульс измерения.
0
otixsom
0 / 0 / 0
Регистрация: 07.02.2106
Сообщений: 1,183
21.04.2016, 11:52 4
Цитата Сообщение от MostirOtyxiy
Цитата Сообщение от otixsom
...с достаточно большой периодичностью...
Эта фраза не подходит к HC-SR04. Сам производитель рекомендует не чаще чем через 60 мс давать импульс измерения.
Ну 16 раз в сек. вполне для жестов. 4-5 последних выборок для аппроксимации.
0
21.04.2016, 11:52
Tiom11t
0 / 0 / 0
Регистрация: 10.03.2010
Сообщений: 225
21.04.2016, 12:05 5
Цитата Сообщение от MostirOtyxiy
Цитата Сообщение от otixsom
...с достаточно большой периодичностью...
Эта фраза не подходит к HC-SR04. Сам производитель рекомендует не чаще чем через 60 мс давать импульс измерения.
MostirOtyxiy привет! Я когда то давно-давно из вашего сайта делал схему ламинатора для лута ))
Да, я запустил датчик на 20Гц. Даже если чаще запускать, данние вроде норм.
0
Tiom11t
0 / 0 / 0
Регистрация: 10.03.2010
Сообщений: 225
21.04.2016, 12:08 6
Цитата Сообщение от otixsom
Цитата Сообщение от MostirOtyxiy
Цитата Сообщение от otixsom
...с достаточно большой периодичностью...
Эта фраза не подходит к HC-SR04. Сам производитель рекомендует не чаще чем через 60 мс давать импульс измерения.
Ну 16 раз в сек. вполне для жестов. 4-5 последних выборок для аппроксимации.

А можна вас попросить нарисовать что ли, или описать поподробней ваш алгоритм. Воображение не работает совсем.
0
okotimiv
1 / 1 / 0
Регистрация: 30.08.2010
Сообщений: 3,382
21.04.2016, 13:44 7
Если у кого-то получится с данным датчиком распознавать жесты - дайте знать. Это интересно, поскольку датчик вообще для этого не предназначен.

Но если не получится, то можно обратить внимание на инфракрасные датчики, есть несколько типов, специально для этого разработанных, недорогих и простых в применении. Их иногда применяют в бытовой аппаратуре.
0
otixsom
0 / 0 / 0
Регистрация: 07.02.2106
Сообщений: 1,183
21.04.2016, 14:24 8
Цитата Сообщение от Tyom11t
А можна вас попросить нарисовать что ли, или описать поподробней ваш алгоритм. Воображение не работает совсем.
Блок схему рисовать лень, поэтому опишу.
Я с датчиками этими не работал и всех тонкостей не знаю, но алгоритм подойдет для любого датчика. В теории:
поток 1 (опрос датчика):
1) запрос датчика
2) запись результата в FIFO
3) если в FIFO больше 2х значений то аппроксимируем их (гру можно вычислить среднее).
4) запись результата в переменную distance.
5) goto 1)

поток 2 (распознавание жеста)
0) инициализация Tgesture1 = 0, stortTime = 0, gesture1Complete = false, Tgesture1Complete = 0
1) если distance находится в заданном диапазоне (в той области измерений где должна быть рука) и stortTime = 0
1.1) засекаем "время" в переменной stortTime
1.2) выставляем Tgesture1 = 0
2) если distance находится в заданном диапазоне и stortTime != 0
2.1) увеличиваем Tgesture1
2.2) если Tgesture1 > N (рука сильно долго находится над датчиком) то Tgesture1 = 0, stortTime = 0.
3) если distance = бесконечность (ну или что там вернет датчик когда руку уберут) И stortTime != 0 И Tgesture1 < N
3.1) считаем что рукой провели за отведенное время, устанавливаем stortTime = 0, gesture1Complete = trui, Tgesture1Complete = 0
4) если gesture1Complete = trui
4.1) увеличиваем Tgesture1Complete
4.2) если Tgesture1Complete > отведенного таймаута между жестами, то
4.3) считаем что был только один жест, выполняем сброс Tgesture1Complete = 0, gesture1Complete =false выполняем наши действия для жеста 1.
5) если gesture1Complete И Tgesture1Complete < таймаута между жестами, то
5.1) тут примерно такой же алгоритм для второго жеста.
...........................
5.х) выполняем действия для жеста №2
нужно добавить еще жестов в цепочке? добавляем еще переменных gestureXComplete и таймаутов.

Это конечно не совсем КА, но близко к нему.
0
Tiom11t
0 / 0 / 0
Регистрация: 10.03.2010
Сообщений: 225
21.04.2016, 15:03 9
Цитата Сообщение от okotimiv
Если у кого-то получится с данным датчиком распознавать жесты - дайте знать. Это интересно, поскольку датчик вообще для этого не предназначен.

Но если не получится, то можно обратить внимание на инфракрасные датчики, есть несколько типов, специально для этого разработанных, недорогих и простых в применении. Их иногда применяют в бытовой аппаратуре.
Как их гуглить?
0
PRS
0 / 0 / 0
Регистрация: 12.07.2011
Сообщений: 3
21.04.2016, 15:44 10
VL6180X, TMG399x
0
RikoD
0 / 0 / 0
Регистрация: 07.10.2011
Сообщений: 127
06.07.2016, 14:04 11
Диаграму направленности посмотрите.
Жесты ловить им не так-то просто.
Буду с интересом следить за темой.
0
Movysi
0 / 0 / 0
Регистрация: 22.07.2015
Сообщений: 658
10.07.2016, 09:23 12
Цитата Сообщение от Tyom11t
Есть задача обработать несколько жестов, даже не жестов, а взмахов руками, перед китайским ультразвуковым дальномером.
Дальномер серии HC-SR04
Микроконтролер Atmego328
Язик Си.

Конкретно задача такова. Машу раз возле дальномера, виходить одно событие. Машу два раза, тоесть туда - обратно, ето другое событие. Дальность дальномера ограничел до пол метра. То есть в диапазоне 50 см нужно ловить взмахи. Проблема в том что немогу четко обработать взмахи туда - обратно.
Частота опроса дальномера примерно 20Гц. Время за которое нужно обработать жесты 1 сек.
У кого какиу идеи?
Если используется только один датчик ультразвука,то Вы имеете возможность иметь только график изменения дальности до цели во времени.Если предположить,что между рукой и датчиком нет препятствий-помех,и рука повёрнута к излучению в лучшем ракурсе,то можно определить
1 есть рука в кадре или нет.
2 на каком удалении рука от датчика.
3 плотность и размеры, в сечении излучения ,руки,если мерить амплитуду отражённых импульсов(это нам не надо).
Если вывести на график сигнал от руки,которвя будет приближаться и удаляться от датчика,на графике одна ось-дальность,другая-время,то получится что то вроде пилы или кривой синусоиды.По вашей задумке с подсчётом количества движений,получается что возможно.Но чтобы например измерить скорость движения,то уже надо подключать "Доплера" ))),а это уже-более сложное железо.
0
RikoD
0 / 0 / 0
Регистрация: 07.10.2011
Сообщений: 127
17.07.2016, 01:08 13
Цитата Сообщение от Tyom11t
У кого какиу идеи?
Идеи-подсказки по gesture detection:
1) У мух мозгов почти нет, но они прекрасно летают. Зрение у них фасеточное. Можно покопать в сторону arrays простых сенсоров.
2) Взять МК чуть помощнее атмеги328 (тот же stm32f103), к нему подключить аналоговую камеру, считывать в фреймбуффер не всё (50x50x8bit - это 2,5кб - такие кадры сможет анализировать и МК даже), ну и применить немного "матенигии" ;-)
0
17.07.2016, 01:08
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.07.2016, 01:08

Ремонт лазерного дальномера, проблема питания
Дальномер похоже такой (точно не могу посмотреть, он на работе в разобраном виде). Проблема в том,...

Кто знает устройство лазерного дальномера?
http://s4.hostingkartinok.som/uptoods/images/2013/01/087068d386050e25f996ca2a8375a4db.jpg ...

WinAVR Помогите с прошивкой ультразвукового дальномера
Всем доброе время суток, спаял я все таки ультразвуковой дальномер. Думал, что с написанием проги...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru