Игровой контроллер Arduino
Компоненты и расходные материалы
![]() |
| × | 1 | |||
![]() |
| × | 1 | |||
![]() |
| × | 12 | |||
![]() |
| × | 1 | |||
| × | 1 | ||||
![]() |
| × | 1 |
Необходимые инструменты и машины
| ||||
![]() |
| |||
![]() |
|
Приложения и онлайн-сервисы
![]() |
| |||
![]() |
|
Об этом проекте
ВИДЕО
ВВЕДЕНИЕ
Итак, этот пост будет о «игровом USB-контроллере, сделанном своими руками» над которым мы недавно работали в ElectroPunkz Labs.
идея состоит в том, чтобы сделать дешевый USB-контроллер на базе Atmega32U с кнопками и аналоговыми джойстиками, который можно было бы использовать для игр
как NFS, GTA, Half-Life, LITTLE FIGHTER 2! и т. д.
Мы сделали наш контроллер в двух форм-факторах:первый основан на конфигурации PS1 или SNES, а другой представляет собой обычный USB-контроллер Xbox с аналоговыми джойстиками и кнопками (еще не доработан)

В этом посте мы сделаем V1, который является контроллером компоновки PS1!
Лучше, если вы сначала посмотрите видео проекта -
МАТЕРИАЛЫ
оборудование довольно просто и легко получить (за исключением печатной платы, вы можете сделать свою собственную с помощью прикрепленного PDF-файла печатной платы)
- Arduino Leonardo / Pro Micro / Atmega32U
- Кнопки (тиковые переключатели)
- Специальная гравированная печатная плата (матрица кнопок в формате PDF прилагается)
- Резисторы 10 кОм
- Перемычки
Спасибо UTSOURCE.net предлагает электронные компоненты для этого проекта! вы можете проверить UTSOURCE.net, они имеют дело со всеми видами электронных компонентов, например, со всеми компонентами, используемыми в этом проекте!
ПРОЦЕСС ПОСТРОЕНИЯ (Электромонтаж, сборка , и т. д.)
Первое, что нам нужно сделать, это подготовить базовую настройку, которая в основном состоит из 12 кнопок, подключенных в раскрывающейся конфигурации с Pro Micro, в основном это-
мы проверили это на макетной плате, а затем подготовили печатную плату в соответствии с приведенной выше схемой.


После изготовления печатной платы (в OrCad cadence) мы распечатали ее верхний слой в формате PDF на глянцевой бумаге.
Я вырезал глянцевую бумагу в соответствии с формой печатной платы, поместил ее на картон, плакированный медью, и приложил к нему тепло для переноса чернил с глянцевой бумаги на картон, плакированный медью. (Основной метод передачи тона, посмотрите мое видео по этой теме)

После того, как печатная плата была готова, мы бросили ее в раствор для травления и протравили печатную плату, после чего мы просто просверлили отверстия для компонентов и нашей печатной платы DIY GAME CONTROLLER был готов!
Потом просто уложили все по схеме и схема была готова.
После подготовки схемы мы спроектировали и напечатали на 3D-принтере корпус / корпус печатной платы для контроллера в Fusion360.

Теперь нам просто нужно загрузить код и поиграть с ним в игры.
КОД
Загрузите код, предоставленный на Pro Micro.
Совет:сначала тщательно протестируйте свою плату / настройку, проверьте сопротивление и возможность соединения дорожек печатной платы, потому что если чего-то не хватает, это вызовет много ошибок клавиатуры, потому что отсутствующие линии заземления будут посылать нерегулярные сигналы на контакты, и ваш профессиональный микроконтроллер будет продолжать при нажатии случайных клавиш, что очень затруднит перепрограммирование Pro Micro.
ТЕСТИРОВАНИЕ
Первое, что вам нужно сделать, это открыть Блокнот, начать нажимать клавиши вашего контроллера и проверить, отображают ли клавиши на печатной машине правильные слова, которые назначены
или просто используйте любое приложение для тестирования клавиатуры или веб-приложение.
Если все работает по коду, откройте любую игру и начните играть в нее с помощью этой ИГРОВОЙ КОНСОЛИ DIY!
посмотреть видео-
ДАЛЬНЕЙШИЕ УЛУЧШЕНИЯ
Ну, первое, что я собираюсь добавить в эту настройку, - это аналоговые джойстики для правильной игры, в которых для навигации по игроку используется мышь, вроде XBOX ONE CONSOLE.
V2 будет иметь правильную печатную плату с XBOX One Controller Layout, так что следите за обновлениями.
Если возникнут проблемы, оставьте комментарий!
Код
- КОД
КОД C / C ++
#includeint WPin =2; // ВВЕРХ int SPin =3; // DOWNint APin =4; // СЛЕВА int DPin =5; // RIGHTint UPLpin =7; // вверху слева Qint UPRpin =9; // правый верхний int Xpin =14; // xint Apin =10; // iint Ypin =15; // yint Bpin =16; // bvoid setup () {pinMode (WPin, INPUT); pinMode (SPin, ВХОД); pinMode (APin, ВХОД); pinMode (DPin, ВХОД); pinMode (UPLpin, ВХОД); pinMode (UPRpin, ВХОД); pinMode (Xpin, ВХОД); pinMode (Apin, ВХОД); pinMode (Ypin, ВХОД); pinMode (Bpin, ВХОД); digitalWrite (WPin, HIGH); digitalWrite (SPin, HIGH); digitalWrite (APin, HIGH); digitalWrite (DPin, HIGH); digitalWrite (UPLpin, HIGH); digitalWrite (UPRpin, HIGH); digitalWrite (Xpin, HIGH); digitalWrite (Apin, HIGH); digitalWrite (Ypin, HIGH); digitalWrite (Bpin, HIGH); Keyboard.begin (); } void loop () {если (digitalRead (WPin) ==0) {Keyboard.write ('W'); delayMicroseconds (1); } если (digitalRead (SPin) ==0) {Keyboard.write ('S'); delayMicroseconds (1); } если (digitalRead (APin) ==0) {Keyboard.write ('A'); delayMicroseconds (1); } если (digitalRead (DPin) ==0) {Keyboard.write ('D'); delayMicroseconds (1); } если (digitalRead (UPLpin) ==0) {Keyboard.write ('q'); delayMicroseconds (1); } если (digitalRead (UPRpin) ==0) {Keyboard.write ('e'); delayMicroseconds (1); } если (digitalRead (Xpin) ==0) {Keyboard.write ('x'); delayMicroseconds (1); } если (digitalRead (Apin) ==0) {Keyboard.write ('i'); delayMicroseconds (1); } если (digitalRead (Ypin) ==0) {Keyboard.write ('y'); delayMicroseconds (1); } если (digitalRead (Bpin) ==0) {Keyboard.write ('b'); delayMicroseconds (1); }}
Изготовленные на заказ детали и корпуса
Схема
Производственный процесс
- Игра с гироскопом Arduino с MPU-6050
- Цифровые игральные кости Arduino
- Игра Arduino Nano Tetris на самодельной матрице 16x8
- Бутылка для воды с питанием от Arduino
- Игра Pixel Chaser
- Домашний контроллер Arduino, активированный Alexa
- NeoMatrix Arduino Pong
- Умные перчатки для рук
- DIY Arduino 1D Pong Game со светодиодной лентой WS2812
- Контроллер тестера Arduino DMX-512