Реклама ⓘ
Главная » Компьютерная электроника
Призовой фонд
на апрель 2024 г.
1. 100 руб.
От пользователей

Реклама ⓘ

USB-джойстик на AVR

Как и многим технарям, мне часто отдают(на растерзание) старую/неисправную/ненужную технику. Абсолютное большинство этих предметов попадают в "бермудский угол"(коробка с запчастями/ломом в углу) или летят в мусорный бак, но бывает и так, что попадаются девайсы, которым просто необходимо подарить вторую жизнь.

Когда у меня оказался джойстик от "Дэнди"(NES), первым делом я попытался подключить его к параллельному порту(LPT) ПК, но тут, меня подстерегал неприятный сюрприз - черная клякса(кристалл микросхемы, залитый эпоксидкой) оказалась неисправной. Этот проект был отправлен  в "долгий ящик".......

Пару дней назад, запустив эмулятор NES, я понял, что чего-то не хватает. Поиски были продолжены, и решение было найдено: http://www.raphnet.net/electronique/usb_game12/index_en.php автор этой странички предлагает, схему USB джойстика на 12 кнопок.

схема

Отлично, подумал я, эту схему можно использовать для любого "горелого" джойстика, с количеством кнопок менее 12-ти. Первым делом я прошил atmeg'у:

avrdude -c usbtiny -p m8 -e -V -U flash:w:usb_game12-1.0.hex
avrdude -c usbtiny -p m8 -U lfuse:w:0x9f:m -U hfuse:w:0xc9:m

Для прошивки я использовал программатор USBtiny и программу avrdude. Дальше я взялся за разводку платы, разводка платы выполнена в программе Sprint-Layout.

плата

Плата разведена под микросхему в корпусе DIP-28 и радиоэлементы для стандартного (черездырочного) монтажа. Затем печатная плата была изготовлена по фоторезистивной технологии, обрезана, просверлена и собрана (запаяна).

собрана

собрана

Затем, я взял дремель с отрезным диском и начал подготовку джойстика, для установки платы.

вырез

Отрезав ножку, я сменил диск на бор, перерезал дорожки и снял слой маски с мест будущей пайки.

большая плата

Потом, я проверил все в последний раз и припаял провода между двумя платами.

соединение

Ну и финальная сборка.

сборка

И результат стараний.

результат

Джойстик готов к работе, под ОС Linux/Windows XP/Vista/7 установка драйверов не требуются. Устройство было проверено в работе под ОС Debian Linux и Windows XP. Джойстиком можно пользоваться не только в эмуляторах старых игровых приставок, но и в современных играх для которых хватит кнопок.

screenshot

Но я поиграю в игры для которых Китайцы и сделали этот джойстик, приятного приступа ностальгии.

Список радиоэлементов

Обозначение Тип Номинал Количество ПримечаниеМагазинМой блокнот
U2 МК AVR 8-бит
ATmega8-16PU
1 Поиск в магазине ОтронВ блокнот
D2, D3 Стабилитрон
1N4729A
2 Поиск в магазине ОтронВ блокнот
C1 Конденсатор1 мкФ1 Поиск в магазине ОтронВ блокнот
C2, C3 Конденсатор27 пФ2 Поиск в магазине ОтронВ блокнот
R1 Резистор
1.5 кОм
1 Поиск в магазине ОтронВ блокнот
R2, R3 Резистор
68 Ом
2 Поиск в магазине ОтронВ блокнот
Y1 Кварцевый резонатор12 МГц1 Поиск в магазине ОтронВ блокнот
Добавить все

Скачать список элементов (PDF)

Прикрепленные файлы:

Теги:

Опубликована: 0 0
Я собрал 0 3
x

Оценить статью

  • Техническая грамотность
  • Актуальность материала
  • Изложение материала
  • Полезность устройства
  • Повторяемость устройства
  • Орфография
0

Средний балл статьи: 5 Проголосовало: 3 чел.

Комментарии (32) | Я собрал (0) | Подписаться

