Forum: Mikrocontroller und Digitale Elektronik Videoaufbereitung für LED's


von Martin (Gast)


Lesenswert?

Hallo

Ich bin in einer Projektgruppe meiner Hochschule die sich als Ziel 
gesetzt hat eine LED-Videowand in kleinem Rahmen zu entwickeln.

Es soll sich um eine RGB-Videowand handeln.

Prinzipiell steht hier nicht der direkte Bau im Vordergrund sondern die 
Planung.

1. Problem dabei ist die Wandlung des Videosignales.
Gedacht ist, ein VGA Signal so aufzubereiten dass jeder Bildpunkt einer 
LED zugewiesen werden kann!
Hier denke ich an eine Softwarelösung die erkennt wieviele LED'S 
angeschlossen sind. (muss die Hardware an den PC senden!!)

2. Problem ist generell die Datenübermittlung
Hierbei schwebt uns vor, die LED-Videowand mit einem USB-Controller 
auszustatten.
Ist hierbei möglich die daten in einigermaßen echtzeit zu empfangen?
pro led sind das 3 BYTE.

Verwendet werden sollen AVR's des typs MEGA.

es soll erst einmal eine Auflösung von 640x480 pixel realisiert werden.

Sicherlich ist keine einfache Aufgabe :)
Aber vielleicht gibt es hier spezialisten auf diesem Gebiet.

Ich bin auch für komplette Neuvorschläge bzgl. der Kommunikation 
PC<->Hardware offen.

Soweit mal fürs erste :)

Gruß Martin

von Marius S. (lupin) Benutzerseite


Lesenswert?

wer bezahlt denn die 307200 einzel leds?

von Carsten (Gast)


Lesenswert?

und wie sieht denn das Netzteil aus, das immerhin 3000 Ampere liefern 
muss, wenn man mal von 10 mA pro LED ausgeht?

von Martin (Gast)


Lesenswert?

nun es geht hier nicht um irgendwelche Kosten oder netzteile :)
Sicherlich benötigt man da schon was anständiges aber es geht uns 
momentan um die oben gestellten kernfragen:)

Gruß Martin

von Matthias (Gast)


Lesenswert?

Ich bin der meinung, das ist nicht machbar:
Ich kenne die genauen specs der vga-schnittstelle nicht, aber ein 
videosignal hat eine Bandbreite von 5MHz, und das sinnvoll einzulesen, 
musst du das mit 10MHz samplen, bei nur 8bit ergibt das 10MByte/sek. der 
atmel schafft bei 16MHz im Durchschnitt 12Millionen ASM-Befehle je 
Sekunde...

Weiter:
Annahme: LEDs für 640x480 punkte
das sind ca 300'000 punkte, ah 3Byte, bedeutet: knapp 1MByte die 
irgendwie vom Controller geeignet zur LED-Schaltung transferiert werden 
müssen...
und das für jedes Bild, bei einer Wiederholrate von 25Hz...

von Martin (Gast)


Lesenswert?

@matthias:

Genau darauf läuft auch die frage hinaus:)
Ist es denn möglich bei verwendung mehrerer Atmels die daten überhaupt 
von einem PC Bild auf deie LED's zu übertragen.

Ich meine eher von der konvertierung und extrapolation der einzelnen 
Bildpunkte.

Ich meine ob es evtl. auch möglich ist da sich ja bei 2 
nebeneinanderliegenden LED's die farben mischen es so zu realisieren 
dass 10 pixel am PC durch 2 LED's abgebildet werden?

von Matthias (Gast)


Lesenswert?

Ich meine ob es evtl. auch möglich ist da sich ja bei 2
nebeneinanderliegenden LED's die farben mischen es so zu realisieren
dass 10 pixel am PC durch 2 LED's abgebildet werden?...

Sowas bedeutet ja noch zusätzlichen Rechenaufwand..
Mit meinen Rechnung wollte ich darlegen, das es wohl schon nicht möglich 
ist, überhaupt die datenmengen in/aus dem atmel zu bekommen, geschweigen 
aufzubereiten...

von g0nz00 (Gast)


Lesenswert?

Wie sieht das denn aus wenn man immer eine der 640 Reihen ansteuert mit 
480 Leds dan schnell die nächste usw. bis alle einmal anwaren und dann 
das alles 30 mal pro Sec. so ist der Strom schonmal sehr viel niedriger, 
weil immer  (nur) 480 leds auf einmal an sind.

