Inhaltsverzeichnis:

USB Paddle Game Controller - Gunook
USB Paddle Game Controller - Gunook

Video: USB Paddle Game Controller - Gunook

Video: USB Paddle Game Controller - Gunook
Video: USB Adapter for Atari Paddles and Joysticks with 4 ports Retro 2024, November
Anonim
USB-Paddle-Gamecontroller
USB-Paddle-Gamecontroller
USB-Paddle-Gamecontroller
USB-Paddle-Gamecontroller
USB-Paddle-Gamecontroller
USB-Paddle-Gamecontroller

Mein Sohn hatte zu seinem Geburtstag eine Retro-Videospiele-Nacht, und am Morgen des Tages beschloss ich zu sehen, ob ich mit Hilfe eines 3D-Druckers und Elektronik aus meinem Vorrat ein Paar USB-Paddle-Game-Controller für Pong herstellen könnte. Obwohl ich es geschafft habe, sie im Grunde rechtzeitig zum Laufen zu bringen, waren die Leute am Ende zu beschäftigt mit anderen Spielen für Pong.

Die Controller können für Pong mit dem DICE-Emulator auf Schaltungsebene oder mit meiner ziemlich genauen Pygame-Version, für Atari 2600-Spiele mit einem Emulator und für Etch-a-Sketch-ähnliche Funktionen mit einem Malprogramm wie Tux Paint verwendet werden.

Es gibt drei umschaltbare Modi:

  • Stelladaptor-Paddle-Emulation: Sie sollten mit jeder Atari 2600-Emulationssoftware funktionieren, die den Stelladaptor unterstützt; Im Stelladaptor-Modus fungieren die Paddles als zweiachsiger Zwei-Tasten-Joystick, wobei jeder Paddel eine Achse und eine Taste steuert
  • Dual-Joystick-Emulation: Jedes Paddel fungiert als Joystick mit einer Taste (wobei die Paddelbewegung in eine Bewegung auf beiden Joystick-Achsen übersetzt wird)
  • Maus: Jedes Paddel steuert eine Bewegungsrichtung für eine absolute Maus, und die Tasten sind Maustasten; zusammen mit einem Malprogramm erhält man ein Hightech-Gerät ähnlich einem Etch-a-Sketch.

Lieferungen

Du wirst brauchen:

  • stm32f103c8t6 blaue Pille
  • 2x Linearpotentiometer (ich würde 20K-100K empfehlen)
  • 2x 12mm breiter Mikroschalter mit Taste
  • 3D Drucker
  • Sonstiges (Filament, Drähte, Lot, Lötkolben, Heißkleber)

Schritt 1: Vorbereiten der Board- und Arduino-Umgebung

Vorbereiten der Board- und Arduino-Umgebung
Vorbereiten der Board- und Arduino-Umgebung
Vorbereiten der Board- und Arduino-Umgebung
Vorbereiten der Board- und Arduino-Umgebung
  1. Löten Sie die sechs Header-Pins in der Mitte Ihres stm32f103c8t6-Boards.
  2. Prüfen Sie den Widerstand zwischen A12 und 3,3V. Es sollte 1,5 K für eine vollständigere USB-Kompatibilität betragen. Viele Boards haben stattdessen 10K. Wenn Sie einer davon sind, löten Sie idealerweise einen 1,8-K-Widerstand von A12 auf 3,3 V ein, obwohl Sie vielleicht Glück haben und Ihre Computer mit 10K arbeiten.
  3. Installieren Sie einen Bootloader. Es gibt Anweisungen in Schritt 2 dieses Instructable. Beachten Sie die vom STM-Demonstrator gemeldete Flash-Größe. Wenn es 32K ist, haben Sie ein gefälschtes stm32f103c8, das wahrscheinlich ein umbenanntes stm32f103c6 ist. Dieses Projekt sollte immer noch damit funktionieren, aber merken Sie sich, dass Sie das gefälschte Board für einen zukünftigen Schritt haben.
  4. Installieren Sie Arduino, Arduino Zero und Rogers libmaple-basierten Kern gemäß den Anweisungen in Schritt 3 des Instructable, das Sie im vorherigen Schritt verwendet haben. Ignorieren Sie die Bibliotheksanweisungen in diesem Schritt.
  5. Laden Sie die neueste Version meiner USB-Composite-Bibliothek herunter und entpacken Sie sie in Ihrem Arduino/Libraries-Ordner.
  6. Laden Sie meine Paddlecontroller-Skizze herunter und entpacken Sie sie in Ihrem Arduino-Ordner.
  7. Gehen Sie in Arduino zu Tools | Vorstand | Generic STM32F103C Series, es sei denn, Sie haben das gefälschte c6-Board, in diesem Fall wählen Sie stattdessen Generic STM32F103C6/fake STM32F103C8. Wenn Sie sich nicht sicher sind, welche Sie haben, ist die Wahl der gefälschten Option tatsächlich sicherer.

