Ich habe kürzlich ein Projekt gestartet, bei dem ich diese kleine Kamera verwenden und das Live-Video an ein sehr kleines Farb-LCD weiterleiten möchte, wie dieses über ein Arduino.
Leider hat die Kamera einen NTSC-Ausgang und das LCD einen SPI-Eingang. Gibt es eine Möglichkeit, das Filmmaterial von der Kamera auf dem LCD anzuzeigen, oder muss ich einen anderen Bildschirm verwenden?
Nun, Sie müssten das Video digitalisieren, Luminanz-, Chrominanz- und Synchronisierungsinformationen extrahieren, von 525 Zeilen auf 128 Zeilen herunterskalieren und die Daten in Echtzeit über SPI ausgeben. Das klingt für mich nach einem Nichtstarter.
Es wäre einfacher, die digitale JPEG-Ausgabe der Kamera zu verwenden und diese zu dekomprimieren, da die Auflösung mit dem Bildschirm kompatibel ist (160 x 120 vs. 160 x 128), obwohl Sie immer noch kein Echtzeitvideo erhalten würden.
BEARBEITEN: Ich habe mich über das Video über die TTL-Schnittstelle geirrt: Sie können Schnappschüsse machen und sie über den UART senden, aber für das Video ist der analoge Ausgang der einzige Weg. Dafür benötigen Sie also einen schnellen ADC und digitale Manipulation, und es wird nicht so einfach sein.
Sie können es jedoch verwenden, um Bilder mit einer niedrigen Framerate zu senden, wie z. B. Webcams zur "Echtzeit"-Wetterüberwachung.
Was Sie definieren müssen, ist die Codierung des Bildes von der Webcam (Bittiefe und Framerate) und schließlich den Code schreiben, um es in ein mit dem Display kompatibles Format zu konvertieren (es gibt verschiedene Optionen, lesen Sie das Datenblatt).
Es ist möglicherweise auch möglich, das Bild ohne Verarbeitung direkt vom TTL-Eingang zum SPI-Eingang weiterzuleiten, aber Sie müssen sich immer noch um die Kommunikation kümmern, und es wird einfacher, wenn Ihr uC sowohl über die UART- als auch über die SPI-Schnittstelle verfügt.
Es ist also nicht unmöglich, erfordert aber etwas Arbeit.
Das Aufnehmen eines Schwarzweiß-NTSC-Videosignals ist nicht allzu schwierig, insbesondere wenn Sie sich nicht allzu viele Gedanken über die Auflösung oder Bildrate machen. Es gab zum Beispiel ein Videoaufnahme-Gizmo, das an den Druckeranschluss eines Amiga 1000 angeschlossen wurde. Damals keine ausgefallenen Zillionen-Megahertz-Mikrocontroller - nur etwas diskrete Logik, ein Sample-and-Hold und ein nicht besonders schneller ADC, der IIRC 5-Bit-Daten bei 15 kHz (etwa 5 Sekunden pro Frame, Schwarzweiß) erfasste ). Ich würde erwarten, dass Sie monochrome Daten mit einem anständigen Mikrocontroller schneller erfassen möchten und könnten. Wenn Sie ein grobes 128x100-Bild mit 30 Bildern pro Sekunde aufnehmen möchten, müssen Sie wahrscheinlich etwa 0,8 Megapixel/Sekunde aufnehmen (1/4 der Pixel horizontal auf jeder Scanzeile in zwei Feldern aufnehmen).
Das Erfassen von Farbe von einer "allgemeinen" NTSC-Videoquelle ist viel schwieriger, da es keine feste Beziehung zwischen Chroma-Phase und horizontaler Position gibt. Viele Videoquellen, einschließlich Kameras, Computer und DVD-Player, haben jedoch eine feste Beziehung zwischen Chrominanz und horizontaler Position (es gibt einen Standard dafür, wie die Beziehung für "perfektes" Video sein sollte, aber nicht alle Geräte entsprechen; die meisten Geräte andere als Videorecorder haben eine konsistente Beziehung, aber sie können dem Standard entsprechen oder nicht). Wenn Sie um eine bestimmte bekannte Eingangsquelle herum entwerfen können und Timings in Bezug auf die horizontale Synchronisation genau messen können (Timing-Präzision ist viel wichtiger als bei monochromem Video), kann Farbsampling praktisch sein.
Ohne zu wissen, was Sie tun möchten, kann ich nicht sagen, was der beste Ansatz wäre. Verwenden Sie am besten ein LCD-Display mit einem Composite-Videoeingang und überlagern Sie das Video darauf. Farbüberlagerung ist im Allgemeinen ein Problem, aber wenn Sie einen horizontalen "geteilten Bildschirm" wünschen, ist es möglicherweise möglich zu schummeln (Sets mit analogen Farbschaltkreisen würden nicht gut funktionieren, wenn ein Teil des Bildschirms eine andere Farbphase als ein anderer Teil verwenden würde, aber LCD-Bildschirme mit einem digitalen Frontend hat vielleicht nichts dagegen; wenn Sie Ihr eigenes Chroma auf Zeilen erzeugen, auf denen Sie Ihre eigene Farbe anzeigen wollten, und das Kamera-Chroma auf anderen durchlassen, bin ich mir nicht sicher, was passieren würde).
Nur Jeff
johnny1bucket