von Matthias (Gast)


Lesenswert?

das ist ein trugschluss!
dann sind zwar nur 480 leds an, allerdings weil 640zeilen hast, auch nur 
während 1/640 stel der Zeit! damit wieder die normale Helligkeit 
rauskommt, müsste der Strom dann das 640fache des normalen stromes (bei 
dauerbetrieb) sein...

von g0nz00 (Gast)


Lesenswert?

Du hast ja recht....

wobei ich sagen möchte das eine Blaue LED bei 3,5V und 20mA jedem 
Betrachter die Netzhaut glättet und rote sind noch heller und wenn da 
dann 307200 Led  den Betrachter Blenden.......... O_o

Ich denke mal das ein bruchteil des Nennstromes ausreicht. Jedenfalls 
weniger als 640 facher nennstrom.

von Martin (Gast)


Lesenswert?

Nun ich hatte mir vorgestellt die berechnung bzw Umrechnung des 
Orginalbildes auf die LED'S von einem rechner machen zu lassen, dann des 
ganze an den/die Atmels übertragen.

Wie schnell kann ein AVR denn so daten verabreiten bzw mit welcher 
schnittstelle zum PC lässt sich die problemlos realisieren.

Des weiteren bin ich mir noch nicht sicher mit welchen genauen 
datenmengen ich es jetzt zu tun habe und welche daten ich vielleicht 
auch im AVR puffern kann.

von g0nz00 (Gast)


Lesenswert?

Irgendwie muß es gehen am Hamburger Hauptbahnhof hing jahrelang so eine 
Grafische Anzeigetafel.

von Matthias (Gast)


Lesenswert?

nke mal das ein bruchteil des Nennstromes ausreicht. Jedenfalls
weniger als 640 facher nennstrom...

Ich meinte mit "Nennstrom" den Strom, der ausreicht um ungetaktet eine 
ausreichende Helligkeit zu erzeugen. (meist ca10mA) damit DIESELBE 
helligkeit bei taktung erreicht wird, muss es in diesem fall aber 640mal 
soviel ein.

 Hamburger Hauptbahnhof hing jahrelang so eine
Grafische Anzeigetafel....
Wer sagt, dass dort soein atmel drin ist..?

on einem rechner machen zu lassen, dann des
ganze an den/die Atmels übertragen...
Dann kannst du dir die atmels sparen und das signal gleich so umrechnen 
das es direkt an die leds geht...

von RT (Gast)


Lesenswert?

Sicher geht es, nur nicht mit einem oder mehreren AVRs. Als 
Uebermittlung vom PC sollte man die DVI schnittstelle nehmen. LVDS, ein 
Differentialpaar pro Farbe. Standard bei einer Graphikkarte mit 
digitalschnittstelle. Zur Decodierung, Adressierung der LEDs usw, ein 
FPGA.

RT

von Benedikt K. (benedikt)


Lesenswert?

Für sowas verwendet man einen FPGA oder ähnliches. Der kann die Daten 
problemlos mit der ausreichenden Geschwindigkeit verarbeiten.
Allerdings müssen die LEDs auch irgendwie in der Helligkeit verändert 
werden. Das geht nur per PWM bei dieser Leistung. Allerdings benötigen 
307200 PWM Kanäle eine Menge "Rechenleistung", also deutlich mehr als 
ein FPGA.
Der sinnvollste Ansatz ist das Aufteilen der Videowand in mehrere kleine 
Module (z.B. mit 32x32x3 Pixel oder so). Diese Module werden dann 
einzeln von einer Zentraleinheit die mit dem PC verbunden wird 
angesteuert.

Allerdings glaube ich, dass wir hier verarscht werden: Denn selbst die 
7m große LED Wand in der Münchner Allianz Arena hat gerade mal etwa 
600000 LEDs, also gerade mal 200000 RGB Tripel. Diese besteht aus 72 
Modulen zu je 128x64 LEDs.

von Sven J. (svenj)


Lesenswert?

Moin...

machbar ist das schon, allerdings sollte man sich vorher nochmal mit dem 
spitzen Bleistift hinsetzen und genau aufstellen, welche einzelnen Teile 
bei diesem Projekt zu beachten sind. Einfach ein paar ATMega 
zusammenschalten reicht 101%ig nicht aus!

