Никогда вам не хотелось поиграть в старые добрые игры, которые поражали наши детские умы и врезались в память своей захватывающей картинкой? Если все же ответ «да», то Вы наверняка знаете про эмуляторы приставок для компьютеров, возможно, даже пробовали поиграть в некоторые игры, но атмосфера уже не та, как прежде. Нажимать кнопки на клавиатуре весьма неудобно, особенно в очень динамичных играх, и не хватает давно забытого ощущения джойстика (или как сейчас по-современному их называют – геймпад) в руке.
Далеко не секрет, что у многих из нас в самых отдаленных углах кладовок, хранятся старые или нерабочие приставки, контроллер от которых мы можем использовать в своих целях. На этот раз давайте попробуем подключить геймпад к ПК от всеми любимой Sega Mega Drive 2 (она же Genesis).
Итак, что для этого понадобится:
- Джойстик от Sega Mega Drive 2
- Arduino (Подойдет любая. В нашем случае это Nano)
- Разъем DB9 (По желанию)
Для начала нужно разобраться как же приставка «общается» с джойстиком, чтобы понять что и как нам подключать. Протокол Sega очень прост в освоении, стандартизирован и достаточно легок для понимания.
Для начала распиновка разъема:
Если в 2-х словах и простым языком, то управляющая плата джойстика посылает в зависимости от нажатой клавиши +5 вольт на нужный контакт, который нужно считывать. Но у контроллера управляющих проводов всего 6, а кнопок 8.
Для этого инженеры в Sega придумали весьма своеобразное решение – чтобы консоль получила состояние кнопок, на управляющий провод «Select» подается импульс амплитудой в пять вольт и геймпад отдает сигналы кнопок «Вверх», «Вниз», «Влево», «Вправо», «В», «С», а для того, чтобы получить остальные – питание с «Select» снимается и джойстик отдает состояние оставшихся кнопок «А» и «Start».
Позднее были добавлены ещё три кнопки. И снова необычное решение со стороны компании – консоль опрашивала джойстик джойстик три раза, посылая аналогичные импульсы и на третий раз контроллер выдавал состояние кнопок «X», «Y», «Z».
А теперь перейдем к практике:
Подключаем DB9 разъем к Arduino (1 -> D2, 2 ->D3, 3 ->D4, 4 ->D5, 5 -> 5v, 6 -> D6, 7 -> D7, 8 -> Gnd, 9 -> D8). Никаких дополнительных компонентов не нужно.
Разъем последовательного порта в наши дни достаточно редкий экземпляр и в маленьких городах достать такой практически невозможно. Потому, можно «скормить» штекеру джойстика обычные PLS разъемы/«штырьки», которые обычно идут в комплекте с Arduino:
К сожалению, DB9 я не нашел. Собственно, таким методом я и воспользовался – освободил их от BLS коннекторов и аккуратно припаял к ним PLS разъем:
В самом разъеме контроллера они держатся крепко и не выпадают. Главное, не забудьте пометить где верх, а где низ, чтобы не перепутать провода местами. Вот так выглядит полное подключение:
Далее нужно написать скетч и залить прошивку в Arduino, но потому что микроконтроллер данной серии не может представляться системе как USB HID устройство, а эмулируется подключение в последовательный порт, то придется работать с ним.
В данном случае, выход из ситуации предстоит следующий – нужна сторонняя программа, которая будет принимать и обрабатывать данные из последовательного порта и эмулировать нажатия клавиш клавиатуры (некоторые модели, такие как Leonardo и Duo, аппаратно поддерживают данную эмуляцию и сторонний софт на ПК не требуется).
Осталось дело за малым – подключить Arduino к ПК, запустить программу, выбрать порт, настроить эмулятор и пользоваться.
Прикрепленные файлы:
- SMDFiles.rar (156 Кб)