Автор Тема: [fixed]Проект для Arduino Nano v3 Sega USB Gamepads  (Прочитано 1236 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Hz

  • Пользователь
  • Сообщений: 73
  • Пол: Мужской
    • Просмотр профиля
[fixed]Проект для Arduino Nano v3 Sega USB Gamepads
« : 03 Декабрь 2023, 17:07:26 »
Нигде не нашёл готовых проектов. Из готовых прошивок попадается только на 12МГц кварце и почти всё на Atmega8. Здесь готовый проект для Arduino Nano v3 (CH340).
Переделал проект из другого - JoyDivision от Stefan Blixth. Теперь всё работает нормально, определяется на андроиде как два джойстика, а не как в прошлой моей "поделке". :)
Исправлено 01.02.2025, теперь нормально работает MODE, и нет ложных срабатываний без подключенных джойстиков.
Для прошивки через Arduino IDE - распаковать в Документы\Arduino\libraries, открыть проект Документы\Arduino\libraries\Sega\examples\sega\sega.ino.
Схема подключения джойстиков (естественно, можно переделать по своему):
Pin      Sega MD-GamePad  Arduino Nano-Pin (Port 1)   Arduino Nano-Pin (Port 2)
   1     Up / Z           D5                           A0
   2     Down / Y         D6                           A1
   3     Left / X         D7                           A2
   4     Right / Mode     D8                           A3
   5     +5V              +5v                         +5v
   6     B / A            D9                           A4
   7     Select           D10                          D12
   8     GND              GND                         GND
   9     C / Start        D11                          A5
Подключение USB:
2: D+
4: D-
Меняется при желании в usbconfig.h
Upd.: Добавил переключение управления : нормальный режим, переключить 1 и 2 джойстик, дублированный ввод.
Переключение режимов: MODE+START+ X/Y/Z
* Sega(fixed).zip
* SegaMod.zip
« Последнее редактирование: 12 Февраль 2025, 20:55:27 от Hz »

Оффлайн avvatarr

  • Пользователь
  • Сообщений: 1
    • Просмотр профиля
Проект для Arduino Nano v3 Sega USB Gamepads
« Ответ #1 : 20 Апрель 2024, 19:47:53 »
Вопрос , и какую библиотеку использовать ??? ато не могу залить скейтч

Оффлайн Hz

  • Пользователь
  • Сообщений: 73
  • Пол: Мужской
    • Просмотр профиля
Re: Проект для Arduino Nano v3 Sega USB Gamepads
« Ответ #2 : 29 Июнь 2024, 15:20:11 »
Только сейчас увидел. Библиотека "Sega".
В архиве папка Sega. Её нужно скинуть в папку с библиотеками Arduino IDE (Мои документы\Arduino\libraries).
В Arduino IDE после этого появляется библиотека Sega. У меня Arduino IDE 2.2.1, всё работает нормально. А что за ошибка вообще?

Оффлайн skillazz

  • Пользователь
  • Сообщений: 174
  • Пол: Мужской
    • Просмотр профиля
Проект для Arduino Nano v3 Sega USB Gamepads
« Ответ #3 : 29 Июнь 2024, 18:21:42 »
Если что, еще есть полностью рабочие проекты на pro micro. https://github.com/MickGyver/DaemonBite-Retro-Controllers-USB

Оффлайн NST

  • Пользователь
  • Сообщений: 4
    • Просмотр профиля
Проект для Arduino Nano v3 Sega USB Gamepads
« Ответ #4 : 17 Январь 2025, 22:11:26 »
В общем благодарю автора предоставленный проект. Изначально не сразу понял причем тут схема USB-Connector, и куда все это лепить.  В начале я думал что оно должно работать через свой собственный USB разъем через который прошивается Arduino Nano. За тем я столкнулся с проблемой второго порта джойстика, я не понимал что это за пины 14 15 16 17 18 19, ведь их нет на плате Arduino Nano, в общем так как я не имею опыта в понимаю всего это пришлось, полазить в других источниках интернета. Короче я разбирался с этим, целый день собрал эту схему и все заработало, подключается и к ПК и к смартфону Андройду. 
Приложите полную схему по подключению. А то для начинающих не со всем понятно что Пины 14 15 16 17 18 19 это А0 А1 А2 А3 А4 А5, и то что подключение USB D+ и D- я не сразу понял что подключается все это к пинам D2 и D4 на плате Arduino Nano.         

Оффлайн Hz

  • Пользователь
  • Сообщений: 73
  • Пол: Мужской
    • Просмотр профиля
Re: Проект для Arduino Nano v3 Sega USB Gamepads
« Ответ #5 : 23 Январь 2025, 20:31:54 »
Я сам начинающий, думал так будет проще. Как руки дойдут, попробую нарисовать, если кто-нибудь не сделает раньше. На некоторых джойстиках(геймпадах) включается трёхкнопочный режим при нажатии mode(или какой-нибудь комбинации с mode). Не знаю, джойстики косячные, или проблема в прошивке/схеме.
Синие джойстики от Hamy4 работают нормально, а два других чёрных у меня с такой проблемой.

