Приставки > Джойстики и прочие манипуляторы
[fixed]Проект для Arduino Nano v3 Sega USB Gamepads
(1/1)
Hz:
Нигде не нашёл готовых проектов. Из готовых прошивок попадается только на 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 D11 D12
8 GND GND GND
9 C / Start D10 A5
--- Конец кода ---
Подключение USB:
2: D+
4: D-
Меняется при желании в usbconfig.h
Upd.: Добавил переключение управления : нормальный режим, переключить 1 и 2 джойстик, дублированный ввод.
Переключение режимов: MODE+START+ X/Y/Z
Sega(fixed).zip
SegaMod.zip
avvatarr:
Вопрос , и какую библиотеку использовать ??? ато не могу залить скейтч
Hz:
Только сейчас увидел. Библиотека "Sega".
В архиве папка Sega. Её нужно скинуть в папку с библиотеками Arduino IDE (Мои документы\Arduino\libraries).
В Arduino IDE после этого появляется библиотека Sega. У меня Arduino IDE 2.2.1, всё работает нормально. А что за ошибка вообще?
skillazz:
Если что, еще есть полностью рабочие проекты на pro micro. https://github.com/MickGyver/DaemonBite-Retro-Controllers-USB
NST:
В общем благодарю автора предоставленный проект. Изначально не сразу понял причем тут схема 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:
Я сам начинающий, думал так будет проще. Как руки дойдут, попробую нарисовать, если кто-нибудь не сделает раньше. На некоторых джойстиках(геймпадах) включается трёхкнопочный режим при нажатии mode(или какой-нибудь комбинации с mode). Не знаю, джойстики косячные, или проблема в прошивке/схеме.
Синие джойстики от Hamy4 работают нормально, а два других чёрных у меня с такой проблемой.
NST:
Вообще как я понял питание 5 вольт для джойстиков многовато, я подал плюс через 100Om глюки пропали. А так был глюк при нажатии на MODE срабатывал 3-х кнопочный режим, а назад уже не вернешь тока питание отрубать и снова подключать. Иногда даже крестовина отключалась. Вот у меня джойстики от Hamy4 но я думал что они от сеги, пришлось перепаять местами проводку, что бы совпадало с сегой.
Добавлено позже:
--- Цитата: NST от 17 Январь 2025, 22:11:26 ---Если что, еще есть полностью рабочие проекты на pro micro. https://github.com/MickGyver/DaemonBite-Retro-Controllers-USB
--- Конец цитаты ---
Нет, не полностью, проект SegaTwoControllersUSB на андройде определяется как один джойстик.
Hz:
Джойстики от Hamy и от сеги одинаковые. Возможно у меня где-то косяк в описании. Сейчас пробовал питание на джойстики подать через резистор 100 ом - один стал работать нормально с MODE, а другой всё равно начинает "глючить", если пользоваться MODE. Проблема проявляется на одном конкретно геймпаде независимо от разъёма (I или II), к которому он подключен. Пробовал другой резистор, на 560 Ом, та же история.
Но, как я понимаю, это не трёхкнопочный режим. Трёхкнопочный режим нормально обрабатывается прошивкой. А с этим багом вместе с крестиком срабатывают x/y/z/mode.
Через стабилитрон 3.6в - трёхкнопочный режим :), если подать питание 3.3в, тоже трёхкнопочный режим
NST:
Джойстики покупал в Озоне может там какой то другой Hamy у меня распиловка отличалась питание по другому шло в другие штырьки. Но суть не в этом. Вопрос, почему когда подключаешь один джойстик второй возникают какие-то глюки, Arduino делает опрос второго постоянно в цикле, и нажимаются кнопки сами по себе, из за этого нельзя настроить джойстик в эмуляторах, так как он постоянно нажимает кнопки. А если подключить второй джойстик сразу все приходит в норму. Мне постоянно нужно подключать обязательно 2 джойстика.
Hz:
Спасибо за проявленный интерес, дошли руки, исправил, заменил в первом сообщении.
Проблема с 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);
--- Конец кода ---
во втором цикле.
NST:
--- Цитата: Hz от 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);
--- Конец кода ---
во втором цикле.
--- Конец цитаты ---
Спасибо!
Hz:
Забыл написать что немного переделал схему подключения одного джойстика, в первом сообщении отредактировал, когда выложил исправленную версию
Навигация
Перейти к полной версии