Электронная мишень на базе Ардуино

Как собрать и запрограммировать робота на Arduino(Freeduino, Roboduino, Seeduino ...). Используем Wiring и Processing.

Электронная мишень на базе Ардуино

Сообщение andy_111 » 13 ноя 2014, 15:01

Всем привет! Заинтересовался возможностью создания электронной мишени. В общем, что хотелось бы сделать : есть мишень (пусть будет лист металла скажем 300x300 мм). На нем расчерчена/прилеплена картинка мишени. Попадаю из пистолета (пневматика) - система определяет координаты попадания пульки в пределах листа. Вариант с механическим нажатием не очень подходит - во первых, пуля должна обладать достаточной энергией для замыкания контакта, во вторых, встает вопрос о количестве контактных пластин и механической защите контактов. Хотелось бы сделать бесконтактное решение. Краем уха слышал о пьезоэлементах, но вплотную с ними не работал. Навскидку видится вот какой алгоритм. Например, по краям пластины стоят пьезоэлементы. При попадании пульки в лист каждый пьезоэлемент фиксирует удар/сотрясение. Так как пьезоэлементы физически разнесены, то фиксировать удар они будут с некоторым сдвигом по времени, который будет зависеть от удаления точки удара от датчика. Пьезоэлементы заведены на порты прерываний ардуины. При срабатывании пьезоэлемента на ардуине генерится соответствующее прерывание. В нем в глобальную переменную для данной пьезы сохраняется точное время (до микросекунд). В результате мы будем иметь 4 переменных, в каждой из которых будет время срабатывания каждой пьезы. Зная координаты пьезоэлементов и разницу срабатываний во времени, мы сможем вычислить координаты попадания.

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

Хотелось бы понять, стоит ли вообще копать в данном направлении.
Printer : MendelMax 1.5, Prusa i3 Steel
Firmware : Marlin
Slicer: Slic3r
Filament : PLA 3 mm, PLA 1.75 mm
Nozzle : 0.35 mm
Electronics: RepRap Sanguinololu 1.3b
Языки: C++ (Borland Builder 6.0), VBA, VBScript, Arduino IDE, T-SQL
andy_111
 
Сообщения: 46
Зарегистрирован: 29 окт 2012, 14:12

Re: Электронная мишень на базе Ардуино

Сообщение TedBeer » 13 ноя 2014, 15:59

Все правильно и подобные решения есть. Так что копать можно :)
Правда в решении, про которое я знаю, используются микрофоны, а не пьезоэлементы.
Аватара пользователя
TedBeer
 
Сообщения: 1129
Зарегистрирован: 08 авг 2012, 00:38
Откуда: Нидерланды, Алмере
Skype: edwbes
ФИО: Эдуард

Re: Электронная мишень на базе Ардуино

Сообщение Myp » 13 ноя 2014, 17:53

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

Re: Электронная мишень на базе Ардуино

Сообщение TedBeer » 13 ноя 2014, 22:41

вот кстати видео:


Добавлено спустя 2 минуты 3 секунды:
но тут вообще один микрофон используют, а я встречал еще проект, где несколько установлены на поверхности.
Аватара пользователя
TedBeer
 
Сообщения: 1129
Зарегистрирован: 08 авг 2012, 00:38
Откуда: Нидерланды, Алмере
Skype: edwbes
ФИО: Эдуард

Re: Электронная мишень на базе Ардуино

Сообщение andy_111 » 14 ноя 2014, 09:41

А в этом проекте с несколькими микрофонами какое расстояние ими измеряется? Если там метры меряются, то смысла городить огород нет - в идеале хотелось бы чтобы максимальная погрешность (круговое вероятностное отклонение измерений точки попадания) была не более 10-15 мм.

