Inhaltsverzeichnis:

Arduino Basic PC mit TV-Ausgang - Gunook
Arduino Basic PC mit TV-Ausgang - Gunook

Video: Arduino Basic PC mit TV-Ausgang - Gunook

Video: Arduino Basic PC mit TV-Ausgang - Gunook
Video: DIY Radar With Ultrasonic Sensor And Chat-GPT Generated Arduino Code | Coders Cafe 2024, Juni
Anonim
Image
Image
Arduino Basic-PC mit TV-Ausgang
Arduino Basic-PC mit TV-Ausgang
Arduino Basic-PC mit TV-Ausgang
Arduino Basic-PC mit TV-Ausgang
Arduino Basic-PC mit TV-Ausgang
Arduino Basic-PC mit TV-Ausgang

In diesem Instructables werde ich zeigen, wie man einen Retro-8-Bit-Computer mit BASIC baut, mit Hilfe von zwei Arduino und einigen anderen Komponenten.

Sie können die Variablen und das BASIC-Programm mit einer PS2-Tastatur eingeben, und die Ausgabe wird auf einem Monitor mit einem Text angezeigt 47 Spalten x 29 Zeilen mit 8x8 Pixel-Zeichen (S/W), eine Auflösung ähnlich oder besser als die des Commodore 64, gleich 40 x 25 Zeichen.

Sie können es im oberen Video in Aktion sehen.

Das Programm kann dann auf dem Arduino EEPROM gespeichert werden, und Sie können die I / O-Pins weiterhin direkt über dedizierte Basic-Befehle steuern.

Ein Arduino ist der "Master", und es läuft Tiny Basic Plus, eine C-Implementierung von Tiny Basic, mit Schwerpunkt auf der Unterstützung von Arduino. Es steuert auch eine PS2-Tastatur. Die Ausgabe wird dann über den seriellen Port an den zweiten Arduino gesendet, der dank der fantastischen MRETV-Bibliothek die Videoausgabe generiert.

Die Idee, einen oder mehrere Arduinos zu verwenden, um einen PC im alten Stil zu erstellen, auf dem ein Dialekt von Basic ausgeführt wird, ist nicht neu, aber bisher gab es einige starke Einschränkungen in der Ausgabeauflösung. In einigen im Netz verfügbaren Projekten wurden LCD-Displays verwendet, während in anderen, um die Verwendung von Monitoren zu ermöglichen, die TVout-Bibliothek verwendet wurde, die eine viel niedrigere Auflösung hat. Außerdem müssen bei vielen dieser Projekte spezielle Shields oder Hardware gebaut werden.

Hier benötigen Sie nur zwei Arduino, ein paar Dioden, einige Widerstände und den Anschluss für die PS2-Tastatur und den Monitor, wie im obigen Bild gezeigt.

Schritt 1: Bauen Sie den Arduino Master mit TinyBasic und PS2-Tastatur

TinyBasic Plus und MRETV funktionieren für ältere – und andere – Arduino IDE.

Laden Sie zuerst IDE 1.6.4 von der offiziellen Arduino-Webseite herunter. Wenn Sie eine neuere Version auf Ihrem PC haben, laden Sie diese am besten im.zip-Format herunter und entpacken Sie diese auf Ihrem PC. Klicken Sie auf diesen Link, um die Windows-Version herunterzuladen.

Sie benötigen dann die PS2keyboard-Bibliothek. Sie finden es unten auf dieser Seite. Entpacken Sie es einfach und kopieren Sie den PS2keyboard-Ordner in: arduino-1.6.4\libraries

Laden Sie schließlich auf dieser Seite die Datei herunter: TinyBasicPlus_PS2.ino, entpacken Sie sie und laden Sie sie auf Ihren Arduino hoch.

Dies ist eine Variation des Standard TinyBasic Plus, bei der ich die PS2-Bibliothek hinzugefügt und den Code geändert habe, um das Viariable daraus zu akzeptieren.

Weitere Details zu TiniBasic Plus und Tutorials finden Sie unter diesem Link.