Schritt 2: Hochladen

Hochladen
Hochladen

Stecken Sie die Platine in den USB-Adapter Ihres Computers, laden Sie die Paddlecontroller-Skizze und klicken Sie auf die Schaltfläche Hochladen (nach rechts zeigender Pfeil). Wenn alles gut geht, sollte die Skizze hochgeladen werden und das Board sollte auf Ihrem Computer als zweiachsiger Zwei-Tasten-Joystick namens "Stelladaptor" angezeigt werden. Unter Windows können Sie dies mit Windows-R, joy.cpl[enter] überprüfen.

Dies wird natürlich nichts tun, bis Sie den Rest der Hardware zusammengebaut haben.

Schritt 3: Drucken

Drucken
Drucken
  1. Laden Sie die stl- und/oder scad-Dateien von meiner Thingiverse-Seite für dieses Projekt herunter. Bitte beachten Sie, dass der Paddle-Knopf von hier aus modifiziert wird.
  2. Wenn die Gehäusebreite Ihres Mikroschalters von 12 mm abweicht, müssen Sie den Parameter für die Tastenbreite in der Datei paddlemain-standalone.scad anpassen. Sie können dies in OpenSCAD oder im Thingiverse Customizer tun.
  3. Möglicherweise müssen Sie die Messungen in der Datei „paddleknob.scad“an Ihr Potentiometer anpassen.
  4. Drucken Sie diese Dateien aus (machen Sie nur eine Kopie der "2x"-Dateien, wenn Sie nur ein Paddel haben möchten). Ich habe PLA verwendet, aber ABS sollte auch gut funktionieren.

    • 2x paddelmain.stl
    • 2x paddelknob.stl
    • 1x Paddleconverter.stl
    • 1x Leiterplattenhalternarrower.stl
    • 2x buttoncap110.stl (optional)
    • 1x 12.stl (optional; in einer anderen Farbe ausdrucken und aufkleben, um die beiden Paddel zu beschriften)

Schritt 4: Verkabelung

Verdrahtung
Verdrahtung
Verdrahtung
Verdrahtung
Verdrahtung
Verdrahtung

Sie müssen vier Drähte von der stm32f103c-Platine zu jedem Paddle-Controller verlegen. Sie können für diese Drähte alte USB-Kabel verwenden. Ich hatte zufällig schöne eigenständige Drähte von einem Ethernet-Kabel, die ich mit Schrumpffolie zusammengebunden habe.

Jedes Paddel hat einen Mikroschalter und ein Potentiometer. Verwenden Sie ein Multimeter, um ein Paar benachbarter (nicht diagonaler) Pins am Mikroschalter zu identifizieren, die durch Drücken der Taste verbunden/getrennt werden. Ich werde diese Pins S1 und S2 im Diagramm beschriften. Die drei Pins des Potentiometers habe ich von oben nach unten mit P1, P2 und P3 beschriftet, von der Unterseite des Potentiometers aus gesehen, wobei die Pins nach rechts zeigen.

Schieben Sie die vier Drähte von der Platine durch das Loch an der Seite des Paddelgehäuses (paddlemain.stl).

Beim Anschluss von Drähten an den Mikroschalter zuerst die Drähte durch die Löcher in der Seite des Paddelgehäuses stecken und an den Schalter löten, während der Schalter außen am Gehäuse liegt. Ziehen Sie dann den Schalter zum Gehäuse, sodass die Stifte und die befestigten Drähte in die Löcher passen. Ich schneide die unnötigen Stifte ab.

Beide Paddel:

  • P1 bis S1
  • P1 an Bord 3.3V (3.3)
  • P3 zu Platinen-GND (G)

Paddel 1:

  • P2 zu Platine A1
  • S2 an Bord A2

Paddel 2:

  • P2 an Bord A3
  • S2 an Bord A4

Testen Sie nun die Verbindungen, indem Sie eine Verbindung zu Ihrem Computer herstellen und ein Joystick-Testprogramm verwenden. Unter Windows, Windows-R, joy.cpl[enter], wählen Sie Stelladaptor, klicken Sie auf Eigenschaften. Paddle 1 sollte die X-Achse und die erste Taste steuern; Paddle 2 sollte die Y-Achse und die zweite Taste steuern.

