Industrielle Fertigung
Industrielles Internet der Dinge | Industrielle Materialien | Gerätewartung und Reparatur | Industrielle Programmierung |
home  MfgRobots >> Industrielle Fertigung >  >> Manufacturing Technology >> Herstellungsprozess

DIY Arduino USB Gaming Controller – Bauen Sie Ihren eigenen High-Performance Gamepad

Komponenten und Zubehör

SparkFun Pro Micro - 5V/16MHz × 1
Arduino Leonardo × 1
SparkFun Drucktaster 12mm × 12
Widerstand 10k Ohm × 1
Custom Geätzte PCB × 1
UTSOURCE Elektronische Bauteile × 1

Benötigte Werkzeuge und Maschinen

Apps und Online-Dienste

Über dieses Projekt

VIDEO

Es ist besser, zuerst das Projektvideo anzusehen.

INTRO

Dieser Beitrag handelt von einem „DIY Gaming USB Controller“, an dem wir kürzlich bei ElectroPunkz Labs gearbeitet haben.

Die Idee ist, einen günstigen ATmega32U4-basierten USB-Controller mit Buttons und analogen Joysticks zu bauen, der zum Spielen von Spielen wie NFS, GTA, Half-Life, LITTLE FIGHTER 2! usw. verwendet werden kann.

Wir haben unseren Controller in zwei Formfaktoren gebaut: der erste basiert auf einer PS1- oder SNES-Konfiguration, der andere ist ein ausgewachsener Xbox-USB-Controller mit Analog-Sticks und Buttons (noch nicht finalisiert).

In diesem Beitrag bauen wir V1 – den PS1-Layout-Controller!

MATERIALIEN

Die Hardware ist ziemlich einfach und leicht zu beschaffen (außer der PCB, Sie können Ihre eigene mit der angehängten PDF-Datei der PCB erstellen):

Danke an UTSOURCE.net für die Bereitstellung der elektronischen Komponenten für dieses Projekt! Sie können UTSOURCE.net besuchen – sie handeln mit allen Arten von elektronischen Komponenten, wie z.B. allen in diesem Projekt verwendeten Komponenten!

BAUPROZESS (Verdrahtung, Montage, etc.)

Das Erste, was wir tun müssen, ist die Grundkonfiguration vorzubereiten: im Grunde 12 Drucktaster in Pull-Down-Konfiguration mit einem Pro Micro verbunden – so wie im Schaltplan gezeigt.

Wir haben dies auf einem Breadboard getestet und dann eine PCB gemäß dem obigen Schaltplan entworfen.

Nach dem Entwerfen der PCB (in OrCad Cadence) haben wir den PDF des Top-Layers auf Glanzpapier gedruckt.

Ich habe das Glanzpapier passend zur PCB zugeschnitten, auf eine Kupferplatine gelegt und Hitze angewendet, um die Tinte vom Glanzpapier auf die Kupferplatine zu übertragen (Basic Toner-Transfer-Methode, sehen Sie mein Video zu diesem Thema).

Nachdem die PCB fertig war, haben wir sie in eine Ätzlösung getaucht und die PCB geätzt. Danach haben wir nur noch Löcher für die Komponenten gebohrt, und unsere DIY GAME CONTROLLER PCB war fertig!

Dann haben wir einfach alles gemäß Schaltplan und Schaltung darauf platziert und die Schaltung war fertig.

Nachdem die Schaltung fertig war, haben wir das PCB-Gehäuse für den Controller in Fusion360 designed und 3D-gedruckt.

Jetzt müssen wir nur noch den Code hochladen und ein paar Spiele damit spielen.

CODE

Laden Sie den unten bereitgestellten Code auf Ihren Pro Micro hoch.

Wort der Warnung: Testen Sie Ihr Board/Setup gründlich, prüfen Sie Widerstand und Leitfähigkeit der PCB-Spuren, denn wenn etwas fehlt, verursacht dies viele Tastaturfehler, da fehlende Ground-Leitungen irreguläre Signale an die Pins senden und Ihr Pro Micro zufällige Tasten drückt, was das Neuprogrammieren sehr schwierig macht.

TESTEN