Nur mal als Beispiele, das Suchwort ist "LED Videowall":

http://www.led-anzeige.at/
http://www.stiers.de/led.html
25keur pro qm, das gleiche nochmal für die Steuerung

http://www.erento.com/mieten/party_messe_events/bild_praesentation/led_grossbildwaende/6736478742.html?land=3
25qm, 6,6t schwer bei 320x256 pixel (!), 48kW elektrische 
Anschlußleistung

Also, Probleme und Aufgaben klein machen, nicht unbedingt in der 
richtigen Reihenfolge:
1 Bild einlesen
2 Umrechnen in "geignetes" Format. (welches?)
3 ein Pixel mit drei Farben steuern
4 mehrere Pixel steuern
5 Daten vom "Rechner" zu den Endstufen bringen
6 Energieversorung zentral/dezentral? (Kühlung?)

Kleine Lösungen bauen, testen und verbessern. Danach weiter machen und 
größer werden.

JEDER dieser Punkte dürfte noch etliche weitere Fragen aufwerfen die in 
der gleichen Art zerlegt, analysiert und gelöst werden müssen. Eine 
"Bastellösung" wird bei einem Projekt dieser Größe ziemlich sicher in 
die Hose gehen.

--
 SJ

von Matthias (Gast)


Lesenswert?

So siehts aus...

von Magnus Müller (Gast)


Lesenswert?

Habt Ihr euch eigentlich die URSPRÜNGLICHE Aufgabenstellung mal genau 
angesehen?

> Ich bin in einer Projektgruppe meiner Hochschule die sich als Ziel
> gesetzt hat eine LED-Videowand in kleinem Rahmen zu entwickeln.
>
> Es soll sich um eine RGB-Videowand handeln.
>
> Prinzipiell steht hier nicht der direkte Bau im Vordergrund sondern die
> Planung.

Es soll hier scheinbar nicht wirklich ein reales Produkt geschaffen 
werden. Es geht wohl vielmehr um die Machbarkeit mit AVRs.

--> Machbar? --> Wenn ja... wie? --> Basta!

Gruß,
Magnetus

von Martin (Gast)


Lesenswert?

@Benedikt:

Nein hier wird keiner verarscht. Es geht bei unserem Projekt nicht um 
die Realisierung sondern rein um die Planung. Wir müssen detaliert 
aufführen was notwendig ist um ein Videosignal oder einfacher ein Bild 
an eine entsprechende LED-Videowand zu übertragen und wie solch eine 
Wand aussehen müsste.

Wie Du schon richtig gesagt hast denke ich auch dass diese Wand in 
Module aufgeteilt werden sollte. Jedes Modul erhält dann von einer 
Steuerplatine welche mit dem PC verbunden ist ihre signale.
Ein FPGA für so etwas einzusetzen finde ich wie schon erwähnt mit der 
PWM nicht ideal.

Aber allein bei der Signalverarbeitung habe ich noch meine 
Schwierigkeiten.
Um dies etwas zu konkretisieren, hier ein Beispiel:
Angenommen Ich möchte ein Bild 640x480 pixel auf dem PC übertragen.
1. Umrechnung dieses Bildes für LED's (macht der PC)
2. Übertragung der Daten an die Steuerplatine( DVI, USB, RS232/485)
3. Schnittstelle zwischen Steuerplatine und AVR oder ähnliche
4. Soll der AVR mit der PWM beauftragt werden oder exterene IC's?

Vielleicht könnt Ihr mir hierzu noch einige tipps geben :)

Gruß Martin

von Martin (Gast)


Lesenswert?

@Sven: da warts du wohl etwas schneller :)

@Magnus: Du hast recht es geht nur um die Planung. Uns ist auch kalr das 
die realisierung eines solchen Projektes einige tausend Euro 
verschlingen würde und nix für bastler ist :)

Gruß

von Sven J. (svenj)


Lesenswert?

Moin...

na bitte, richtiger Ansatz!
Allerdings scheint es mir, ihr wollt keine "Tipps" sondern Lösungen...

zu 1:
Aha. Hey, PC, rechne mal mein Bild in ein passendes Format... klingt so 
nach dem "Do what I MEAN" Knopf der gerne mal gesucht wird. Einlesen 
über Framegrabber ist wohl gesetzt, WIE stellt ihr euch das 
"Ausgangsformat" überhaupt vor? Wäre schon hlfreich.

