| Приставки > Джойстики и прочие манипуляторы |
| [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:
Забыл написать что немного переделал схему подключения одного джойстика, в первом сообщении отредактировал, когда выложил исправленную версию |
| Навигация |
| Главная страница сообщений |