Das Erste, was Sie tun müssen: Öffnen Sie den Editor und drücken Sie die Tasten Ihres Controllers und prüfen Sie, ob beim Drücken die richtigen Buchstaben angezeigt werden, die im Code zugewiesen sind.

Oder verwenden Sie einfach eine Tastatur-Test-App oder Web-App.

Wenn alles gemäß dem Code funktioniert, öffnen Sie ein beliebiges Spiel und spielen Sie es mit dieser DIY-GAMING-KONSOLE!

WEITERE VERBESSERUNGEN

Nun, das Erste, was ich zu diesem Setup hinzufügen werde, sind Analog-Joysticks für richtige Spiele, die eine Maus zur Spielernavigation verwenden – so wie der XBOX ONE CONTROLLER.

V2 wird eine proper PCB mit Xbox One Controller Layout haben – bleiben Sie dran!

Hinterlassen Sie einen Kommentar, falls Sie Probleme haben!

Code

CODE (C/C++)

#include <Keyboard.h>
int WPin = 2; // UP
int SPin = 3; // DOWN
int APin = 4; // LEFT
int DPin = 5; // RIGHT
int UPLpin = 7; // upper left Q
int UPRpin = 9; // upper right
int Xpin = 14; // x
int Apin = 10; // i
int Ypin = 15; // y
int Bpin = 16; // b

void setup() {
  pinMode(WPin, INPUT);
  pinMode(SPin, INPUT);
  pinMode(APin, INPUT);
  pinMode(DPin, INPUT);
  pinMode(UPLpin, INPUT);
  pinMode(UPRpin, INPUT);
  pinMode(Xpin, INPUT);
  pinMode(Apin, INPUT);
  pinMode(Ypin, INPUT);
  pinMode(Bpin, INPUT);
  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() {
  if (digitalRead(WPin) == 0) { Keyboard.write('W'); delayMicroseconds(1); }
  if (digitalRead(SPin) == 0) { Keyboard.write('S'); delayMicroseconds(1); }
  if (digitalRead(APin) == 0) { Keyboard.write('A'); delayMicroseconds(1); }
  if (digitalRead(DPin) == 0) { Keyboard.write('D'); delayMicroseconds(1); }
  if (digitalRead(UPLpin) == 0) { Keyboard.write('q'); delayMicroseconds(1); }
  if (digitalRead(UPRpin) == 0) { Keyboard.write('e'); delayMicroseconds(1); }
  if (digitalRead(Xpin) == 0) { Keyboard.write('x'); delayMicroseconds(1); }
  if (digitalRead(Apin) == 0) { Keyboard.write('i'); delayMicroseconds(1); }
  if (digitalRead(Ypin) == 0) { Keyboard.write('y'); delayMicroseconds(1); }
  if (digitalRead(Bpin) == 0) { Keyboard.write('b'); delayMicroseconds(1); }
}

CAD-Dateien

Benutzerdefinierte Teile und Gehäuse – Dateien im Originalprojekt verfügbar.

Schaltpläne

Schaltpläne im Originalprojekt verfügbar.

Herstellungsprozess

  1. Echtzeit-Gyroskop-Spiel mit Arduino Nano & MPU-6050
  2. Arduino Digitaler Würfel: LCD-Würfel mit Zufallszahlen (1–6)
  3. Tetris-Spiel mit Arduino Nano auf selbstgebauter 16×8 LED-Matrix
  4. Smarte Arduino-Trinkflasche: Echtzeit-Überwachung & Trinkerinnerung
  5. Pixel Chaser: Interaktives One-Tap-LED-Spiel mit Arduino Nano
  6. Alexa-fähiger Arduino Home Controller: Smarte Automatisierung leicht gemacht
  7. NeoPixel-Matrix Pong auf Arduino Nano: Neon-Pong selbst bauen
  8. Intelligenter Gesten-zu-Text-Handschuh für Gebärdensprache
  9. 1D-Pong-Spiel mit Arduino Nano und WS2812-LED-Strip – Schritt-für-Schritt-Anleitung
  10. Arduino DMX-512 Tester & Controller – Komplettes Bauteil-Set für zuverlässige Lichtsteuerung