0
lvlr #
Когда я делал свой джойстик - то отрезал все дорожки ведущие к микросхеме. Далее добавил по диоду на кнопку. Плюс драйвер PPJOY (схема LPTjoy). По схеме LPTjoy можно сделать 64 независимые кнопки (8*8) - почти клавиатура.
Ответить
-1
Андрей #
Можно спаять 2 джойстика? И играть с другом в nfs most wanted?
Ответить
0
2euter1um #
Можно вместо стабилитронов на 3.6 В использовать схему на TL431?
Ответить
0

[Автор]
shved #
Нет, но можно попробовать схему с падением напряжения на 2-х диодах 1N4148.
Ответить
0

[Автор]
shved #
Была проверенна работоспособность на андроиде, в меню работает, в играх нет. В некоторых играх управление вроде было, но кнопки надо переназначать. Как это сделать не разбирались.
Ответить
0
Vadim #
На android использую эмуляторы - только так! Зато полная совместимость и гибкость по отношению к портируемых с консолей играм. Лучшие эмуляторы:
Денди - NES.emu free
Сега - MD.emu (настоящий 16 битный движок!)
PS1 - PSXe (максимально оптимизирован)
Остальное - когда-нибудь на десерт.
Ответить
0
oleg612 #
Этим джойстиком на сеге (эмуляторе) можно играть?
atmega8a-au подойдёт для проекта?
Ответить
0

[Автор]
shved #
Плату можно имплантировать в джойстик от сеги. Atmega8a-au подойдет, но надо будет переразвести плату, т.к. atmega8a-au в корпусе TQFP(SMD).
Ответить
0
oleg612 #
Плату переразвёл под корпус TQFP(SMD) 32 ноги, smd детали типоразмер 1206
Прикрепленный файл: sega mega drive 2 2.lay
Ответить
0
Vadim #
За плату под TQFP огромное спасибо (сэкономили мне время)!
Единственное, хочу предупредить тех, кто ее на вооружение возьмёт (особенно новичков) - резисторы R1 и R2 местами на плате перепутаны. Смотрите схему.
Ответить
0
oleg612 #
Поздний ответ, печатка соответствует схеме, ничего не перепутано, перепроверил. По этой печатке себе сделал, всё работает!
Ответить
0
Den1ska90 #
Не могли бы вы выложить скрин с фьюзами для avrdude!?
Ответить
0

[Автор]
shved #
Ловите
Прикрепленный файл: Fuse_Screenshot.png
Ответить
0
Nik #
???
Ответить
0
SaneX #
Возможно ли программно увеличить количество кнопок и добавить потенциометры?
И как это можно реализовать?
Появилась идея собрать свитч-панель для авиасимулятора.
Ответить
0

[Автор]
shved #
Обратите внимание на другие проекты, например:
http://www.mictronics.de/projects/avr-usb-joystick/
или
http://home.base.be/verlejan/Mjoy16E.html
Ответить
0
oleg612 #
Пробовал на NINTENDO64 эмулятор PROJECT64 джойстик работает, но в некоторых играх не хватает кнопок
Ответить
0
Vadim #
Ребята! Помогите! Сделал джойстик по этому замечательному проекту (полностью, под TQFP), затем, поправил под себя кнопки, а собрать в hex не знаю как! Два вечера потратил, не знаю, как да в чем делать.
Может подскажет кто, куда и как подсовывать эти файлы .c и .h, чтобы получить заветный .hex
Буду искренне благодарен! Я запутался!
Прикрепленный файл: slMVBqRfCxc.jpg
Ответить
0

