Normalerweise zu empfangen von Arduino Das Videosignal wird entweder mit einem externen TellyMate-Hardwaregerät oder mit der Arduino-TVout-Bibliothek verwendet. Im zweiten Fall wird kein zusätzlicher Mikrocontroller mehr benötigt, aber die Auflösung des Bildes ist gering. Das von Instructables unter dem Namen Mr. E kombiniert die Vorteile beider Methoden: Der Mikrocontroller ist wie im zweiten Fall einer und die Auflösung ist dieselbe wie im ersten. Aber das ist noch nicht alles: Gleichzeitig können Sie im Hintergrund einiger Aufgaben nicht nur ein Bild, sondern auch Stereoton ausgeben und mit Eingabegeräten arbeiten.
Natürlich erfordert Arduino oder ein kompatibles Board für die gleichzeitige Implementierung all dies eine Menge Ressourcen. Daher funktioniert eine Reihe von Bibliotheken nur mit Motherboards, die auf ATmega168-, 328- und 2560-Mikrocontrollern basieren. Wir sprechen nicht über die Arbeit mit Motherboards mit ATmega8- oder ATtiny85-Mikrocontrollern (z. B. Digispark).
Um externe Geräte anzuschließen, sammelt der Master einfache Schaltkreise an Widerständen, Dioden und Kondensatoren. Er beginnt mit einer Schaltung zur Erfassung eines Videosignals. Dies ist der einfachste Mischer, der Helligkeitssignale und Synchronisationssignale in einem bestimmten Verhältnis mischt. Schaltungen für verschiedene Arten von Karten unterscheiden sich nur in den Pin-Nummern zum Entfernen dieser Signale.
Der Meister sammelt dieses Schema in Optionen für "Tulpe" und S-Video. Im zweiten Fall ist der Eingang für das Chroma-Signal aus offensichtlichen Gründen nicht beteiligt.
Um die Videoausgabe in Aktion zu überprüfen, installiert der Assistent Bibliotheken (Archive mit ihnen und Beispiele sind hier, neuere Version - hier) In Arduino IDE funktioniert die automatische Installation nicht manuell. Zu diesem Zweck werden alle Fenster geschlossen, die sich auf die IDE beziehen, und anschließend werden die Bibliotheken aus dem Archiv in den Bibliotheksordner dieser Programmierumgebung und die Beispiele in den Ordner "Beispiele" verschoben. Und für den Anfang beginnt eine solche Skizze:
#include "MRETV.h"
#include "textfont.h"
char mystring [] = "Hallo Welt";
void setup () {
Screen.begin (Textfont, Mystring, 2 * Fontheight, 6,30,30,1);
}}
void loop () {}
Nachdem sichergestellt wurde, dass der Ausdruck "Hallo Welt" auf dem Fernseher angezeigt wird, experimentiert der Assistent mit Beispielen:
SimpleDisplay.ino - E / A-Schnittstelle zu vorhandenen Projekten
TVText.ino - Arduino als externe Grafikkarte
TestPattern.ino - Testdiagramm
Bounce.ino - Arbeiten Sie mit bewegten Bildern und Bitmap-Bildern
Der Stereo-Audioausgang ist an der Reihe.Hier müssen Sie keine Signale mischen, aber wenn Sie dynamische Köpfe oder Kopfhörer nicht direkt, sondern über einen Verstärker anschließen, können Sie nicht auf einen Tiefpassfilter verzichten. Und wieder - die Schaltung in zwei Versionen, je nachdem auf welchem Mikrocontroller die Karte hergestellt ist:
Dieses Gerät sammelt auch den Master:
Und probiert die Beispiele aus:
Arudion.ino - Sequenzer
ScreenTool.ino ist ein multifunktionales Dienstprogramm, für das eine Tastatur (siehe unten) oder ein Terminalemulator auf einem PC erforderlich ist
Ponguino.ino - Ein Pong-Klon mit Sound benötigt eine Tastatur (siehe auch unten).
Die nächste Aufgabe besteht darin, eine Tastatur oder Maus (aber nicht beide gleichzeitig) des veralteten PS / 2-Standards anzuschließen. Es gibt immer noch ziemlich viele von ihnen.
Der Meister kommt auch damit zurecht:
Die Beispiele sind im Grunde die gleichen, aber die neue Peripherie eröffnet neue Möglichkeiten:
TVText.ino - Jetzt können auf dem Terminal Informationen nicht nur angezeigt, sondern auch eingegeben werden
ShootEmUp.ino - Spiel, steuere die Pfeiltasten, nur ATmega328 und 2560
Ponguino.ino - jetzt können Sie spielen: Drücken Sie j, steuern Sie dann die WASD-Tasten. Wenn es Zeit ist, die Sensoren anzuschließen, können Sie analoge Controller erstellen
KeyboardTool.ino - ScreenTool-Entwicklungsdienstprogramm
Bounce.ino - Durch Anschließen der Tastatur können Sie weitere Effekte ausprobieren
Arudion.ino - Mit der Tastatur können Sie mehr Funktionen ausprobieren und sich selbst wie auf einem Synthesizer spielen
Das alles ist wunderbar, aber nach den Beispielen möchte ich versuchen, die Funktionen von MRETV in meinen Programmen zu verwenden. Der Assistent empfiehlt, nicht den seriellen Portmonitor der Arduino IDE zu verwenden, sondern einen Terminalemulator mit einem weiter entwickelten Funktionsumfang. Im Folgenden wird gezeigt, wie Sie von Ihren Programmen aus auf Bibliotheksfunktionen zugreifen. Sie können alle oben genannten Schnittstellen gleichzeitig, einzeln oder in beliebiger Kombination verwenden.
Mit Videoausgabe arbeiten:
Der Assistent versucht, verschiedene von MRETV unterstützte analoge Sensoren mit Arduino zu verbinden. Zum Beispiel ein variabler Widerstand, ein Thermistor, ein Teiler zum Messen der Spannung, ein Feuchtigkeitssensor, eine Diode als Temperatursensor, ein Fotowiderstand:
Die Sensoren müssen so beschaffen sein, dass die Eingangsspannung im Bereich von 0 bis +1 V liegt und gleichzeitig die beste Messgenauigkeit erzielt wird. Beispiele:
Ponguino.ino - jetzt können Sie mit einem analogen Controller spielen
KeyboardTool.ino - siehe Lesefunktion von analogen Eingängen
Aus dem Festplattenkabel mit IDE-Schnittstelle erstellt der Master ein „Sensorbad“ - einen Adapter zum bequemen Anschluss analoger Sensoren:
Beispiele für die Arbeit damit:
KeyboardTool.ino - Verwenden Sie die gleiche Methode wie beim Anschließen von Sensoren ohne „Sensorbad“.
DiodeCalibration.ino - automatische Kalibrierung bei Verwendung von Dioden als genaue Temperatursensoren
Kalibrierungsverfahren:
1. Schließen Sie einen Thermistor an A0 und einen 10-kΩ-Widerstand an C0 an
2. Machen Sie einen Spannungsteiler: einen Widerstand von 2 kOhm glatt (es ist möglich von zwei Widerständen von 1 kOhm) zu A1, einen Widerstand von 10 kOhm zu C1
3. Schließen Sie eine bis vier Dioden als Temperatursensoren an A2 - A5, 10 kΩ Widerstände an C2 - C5 an.
Jetzt können Sie kalibrieren.
Die MRETV.S-Datei ist in Assembler geschrieben und wird nur kompiliert, wenn sie sich im Bibliotheksordner befindet. Die Datei MRETV.extensions wird benötigt, um zu entscheiden, welche Erweiterungen beim Kompilieren verwendet werden sollen.
Anwendung.
MRETV verwendet eine serielle Ausgabe, um ein Video zu generieren, und ein zufälliger Datenstrom kann an den Monitor der seriellen Schnittstelle gesendet werden. Mit dem Schalter können Sie zwischen Hardware- und Softwaredatenübertragung wählen. Im zweiten Fall wird Vollduplex gleichzeitig mit der Videoerzeugung implementiert.
Der Name des Bibliothekssatzes ergibt sich aus dem Spitznamen des Entwicklers Mr. E und bedeuten auch Master Raster (Extended) Transmission Vision.