zu 2:
Sobald ihr wißt wieviele Daten ihr erzeugt, könnt ihre eine Übertragung 
wählen. (Peildaumenauspack)
640x480 (pixel)
x3 (Farben)
x8 (Farbtiefe)
x25 (Wiederholrate 1/s )
= 184320000 bit/s
~ 22 MByte/s

VIEL SPASS mit den Randbedingungen...!
Einige der Parameter sollten etwas abgespeckt werden, Auflösung und 
Wiederholrate sind die besten Kandidaten.

zu 3:
Hä? verstehe ich jetzt nicht.

zu 4:
Testen, testen, testen.
Bevor ihr nicht wißt WIE und WELCHE Daten ihr verschickt, könnt ihr kaum 
planen welche Komponente das managen soll. Ohne jetzt zusehr 
nachzudenken würde ich an riesige Schieberegister denken die von einem 
zentralen Verteiler gefüttert werden. Würde ich in FPGAs realisieren, 
wären dann auch gleich für x-PWMs zuständig.

--
 SJ

von Breti (Gast)


Lesenswert?

Hi,

also hier ist ein sehr interessanter Artikel darüber, wie man sowas per 
FPGA's löst:

http://www.xilinx.com/publications/xcellonline/xcell_51/xc_es-tsquare51.htm

Gruß,
Thomas

von Martin (Gast)


Lesenswert?

Hallo Sven

also:

zu 1.
Hierbei ist an eine selbstgeschriebene software gedacht die nach 
bestimmten kubischen interpolationen bzw extrapolationen das Orginalbild 
entsprechend herunterrechnet. Ähnlich einem Grafikprogramm.
diese datei bzw. daten sollten dann wohl seriel an die Steuerplatine 
übertragen werden.
Das Datenformat ist durch die selbstgestalltete software völlig frei 
wählbar.
Gibt es evtl. schon fertige software die verwendet werden könnte?

zu 2.

Hier wäre es sicherlich möglich die anzahl an pixel auf 320x240 zu 
reduzieren und auch die wiederholrate auf 20x/sec zu reduzieren

zu 3.

da ja wie oben angesprochen die LED's in module aufgeteilt werden ist 
eine Steuerplatine erforderlich:
PC->Steuerplatine->LED-Module
d.h. Schnittstelle zwischen PC und Steuerplatine und dann noch eine 
Schnittstelle zwischen der STeuerplatine und den ganzen modulen.

Ein möglicher ansatz war PC-> steuerplatine mit Ethernet
Hierbei ist aber die echtzeit wohl das problem
Steuerplatine -> LED-Module mit USB, i2C, oder seriel via RS232/485

Gruß



von Hendi (dg3hda) (Gast)


Lesenswert?

Hi,

mensch, zur Hauptaufgabe PLANUNG hat hier gar keiner Lust, oder ? :-)

Vorgabe ist VGA-Ansteuerung, d.h. über Pixeltakt, V-und H-syncimpuls 
muss die RGB-LED ausgewählt werden (auf ersten Blick klassischer Job für 
Zeitzeichengeber, Zähler & Co., oder?) und diese für den 
infragekommenden Zeitraum mit einem der R/G/B-Videoamplitude 
entsprechenden Strom zum leuchten gebracht werden... ich würde wetten, 
der Signalpfad für die Farbauszüge kann frei von Digitalen Komponenten 
sein (abgesehen vielleicht von einem enablesignal).

Zeilenauswahl: Zähler der von V-sync resetted wird und bei H-Sync um 
eins weiterzählt und dessen "Zählergebnis" die aktivierte Zeile vorgibt.

Spaltenauswahl: sobald eine Zeile aktiviert ist, zählt ein Zähler die 
Takte die eine Pixeluhr vorgibt. Das Zählergebnis selektiert die aktive 
LED in der Zeile. Sowas kann man machen indem durch den Zählerausgang + 
Transistor (BC547 oder so, das sind die Dinger mit Basis, Kollege und 
Emitter) die Kathoden einer RGB-Gruppe an Masse legt, und das RGB-Signal 
an den zugehörigen Anoden anbietet, parallelgeschaltet.