Добавлено спустя 12 минут 12 секунд:
Посмотрел видео. Как понял, используется обычный PC микрофон. На мухлеж не похоже вроде. Единственный вариант, который мне приходит в голову - анализ спектра принятого сигнала. Видимо, спектр немного меняется в зависимости от расстояния до точки удара и того пути, которое проходит звуковая волна. Основная проблема - найти эти зависимости :) И опять же, думаю, что высокой точности достичь не получится - в рядом стоящих точках изменения спектра будут минимальными. Да и неизвестно, что у него за доска такая, по которой он стучит. В случае попадания пуль свойства доски (металла) из-за деформации могут меняться, искажая отклик.
Printer : MendelMax 1.5, Prusa i3 Steel
Firmware : Marlin
Slicer: Slic3r
Filament : PLA 3 mm, PLA 1.75 mm
Nozzle : 0.35 mm
Electronics: RepRap Sanguinololu 1.3b
Языки: C++ (Borland Builder 6.0), VBA, VBScript, Arduino IDE, T-SQL
andy_111
 
Сообщения: 46
Зарегистрирован: 29 окт 2012, 14:12

Re: Электронная мишень на базе Ардуино

Сообщение TedBeer » 14 ноя 2014, 11:26

andy_111 писал(а):А в этом проекте с несколькими микрофонами какое расстояние ими измеряется? Если там метры меряются, то смысла городить огород нет - в идеале хотелось бы чтобы максимальная погрешность (круговое вероятностное отклонение измерений точки попадания) была не более 10-15 мм.

Там речь шла о долях миллиметра. Идея была заменить дигитайзер в планшетах/телефонах на несколько микрофонов по периметру и они в состоянии заменить дорогую реализацию тачскринов и перьевой ввод. Про метод кстати написано и в википедии - Acoustic pulse recognition

Никак не могу найти по быстрому тот проект, о котором говорю, но нашел еще один с одним микрофоном - This Tiny Mic Turns Any Surface Into A Touch Interface Заодно можешь заценить проводимость разных материалов.
Аватара пользователя
TedBeer
 
Сообщения: 1129
Зарегистрирован: 08 авг 2012, 00:38
Откуда: Нидерланды, Алмере
Skype: edwbes
ФИО: Эдуард

Re: Электронная мишень на базе Ардуино

Сообщение Myp » 14 ноя 2014, 11:39

у нас на форуме обсуждалось: forum35/topic5936.html
и вот там есть
http://forum.amperka.ru/threads/%D0%94% ... D0%B5.281/

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

Re: Электронная мишень на базе Ардуино

Сообщение TedBeer » 14 ноя 2014, 13:29

Французская компания ELO Touch Solutions выпускает коммерческие продукты на технологии Acoustic Pulse Recognition. Вот кратко описание как это работает.
Вот тут посмотри видео, правда оно на французском :) Но из картинки многое понятно - Des surfaces intelligentes et tactiles
Аватара пользователя
TedBeer
 
Сообщения: 1129
Зарегистрирован: 08 авг 2012, 00:38
Откуда: Нидерланды, Алмере
Skype: edwbes
ФИО: Эдуард

Re: Электронная мишень на базе Ардуино

Сообщение andy_111 » 15 ноя 2014, 00:18

Буду изучать, спасибо за полезные ссылки. Если что-нибудь путное получится - напишу.
Printer : MendelMax 1.5, Prusa i3 Steel
Firmware : Marlin
Slicer: Slic3r
Filament : PLA 3 mm, PLA 1.75 mm
Nozzle : 0.35 mm
Electronics: RepRap Sanguinololu 1.3b
Языки: C++ (Borland Builder 6.0), VBA, VBScript, Arduino IDE, T-SQL
andy_111
 
Сообщения: 46
Зарегистрирован: 29 окт 2012, 14:12

Re: Электронная мишень на базе Ардуино

Сообщение Vladimat » 15 ноя 2014, 01:54

Myp писал(а):скорость распространения колебаний металле слишком высокая, не выйдет засечь разницу, а вот микрофонами можно поймать разницу в звуке удара.

