Pong war das erste Videospiel, das den Massenmarkt erreichte. Zum ersten Mal in der Geschichte wurde das Konzept eines "Videospiels" dank des Atari 2600 ins Familienheim gebracht - es ist also richtig, dass wir diesem historischen Juwel eine kleine Hommage erweisen. Jetzt kannst du das (zugegeben etwas langweilige Gameplay) mit einem Arduino und einigen gemeinsamen Komponenten neu erleben.
Ich werde nicht lügen - es ist unwahrscheinlich, dass deine Tochter ihren Nintendo DS aufgeben wird, und das wird nicht stundenlangen Spaß für die ganze Familie bieten - aber es ist ein großartiges und einfaches Projekt, um deine Arduino-Kodierung zu verbessern. Und wenn Sie gerade erst anfangen, vergessen Sie nicht, unseren Arduino-Leitfaden für Anfänger zu lesen.
Wir machen zwei grundlegende Controller und das Video wird über ein Standard-Composite-Videokabel an Ihren Fernseher ausgegeben.
Anforderungen für Arduino Pong
- 470 Ohm Widerstand x1
- 1 k Ohm Widerstand x1
- 10k Ohm Potentiometer ( twiddly variabler Widerstand) x2
- Arduino x1 (beliebige Version)
- Cinch- Stecker x1 (wenn Sie mehr als einen haben, können Sie auch einen Ton anschließen. Einer für das Video ist ein absolutes Minimum)
- Druckschalter x1
- 10 k Ohm Widerstand x1
Sie können auch die TV-Out-Arduino-Bibliothek von hier herunterladen - Holen Sie sich die TVoutBeta1.zip, die neueste Version. Legen Sie die resultierenden Ordner alle in das Verzeichnis / arduino / libraries und starten Sie die Arduino IDE neu, wenn sie bereits geöffnet ist.
TV-Ausgang testen
Nehmen Sie Ihren Cinch-Stecker und entfernen Sie die äußere Schicht. Die Abschirmung auffangen, drehen und beiseite legen. Das ist dein Boden. In der Mitte sollte ein anderes Kabel mit Plastikabschirmung sein - wieder, streife es weg, so dass du deine Signalleitung hast.
Löten Sie die 470 Ohm und 1k Ohm Widerstände auf die mittlere Signalleitung Ihres RCA-Steckers - dies liefert ein Sync-Signal und das tatsächliche Videosignal, kombiniert um den analogen Videoeingang zu erzeugen. Der 470 Ohm Widerstand sollte in den digitalen IO Pin D07 eingesteckt werden, während der 1k Ohm Widerstand auf Pin D09 geht.
Diese Pins werden von der importierten Bibliothek festgelegt, sodass Sie sie nicht ändern können. Einer Ihrer Arduino GND Pins sollte zur Abschirmung (außen) des RCA gehen.
Jetzt können Sie in einem Beispiel weitermachen und laden; Obwohl sowohl PAL als auch NTSC zur Verfügung gestellt werden, sollte es mit modernen digitalen Fernsehern nicht wirklich wichtig sein - die NTSC-Demo funktionierte gut für mich, obwohl ich in Großbritannien war. An den Fernseher anschließen und einen schönen Retro-3D-Würfel erhalten. Ooooh ja - bist du schon aufgeregt? Ich bin.
Analoge Potentiometereingänge testen
Ok, wir haben die TV-Ausgabe funktioniert, jetzt wollen wir uns mit den Controllern beschäftigen. Die Verkabelung der "Potis" ist nicht so kritisch - jeder sollte 3 Pins haben, und der zentrale erzeugt fast immer das Ausgangssignal. Verdrahte das mit A0 und A1 (eins für jeden Topf). An einem der seitlichen Pins - egal welche - verdrahten + 5V. Der andere Stift auf der anderen Seite sollte zu Boden gehen.
Hier habe ich ihnen beide jeweils ein einzelnes Steckbrett zugewandt, weil ich nur kurze Drähte habe. Für ein ausgeklügeltes Produkt sollten Sie ein altes Netzwerkkabel verwenden, um etwas Abstand zu haben (damit Sie auf dem Sofa sitzen und spielen können).
Als nächstes laden Sie eine der grundlegenden Beispielskizzen, die mit dem Arduino geliefert werden - die analoge Eingabe. Diese Demo wird die Onboard-LED je nach Eingang auf A0 schneller oder langsamer blinken lassen.
Es testet den anderen A1-Pot nicht, aber wenn du A0 richtig verdrahtet hast, kann ich nicht sehen, wie du auf A1 einen Fehler machen würdest. Lass uns annehmen, dass alles gut ist und mach weiter.
Fügen Sie einen Startschalter hinzu
Schließlich fügen wir einen Startschalter auf D02 hinzu. Schlagen Sie hier im Schaltplan nach. Dieser Schalter wird verwendet, um das Spiel im Menü zu starten.
Der Pong-Code
Wir verwenden einen Code, der ursprünglich von Lamonica geschrieben wurde, der von duboisvb für zwei Spieler modifiziert wurde, und von mir selbst aktualisiert wurde, um die neueste Beta-Version der TV-Out-Bibliothek zu verwenden. Sie können den Code aus diesem Pastebin anzeigen und herunterladen.
Es ist ein ziemlich langer, aber einfacher Code, der keine Erklärung von mir erfordern sollte. Wie bei den meisten Spielen hängt es von einem Spielzustand ab (Menü, Spiel im Spiel, Spiel vorbei) und liest die Eingabewerte beider Controller und schaltet jede Iteration der Schleife um. Darüber hinaus gibt es Methoden zum Zeichnen des Bildschirms, des Balls, der Paddles und der Spiellogik.
Beachten Sie, dass der Code auch Audio-Ausgabe enthält : Ich konnte keine RCA-Stecker mehr finden, um das zu testen, aber wenn Sie welche haben, verbinden Sie den Signal-Pin direkt mit D11, und Sie sollten einige gefällige Retrosignale erhalten.
Um ehrlich zu sein, ich wusste nicht, dass Arduino sogar TV ohne eine immens komplexe Kodierung machen könnte; Die TV-Out-Bibliothek macht es wirklich einfach. Auch wenn Sie kein Retro-Gaming betreiben, ist die Verwendung dieses grundlegenden TV-Ausgangs eine großartige Möglichkeit, vorhandene Geräte als billiges Monitorgerät zu nutzen. Sie können natürlich auch Farbe ausgeben.
Denkst du, du wirst Arduino Pong ausprobieren oder vielleicht dein eigenes Retro-Videospiel-Remake machen? Sagen Sie uns in den Kommentaren, wenn Sie haben!