Разработка приставки для игрового джойстика - геймпада.

Дисплеи, датчики и прочие функциональные узлы, управляемые МК.
Ответить
Встал на лапы
Сообщения: 147
Зарегистрирован: Чт янв 10, 2013 21:03:18

Сообщение МКС »

Привет уважаемые участники форума!
Работаю над одним проектом. Есть проблемы с программой к моему девайсу. Может, кто подскажет. Хочу доработать джойстик (геймпад) и превратить его в игровое ружье, автомат или пистолет (корпус пока не важен) для игры в контрстрайк и подобные. Принцип такой.,, вверху по центру монитора закрепляется инфракрасный светодиод – маркер который светит в сторону игрока. Игрок держит в руке автомат со встроенной платой геймпада и прицеливается в сторону изображения на мониторе. В дуле автомата находится миниатюрная CMOS - видеокамера от систем видеонаблюдения.
На объектив камеры надет инфракрасный фильтр, отсеивающий видимый спектр. Поэтому камера «видит» только светящуюся точку от ИК светодиода– маркера. На выходе видеокамеры формируется видеосигнал, где в строках каждого полукадрового поля присутствует только сигнал изображения от ИК - светодиода маркера, строчные синхроимпульсы и кадровые гасящие импульсы. Если камеру перемещать относительно ИК – маркера по вертикали (по оси - Y), то импульсы сигнала изображения «сдвигаются» по строкам в четных и нечетных полукадровых полях относительно кадровых гасящих синхроимпульсов видеосигнала.
При изменении положения камеры по горизонтали (по оси - X), видеоимпульсы смещаются по строке (по отношению к спаду строчных синхроимпульсов). Следовательно, определяя положение видеоимпульса маркера в каждом полукадровом поле и строках, можно простыми методами определять координаты объекта слежения по двум осям координат (Х и Y). Далее…
Вложения
Осцилограмма полученного сигнала.png
(11.78 КБ) 650 скачиваний
Реклама
Встал на лапы
Сообщения: 147
Зарегистрирован: Чт янв 10, 2013 21:03:18

Сообщение МКС »

В системе слежения за объектом по оси «Y» можно использовать счетчик импульсов. На его тактовый вход будут поступать строчные синхроимпульсы от видеокамеры (известно, что при чересстрочной развертке в каждом полукадре укладывается целое число строк плюс половина строки (625 : 2 = 312,5)). Сброс (обнуление) счетчика осуществляется кадровыми синхроимпульсами, выделенными в селекторе синхроимпульсов видеосигнала. Таким образом, пачки прямоугольных импульсов в количестве Nимп. = 313 (сформированные полукадровыми полями) видеосигнала подсчитываются счетчиком импульсов.
Информация о состоянии счетчика перезаписывается в регистр. Запись числа в регистр происходит под действием фронта импульса, сформированного видеосигналом изображения от маркера. Далее информация с регистра по шине данных передается на цифро-аналоговый преобразователь (ЦАП), преобразующий цифровой двоичный код в уровень постоянного напряжения. При перемещении маркера по вертикали (относительно видеокамеры), изменяется время появления видеоимпульса сигнала изображения относительно кадровых синхроимпульсов. Соответственно перезаписывается двоичное число в регистре и на выходе ЦАП изменяется уровень постоянного напряжения. Таким образом, при перемещении маркера по вертикали на выходе схемы – «Uy» будет пропорционально изменяться уровень постоянного напряжения в диапазоне от 0 до + Uист. пит.
Система слежения по оси «Х» содержит те же узлы, что и предложенная система по оси «Y» . Отличие состоит лишь в том, что на вход счетчика подаются прямоугольные импульсы от тактового генератора, работающего на частоте 5 МГц, а сброс осуществляется по спаду строчных синхроимпульсов. Известно, что период строчной развертки Тс.р. = 64 мкс. Период импульса опорного генератора - То.г. работающего на частоте 5 МГц можно рассчитать по формуле: F = 1 / T, отсюда Tо.г = 1 / FГц ; То.г = 1/ 50000000 Гц = 0,00000002 с = 0,2 мкс (То.г = 0,2 с). При этом за один период импульса строчной развертки – Тсси, счетчик будет успевать подсчитывать число импульсов равное: Nимп. = Тсси / То.г =
= 64мкс / 0,2мкс = 320. Этого вполне достаточно для определения координат положения объекта в зоне видимости камеры по горизонтали.
Аналогично, как и в системе слежения по оси координат – «Y», в данной схеме применяется регистр и ЦАП. При перемещении маркера в зоне видимости камеры по оси – «Х» (по горизонтали), на выходе – «Ux» ЦАП происходит пропорциональное изменение значение напряжения в диапазоне от 0 до + Uист. пит.
Вложения
Структурная схема узла определения координат маркера по оси Y.png
(11.76 КБ) 398 скачиваний
Структурная схема узла определения координат маркера по оси Х.png
(12.35 КБ) 618 скачиваний
Реклама
Говорящий с текстолитом
Аватара пользователя
Сообщения: 1518
Зарегистрирован: Пт дек 28, 2012 21:56:46
Откуда: St. Petersburg

