| Форум РадиоКот https://radiokot.ru/forum/ |
|
| Разработка приставки для игрового джойстика - геймпада. https://radiokot.ru/forum/viewtopic.php?f=61&t=83868 |
Страница 1 из 1 |
| Автор: | МКС [ Вт янв 22, 2013 19:10:30 ] | ||
| Заголовок сообщения: | Разработка приставки для игрового джойстика - геймпада. | ||
Привет уважаемые участники форума! Работаю над одним проектом. Есть проблемы с программой к моему девайсу. Может, кто подскажет. Хочу доработать джойстик (геймпад) и превратить его в игровое ружье, автомат или пистолет (корпус пока не важен) для игры в контрстрайк и подобные. Принцип такой.,, вверху по центру монитора закрепляется инфракрасный светодиод – маркер который светит в сторону игрока. Игрок держит в руке автомат со встроенной платой геймпада и прицеливается в сторону изображения на мониторе. В дуле автомата находится миниатюрная CMOS - видеокамера от систем видеонаблюдения. На объектив камеры надет инфракрасный фильтр, отсеивающий видимый спектр. Поэтому камера «видит» только светящуюся точку от ИК светодиода– маркера. На выходе видеокамеры формируется видеосигнал, где в строках каждого полукадрового поля присутствует только сигнал изображения от ИК - светодиода маркера, строчные синхроимпульсы и кадровые гасящие импульсы. Если камеру перемещать относительно ИК – маркера по вертикали (по оси - Y), то импульсы сигнала изображения «сдвигаются» по строкам в четных и нечетных полукадровых полях относительно кадровых гасящих синхроимпульсов видеосигнала. При изменении положения камеры по горизонтали (по оси - X), видеоимпульсы смещаются по строке (по отношению к спаду строчных синхроимпульсов). Следовательно, определяя положение видеоимпульса маркера в каждом полукадровом поле и строках, можно простыми методами определять координаты объекта слежения по двум осям координат (Х и Y). Далее…
|
|||
| Автор: | МКС [ Вт янв 22, 2013 19:32:36 ] | |||
| Заголовок сообщения: | Re: Разработка приставки для игрового джойстика - геймпада. | |||
В системе слежения за объектом по оси «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ист. пит.
|
||||
| Автор: | blackx [ Вт янв 22, 2013 19:43:52 ] |
| Заголовок сообщения: | Re: Разработка приставки для игрового джойстика - геймпада. |
Ну, удачи вам, что еще сказать. |
|
| Автор: | МКС [ Вт янв 22, 2013 19:48:18 ] | ||
| Заголовок сообщения: | Re: Разработка приставки для игрового джойстика - геймпада. | ||
Структурная схема для пояснения принципа работы всего устройства
|
|||
| Автор: | zebrox [ Вт янв 22, 2013 20:11:41 ] |
| Заголовок сообщения: | Re: Разработка приставки для игрового джойстика - геймпада. |
Если уж есть камера, то думаю, на много проще бы было обрабатывать ее изображение, сравнивать с изображением на эране, и получать координату уже в системе монитора. Нет ничего невзоможного. Я так понял, на выходе устройства будут координаты в системе пзс матрицы, а не экрана? Нужно подумать как их правильно преобразовать в координаты монитора с учетом разных возможных разрешений. Можно еще придумать систему и ик фотодиодов, расположенных по сфере либо плоскости, и по разности освещенности получать координаты. Можно еще например разместить четыре ик светодиода, по углам монитора, промодулировать каждый своим сигналом, а приемник, на основе уровней сигналов, будет их переводить в координаты. Вариантов много. |
|
| Автор: | blackx [ Вт янв 22, 2013 20:19:45 ] |
| Заголовок сообщения: | Re: Разработка приставки для игрового джойстика - геймпада. |
Вариант то автор темы выбрал, он просит помочь с программированием (если я правильно понял), т. е. с выделением координат появления пятна от ИК-излучателя на матрице камеры. По-моему, проект слишком сложный чтобы на форуме вам смогли помочь. Автор, может лучше вместо теории напишете что уже самому удалось сделать? Конкретизируйте вашу проблему, что вы от участников форума то хотите? |
|
| Автор: | МКС [ Вт янв 22, 2013 20:23:45 ] | ||
| Заголовок сообщения: | Re: Разработка приставки для игрового джойстика - геймпада. | ||
Да, я конкретизирую свой вопрос, но перед этим хочу объяснить принцип работы данного устройства. Для управления прицелом оружия виртуального игрока можно использовать правый джойстик любого геймпада. Джойстик соответственно двигает ползунки двух резисторов расположенных на крестовине. Двигая джойстик вперед -назад , прицел игрока поднимается вверх - вниз. Перемещая джойстик влево-вправо, прицел перемещается влево вправо (соответственно). С помощью этих резисторов на входах платы геймпада изменяется уровень постоянного напряжения в диапазоне от 0 до 3 В. Поэтому получается следующая картина... двигаем джойстик по оси- Y вперед, прицел на экране поднимается вверх (напряжение на входе Y геймпада увеличивается до 3 В). Двигаем джойстик по оси- Y назад, прицел на экране опускается вниз (напряжение на входе Y гемпада уменьшается до 0 В. Двигаем джойстик по оси- Х вправо, прицел на экране смещается вправо (напряжение на входе Х геймпада уменьшается до 0 В). Двигаем джойстик по оси- Х влево, прицел на экране смещается влево (напряжение на входе Х геймпада увеличивается до 3 В). Для остановки перемещения прицела надо отпустить джойстик и он возвращается в центральное положение. При этом напряжения на входах X и Y геймпада равно по 1.5 В.
|
|||
| Автор: | МКС [ Вт янв 22, 2013 20:43:42 ] |
| Заголовок сообщения: | Re: Разработка приставки для игрового джойстика - геймпада. |
Теперь я выпаиваю резисторы правого джойстика и подаю на освободившиеся входы X и Y платы геймпада управляющие напряжения от моего датчика с видеокамерой. Получается следующее… например я начинаю поднимать ствол ружья с камерой вверх относительно ИК – маркера, при этом на выходе моего датчика формируется напряжение 3 В и плата геймпада распознает его, как сигнал управления – «перемещение вверх». Как только я останавливаю движение оружия, на выходе датчика тут же формируется напряжение 1, 5 В. Для геймпада это сигнал «стоп». Если опускать дуло оружия вниз на выходе формируется уровень – 0 В. Остановил движение – опять формируется 1,5 В (стоп). Аналогичные сигналы формируются по оси перемещения –Х. |
|
| Автор: | МКС [ Вт янв 22, 2013 20:49:50 ] | ||
| Заголовок сообщения: | Re: Разработка приставки для игрового джойстика - геймпада. | ||
Для реализации идеи я разработал схему блока обработки изображения и формирования необходимых сигналов управления на микроконтроллере ATmega 8. Схема приведена ниже.
|
|||
| Автор: | МКС [ Вт янв 22, 2013 20:54:00 ] | ||
| Заголовок сообщения: | Re: Разработка приставки для игрового джойстика - геймпада. | ||
Здесь исходник к управляющей программе. Частично все получается как задумал, но есть проблемы....
|
|||
| Автор: | oleg110592 [ Вт янв 22, 2013 21:04:29 ] |
| Заголовок сообщения: | Re: Разработка приставки для игрового джойстика - геймпада. |
сложновато, может лучше так: http://www.youtube.com/watch?v=9ispQtzxBzA |
|
| Автор: | МКС [ Вт янв 22, 2013 21:09:16 ] |
| Заголовок сообщения: | Re: Разработка приставки для игрового джойстика - геймпада. |
oleg110592 писал(а): сложновато, может лучше так: http://www.youtube.com/watch?v=9ispQtzxBzA Да, интересно. Я так понял внутри параллельно кнопкам подпаяны что -то типа контактов с грузиками или акселерометр. |
|
| Автор: | blackx [ Вт янв 22, 2013 21:18:21 ] |
| Заголовок сообщения: | Re: Разработка приставки для игрового джойстика - геймпада. |
По-моему неудобно - ровно как и просто джойстиком управлять. |
|
| Автор: | vitalik_1984 [ Вт янв 22, 2013 22:10:49 ] |
| Заголовок сообщения: | Re: Разработка приставки для игрового джойстика - геймпада. |
Руки в конце игры отвалятся просто.Лучше уж тогда джойстик - ручка. Как в авиасимуляторах. |
|
| Автор: | oleg110592 [ Ср янв 23, 2013 09:04:11 ] |
| Заголовок сообщения: | Re: Разработка приставки для игрового джойстика - геймпада. |
тут: http://learn.adafruit.com/usb-snes-gamepad http://www.starlino.com/usb_gamepad.html |
|
| Автор: | МКС [ Ср янв 23, 2013 10:38:57 ] |
| Заголовок сообщения: | Re: Разработка приставки для игрового джойстика - геймпада. |
Но я работаю с оптическими вариантами датчиков. И сейчас модифицирую свой предыдущий проект. Видео здесь: http://youtu.be/P--aJEUhbOc |
|
| Автор: | oleg110592 [ Ср янв 23, 2013 12:04:35 ] |
| Заголовок сообщения: | Re: Разработка приставки для игрового джойстика - геймпада. |
ну тогда тут можно купить недорого: http://www.comp2.ru/PRWebs/NP/index.htm#Use |
|
| Страница 1 из 1 | Часовой пояс: UTC + 3 часа |
| Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group http://www.phpbb.com/ |
|


