Hallo Zusammen,
wie schon einige Zeit bekannt ist, läst sich mit einem Atmega8 direkt
ein Videosignal erzeugen, um einen Monitor anzusteuern. Dazu gibt es ja
schon einige Projekte.
Hat schon mal jemand den umgekehrten Weg versucht, ein Videosignal mit
dem ADC abzutasten und den Atmega8 als Bildgrabber zu benutzen?
Gruß,
Christoph
Prinzipiell möglich, dann aber nur mit einem Standbild.
Du bräuchtest dazu unter Anderem:
- ausreichend externen Speicher
- eine separate Sample&Hold Schaltung
Gruß,
Magnetus
Ausserdem empfehlenswert:
- separater Sync-Separator mit nachgeschalteter PLL um eine synchrone
Zeitbasis für die Abtastung zu erhalten. Nach Möglichkeit sollte auch
der µC über die PLL getaktet werden.
Mal sehen, was mir noch so dazu einfällt... ;)
Das RAM wird der Knackpunkt sein.
Aber Du wirst die Daten ja auch irgendwie archivieren wollen,
sprich auf SD-KArte oder sonstigen Datenträger speichern.
Als Rohdaten haste da schnell Gigabytes zusammen, ergo müsste
dann komprimiert werden ... mit 1-2 Frames / sec denke ich möglich,
mehr vermute ich mal wird n AVR nicht schaffen.
Vom Timing her reicht selbst ein langsames 70ns SRAM. Ein kleiner CPLD,
ein Quarz, ein schneller ADC und ein LM1881 und man kann einfache
Schwarzweis Bilder machen.
Farbig wird es etwas aufwendiger, ist aber auch möglich.
Ich habe mir sowas mal gebaut um Bilder von einer Überwachsungskamera
abzuspeichern:
Mit 128kB SRAM kann ich 512x256 Pixel große Bilder als BMP auf eine SD
Karte schreiben. Um ein Bild zu speichern benötigt der mega8 etwa 1-2s.
Hallo,
ich habe mal auf dem C64 solche Experimente gemacht...
Einschränkungen (logisch...): Standbilg nötig und nur s/w, maximal
(damals...) 2 Bit -> 4 Graustufen.
Könnte man eigentlich mal am AVR probieren. :)
Ein LM1881 als Sync-Separator. H- und V-Sync an 2 Pins, für H-Sync
sinnvollerweise ein externer Interrupt-Pin.
Videosignal entweder an den Analog-Komparator (nur s/w) oder an ein
ADC-Pin (Graustufen).
Ein AVR sollte die Zählerei in Software schaffen, damals hing ein
TTL-Grab aus voreinstellbaren Zählern dran...
Eingelesen wurde senkrecht, also nach V-Sync der erste Bildpunkt der
1...200. Zeile. Im nächsten Bild der jeweils 2. Bildpunkt der Zeile usw.
Problem ist der Ram. 320x200 sind 64000 Bildpunkte, /8 immernoch 8 kb
für ein s/w-Bild.
Bei 50 Halbbildern/s sind es bei 320x200 und dieser Methode über 6s, bis
ein Bildeingelesen ist.
Und ja, man konnte auf dem C64 erahnen, was da digitalisiert wurde. :-))
Gruß aus Berlin
Michael
Alle Achtung, ich bin erstaunt, wie viele Möglichkeiten es gibt.
Mein Ziel ist immer, mit einer möglichst geringen Anzahl von Bauteilen
eine Schaltung zu realisieren, das spaart Zeit und Kosten.
Deshalb habe ich eine kleine Schaltung mit ATmega8 + 3 Transistoren
gebastelt:
http://www.roboterclub-freiburg.de/AtmelAVR/Hardware/AtmegaKamera/AtmegaKamera.html
Zugegebenermaßen reicht der Speicher nicht für ein ganzes Bild, man kann
es nur Spaltenweise zum PC übertragen. Aber für einfache
Bildverarbeitungsexperimente reicht es schon. Ein schwarze Linie auf
weißem Grund läßt sich schon lokalisieren.
Irgendwo habe ich mal eine einfache Anschaltung eines D-Rams an einen
Atmega gesehen, ich glaube es war bei ELM-Chan.
Das würde immerhin nur ein Baustein mehr bedeuten.
Gruß,
Christoph
Hallo Michael,
Du hast Dich doch auch mit dem C64-Sid beschäftigt. Ich habe vor einiger
Zeit mal ein wenig am Atmega-Sid-Soundgenerator weiterprogrammiert. Man
kann jetzt die Register über die serielle Schnittstelle beschreiben:
http://www.roboterclub-freiburg.de/atmega_sound/atmegaSID.html
Falls Du irgendwann also mal Lust hast, an dem Thema weiterzumachen ...
Gruß,
Christoph
Hallo,
@Christoph H.: da ja mein Umzug mit nur wenigen Monaten Verspätung
/nichtmal ein ganzes Jahr... ;)) nun erledigt ist, ich die meisten
Sachen inzwischen wiedergefunden habe (und sich der Sommer sowieso dem
Ende nähert), ist die Chance extrem hoch, daß ich das alles wieder
anfasse. :)
In Deinen Link schau ich natürlich rein.
Gruß aus Berlin
Michael