Сообщение blackx »

Ну, удачи вам, что еще сказать. :)
Изображение only pure true norwegian blackx Изображение
Встал на лапы
Сообщения: 147
Зарегистрирован: Чт янв 10, 2013 21:03:18

Сообщение МКС »

Структурная схема для пояснения принципа работы всего устройства
Вложения
Структурная схема варианта датчика - приставки к геймпаду.jpg
(161.17 КБ) 605 скачиваний
Реклама
Эиком - электронные компоненты и радиодетали
Встал на лапы
Аватара пользователя
Сообщения: 117
Зарегистрирован: Вс апр 12, 2009 22:40:37

Сообщение zebrox »

Если уж есть камера, то думаю, на много проще бы было обрабатывать ее изображение, сравнивать с изображением на эране, и получать координату уже в системе монитора.

Нет ничего невзоможного.
Я так понял, на выходе устройства будут координаты в системе пзс матрицы, а не экрана? Нужно подумать как их правильно преобразовать в координаты монитора с учетом разных возможных разрешений.

Можно еще придумать систему и ик фотодиодов, расположенных по сфере либо плоскости, и по разности освещенности получать координаты.

Можно еще например разместить четыре ик светодиода, по углам монитора, промодулировать каждый своим сигналом, а приемник, на основе уровней сигналов, будет их переводить в координаты.

Вариантов много.
Реклама
Говорящий с текстолитом
Аватара пользователя
Сообщения: 1518
Зарегистрирован: Пт дек 28, 2012 21:56:46
Откуда: St. Petersburg

Сообщение blackx »

Вариант то автор темы выбрал, он просит помочь с программированием (если я правильно понял), т. е. с выделением координат появления пятна от ИК-излучателя на матрице камеры. По-моему, проект слишком сложный чтобы на форуме вам смогли помочь.

Автор, может лучше вместо теории напишете что уже самому удалось сделать? Конкретизируйте вашу проблему, что вы от участников форума то хотите?
Изображение only pure true norwegian blackx Изображение
Реклама
Встал на лапы
Сообщения: 147
Зарегистрирован: Чт янв 10, 2013 21:03:18

Сообщение МКС »

Да, я конкретизирую свой вопрос, но перед этим хочу объяснить принцип работы данного устройства.