Schritt 5: Endmontage

Endmontage
Endmontage
Endmontage
Endmontage
Endmontage
Endmontage
Endmontage
Endmontage

Die Mikroschalter können an ihren Positionen an der Seite der Paddelbox geklebt werden (Heißkleber hat die Arbeit für mich erledigt). Knopfkappen können aufgesteckt werden, mit etwas Heißkleber für Stabilität.

Das Potentiometer wird am großen Loch oben in der Paddelbox befestigt. Der Knopf sollte aufgleiten und kleben. Vergrößern Sie die Löcher nach Bedarf mit einem Bohrer. Drücken Sie die untere Abdeckung auf und fügen Sie nach Belieben etwas Heißkleber hinzu.

Die blaue Pillentafel passt in den Leiterplattenschieber, der dann an den Boden der Konverterbox geschraubt wird, die auch einen Deckel hat, der sie abdecken kann.

Ich habe ein bisschen Shoe Goo hinzugefügt, wo die Drähte auf das Gehäuse treffen, um die Drähte zu schützen. Und ich habe "1" und "2" Etiketten auf die Paddel geklebt.

Schritt 6: Betriebsarten

Betriebsarten
Betriebsarten
Betriebsarten
Betriebsarten

Die Paddel haben drei Betriebsarten. Sie können den Betriebsmodus umschalten, indem Sie eine bestimmte Tastenkombination drücken, während Sie sie an einen USB-Port anschließen, und loslassen, sobald die Platinen-LEDs aufhören zu blinken. Sobald Sie den Betriebsmodus wechseln, wird er im Flash-Speicher gespeichert und bleibt bis zur nächsten Änderung erhalten. (Wenn Sie den Modus also nicht ändern möchten, drücken Sie keine Taste, während Sie die Paddles an einen USB-Anschluss anschließen.) Hier sind die Optionen:

  • Nur linke Paddle-Taste: Ein zweiachsiger Zwei-Tasten-Joystick, wobei jede Achse und Taste von einem Paddel gesteuert wird. Darüber hinaus identifizieren sich die Paddles als Stelladaptor, einem eingestellten USB-Adapter für Atari 2600-Controller, und so sollten Atari 2600-Emulatoren wie Stella und Z26, die Stelladapter-kompatibel sind, perfekt funktionieren.
  • Beide Paddle-Tasten: Jedes Paddle zeigt einen separaten Joystick. Der Joystick hat eine Bedientaste, und das Drehen des Paddels bewegt den Joystick diagonal, sodass entweder die X- oder die Y-Achse für das Paddel funktioniert.
  • Nur rechte Paddle-Taste: Die Paddles werden als absolute Zwei-Tasten-Maus angezeigt. Sie können dies nun ähnlich wie bei einem Etch-a-Sketch mit einem Zeichenprogramm verwenden.

Schritt 7: Pong

Pong
Pong
Pong
Pong

Pong war das große ursprüngliche Paddelspiel. Ich empfehle die Originalversion, da Klone oft nicht all die schönen subtilen Funktionen beinhalten, wie die Geschwindigkeitsänderungen bei wiederholten Schlägen, der Winkel ändert sich je nach dem Teil des Schlägers, der den Ball trifft, oder die subtile, aber nicht leicht vorhersehbare Position des Aufschlags nach einem Fehlschlag. Eine sorgfältige Analyse des Originals finden Sie hier.

Eine der besten Möglichkeiten, Pong zu spielen, ist der DICE-Emulator auf Schaltkreisebene, wenn Ihr Computer schnell genug ist, um ihn mit voller Geschwindigkeit zu verwenden. (Mein Windows-Laptop ist, aber der Raspberry PI 3+ ist viel zu langsam.) Ich empfehle Version 0.8.

Wenn Sie den Stelladaptor-Modus in den Paddles verwenden, gehen Sie zu Einstellungen | Konfigurieren Sie die Eingänge… in DICE und wählen Sie Joystick 1 und Absolute für Player 1 Paddle und stellen Sie sowohl Horizontal als auch Vertikal auf Joy 1 X-Axis ein. Machen Sie dann dasselbe für Player 2 Paddle, außer mit Y-Achse.

Wenn Ihr Computer für DICE zu langsam ist, habe ich eine Python3+pygame-Version erstellt, deren Timing und Funktionalität dem Original-Pong sehr nahe kommen sollen (ich bin Dr. Hugo Holden in dieser Hinsicht für Hilfe dankbar).

Empfohlen: