PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Pixel eines Videobildes auslesen mit AVR



cas
11.11.2009, 16:09
Hallo,

gibt es ein Baustein ( oder auch AVR) der ein Videosignal (VGA oder FBas) auslesen kann und mir die Farb-Wert eines bestimmten Pixels zeigt.

MfG CAS

radbruch
11.11.2009, 16:43
Vielleicht reicht dir das: Kamera am Mega32 (https://www.roboternetz.de/phpBB2/zeigebeitrag.php?t=33228)

cas
14.11.2009, 10:11
Hallo,

die grobe Richtung passt schon.

Jedoch arbeite ich nur mit Bascom und nicht mit C.

Es reicht mir ja, wirklich nur einen Punkt oder auch 5 Punkte die Farbwerte zu ermitteln. Ob waagerecht oder aenkrecht ist eigentlich Wurst.

PICture
14.11.2009, 11:23
Hallo!

@ cas

Das was du willst ist nicht standart, aber es is eigentlich auch Wurst, um wieviel Punkte es sich handelt, da in jedem Fall muss ein Punkt, aus den Impulsen die das ganzes Bild kodieren, "ausgefiltert" werden. Weil die Farbe eines Punktes mit ca. 4,5 MHz "kodiert" ist, wird es nur mit Assembler und C möglich. Es ist auch hardwaremassig möglich, aber sehr kompliziert.

MfG

radbruch
14.11.2009, 11:53
Hallo

Das funktioniert auch mit Bascom:
https://www.roboternetz.de/phpBB2/zeigebeitrag.php?p=434274#434274

Es gibt Nachahmer:
http://www.youtube.com/watch?v=3WcBV3fSolg

Klasse :)

Gruß

mic

PICture
14.11.2009, 12:01
@ radbruch

Ich kann dir nur gratulieren, hat aber sicher viel Zeit gekostet. :)

Wegen für die Sotwareentwickler "veralteten" Laptop kann ich mir das Video aus dem zweiten Link nicht richtig ansehen, glaube ich dir aber.

Ich programmiere PICs in Assembler, deswegen habe ich das Thema nicht weiter erforscht und nur allgemein betrachtet.

MfG

cas
14.11.2009, 12:23
sehr schön...

Das ist jetzt aber sicherlich keine Farbauswertung sondern bestimmt nur sw/Grau.

Könnte mir jemand einen Pic brennen oder so, mit dem ich den Farbpunkt auslesen kann?

MfG CAS

PICture
14.11.2009, 12:32
@ cas

Ich kann dir (fast) jeden PIC brennen, wenn du mir z.B. eine .hex bzw. .asm datei mailst, jedoch ohne das Programm zu überprüfen, ob es so wie du willst funktioniert.

MfG

cas
14.11.2009, 13:04
Das Prog hab ich ja nicht :-(

Ist es einfacher den Farbwert eines Bildpunktes auszulesen, wenn man RGB-Signale hat, so wie für Monitor mit RGB HY glaub ich...

Welches Video-Signal wäre denn am besten dafür ?

MfG CAS

PICture
14.11.2009, 13:49
Beim VGA ist es einfacher, weil die Farben einzeln zur Verfügung stehen und man braucht sie nicht, wie beim FBAS, erst dekodieren.

Um die gewünschte Farbe eines Punktes im Bild zu haben, braucht man "nur" die Position des Punktes gegen der oberen linken Ecke des Bildes auf Grund der vertikalen und horizontalen Synchroimpulsen festlegen und in entsprechendem Moment einlesen.

Dazu braucht man eigentlich nur die horizontale Synchroimpulse ab Ende des vertikalen Synchroimpulses zählen und entsprechende Zeit ab Ende des horizontalen Synchroimpules in gewählter Linie des Bildes abwarten.

MfG

radbruch
14.11.2009, 14:41
Hallo


Dazu braucht man eigentlich nur die horizontale Synchroimpulse ab Ende des vertikelen Synchroimpulses zählen und entsprechende Zeit ab Ende des vertikalen Synchroimpules in gewählter Linie des Bildes abwarten.Genau so einfach funtioniert das. Ob das ein PIC auch schafft weiß ich nicht. Der eigentliche "Trick" ist der extrem schnell getaktete ADC. Laut AVR-Datenblatt ist der ADC masslos übertaktet, aber offensichtlich funktioniert es trotzdem ;)

Ich habe es bisher nur mir einer SW-Kamera getestet. Bei einem VGA-Bild könnte die Wiederholfrequenz größer als beim FBAS sein, dann würde der Microkontroller möglicherweise die Syncs nicht mehr erkennen. Die einzelnen Farben sollten eigentlich mit einem Scartstecker abgreifbar sein:
http://www.google.de/search?hl=de&safe=off&client=firefox-a&rls=org.mozilla:de:official&hs=jIJ&num=20&ei=lrL-SrHAMsSNsAb9jamXDA&sa=X&oi=spell&resnum=0&ct=result&cd=1&ved=0CA8QBSgA&q=belegung+scart&spell=1

Gruß

mic

PICture
14.11.2009, 15:00
Die Frequenz der horizontalen Synchroimpulen liegt sogar bei höchsten Auflösungen unter 100 kHz und es sollte nicht das Hauptproblem für die µCs sein.

Eigentlich für nur einen Punkt müsste der ADC auch gar nicht schnell sein, da der Wandler in µC ein "sample & hold" Type ist. Bei permanentem Bild könnte man sogar das ganze für jede Farbe (R,G und B), also drei mal wiederholen.

Für laufendes Wandeln von Bildern in der Echtzeit braucht man natürlich sehr schnellen 3-fachen ADC (z.B. den TDA8752AH mit Abtastfrequenz 100 MHz).

MfG

cas
14.11.2009, 15:36
hört sich doch schon mal gut an...

wie baut man sowas ?

MfG CAS

PICture
14.11.2009, 15:53
Man muss dem µC nur drei Farbsignale (Videosignal) auf drei ADC Eingänge, die Synchroimpulse auf zwei I/O Pins zuführen und ein Programm dazu schreiben.

MfG

cas
14.11.2009, 16:28
das ist das einzige was ich verstanden habe und was mir auch logisch erscheint.

Ausführung ist dann doch etwas zu schwer für mich.

Ich progge einfache Sachen wie LCD und kleine Robbis.

Krieg ich nen Ansatz oder gar ne Lösung ?

MfG CAS

radbruch
14.11.2009, 16:59
Man muss dem µC nur drei Farbsignale (Videosignal) auf drei ADC Eingänge,...Blöderweise haben AVRs nur einen ADC der auf die verschiedenen Eingänge geschaltet wird. Für drei Farbkanäle würde man dann drei AVRs benötigen. Oder man scannt die Teilbilder eben nacheinander. Das würde dann schon ein Tiny13 schaffen. Entscheidend ist wohl, was du eigentlich erkennen/unterscheiden willst.

14.11.2009, 17:29
hallo,

ich möchte den roten den grünen und den blauen Anteil eines einzelnen Bildpunktes erfahren. Wäre gut, wenn man im Prog oder per Jumper den Bildpunkt festlegen könnte.

MfG CAS