Ich weiß nicht aus welcher Richtung des Einsatzes von Mikrocontrollern 
kommt, aber das wäre hier so nützlich wie ein Salzstreuer für Schnecken.
Oder ?

Grüße,
Hendrik.

von Benedikt K. (benedikt)


Lesenswert?

@ Hendi
So wird das nix. Wenn jede LED nur 1/307200 der Zeit an ist, muss diese 
mit dem 307200 fachen Strom angesteuert werden, damit diese normal hell 
leuchtet. Ich glaube nicht, dass eine LED 3072A verkraftet...

@ Martin
Das was ihr per PC machen wollt, macht doch die Grafikkarte von alleine:
Einfach auf 640x480 stellen und per DVI einen FPGA anschließen.
Dieser FPGA speichert das Bild in einem RAM und sendet es parallel an 
die einzelnen AVRs (per UART, SPI. o.ä.) Mit einem AVR kann man maximal 
8x8 Pixel, also 192 LEDs ansteuern. Für mehr reicht die Rechenleistung 
nicht. Das ergibt also 80*60, also 4800 LED Module !!!
Die Datenrate liegt jetzt nur noch bei 4800Byte/s für jeden AVR.

von Breti (Gast)


Lesenswert?

Vergesst bitte nicht, dass ein AVR einen extremen Rechenaufwand mit dem 
PWM hat. PWM mit ordentlicher Auflösung (16bit) bei mehr als 100Hz 
Wiederholrate treibt ihn schon bei sehr wenigen Kanälen zum Anschlag. 
8bit PWM ist nicht zu empfehlen, da ihr noch eine Art Dimmer Kurve 
implementieren müsst, da die LEDs nicht linear zum PWM heller werden. 
Wenn ihr das nicht macht, habt ihr nur eine sehr schlechte Auflösung der 
Helligkeit die zudem nicht mal linear ist.
Kurz gesagt: Ihr könnt es wahrscheinlich vergessen die LEDs per AVR 
anzusteuern, wenn ihr nicht tausende davon für das PWM verbauen wollt.
Ich denke, dass Euch nur Logikbausteine wie z.B. ein FPGA als Lösung zur 
PWM Erzeugung bleiben.

Wie gesagt: Schat mal in den oben genanten Xilinx Artikel zur LED Wand 
am Timessquare rein. Ist mit sicherheit sehr lehrreich - auch wenn ihr 
nicht gleich 2 Millionen Pixel steuern wollt.

Gruß,
Thomas

von tubie (Gast)


Lesenswert?

nur mal so ein Gedankenzug dazu...

Bevor man anfängt, das ganze digital zu lösen - ein RGB Signal (analog), 
spalten zähler, der beim Zeilenrücksprung resettet wird und dann durch 
einen frei laufenden, einstellbaren Taktgenerator den Zähler von links 
nach rechts durchzählt und das RGB Signal "Scannt". Genauso könnte man 
auch mit den Zeilen verfahren. Vor den Treiber einen kleinen C, der den 
Wert der Helligkeit bis zum nächsten Bild speichert und gut is.

Ist doch ganz einfach, oder? :-)

Gruß,
Tubie

von Marek S. (Gast)


Lesenswert?

Hallo zusammen,

also ich beschäftige mich schon seit längerem mit dieser Thematik,
die grobe Planung steht bei mir bereits. Der Teufel liegt jedoch im 
Detail.
Zum Thema RGB auf digital :

Hier gibt es Bausteine welche ein entsprechendes Interface bieten,
Ich glaube der AD9880 bin mir aber nicht ganz sicher. Dieser nimmt die 
RGB Signale auf und gibt diese Digital raus(schon getestet).

Um ein film auf der Videowand zu gucken reicht der Windows Mediaplayer, 
da kann man die Auflösung einstellen.

Du brauchst auf jeden Fall ein FPGA welches von dem ganze Bild 
(1024x800) die benötigten Informationen raus sucht und an das 
entsprechende Modul weiterleitet.

Detailliertere Informationen kann ich dir im laufe der Woche zumailen, 
schick mir doch mal ne mail, so dass ich daran denke, da ich nicht 
täglich hier im board bin.

mail : marekswierzy@freenet.de


gruß

marek

von Matthias (Gast)


Lesenswert?

zur Ansteuerung könnte evtl der gehen:
MAX6975

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.