не понимаю, если это огромный лист, при попадании пули колебания распространяются в нём очень быстро и он начинает звенеть всей поверхностью. Как теперь ловить те колебания, которые пришли от точки удара, когда вокруг вибрирует огромная поверхность? Фильтровать гармроники? Не слишком наворочено? Может, тогда лист должен быть не стальным, а деревянной доской? И то наборной, чтобы не дрожала вся.
Vladimat
 
Сообщения: 434
Зарегистрирован: 04 ноя 2014, 01:57

Re: Электронная мишень на базе Ардуино

Сообщение Dmitry__ » 15 ноя 2014, 02:18

Myp писал(а):скорость распространения колебаний металле слишком высокая, не выйдет засечь разницу

А что не так с ловлей разницы в металле? :shock:
Ну 6000м/с, ну 30 кгц - один период = 200мм., про сдвиг фазы вообще молчу - поймать 1/100 периода - нивапрос, итог 2мм. Мне ндравицо :)
Аватара пользователя
Dmitry__
 
Сообщения: 8033
Зарегистрирован: 13 янв 2011, 15:25
Откуда: Санкт-Петербург

Re: Электронная мишень на базе Ардуино

Сообщение Vladimat » 15 ноя 2014, 16:39

Dmitry__ писал(а):
Myp писал(а):скорость распространения колебаний металле слишком высокая, не выйдет засечь разницу

А что не так с ловлей разницы в металле? :shock:
Ну 6000м/с, ну 30 кгц - один период = 200мм., про сдвиг фазы вообще молчу - поймать 1/100 периода - нивапрос, итог 2мм. Мне ндравицо :)

Можно пояснить вашу идею?
1. Вы будете ловить разницу прихода фронта первой волны до разных датчиков, и потом находить точку источника? Тогда, чтобы определить его с точностью хотя-бы 10см, надо поймать разницу во времени прихода волны в 1,7*10-5 сек. Это реально?
2. Вы будете анализировать сдвиг фаз волн в разных точках листа? Но, учитывая, что там сложная смесь разных гармоник и в разных точках листа разные гармоники будут по-разному резонировать и отражаться - это всё будет сильно зависеть от формы конкретного листа. И такая работа тянет на годы профессионального исследователького труда по моделированию колебаний именно в этом листе с помощью нехилого софта.

Добавлено спустя 2 минуты 13 секунд:
andy_111 писал(а):Всем привет! Заинтересовался возможностью создания электронной мишени. В общем, что хотелось бы сделать : есть мишень (пусть будет лист металла скажем 300x300 мм). На нем расчерчена/прилеплена картинка мишени. Попадаю из пистолета (пневматика) - система определяет координаты попадания пульки в пределах листа. Вариант с механическим нажатием не очень подходит - во первых, пуля должна обладать достаточной энергией для замыкания контакта, во вторых, встает вопрос о количестве контактных пластин и механической защите контактов. Хотелось бы сделать бесконтактное решение. Краем уха слышал о пьезоэлементах, но вплотную с ними не работал. Навскидку видится вот какой алгоритм. Например, по краям пластины стоят пьезоэлементы. При попадании пульки в лист каждый пьезоэлемент фиксирует удар/сотрясение. Так как пьезоэлементы физически разнесены, то фиксировать удар они будут с некоторым сдвигом по времени, который будет зависеть от удаления точки удара от датчика. Пьезоэлементы заведены на порты прерываний ардуины. При срабатывании пьезоэлемента на ардуине генерится соответствующее прерывание. В нем в глобальную переменную для данной пьезы сохраняется точное время (до микросекунд). В результате мы будем иметь 4 переменных, в каждой из которых будет время срабатывания каждой пьезы. Зная координаты пьезоэлементов и разницу срабатываний во времени, мы сможем вычислить координаты попадания.

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

Хотелось бы понять, стоит ли вообще копать в данном направлении.