Для управления прицелом оружия виртуального игрока можно использовать правый джойстик любого геймпада. Джойстик соответственно двигает ползунки двух резисторов расположенных на крестовине. Двигая джойстик вперед -назад , прицел игрока поднимается вверх - вниз. Перемещая джойстик влево-вправо, прицел перемещается влево вправо (соответственно). С помощью этих резисторов на входах платы геймпада изменяется уровень постоянного напряжения в диапазоне от 0 до 3 В. Поэтому получается следующая картина... двигаем джойстик по оси- Y вперед, прицел на экране поднимается вверх (напряжение на входе Y геймпада увеличивается до 3 В). Двигаем джойстик по оси- Y назад, прицел на экране опускается вниз (напряжение на входе Y гемпада уменьшается до 0 В. Двигаем джойстик по оси- Х вправо, прицел на экране смещается вправо (напряжение на входе Х геймпада уменьшается до 0 В). Двигаем джойстик по оси- Х влево, прицел на экране смещается влево (напряжение на входе Х геймпада увеличивается до 3 В). Для остановки перемещения прицела надо отпустить джойстик и он возвращается в центральное положение. При этом напряжения на входах X и Y геймпада равно по 1.5 В.
Вложения
Резисторы джойстика геймпада.png
(144.28 КБ) 621 скачивание
Встал на лапы
Сообщения: 147
Зарегистрирован: Чт янв 10, 2013 21:03:18

Сообщение МКС »

Теперь я выпаиваю резисторы правого джойстика и подаю на освободившиеся входы X и Y платы геймпада управляющие напряжения от моего датчика с видеокамерой. Получается следующее… например я начинаю поднимать ствол ружья с камерой вверх относительно ИК – маркера, при этом на выходе моего датчика формируется напряжение 3 В и плата геймпада распознает его, как сигнал управления – «перемещение вверх». Как только я останавливаю движение оружия, на выходе датчика тут же формируется напряжение 1, 5 В. Для геймпада это сигнал «стоп». Если опускать дуло оружия вниз на выходе формируется уровень – 0 В. Остановил движение – опять формируется 1,5 В (стоп). Аналогичные сигналы формируются по оси перемещения –Х.
Встал на лапы
Сообщения: 147
Зарегистрирован: Чт янв 10, 2013 21:03:18

Сообщение МКС »

Для реализации идеи я разработал схему блока обработки изображения и формирования необходимых сигналов управления на микроконтроллере ATmega 8.

Схема приведена ниже.
Вложения
Схема TrackIR для геймпада.jpg
(135.21 КБ) 635 скачиваний
Встал на лапы
Сообщения: 147
Зарегистрирован: Чт янв 10, 2013 21:03:18

Сообщение МКС »

Здесь исходник к управляющей программе. Частично все получается как задумал, но есть проблемы....
Вложения
TrackIR для геймпада.txt
(19.29 КБ) 257 скачиваний
Друг Кота
Аватара пользователя
Сообщения: 3832
Зарегистрирован: Сб сен 10, 2011 17:46:25

Сообщение oleg110592 »

сложновато, может лучше так: http://www.youtube.com/watch?v=9ispQtzxBzA
Встал на лапы
Сообщения: 147
Зарегистрирован: Чт янв 10, 2013 21:03:18

Сообщение МКС »

oleg110592 писал(а):сложновато, может лучше так: http://www.youtube.com/watch?v=9ispQtzxBzA
Да, интересно. Я так понял внутри параллельно кнопкам подпаяны что -то типа контактов с грузиками или акселерометр.
Говорящий с текстолитом
Аватара пользователя
Сообщения: 1518
Зарегистрирован: Пт дек 28, 2012 21:56:46
Откуда: St. Petersburg

Сообщение blackx »

По-моему неудобно - ровно как и просто джойстиком управлять.
Изображение only pure true norwegian blackx Изображение
Поставщик валерьянки для Кота
Аватара пользователя
Сообщения: 2482
Зарегистрирован: Пт авг 27, 2010 05:57:06
Откуда: Тюмень

Сообщение vitalik_1984 »

Руки в конце игры отвалятся просто.Лучше уж тогда джойстик - ручка. Как в авиасимуляторах.
Контактная информация:
Встал на лапы
Сообщения: 147
Зарегистрирован: Чт янв 10, 2013 21:03:18

Сообщение МКС »

Но я работаю с оптическими вариантами датчиков. И сейчас модифицирую свой предыдущий проект.

Видео здесь: http://youtu.be/P--aJEUhbOc
Друг Кота
Аватара пользователя
Сообщения: 3832
Зарегистрирован: Сб сен 10, 2011 17:46:25

Сообщение oleg110592 »

ну тогда тут можно купить недорого: http://www.comp2.ru/PRWebs/NP/index.htm#Use
Ответить

Вернуться в «Периферия»