Беспроводной геймпад Dendy

Месяца 3 назад я собрал схему с ресурса www.raphnet.net для подключения NES контроллеров к компьютеру по USB. Поиграл я в старые игры из детства через эмулятор на компе, но захотелось большего, чтобы геймпады Dendy подключались к компьютеру по радиоканалу, так же, как у Xbox One S. Так же хотелось сделать дополнительные кнопки на геймпаде для сохранения и загрузки, так как было не очень удобно в процессе прохождения сложных игр специально использовать горячие клавиши на клавиатуре.
Как то относительно давно на ресурсе vrtp.ru мне попалась статья про 10-ти командное радиоуправление, как раз на геймпаде dendy имеется 10 кнопок управления, проблема была только в том, что в приемнике из той статьи использовался управляющий плюс, то есть катоды светодиодов через гасящие резисторы были подключены к общему минусу схемы, а их аноды подключались к портам микроконтроллера PIC16F628A. В схемах самодельных геймпадов Dendy использовался управляющий минус, который при нажатии кнопок подавался на входы микросхемы CD4021.
Для решения этой проблемы использовал 2 микросхемы CD4049BM c шестью логическими элементами НЕ в каждой, и одну микросхему CD 4011BM для реализации кнопок TurboA и TurboB.
Схема приемника с сайта vrtp.ru (убрал только светодиоды и гасящие резисторы за ненадобностью):

Выводы 6-13 и 15-16 PIC16F628A подключаются к схеме инвертора логических уровней:

Готовая плата приемника выглядит так:

Геймпад содержит в себе 3 схемы:
1. Схема передатчика с ресурса vrtp.ru:

2. Схема ИК пульта (дополнительные кнопки для использования в эмуляторе) с ресурса radiohlam.ru:

3. Схема зарядки для встроенного Li-Ion аккумулатора:

Готовая плата геймпада выглядит так:

Фотографии геймпада в сборе:

Приемник геймпада подключал к USB – NES контроллеру, собранному по схеме с raphnet.net:

Фотография готового NES to USB контроллера с подключенным приемником:

Для приема компьютером команд дополнительных кнопок по IR собрал преобразователь IR-сигналов от пультов в UART по схеме с ресурса getchip.net:

Преобразователь IR-сигналов подключен к USB порту компьютера через готовый адаптер USB-SERIAL CH340.
Фотографии преобразователя IR-сигналов с готовым USB адаптером:

Контроллер NES to USB определяется как стандартное игровое HID-устройство, драйверов для него отдельно устанавливать не нужно. В окне Панели управления «Устройства и принтеры» должно появиться устройство «4nes4snes v1.5».

В параметрах игровых устройств управления должно быть 4 устройства 4nes4snes v1.5.

После подключения собранного приемника к порту контроллера NES to USB и включения собранного геймпада при нажатии кнопок на геймпаде вы должны наблюдать зажатые кнопки на экране компьютера в свойствах 1 или 4 устройства по списку (в примере зажаты кнопки Up и B).

Для устройства USB-SERIAL CH340 Windows должен найти драйвера автоматически, если автоматическая установка прошла безуспешно, то попробуйте установить драйвер в конце статьи. После успешной установки драйверов в диспетчере устройств должно появиться устройство USB-SERIAL CH340:

Запоминаем номер COM порта этого устройства и идем далее.
После установки драйвера и подключения IR to UART преобразователя к устройству USB-SERIAL CH340 качаем программу IRControl, запускаем ее, подключаемся к нашему COM порту из списка, в другой вкладке настраиваем соответствие дополнительных кнопок геймпада клавишам или сочетаниям клавиш клавиатуры (внизу статьи есть программа и руководство к ней).

