Определение плоскостных координат
- Войдите на сайт для отправки комментариев
Сб, 13/12/2014 - 14:49
Уважаемые члены сообщества "ардуино".
На плоскости 140 на 150 см требуется определять координаты попадания теннисного мячика.
Думал о том какими датчиками и как это можно сделать.
Посколько ультразвук не подходит , инфра тоже не подходит - эти есть в наличии и проверено,
то получается , что только вибро может дать нужный сигнал, но проверить не могу из-за их временного
отсутствия.
Может ли кто-нибудь подтвердить возможность их применения в данном проекте.
Стол деревянный 140 на 150 см (повторюсь), желательная точность +- 1см.
Какое возможное быстродействие? Бегает ещё одна программа.
Или же есть другой способ определения точки удара на плоскости?
Заранее всем спасибо за участие.
210 тензодатчиков
Несколько микрофонов, или, скорее, пьезодатчиков - по кромке стола, а может и под ним, с обратной стороны.
Место удара определять по разности времени запаздывания звука для разных датчиков.
Кстати, если примерно прикинуть - точность получается не такая уж низкая. Но, конечно, это только мысли - для реальной оценки нужен эксперимент. :)
Несколько микрофонов, или, скорее, пьезодатчиков - по кромке стола, а может и под ним, с обратной стороны.
Место удара определять по разности времени запаздывания звука для разных датчиков.
Кстати, если примерно прикинуть - точность получается не такая уж низкая. Но, конечно, это только мысли - для реальной оценки нужен эксперимент. :)
Именно этот способ я и предполагаю, но вопрос в количестве датчиков - 2 должно хватать для расчёта
точки, но какова будет точность , а если больше - то как это отразится на скорости расчёта?
И сколько I/O надо будет предусмотреть?
Несколько микрофонов, или, скорее, пьезодатчиков - по кромке стола, а может и под ним, с обратной стороны.
Место удара определять по разности времени запаздывания звука для разных датчиков.
Кстати, если примерно прикинуть - точность получается не такая уж низкая. Но, конечно, это только мысли - для реальной оценки нужен эксперимент. :)
Именно этот способ я и предполагаю, но вопрос в количестве датчиков - 2 должно хватать для расчёта
точки, но какова будет точность , а если больше - то как это отразится на скорости расчёта?
И сколько I/O надо будет предусмотреть?
Насчет 2 не уверен, а вот 4 - должно работать.
P.S. подумалось.... А материал стола уже определен? Может быть лучше использовать пять пьезо датчиков (по угоам и в центре).
Да кто ж так сразу определит - говорю же, пробовать надо.
Тут дело скорее не в скорости расчёта, а в скорости опроса датчиков - точность, по-моему, больше зависит от этого. А обсчитать результаты измерений - с этим ардуина справится, я уверен. Почти. :)
Но двух датчиков явно мало. Если шарик попадает на линию между датчиками, или рядом с ней - точность измерения будет вообще никакая. Если, конечно, доверять моим смутным воспоминаниям о школьной геометрии и всяких разных прочих пифагорах. :)
Думаю, что определён - судя по размерам, это вполне стандартный пинг-понговый стол. Точнее, половина стола. :)
И да, такое расположение датчиков - по углам и в центре - мне вполне нравится.
Думаю, что определён - судя по размерам, это вполне стандартный пинг-понговый стол. Точнее, половина стола. :)
И да, такое расположение датчиков - по углам и в центре - мне вполне нравится.
Тогда пьезо не пойдут - стол тяжелый а шарик легуий - пьезо не будут реагировать.
Тогда очень кратко предысторию.
Тренер попросил меня, как единственно как-то разбирающегося в электронике, соорудить ему на тренировочном столе для детей
9 рандомайзных подсветок по квадратам. Что я и сотворил на УНО, задействовав 10 выходов.
Теперь идёт речь , чтобы добавить индикацию попаданий в квадрат. Вот... Сижу думаю...
Насчет 2 не уверен, а вот 4 - должно работать.
Вот - чем больше , тем лучше , но ограничен входами. А по осям Х и У разве не рачитывается?
Да кто ж так сразу определит - говорю же, пробовать надо.
Тут дело скорее не в скорости расчёта, а в скорости опроса датчиков - точность, по-моему, больше зависит от этого. А обсчитать результаты измерений - с этим ардуина справится, я уверен. Почти. :)
Но двух датчиков явно мало. Если шарик попадает на линию между датчиками, или рядом с ней - точность измерения будет вообще никакая. Если, конечно, доверять моим смутным воспоминаниям о школьной геометрии и всяких разных прочих пифагорах. :)
Было б что пробовать - пробовал бы - потыркать проводочки. Но я даже не знаю что использовать
в этом случае. По опросу датчиков - наткнулся как раз на такую траблу по опросу нескольких инфра -
тормозило.
Интересная задача, мне понравилось. :)
Но пока кроме стука и звука ничего в голову не приходит. Надо пробовать, больше нечего сказать.
Я бы, для начала, слепил какую-нибудь одномерную модель. То есть, какую-нибудь доску-рейку, с датчиками на концах - и попробовать стучать по ней шариком в разных местах. Так, хотя бы, можно выяснить, работает ли этот способ в принципе, и хотя бы примерно оценить точность.
Насчёт "тормозило" - это надо задачи выбирать ардуине по силам. Ну и, конечно, программировать правильно. :)
Насчёт "инфра" - я вообще, если честно, не понял. Что за датчики, и как ими измерять?
Да и ультразвуком, тоже не понял как - эхо от шарика ловить? По-моему, маловат он для этого.
А датчиков на плоскости, как ни крути, понадобится всё же три, как минимум. Точность будет выше в разы, по сравнению с двумя.
Интересная задача, мне понравилось. :)
Но пока кроме стука и звука ничего в голову не приходит. Надо пробовать, больше нечего сказать.
Я бы, для начала, слепил какую-нибудь одномерную модель. То есть, какую-нибудь доску-рейку, с датчиками на концах - и попробовать стучать по ней шариком в разных местах. Так, хотя бы, можно выяснить, работает ли этот способ в принципе, и хотя бы примерно оценить точность.
Рад , что подкинул неординарную задачку :)
Действительно , после прикидок ( ультра- и инфралокация не проходит из-за нелинейной траектории
полёта мяча) осталась только определение места удара. Вопрос звучал изначально - чем?
Потому как ничего под рукой нет, а надо б что-то заказать.
Насчёт "тормозило" - это надо задачи выбирать ардуине по силам. Ну и, конечно, программировать правильно. :)
Насчёт "инфра" - я вообще, если честно, не понял. Что за датчики, и как ими измерять?
Да и ультразвуком, тоже не понял как - эхо от шарика ловить? По-моему, маловат он для этого.
Инфра был в другом проекте. И ультра - тоже - дальномеры.
А датчиков на плоскости, как ни крути, понадобится всё же три, как минимум. Точность будет выше в разы, по сравнению с двумя.
Ну три - не пять, уже хорошо.
Спасибо за участие.
А почему не взять за основу резистивные или емкостные тачскрины....
а у меня другой вопрос. нафига разрешение 1см если просто 9 зон нужно отслеживать?
так чисто хотелка получается от автора. почему бы и нет
А почему не взять за основу резистивные или емкостные тачскрины....
Можно какой-нибудь пример 140 на 150 см ?
а у меня другой вопрос. нафига разрешение 1см если просто 9 зон нужно отслеживать?
так чисто хотелка получается от автора. почему бы и нет
Никакой хотелки - зоны расчерчены 1 см полосой, а разрешение получается +-1.
Тренер сказал - буду думать.
В игровых автоматах используют тачскрины на мониторах где нужно кидать шарики и сбивать "плохих дядей".
Или атомат по пополнению баланса.
В общем тачскрин тут нужен большой.
От тачскрина пополнения баланса шарик будет плохо отскакивать. :)
-------
Потому как ничего под рукой нет, а надо б что-то заказать.
Не надо заказывать, предлагаю другое предложение. :)
Сегодня экспериментировал. Купил в магазине два микрофона по 10 р., и два пьезоизлучателя - обычные бипкалки для будильников, ЗП-3, по 5 р.
Насчёт пьезоизлучателей сомневался, тем более, вон, Gippopotam тоже сказал, что не почувствуют они. Оказалось, зря. Чувствуют настолько хорошо, что с микрофонами даже пробовать не стал.
К тому же, пьезоизлучатели совсем "не слышат" посторонние звуки, и плохо слышат мягкие удары по столу, например ладонью. Зато на резкие удары шарика реагируют очень хорошо.
Хотел паять усилители на ОУ - не понадобилось. Уровень сигнала, по осциллографу - сотни милливольт, а при сильном ударе - до нескольких вольт. Боюсь даже спалить входы ардуины, т. к. без щупа осциллографа напряжение, наверное, будет ещё больше. Надо бы прилепить какие-нибудь ограничители.
Сигнал гладкий и ровный, никаких собственных шумов у пьезоизлучателя не заметил.
Эксперимент выглядел так:
К столу (обычному, не теннисному) прицепил прищепками два излучателя, по углам. Ну и, к каждому излучателю по щупу осциллографа. Вот и вся схема.
Стучал шариком по столу, на разном расстоянии от датчиков, и наблюдал, на сколько сигналы смещены относительно друг друга. Подтверждаю, смещены, вполне заметно на глаз, при перемещении шарика на несколько сантиметров. И даже на один сантиметр - тоже немного заметно.
Из хороших новостей - всё. :)
Теперь о плохом. Сигнал с датчиков, хоть и "качественный", но имеет достаточно сложную форму, которая сильно зависит от места удара шарика. И если "на глаз" место начала щелчка определить легко, то это не значит, что ардуина так же легко с этим справится.
Усиливать сигнал - значит ловить кучу ложных срабатываний, от малейших шорохов. Не усиливать - значит терять начало щелчка, т. к. самый высокий уровень у него получается далеко не в самом начале.
Так что, скорее всего, придётся сделать что-то наподобие "запоминающего осциллографа" на ардуине, чтобы поймав и уверенно определив щелчок шарика, можно было немного вернуться назад, и проанализировать сигнал перед моментом срабатывания.
Такие вот результаты предварительных исследований. :)
Datak Спасибо за эксперимент,
а как подключить пьезоэлементы в учебнике по Ардуино написано http://www.arduino.cc/en/Tutorial/Knock
Усиливать сигнал - значит ловить кучу ложных срабатываний, от малейших шорохов. Не усиливать - значит терять начало щелчка, т. к. самый высокий уровень у него получается далеко не в самом начале.
Так что, скорее всего, придётся сделать что-то наподобие "запоминающего осциллографа" на ардуине, чтобы поймав и уверенно определив щелчок шарика, можно было немного вернуться назад, и проанализировать сигнал перед моментом срабатывания.
Такие вот результаты предварительных исследований. :)
Спасибо за мысль. Со своей стороны подумал - а если промодулировать несущим сигналом с противоположных сторон стола сам стол - тогда все помехи можно будет опустить ниже уровня срабатывания порога. И сделать "защёлку" по первому "щелчку".
Спросил совета у старшего сына - он вообще предложил не париться, а запустить OPENCV библиотеку, поставить одну камеру и отслеживать точку удара. Но, по его мнению, ардуино не потянет расчёт, а распбери пи потянет.
ЗЫ.
"Хотел паять усилители на ОУ - не понадобилось. Уровень сигнала, по осциллографу - сотни милливольт, а при сильном ударе - до нескольких вольт. Боюсь даже спалить входы ардуины, т. к. без щупа осциллографа напряжение, наверное, будет ещё больше. Надо бы прилепить какие-нибудь ограничители."
Встречно-параллельные диоды (или светодиоды) решат эту проблему легко.
Насчёт пьезоизлучателей сомневался, тем более, вон, Gippopotam тоже сказал, что не почувствуют они. Оказалось, зря. Чувствуют настолько хорошо, что с микрофонами даже пробовать не стал.
Я имел в виду, что теннисный стол сам по себе - плохая мембрана, и прикрепленные с обратной стороны стола (чтобы не мешали играть) датчики не дадут адекватной картины. Вот лист пластика - это да.
Я сейчас делаю Drum Kit - пробовал разные материалы для "барабанов". Кстати, избытки напряжения (это совет из того-же Drum Kit) убираются пятивольтовым стабилитроном.
В принципе, по девять пьезо на каждую половину стола могут дать более реальную картину. А уж по 16 - так и вообще можно к точности в пару см. приблизится...
В принципе, по девять пьезо на каждую половину стола могут дать более реальную картину. А уж по 16 - так и вообще можно к точности в пару см. приблизится...
В интерактивных тирах считают удар по 4 датчикам до миллиметров. 9 и тем более 16 датчиков обсчитывать сложно.
В принципе, по девять пьезо на каждую половину стола могут дать более реальную картину. А уж по 16 - так и вообще можно к точности в пару см. приблизится...
В интерактивных тирах считают удар по 4 датчикам до миллиметров. 9 и тем более 16 датчиков обсчитывать сложно.