1. Если ловить разность времени прихода звуковой волны до разных датчиков, то звуковая волна должна быть в воздухе, т.к. скорость звука в воздухе в 20 раз меньше, чем в металле - точность будет в 20 раз выше. Тогда замените стальной лист на мат из соломы. И отсекайте звук самого выстрела - ловите только звук попадания.
2. могу подкинуть ещё одну идею. Немного нагреть лист металла и тепловизором ловить появление дырочки в бумаге в ИК-диапазоне. Это не дёшево, и ардуино тут врядли к месту, но точность будет идеальная.
Vladimat
 
Сообщения: 434
Зарегистрирован: 04 ноя 2014, 01:57

Re: Электронная мишень на базе Ардуино

Сообщение Dmitry__ » 15 ноя 2014, 16:50

Vladimat писал(а):1. Вы будете ловить разницу прихода фронта первой волны до разных датчиков, и потом находить точку источника? Тогда, чтобы определить его с точностью хотя-бы 10см, надо поймать разницу во времени прихода волны в 1,7*10-5 сек. Это реально?

Да, реально, даже не такой и быстрый ацп нужен, частота квантования 1 mps за глаза.

Vladimat писал(а):2. Вы будете анализировать сдвиг фаз волн в разных точках листа?

Да, без вариантов, точнее разницу фаз между, например, 4-х откалиброванных датчиков (калибровать как на видео выше).
Vladimat писал(а):Но, учитывая, что там сложная смесь разных гармоник и в разных точках листа разные гармоники будут по-разному резонировать и отражаться - это всё будет сильно зависеть от формы конкретного листа.

А откуда там сложная смесь? Есно надо провести эксперименты. Но что-то мне подсказывает, что там будет одна основная нехилая гармоника (как отпускание струны). Отражения исключить из обработки (отрезать по времени), ловить только несколько первых периодов колебаний. Фазы ловить фильтровым способом, т.е. не пытаться сразу вычислять фазу между 2-мя микрофонами, а накопить данные фильтром на опред. частоту за 3-5 периодов и потом только вычислять фазу. Да, обработка не для контроллеров, это уже dsp, ряды Фурье. Но накопить знания о сигнале практикой можно и на простом компе с хорошим аудио граббером на 2-4 канала и какой-нибудь программой типа spectralab (она умеет показывать 3д спектр сигнала во времени).

Добавлено спустя 6 минут 27 секунд:
Vladimat писал(а):1. Если ловить разность времени прихода звуковой волны до разных датчиков, то звуковая волна должна быть в воздухе, т.к. скорость звука в воздухе в 20 раз меньше, чем в металле - точность будет в 20 раз выше.

Лишнее это, ловить звук надо в мишени, т.к. соотношение полезного сигнала к помехам будет в разы лучше чем в воздухе (в мишень не проникают звуки из воздуха), да и резонанс мишени - значительно более простой узнаваемый сигнал чем звук от разных пулек с разными скоростями.
Аватара пользователя
Dmitry__
 
Сообщения: 8033
Зарегистрирован: 13 янв 2011, 15:25
Откуда: Санкт-Петербург

Re: Электронная мишень на базе Ардуино

Сообщение Myp » 15 ноя 2014, 17:03

Dmitry__ писал(а):А что не так с ловлей разницы в металле?

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

Re: Электронная мишень на базе Ардуино

Сообщение Dmitry__ » 15 ноя 2014, 17:35

Приложи ухо к железному листу (2-е ухо закрой), пощелкай по листу железякой (осторожно, ухи не повреди :) ).
Задай себе вопрос, что проще распознать? Щелчки на фоне говора твоей жены с ребетенком и птичками за окном или этот ужасный грохот от которого перепонки лопаются :)
Сложность/цена одинаковая, для воздуха нужен dsp на 50мипсов (не факт что вообще распознаешь сигнал с такими внешними помехами), для металла - 200 мипсов, все укладывается в цену DSP Blackfin BF592 за 3$ :)
Аватара пользователя
Dmitry__
 
Сообщения: 8033
Зарегистрирован: 13 янв 2011, 15:25
Откуда: Санкт-Петербург

След.

Вернуться в Arduino и другие Xduino

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

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