Оффлайн NST

  • Пользователь
  • Сообщений: 4
    • Просмотр профиля
Проект для Arduino Nano v3 Sega USB Gamepads
« Ответ #6 : 25 Январь 2025, 21:41:03 »
Вообще как я понял питание 5 вольт для джойстиков многовато, я подал плюс через 100Om глюки пропали. А так был глюк при нажатии на MODE срабатывал 3-х кнопочный режим, а назад уже не вернешь тока питание отрубать и снова подключать. Иногда даже крестовина отключалась. Вот у меня джойстики от Hamy4 но я думал что они от сеги, пришлось перепаять местами проводку, что бы совпадало с сегой.   

Добавлено позже:
Если что, еще есть полностью рабочие проекты на pro micro. https://github.com/MickGyver/DaemonBite-Retro-Controllers-USB
Нет, не полностью, проект SegaTwoControllersUSB на андройде определяется как один джойстик. 
« Последнее редактирование: 25 Январь 2025, 21:48:04 от NST »

Оффлайн Hz

  • Пользователь
  • Сообщений: 73
  • Пол: Мужской
    • Просмотр профиля
Проект для Arduino Nano v3 Sega USB Gamepads
« Ответ #7 : 26 Январь 2025, 15:16:41 »
Джойстики от Hamy и от сеги одинаковые. Возможно у меня где-то косяк в описании. Сейчас пробовал питание на джойстики подать через резистор 100 ом - один стал работать нормально с MODE, а другой всё равно начинает "глючить", если пользоваться MODE. Проблема проявляется на одном конкретно геймпаде независимо от разъёма (I или II), к которому он подключен. Пробовал другой резистор, на 560 Ом, та же история.
Но, как я понимаю, это не трёхкнопочный режим. Трёхкнопочный режим нормально обрабатывается прошивкой. А с этим багом вместе с  крестиком срабатывают x/y/z/mode.
Через стабилитрон 3.6в - трёхкнопочный режим :), если подать питание 3.3в, тоже трёхкнопочный режим

Оффлайн NST

  • Пользователь
  • Сообщений: 4
    • Просмотр профиля
Проект для Arduino Nano v3 Sega USB Gamepads
« Ответ #8 : 26 Январь 2025, 19:38:37 »
Джойстики покупал в Озоне может там какой то другой Hamy у меня распиловка отличалась питание по другому шло в другие штырьки. Но суть не в этом. Вопрос, почему когда подключаешь один джойстик второй возникают какие-то глюки, Arduino делает опрос второго постоянно в цикле, и нажимаются кнопки сами по себе, из за этого нельзя настроить джойстик в эмуляторах, так как он постоянно нажимает кнопки. А если подключить второй джойстик сразу все приходит в норму. Мне постоянно нужно подключать обязательно 2 джойстика.   

Оффлайн Hz

  • Пользователь
  • Сообщений: 73
  • Пол: Мужской
    • Просмотр профиля
[fixed]Проект для Arduino Nano v3 Sega USB Gamepads
« Ответ #9 : 01 Февраль 2025, 01:37:29 »
Спасибо за проявленный интерес, дошли руки, исправил, заменил в первом сообщении.
Проблема с XYZ была в коде опроса, немного переделал.
Проблема с нажатиями отключенного джойстика - опечатка в коде. Было:
// Setup input pins
    for (byte i = 0; i < 6; i++)
    {
        pinMode(joy1[i], INPUT_PULLUP);
    }

    for (byte i = 0; i < 6; i++)
    {
        pinMode(joy1[i], INPUT_PULLUP);
    }
Не знаю как так получилось. Исправил на pinMode(joy2[i], INPUT_PULLUP); во втором цикле.
« Последнее редактирование: 01 Февраль 2025, 12:04:31 от Hz »

Оффлайн NST

  • Пользователь
  • Сообщений: 4
    • Просмотр профиля
[fixed]Проект для Arduino Nano v3 Sega USB Gamepads
« Ответ #10 : 02 Февраль 2025, 20:56:05 »
Спасибо за проявленный интерес, дошли руки, исправил, заменил в первом сообщении.
Проблема с XYZ была в коде опроса, немного переделал.
Проблема с нажатиями отключенного джойстика - опечатка в коде. Было:
// Setup input pins
    for (byte i = 0; i < 6; i++)
    {
        pinMode(joy1[i], INPUT_PULLUP);
    }

    for (byte i = 0; i < 6; i++)
    {
        pinMode(joy1[i], INPUT_PULLUP);
    }
Не знаю как так получилось. Исправил на pinMode(joy2[i], INPUT_PULLUP); во втором цикле.

Спасибо!

Оффлайн Hz

  • Пользователь
  • Сообщений: 73
  • Пол: Мужской
    • Просмотр профиля
[fixed]Проект для Arduino Nano v3 Sega USB Gamepads
« Ответ #11 : 02 Февраль 2025, 21:55:48 »
Забыл написать что немного переделал схему подключения одного джойстика, в первом сообщении отредактировал, когда выложил исправленную версию