Arduino Leonardo В Качестве Адаптера Segamegadrive Gamepad->Usb



Предисловие Недавно я обнаружил два давно забытых старых геймпада от SMD, сама консоль давно потерялась и геймпады все это время пылились без использования, но они работают и как-то не могу заставить себя выкинуть " живые» устройства.

Я решил подключить их к компьютеру, хоть какая-то польза от них есть, а в качестве адаптера мы используем Arduino Leonardo.



Протокол SMD геймпада



Arduino Leonardo в качестве адаптера SegaMegaDrive Gamepad->USB В простейшем случае получение данных выглядит так:
ПРИКОЛОТЬ Направление Выберите=НИЗКИЙ Выберите = ВЫСОКИЙ
1 В ВВЕРХ.

ВВЕРХ.

2 В ВНИЗ ВНИЗ
3 В ВЫСОКИЙ ЛЕВЫЙ
4 В ВЫСОКИЙ ВЕРНО
5 ВНЕ 5 В 5 В
6 В А Б
7 ВНЕ Выбирать Выбирать
8 ВНЕ Земля Земля
9 В Начинать С
Индикаторы меняются в зависимости от изменения контакта Select. Как видите, здесь не хватает 4 ключей.

Получить их немного сложно: нужно сделать 2 изменения.

Выбрать LOW-> HIGH с интервалом 1,1-1,2 миллисекунды, после чего выводы 1,2,3,4 становятся LOW, и еще одним изменением выбрать LOW-> HIGH Z. На них появляются значения Y,X,Mode соответственно.

Выбирать ПИН-код 1 ПИН-код 2 ПИН-код 3 ПИН-код 4
НИЗКИЙ ВВЕРХ.

ВНИЗ НИЗКИЙ НИЗКИЙ
ВЫСОКИЙ ВВЕРХ.

ВНИЗ ЛЕВЫЙ ВЕРНО
НИЗКИЙ ВВЕРХ.

ВНИЗ НИЗКИЙ НИЗКИЙ
ВЫСОКИЙ ВВЕРХ.

ВНИЗ ЛЕВЫЙ ВЕРНО
НИЗКИЙ НИЗКИЙ НИЗКИЙ НИЗКИЙ НИЗКИЙ
ВЫСОКИЙ З Да Икс РЕЖИМ
НИЗКИЙ ВЫСОКИЙ ВЫСОКИЙ ВЫСОКИЙ ВЫСОКИЙ
ВЫСОКИЙ ВВЕРХ.

ВНИЗ ЛЕВЫЙ ВЕРНО
НИЗКИЙ ВВЕРХ.

ВНИЗ НИЗКИЙ НИЗКИЙ


Библиотека

Для удобства я написал простую библиотеку для работы с геймпадом.

SMDjoystick.h

   

#ifndef _SMDJOYSTICK_H_ #define _SMDJOYSTICK_H_ #include <Arduino.h> /** SegaMegaDrive gamepad arduino library by AsGreyWolf **/ enum{

Теги: #arduino leonardo #sega megadrive #usb hid #Разработка для Arduino
Вместе с данным постом часто просматривают:

Автор Статьи


Зарегистрирован: 2019-12-10 15:07:06
Баллов опыта: 0
Всего постов на сайте: 0
Всего комментарий на сайте: 0
Dima Manisha

Dima Manisha

Эксперт Wmlog. Профессиональный веб-мастер, SEO-специалист, дизайнер, маркетолог и интернет-предприниматель.