Главная » Компьютерная электроника
Призовой фонд
на ноябрь 2017 г.
1. Термометр Relsib WT51
Рэлсиб
2. 1000 руб
PCBWay
3. Тестер компонентов LCR-T4
Паяльник
4. 200 руб.
От пользователей

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 Поиск в LCSCВ блокнот
D2, D3 Стабилитрон
1N4729A
2 Поиск в LCSCВ блокнот
C1 Конденсатор1 мкФ1 Поиск в LCSCВ блокнот
C2, C3 Конденсатор27 пФ2 Поиск в LCSCВ блокнот
R1 Резистор
1.5 кОм
1 Поиск в LCSCВ блокнот
R2, R3 Резистор
68 Ом
2 Поиск в LCSCВ блокнот
Y1 Кварцевый резонатор12 МГц1 Поиск в LCSCВ блокнот
Добавить все

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

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

Теги:

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

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

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

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

Комментарии (18) | Я собрал (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
Den1ska90 #
Не могли бы вы выложить скрин с фьюзами для avrdude!?
Ответить
0

[Автор]
shved #
Ловите
Прикрепленный файл: Fuse_Screenshot.png
Ответить
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.
Уже проверил прошивку - всё отлично работает.
Ответить
Добавить комментарий
Имя:
E-mail:
не публикуется
Текст:
Защита от спама:
В чем измеряется сила тока?
Файлы:
 
Для выбора нескольких файлов использйте CTRL

USB-реле (2 канала)
USB-реле (2 канала)
Набор для сборки - LED лампа Конструктор: DDS генератор сигналов
вверх