Как подключить старый джойстик Dendy к современному ПК. Какие компоненты потребуются для проекта. Как правильно подсоединить провода джойстика к Arduino. Как загрузить скетч для считывания сигналов с джойстика. Как настроить Arduino для эмуляции USB-устройства ввода.
Необходимые компоненты для подключения джойстика Dendy к ПК
Для реализации проекта по подключению классического джойстика от игровой приставки Dendy (клона Nintendo Entertainment System) к современному компьютеру через Arduino потребуются следующие компоненты:
- Джойстик от приставки Dendy/NES
- Плата Arduino (рекомендуется Arduino Leonardo или Arduino Pro Micro)
- Соединительные провода
- Резисторы на 10 кОм — 4 шт.
- Макетная плата (опционально)
Выбор платы Arduino Leonardo или Pro Micro обусловлен тем, что они могут эмулировать USB-устройства ввода, что необходимо для корректной работы джойстика на ПК.
Схема подключения джойстика Dendy к Arduino
Подключение джойстика Dendy к Arduino осуществляется по следующей схеме:
- Провод питания +5В джойстика подключается к пину 5V на Arduino
- Провод земли GND джойстика — к пину GND на Arduino
- Провод данных (Data) — к цифровому пину 2 на Arduino
- Провод синхронизации (Latch) — к цифровому пину 3 на Arduino
- Провод тактирования (Clock) — к цифровому пину 4 на Arduino
Также необходимо подключить подтягивающие резисторы номиналом 10 кОм между линиями данных, синхронизации, тактирования и питанием +5В.
Программирование Arduino для работы с джойстиком Dendy
Для считывания сигналов с джойстика Dendy и передачи их на компьютер необходимо загрузить в Arduino соответствующий скетч. Вот пример базового кода:
«`cpp #includeНастройка Arduino как USB-устройства ввода
Чтобы компьютер распознал подключенную Arduino как игровой контроллер, необходимо выполнить следующие шаги:
- Установите библиотеку Joystick через менеджер библиотек Arduino IDE
- В настройках платы выберите «Arduino Leonardo» или «Arduino Pro Micro»
- Загрузите скетч в Arduino
- После загрузки отключите и снова подключите Arduino к USB-порту компьютера
Теперь ваш компьютер должен распознать Arduino как игровой контроллер, и вы сможете использовать подключенный джойстик Dendy в играх и эмуляторах.
Тестирование работы джойстика Dendy на ПК
После подключения и настройки рекомендуется протестировать работу джойстика. Для этого можно использовать следующие методы:
- Откройте панель управления «Устройства и принтеры» в Windows и проверьте, появилось ли там новое игровое устройство
- Используйте программу-тестер джойстиков (например, JoyToKey) для проверки работы кнопок и осей
- Запустите любую игру или эмулятор NES и попробуйте управлять с помощью подключенного джойстика
Если все настроено правильно, вы сможете использовать классический джойстик Dendy на современном ПК, что добавит ностальгии при игре в ретро-игры.
Возможные проблемы и их решения
При подключении джойстика Dendy к ПК через Arduino могут возникнуть некоторые проблемы. Рассмотрим наиболее распространенные из них и способы их решения:
Компьютер не распознает Arduino как игровое устройство
Если ваш ПК не видит Arduino как джойстик, попробуйте следующее:
- Убедитесь, что вы используете Arduino Leonardo или Pro Micro
- Проверьте, правильно ли установлена библиотека Joystick
- Перезагрузите скетч и переподключите Arduino к USB-порту
Некоторые кнопки джойстика не работают
- Правильность подключения всех проводов джойстика к Arduino
- Целостность проводов и контактов внутри джойстика
- Корректность кода в скетче Arduino для считывания всех кнопок
Джойстик работает нестабильно или с задержками
При нестабильной работе джойстика попробуйте:
- Уменьшить частоту опроса джойстика в коде Arduino
- Проверить качество USB-кабеля и порта
- Убедиться в отсутствии помех от других электронных устройств
Дополнительные возможности и модификации
После успешного подключения джойстика Dendy к ПК через Arduino можно рассмотреть следующие улучшения и модификации проекта:
Подключение нескольких джойстиков
Arduino позволяет подключить одновременно несколько джойстиков Dendy. Для этого потребуется:
- Дополнительные цифровые пины на Arduino для каждого джойстика
- Модификация кода для считывания данных с нескольких устройств
- Настройка эмуляции нескольких USB-контроллеров в скетче
Добавление дополнительных кнопок
Можно расширить функциональность джойстика, добавив дополнительные кнопки:
- Припаяйте новые кнопки к свободным контактам на плате джойстика
- Подключите дополнительные кнопки напрямую к свободным пинам Arduino
- Обновите код для обработки сигналов с новых кнопок
Создание беспроводного джойстика
Для большего удобства можно сделать джойстик Dendy беспроводным:
- Используйте Arduino с встроенным модулем Bluetooth (например, Arduino Nano 33 IoT)
- Добавьте автономное питание (батарейки или аккумулятор)
- Измените код для передачи данных по беспроводному протоколу
Эти модификации позволят расширить возможности вашего винтажного джойстика и сделать его более универсальным для использования с современными компьютерами и игровыми системами.
Предлагаю забабахать игровую приставку | AlexGyver Community
Mak_Dim
✩✩✩✩✩✩✩
- #1
Приставка подключается к телеку к ней два джойстика и пистолет ))) и чтобы игрухи могли все писать.
Графика сильно крутая не нужна 256 цветов.
Кароче типа денди, тока с открытой прошивкой.
Александр Симонов
★★★★✩✩✩
- #2
Ищи в сторону PICO-8 и её эмуляторов.
Wan-Derer
★★★★★✩✩
- #3
@Mak_Dim, Для начала посчитай сколько нужно памяти что развернуть телевизионный растр в 256 цетов на точку
Старик Похабыч
★★★★★★★
- #4
Зачем писать то, что уже сделано на малинке ?
Mak_Dim
✩✩✩✩✩✩✩
- #5
Ну на малинке чтобы чтото написать надо перелопатить тонну документации, ну и все что я видел это эмуляторы.
Хотя может уже есть что то типа «малинодуины».
Старик Похабыч
★★★★★★★
- #6
на малинке есть готовые проекты, с пошаговыми инструкциями превращающие ее в сену, денди , плейстейшн 1-2, и прочие.
Писать то предлагается кому то , большинство просто копируют.
Roman_S
★✩✩✩✩✩✩
- #7
собственно похожую идею воплотил https://community. alexgyver.ru/threads/espboy-dlja-igr-i-ehksperimentov-s-iot.1772/
а с помощью little game engine от Игоря писать игрушки совсем просто https://hackaday.io/project/164205-esp-little-game-engine
ну или на микропитоне можно https://hackaday.io/project/80626-stage-a-tile-and-sprite-engine или много чего еще, например https://paladin-t.github.io/b8/ или https://www.lexaloffle.com/pico-8.php или совсем уж раритетно традиционный CHIP8/SCHIP эмулятор которого есть так же на ESPboy https://hackaday.io/project/164830-…pboy-chip8schip-emulator-packed-with-90-games , а среда разработки с хелпами вот тут https://github.com/JohnEarnest/Octo и примеры игр https://johnearnest.github.io/chip8Archive/ и даже соревнования по ним каждый год проходят
Mak_Dim
✩✩✩✩✩✩✩
- #8
Спасибо, пошел читать
Roman_S
★✩✩✩✩✩✩
- #9
Mak_Dim написал(а):
Спасибо, пошел читать
Нажмите для раскрытия. ..
так то готовых движков и платформ невероятное количетство, сотни уже
https://github.com/kitao/pyxel
https://younglinux.info/pygame/pygame
есть https://arduboy.com, https://gamebuino.com/, https://www.pokitto.com/, pygamer и куча других и у каждых своя библиотека и коммунити
это все основные по ретро и для начинающих, а еще же есть десятки вполне взрослых
поэтому прежде чем делать что-то еще, нужно очень хорошо понимать ЧТО и ЗАЧЕМ )
Mak_Dim
✩✩✩✩✩✩✩
- #10
Ну а если подключаться к телевизору то только малина?
Roman_S
★✩✩✩✩✩✩
- #11
@Mak_Dim, да собственно при желании к телевизору тоже можно что угодно подключить. nintendo например или playstation любого поколения )
ESP8266 вообще по своему WiFi каналу может картинку транслировать на антенный вход телика https://habr.com/ru/post/391857/ и даже уже в цвете научились передавать https://hackaday.com/2016/03/01/color-tv-broadcasts-are-esp8266s-newest-trick/ . и ардуины к телику тоже можно подключать, есть и вполне промышленные платы tv вывода https://amperka.ru/product/troyka-tv-out , так и простенькие кустарные https://arduinoplus.ru/arduino-tv/
Mak_Dim
✩✩✩✩✩✩✩
- #12
Roman_S , Спасибо, а платы Tv вывода ты встречал?
Если совсем грубо сказать то это видеокарта, я так понимаю.
Я пытался найти чтонибудь эдакое и нашел только чипы специализированые, которые могут накладывать на видео сигнал текстовую информацию типа дата/время а мнебы найти контроллер с видевыходом или шдмай или vga может есть у тебя еще инфа, ты подкован серьезно я вижу ))
Roman_S
★✩✩✩✩✩✩
- #13
@Mak_Dim, собственно подкованность выражается в основном в пользовании поиском гугла ) непонятно откуда нужно сигнал передавать на телевизор? если речь про ардуино, но есть вроде готовые шилды и библиотеки под них. https://hackaday. com/2019/07/26/hdmi-from-your-arduino/ или тут ребята вообще про ПЛИС толкуют и какие-то умные контроллеры https://toster.ru/q/23811
Портативная игровая консоль на Raspberry Pi
Общие сведения:
В этом проекте мы соберём игровую ретро консоль на основе Raspberry на двоих или даже четверых игроков.
Видео:
Нам понадобится:
- 1x Цветной графический дисплей 2.8
- 1x Trema+Expander Hat
- Провода Мама — Мама
- 1x Raspberry Pi 3B
- 2x Ретро usb геймпад 8 кнопок
- 1x Батарейный отсек 6*AA
- 1x Аудио усилитель мощности c регулировкой громкости 2*3 Вт класса D PAM8403
- 1x Динамик 3W
- 1x Set Box XL
- 1x Крепление для цветного графического дисплея 2.8
- 1x 3. 5 мм Аудио Джек
- microSD карта памяти
- USB кардридер
- ПК с подключением к интернету для скачивания образа диска RetroPie
- Подключение к интернету для скачивания репозитория драйвера TFT дисплея и образа SD карты Retropie.
Подключение:
Для удобства подключения мы воспользуемся Trema+Expander Hat
GND | GND |
VCC | 5V |
D/C | 12 |
RST | 14 |
CS | 8 |
SCK | 11 |
MOSI | 10 |
LED | 13 |
MISO | 9 |
Подключим модуль Цветной графический дисплей 2.8 используя провода «Мама — Мама» к Trema+Expander Hat
Подключим усилитель мощности
Подключим геймпады
Установка Retropie
Скачивание образа
Для установки образа скачаем его с сайта RetroPie.org.uk
Если у Вас Raspberry Zero или самая первая версия Raspberry, скачайте нажав красную кнопку Raspberry Pi 0/1
Если у Вас Raspberry 2 или выше, скачайте нажав красную кнопку Raspberry Pi 2/3
Запись образа системы
Перед записью образа, его необходимо распаковать. Образ RetroPie запакован программой GNU Zip, мы распакуем его при помощи программы 7zip. Скачаем 7zip c официального сайта https://www.7-zip.org/.
После скачивания файла запустим его, программа установиться и теперь можно открывать и распаковывать архивы GNU Zip.
Распакуем архив с образом RetroPie. Нажимаем правой клавишей мыши на архив и выбираем 7-zip -> Распаковать здесь
Для записи образа на карту памяти мы воспользуемся простой утилитой Etcher. Сначала откройте сайт https://etcher.io и загрузите программу на свой компьютер.
Установим Etcher. Для этого перейдите в папку с загруженным файлом и запустите установочный файл «Etcher-Setup-1.2.0-x64». Появится сообщение с лицензионным соглашением, с которым следует согласиться. Нажмите на кнопку «Принимаю».
Дождитесь окончания установки. Теперь откройте программу (иконка Etcher добавилась на ваш Рабочий стол для быстрого запуска). Нам нужно выбрать файл образа диска (из скачанного ранее ZIP-архива) и правильный путь к нашей SD карточке памяти.
Дождитесь окончания процесса записи образа системы на карточку памяти. Если Виндовс предложит вам отформатировать раздел после записи образа на карту, ответьте отрицательно, иначе процесс придётся начать сначала.
После успешного создания SD карты с образом не торопитесь её вынимать из кардридера. Найдите в Проводнике диск с названием BOOT и создайте на нём два файла wpa_supplicant.conf и ssh.txt
- Первый файл должен быть пустым и называться ssh.txt — это необходимо для того, чтобы Pi при первой загрузке поняла что необходим доступ по ssh
- Второй файл должен называться wpa_supplicant.conf и содержать данные для подключения к WiFi. При загрузке Raspberry сама перенесёт данные из этого файла в
/etc/wpa_supplicant/wpa_supplicant.conf
Вот пример файла wpa_supplicant.conf:
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev update_config=1 network={ ssid="НАЗВАНИЕ ТОЧКИ ДОСТУПА WiFi" psk="ПАРОЛЬ WiFi" key_mgmt=WPA-PSK }
Название точки доступа и пароль пишутся в кавычках, например, если wifi точка называется Druidia и пароль 12345:
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev update_config=1 network={ ssid="Druidia" psk="12345" key_mgmt=WPA-PSK }
После создания файлов безопасно извлекаем SD карту из ПК:
Далее вставляем карту в Raspberry и включаем питание.
Установка драйвера для TFT дисплея
Для установки драйвера воспользуемся статьёй Цветной графический дисплей 2.8 TFT 320×240, подключаем к Raspberry Pi, только подключимся к Raspberry по SSH. Начиная с Windows 10 версии 1903 SSH установлен по умолчанию. Для запуска нажмём на клавиатуре WIN+R и в открывшемся окне наберём cmd
, затем клавишу enter
.
Откроется окно интерпретатора команд cmd.exe
. Введём ssh [email protected]
.
Если всё было сделано правильно, появится сообщение на которое необходимо ответить yes
, после чего ввести пароль raspberry
(ввод пароля никак не отображается).
После входа в систему появится приветствие RetroPie с сообщением о необходимости смены пароля. Сменим пароль командой passwd
. Необходимо ввести старый пароль raspberry
и два раза новый. После этого можно приступать к процедуре установки драйвера.
Настройка геймпадов
После успешной установки драйвера дисплея нас приветствует мастер настройки геймпада:
Для настройки необходимо зажать любую кнопку геймпада.
Для настройки необходимо нажать и отпустить соответствующую кнопку. Для пропуска настройки необходимо зажать и удерживать кнопку.
Последняя кнопка — это кнопка горячей клавиши (по умолчанию select), она необходима для выхода их игр (select+start), перезапуска текущего эмулятора (select+B) и прочего. Для достижения необходимого результата она зажимается вместе с другими кнопками.
Загрузка ПЗУ файлов
RetroPie по причинам авторских прав не поставляется с ПЗУ файлами ретро игр. Поиск файлов ретро игр в интернете или загрузка из игровых картриджей — задача конечного пользователя системы RetroPie.
В RetroPie по умолчанию стоят почти все эмуляторы игровых ретро консолей. Для запуска игр файл с игрой должен лежать в папке /home/pi/RetroPie/$название консоли$
. Например, для Dendy (NES, Famicom) файл с игрой должен лежать в директории /home/pi/RetroPie/roms/nes
.
Файлы с играми можно копировать 3-мя способами: при помощи usb флешки, при помощи раздела /boot
SD карты или при помощи утилиты scp
.
В первых двух случаях это можно сделать при помощи предустановленной программы Mignight Commender mc
(понадобиться подключить к Raspberry клавиатуру).
Для запуска Midnight Commander необходимо перейти в меню RetroPie:
Затем запустить File Manager:
В случае с scp
понадобится с ПК с которого будет копироваться игра нажать на клавиатуре WIN+R, в открывшемся окне набратьcmd
и клавишу enter
(ОС Windows 10) или открыть программу эмулятора терминала (MacOS, GNU/Linux, OpenBSD …) Во вновь открывшемся окне набрать scp [путь к файлу\название файла] [email protected]:RetroPie/roms/название папки консоли/
. Например: scp C:\Users\iarduino\roms\metroid.nes [email protected]:RetroPie/roms/nes/
Ссылки:
Драйвер fbcp-ili9341
Ошибка компиляции Аудио библиотеки — Библиотеки
аплещу
#1
Я отчаянно пытаюсь уйти от глючной Arduino IDE, и платформер может быть как раз подходящим вариантом. Пытаясь портировать первый проект, я уже столкнулся с проблемой. Проект, который прекрасно компилируется в среде Arduino IDE с использованием библиотеки «Audio» Пола Стоффрегена, не компилируется со следующим сообщением об ошибке:
.pioenvs/teensy31/src/main.o: в функции AudioAnalyzeFFT1024:
/Users/andy/src/Arduino/Coat_2.0/.pioenvs/teensy31/Audio_ID70/analyze_fft1024.h:53: неопределенная ссылка на arm_cfft_radix4_init_q15' .pioenvs/teensy31/libAudio_ID70.a(analyze_fft1024.o): в функции
AudioAnalyzeFFT1024::update()’:
/Users/andy/src/Arduino/Coat_2.0/.pioenvs/1tanalyzeID47/Audiosy .cpp:107: неопределенная ссылка на `arm_cfft_radix4_q15′
Любой указатель, что я могу сделать, чтобы исправить это?
валерос
#2
Привет @apleschu
Не могли бы вы попробовать это platformio.ini
, пожалуйста:
[env:teensy31] платформа = тинси фреймворк = ардуино доска = teensy31 build_flags = -larm_cortexM4l_math
аплещу
#3
Спасибо за быстрый ответ. Это устранило эту проблему. Есть ли шанс, что я смогу сделать это по умолчанию для всех следующих подростковых проектов 3.1/3.2?
Следующая следующая проблема: я могу открыть другой поток, если это будет сочтено лучше: библиотека отсутствует, нет проблем, загружается библиотека, теперь она компилируется, и окно компилятора сообщает об успехе, но окно исходного кода и статус внизу по-прежнему утверждают, что библиотека отсутствует. В частности, это SerialFlash lib.
валерос
#4
Я только что добавил -larm_cortexM4l_math
по умолчанию в версии разработки PlatformIO, и очень скоро он будет выпущен в стабильной версии 2.8.6
.
Вторая проблема также уже исправлена и будет выпущена в PlatformIO IDE 1.0.6
.
аплещу
#5
Потрясающе! Я могу жить с этим до поры до времени. Еще раз спасибо за ответ.
оргхнарх
#6
Вы можете щелкнуть PlatformIO > Перестроить индекс проекта C/C++ (автозаполнение, Linter)
, чтобы сразу исправить проблему с отсутствующей библиотекой.
Использование Arduino с 0.5.3 — не работает? [РЕШЕНО] — Поддержка
robinojones 1
Пытался в течение 2 дней безуспешно — интересно, кто-нибудь успешно использует Arduino с 0.5.3?
Библиотека ODrive Arduino с примером скетча «OdriveArduinoTest» не меняет СОСТОЯНИЯ. Если я изменю СОСТОЯНИЯ в командной строке odrivetool, я смогу запустить «синусоидальное тестовое движение» и получить напряжения, но калибровки не происходит.
Если я понизил версию прошивки до версии 0.5.1 или 0.5.2, она работает, но все настройки/настройки, которые я выполнял в версии 0. 5.3, работают неоптимально, и я хотел бы избежать использования более старой прошивки.
Любые советы, темы статей, чтобы заставить это работать или любой другой способ использовать Arduino без библиотеки, были бы замечательными.
Я подозреваю, что команда «odrive.run_state» не работает в новой прошивке. Все работает отлично с odrivetool, я готов создать свой аппаратный интерфейс, но это блокирует меня
Моя система:
Изолятор Arduino Mega / USB > компьютер
ODrive USB > компьютер
martinr 2
Умммм. Эта глючная версия 0.5.3 отняла у меня слишком много дней впустую. Возможно, вы можете попробовать ветку 0.5.4 dev и посмотреть, исчезли ли ошибки или все еще есть. Моя 0.5.3 тоже отказалась менять состояние, но у меня тоже другая настройка была. Хотя может быть связано, по крайней мере стоит попробовать. Компиляция и прошивка не должны занимать более 10 минут.
робиноджоны 3
Спасибо за подсказку — пару часов пытаюсь скомпилировать прошивку 0.5.4 на Mac. Я только что перешел на Windows через bootcamp, но это не работает. Есть ли где-нибудь скомпилированный HEX?
Арбуз 4
С проблемой разобрались. Компилятор, который использовал CI, не поддерживал ни один из используемых нами форматов строк, поэтому он работал для нас на стенде, но не в файлах, распространяемых заказчиком. Это будет исправлено в 0.5.4
1 Нравится