По поводу сборки, наладки и примененных компонентов:
Основная трудность сборки заключается в подгонке корпуса геймпада dendy, поскольку в обычном геймпаде присутствует только прорезь сбоку или спереди под провод для подключения к приставке. Нужно предусмотреть и подточить корпус в нужных местах для подключения microusb кабеля для зарядки геймпада, светодиодов индикации процесса зарядки, инфракрасного светодиода, дополнительных кнопок в задней части геймпада. Внутри корпуса, возможно, нужно будет срезать лишний пластик под примененные компоненты, аккумулятор в зависимости от его размеров. Так же нужно помнить, что разные геймпады несколько отличаются друг от друга, то есть расстояния между кнопками, расположения отверстий под винты для сборки, поэтому если у вас другой геймпад, нужно предварительно проверить все ли совпадает, если нет подкорректировать плату под ваш корпус.
По поводу прошивки микроконтроллеров.
Микроконтроллеры Attiny13 (схемы IR to UART и IR пульт в геймпаде) прошивал до пайки. Ссылки на прошивки в конце статьи.
Микроконтроллеры PIC16F628A прошивал внутрисхемно программатором PICkit3. По ним есть один момент, если вы делаете геймпад и приемник в одном экземпляре, то просто прошиваете hex файл прошивки и все. Если же вы делаете 2 геймпада и 2 приемника или больше, то нужно при прошивке в EEPROM микроконтроллеров записать разные идентификаторы для разных пар геймпад/приемник.
Вот описание с ресурса vrtp.ru:

Первая ячейка памяти второй строки (адрес 10 h) - идентификатор.
По умолчанию здесь FF . Идентификатор может быть любой в пределах байта ( 0 … FF ) . Это индивидуальный номер ( код ) пульта.
По этому же адресу в памяти контроллера приемника находится его идентификатор. Они обязательно должны совпадать . Это дает возможность создавать разные пары приемник / передатчик .
Катушки геймпада и приемника мотаются проводом ПЭТВ-2 0,4мм 6 витков на оправе 2 мм.
Дополнительные кнопки геймпада вырезал из старого пульта от телевизора.
По деталям:
Микроконтроллеры (PIC16F628A, Attiny13A), трансиверы MRF49XA, логические микросхемы (CD4021BM, CD4011BM, CD4049BM), контроллеры заряда (TP4056) брал с Aliexpress, там дешевле, чем у нас в магазинах. Остальное находится в местных магазинах.

Про установку фьюзов.

Для схемы 4 NES and/or 4 SNES controller(s) to USB должны быть запрограммированы фьюзы: BODEN, SUT1, SPIEN, CKOPT, BOOTSZ1, BOOTSZ0.

Для схемы преобразователя IR-сигналов от пультов в UART должны быть запрограммированы фьюзы: CKSEL0, SUT0, SPIEN.

Для схемы самодельного ИК-пульта дистанционного управления должны быть запрограммированы фьюзы: CKSEL0, SUT0, SPIEN.


Ссылки на статьи, где есть более подробное описание схем:

4 NES and/or 4 SNES controller(s) to USB:
https://www.raphnet.net/electronique/4nes4snes/index_en.php
10 командное радиоуправление на MRF49XA:
http://vrtp.ru/index.php?act=categories&CODE=article&article=2777
Преобразователь IR-сигналов от пультов в UART:
http://www.getchip.net/posts/071-preobrazovatel-ir-signalov-ot-pultov-v-uart/
Управление компьютером при помощи любого IR-пульта (о программе IRControl):
http://www.getchip.net/posts/081-upravlenie-kompyuterom-pri-pomoshhi-lyubogo-ir-pulta/
Самодельный ИК-пульт дистанционного управления (ATtiny13):
http://radiohlam.ru/?p=1107 

 

 

Файлы:
Прошивка IR to UART
Прошивка 4NES 4SNES to USB
Прошивка ИК пульта геймпада
Драйвер CH340
Руководство программы IRControl
Программа IRControl
Прошивка приемника
Прошивка передатчика геймпада
Платы приемника, геймпада, доп кнопок геймпада, IR to UART контроллера, NES to USB контроллера.

Статья автора: metallking

| 16.08.2020 Просмотров: 750
| Теги: Беспроводной геймпад, Беспроводной геймпад Dendy, Беспроводной джойстик