Wenn es keine Probleme und Kompatibilitätsprobleme gibt, wird Tiny Basic bereits ausgeführt. Sie können es über einen seriellen Monitor in Ihrem PC testen. Zu diesem Zweck verwende ich PuTTY, es stehen aber auch viele andere Programme zur Verfügung.

Sie müssen den richtigen COM-Port einstellen (dieser ist der gleiche, den Sie in der Arduino IDE finden) und die Baudrate = 2400

Hier können Sie bereits einige Programme in Basic testen, indem Sie sie einfach mit Ihrer PC-Tastatur eingeben (NB später werde ich zeigen, wie Sie die PS2-Tastatur direkt mit dem Arduino verbinden).

Versuchen Sie zum Beispiel:

10 DRUCK "Hallo Welt!"

20 GOTO 10

LAUF

Sie können die Endlosschleife dann einfach durch Eingabe von Strg+C stoppen. Beachten Sie, dass diese Kombination nicht für die PS2-Tastatur funktioniert.

Im nächsten Schritt zeige ich, wie man die PS2-Tastatur mit Arduino verbindet.

Schritt 2: Verbinden Sie die PS2-Tastatur mit dem Master Arduino

Verbinden Sie die PS2-Tastatur mit dem Master Arduino
Verbinden Sie die PS2-Tastatur mit dem Master Arduino

Ich habe alle Informationen und Bibliothek von diesem Instructable.

Im Wesentlichen müssen Sie die folgenden vier Pins verbinden:

  • Tastaturdaten an Arduino Pin 8,
  • Tastatur IRQ (Takt) an Arduino Pin 3;
  • Natürlich müssen Sie auch GND und +5V anschließen.

Ich habe eine alte PS2-Buchse von einem kaputten PC-Motherboard bekommen. Sie können sie einfach mit einer Heißluftpistole ausverkaufen.

In dem in diesem Schritt gezeigten Bild finden Sie die Funktion der benötigten Pins des PS2-Anschlusses.

Schritt 3: Laden Sie die MRETV-Bibliothek auf dem zweiten Arduino hoch und setzen Sie alles zusammen

Laden Sie die MRETV-Bibliothek auf dem zweiten Arduino hoch und setzen Sie alles zusammen
Laden Sie die MRETV-Bibliothek auf dem zweiten Arduino hoch und setzen Sie alles zusammen

Der Schlüsselpunkt dieses Projekts ist die Existenz der großartigen MRETV-Bibliothek. Es gibt ein spezielles Instructable, in dem es im Detail beschrieben wird.

Es verwendet nur zwei Widerstände und zwei Dioden, um ein Vollbildvideo mit einer Textauflösung von 47 x 29 mit 8 x 8 Zeichen zu erzeugen. Wie es in der Einleitung heißt, "wurde bereits eine Videogenerierung durchgeführt, aber nicht so. FULL DUPLEX-Serie ist während der Videogenerierung weiterhin verfügbar". Dies ermöglicht es, die Daten vom "Master" Arduino zu erhalten und auf dem Monitor anzuzeigen. In der Praxis wird dieser zweite "Slave" Arduino als grafische Schnittstelle verwendet!

Da MRETV für IDE 1.6.6 funktioniert, laden Sie es von der offiziellen Arduino-Webseite herunter. Auch hier ist es am besten, es im.zip-Format herunterzuladen und auf Ihrem PC zu dekomprimieren. Klicken Sie auf diesen Link, um die Windows-Version herunterzuladen.

Laden Sie dann die MRETV-Bibliothek von diesem Link herunter.

Entpacken Sie es und speichern Sie den Ordner "MRETV" in: arduino-1.6.6\libraries

Laden Sie schließlich TVtext_slave.rar am Ende dieser Seite herunter, entpacken Sie es und laden Sie es in Ihren Arduino-Slave hoch.

Wenn keine Fehlermeldung angezeigt wird, können Sie den Cinch-Stecker anschließen. Sie benötigen die beiden Dioden und die Widerstände von 1 kOhm und 300 Ohm, wie im Schaltplan auf dieser Seite gezeigt.

An dieser Stelle können Sie alles miteinander verbinden.