[Автор]
shved #
Скачайте сорцы http://www.raphnet.net/electronique/usb_game12/index_en.php распакуйте. Если под linux'ом, то измените что надо и запустите makefile(make), на выходе получите hex. Под виндой я не делал.
Ответить
0
Vadim #
Благодарю Вас за совет, но вот linux под рукой не нашлось (ну, если не считать Андроид на смартфоне), поэтому всё-таки докопался до истины сам.
Собрал hex под WinAVR - всё оказалось не так уж и страшно.
Инсталлируем, запускаем Programmer's Notrpad, открываем все файлы скачанные с исходником (и вложенной(ых) папки(ок), можно даже с текстовиками - лишнего компилятор не возьмёт), вносим правки, ничего не закрывая, переходим к файлу "Makefile" или "main.c", сверху тыцкаем "Tools" (инструменты) - "Make All"(собрать всё). Готово! Идем в папку с исходником. Там лежит main.hex.
Уже проверил прошивку - всё отлично работает.
Ответить
0
Kirill #
А как вносить правки? Я впервые это делаю.
Вот собрал это чудо, хочу чтобы в винде это устройство определялось как геймпад. что надо сделать?
Ответить
0
oleg612 #
Добрый день! Подскажите, "поправил под себя кнопки", вы имеете ввиду количество кнопок или что, судя по фото вашего джойстика, у вас на одну кнопку больше, чем на джойстике сега. Если вы пользуетесь эмулятором сеги "gens", то в настройках проги кнопки можно запрограммировать как угодно под себя, также и в других эмуляторах!
Прикрепленный файл: SAM_7937.JPG
Ответить
0
Tolik #
Всем привет!
Всё супер, доволен как слон.
Вот платка и схема в lay6 и spl7, переделывал под свой сеговский джойстик, может кому пригодится.
Прикрепленный файл: USB-джойстик на AVR.zip
Ответить
0
Kirill #
Собрал данное чудо, но при подключении по USB выдаёт неопознанное устройство (ошибка 43).
Подробнее: прошивал mega8 по COM порту (программатор Громова), к нему же и программа зашивки UniProf - всё сработало и прекрасно зашилось, сумма и сверки совпадают, то есть прошивка из здешнего HEXa залилась на мегу, а далее припаял кнопки и сунул в USB. Не работает. В чём может быть проблема?
Ответить
0

[Автор]
shved #
Проверяйте правильность сборки и фъюзы. Лично переделал десяток джойстиков, все должно работать.
Ответить
0
Kirill #
Вот! Слово для меня не знакомое - фьюзы, что это такое и как с ними работать? Как вообще адаптировать прошивку под компьютер? Впервые собираю подобную тему на микроконтроллере. Обычно с аналогом имею дело, а тут понадобились кнопки игрового джойстика для компа - геймпад, точнее надо так, чтобы подключение было через USB и в системе определялось как джойстик (в одной программе управление осуществляются сугубо кнопками джойстика).
Смысл такой - собрал программатор тот, что через ком-порт, поставил прогу (винда 7 64), подключил атмегу8 через этот программатор - всё заработало, то есть прога-прошивальшик распознала микруху, ну и залила туда тот "хекс", что был в архиве (в конце этой страницы), в котором ничего не менял, вот как есть. Правда там ещё две папки есть, я так и не понял зачем они. Собственно, весь анамнез. А вот когда подключил мегу уже как устройство, то винда пишет, что устройство не опознано, ну и ошибку 43.
Ответить
0

[Автор]
shved #
С COM-портовыми программаторами я не работал, только LPT и USB, раз шьет - значит работает.
http://cxem.net/beginner/beginner92.php
Читайте, разбирайтесь, только не торопитесь, если не так прошьете, то можете заблокировать контроллер.
Ответить
0
yuraword #
Привет всем! Собрал два штуки, работают прекрасно, но когда играем с женой в два джойстика жутко тормозит (на разных эмуляторах), может нагрузка на USB порты большая? Есть у кого идеи как это исправить?
Ответить
0

[Автор]
shved #
Попробуйте разные USB порты, у меня проблем не было.
Ответить
0
yuraword #
У меня не самый свежий ноутбук и в нём всего 2 USB, есть ещё идеи?
Ответить
0
Глеб #
Это всё конечно замечательно, но есть у кого-то прошивка с аналоговым входом на управление (вверх, вниз, влево, вправо), так по моему будет чуть больше возможностей с данной схемой. Да я знаю что нужно будет печатать новую плату, но зато когда кто-то только задумал сделать джойстик, то у него будет больше возможностей решения данной задачи
Ответить
0

[Автор]
shved #
Обратите внимание на другие проекты, например:
http://www.mictronics.de/projects/avr-usb-joystick/
или
http://home.base.be/verlejan/Mjoy16E.html
еше много разных есть.
Ответить
Добавить комментарий
Имя:
E-mail:
не публикуется
Текст:
Защита от спама:
В чем измеряется сила тока?
Файлы:
 
Для выбора нескольких файлов использйте CTRL

USB-реле (2 канала)
USB-реле (2 канала)
Металлоискатель MD3010II AVR-программатор USB ASP
вверх