Die vollständige Materialliste lautet:

  • zwei Arduino Uno Rev. 3 oder zwei Arduino Nano 3.x (ATmega328)
  • zwei Widerstände 1 kOhm
  • ein Widerstand 300 Ohm
  • zwei Dioden 1n4148 (x2) oder ähnliche Silizium-Schaltdiode
  • zwei Cinch-Buchsen (eine für Video, eine - fakultativ - für Audio)
  • eine PS2-Buchse
  • ein Steckbrett und Drähte

Der Master-Arduino sendet die Daten über das orangefarbene Kabel an den Slave, d.h. Master-Pin 1 (Tx) an Slave-Pin 2 (Rx). Wenn Sie Code erneut hochladen müssen, sollten Sie zuerst dieses Kabel trennen.

Schließen Sie dann das Slave-Arduino an ein 5V-Netzteil, das Cinch-Kabel an den Fernseher und die Tastatur an die PS2 an, und Sie sollten jetzt den Code für Ihren Fernseher sehen!

Die Funktionen dieses Basic-Dialekts sind auf seiner Homepage ausführlich beschrieben (siehe Link in Schritt 2). Mit den Befehlen "esave" und "eload" können Sie ein Basic-Programm im EEPROM speichern. Dieses Programm wird standardmäßig jedes Mal ausgeführt, wenn Sie das Master-Arduino zurücksetzen. Zum Löschen können Sie den Befehl "eformat" verwenden.

Eine der wichtigsten Funktionen dieses Programms ist, dass Sie den Master-Arduino-I/O weiterhin mit dedizierten Basic-Befehlen wie z

  • DWRITE-Pin, Wert - Pin mit einem Wert setzen (HIGH, HI, LOW, LO)
  • AWRITE Pin, Wert - Pin mit Analogwert setzen (pwm) 0..255
  • DREAD(pin) - Holen Sie sich den Wert des Pins
  • AREAD(analogPin) - Holen Sie sich den Wert des analogen Pins

So können Sie in Basic ein Programm schreiben, das einige Hardware antreibt, es im EEPROM speichern und es dann automatisch ausführen, indem Sie das Arduino zurücksetzen.

Schritt 4: Optional: Verwendung einer Platine

Optional: Verwendung einer Leiterplatte
Optional: Verwendung einer Leiterplatte
Optional: Verwendung einer Leiterplatte
Optional: Verwendung einer Leiterplatte
Optional: Verwendung einer Leiterplatte
Optional: Verwendung einer Leiterplatte

Sie können diesen Basic-PC auch mit einer kleinen Platine bauen. Sie können sich in diesem Schritt von den Bildern inspirieren lassen oder Ihr Board sogar drucken.

Sie können zwei Buchsenleisten mit 15 Löchern für den Videoausgang Arduino verwenden, während ich für den Master vorschlage, vier Streifen zu verwenden. Auf diese Weise können Sie die externen verwenden, um die Kontakte Ihrer Projektkomponenten einzufügen.

Ich habe auch in der Mitte übrig gebliebene Streifen hinzugefügt, einen an 5 V und den anderen für GND.

Schließlich finden Sie in der.rar-Datei die Masken zum Ätzen einer verkupferten Platine.

Schritt 5: Abschließende Kommentare und Danksagungen

Dieses Projekt wäre ohne die MRETV-Bibliothek nicht möglich gewesen. Daher gilt mein größter Dank seinem Autor, der das Akronym Herrn E.

Vielen Dank auch an die Autoren von TinyBasic Plus:

  • Tiny Basic 68k - Gordon Brandly
  • Arduino Basic / Tiny Basic C - Michael Field
  • Tiny Basic Plus - Scott Lawrence

Danke auch an "djsadeepa", den Autor des Instructable für den Anschluss der PS2-Tastatur.

An alle, die sich für dieses Projekt interessieren: Es ist einfacher zu bauen, als es auf den ersten Blick erscheinen mag. Meine Hauptprobleme waren mit der Arduino IDE-Kompatibilität. Wenn Sie Probleme haben, zögern Sie nicht, Vorschläge in den Kommentaren zu stellen.

Wenn Sie erfolgreich sind, schreiben Sie bitte auch einen Kommentar oder teilen Sie ein Bild des von Ihnen gebauten Geräts.

Empfohlen: