Schnelle Datenübertragung vom PC -> Ethernet -> Atmega

OP #2153955
Lesenswert?

Hallo

Ich bin momentan auf der suche einer Möglichkeit, zur schnellen 
Datenübertragung vom PC (Software in C-sharp) über Ethernet zu einem 
Atmega.

Das ganze benötige ich für eine große LED-Matrix (max 64x64 pixel).
Als Hardware wollte ich das Board von Ulrich Radig verwenden.

Das Problem momentan ist, welches Protoll ist für die Datenübertragung 
sinnvoll und benötigt den geringsten Rechenaufwand im Atmega32?


Das Prinzip soll folgendermaßen sein:

Ich hab eine Software(Windows XP -> C-Sharp) in dieser erzeuge ich die 
Bilder für die Matrix. Diese Daten müssen jetzt über Ethernet(Anschluss 
am Notebook) zu einem Microcontroller, dieser verteilt die Daten dann an 
die Einzelnen LED-Matrix-Module (je 16x16 Pix).

1. Meine Fragen wären welches Protokoll wäre da am 
sinvollsten/einfachsten ?
Welche weiteren Protokolle müsste der Atmega auf dem U.Radig board 
beherschen damit überhaupt eine kommunikation zwischen meinem PC prog 
und dem Atmega zustande kommt ?

2. Gibt es vielleicht ein Projekt in dieser Richtung.

vielen dank für an alle die mir helfen können !!

Die Matrix-Module funktionieren bereits wunderbar. Werden jedoch noch 
mit DMX angesteuert. Jedoch benötigt jedes modul(16x16) 512 Kanäle, was 
bei mehreren Modulen sehr unpraktisch ist.

www.ep-lights.de  <- hier gibts schon einige Bilder/Videos
Gast #2154069
Lesenswert?

Also ich würde einfach auf Artnet gehen. Dann bist du kompatibel zu 
jedermodernen Lichtsteuersoftware und du musst nicht wiklich viel 
umsetzen. Klar brauchst du dann entprechend viele Artnet Universen. Aber 
dafür ist man felxibel.
Such einfach mal nach Artnet Dongle für 25 Euro bei Google.
#2154150
Lesenswert?

@  Enrico Paul (ep-lights)

>Die Matrix-Module funktionieren bereits wunderbar. Werden jedoch noch
>mit DMX angesteuert. Jedoch benötigt jedes modul(16x16) 512 Kanäle,

16x16 ist bei mir 256. Also kann man zwei Module an ein DMX-Universum 
klemmen. bei 64x64 Pixeln brauchst du somit 16 Module bzw. 8 
DMX-Universen. Sowas gibt es AFAIK zu kaufen, auch passende 
DMX-Software.

Ansonsten halt UDP über Ethernet.

MFG
Falk
OP #2154223
Lesenswert?

Falk Brunner schrieb:
> 16x16 ist bei mir 256.

das stimmt, da ich aber 4 farben pro/pixel verwende benutze ich zwei 
kanäle pro Pixel. Deshalb 512 Kanäle pro Modul.

Das ganze mittels DMX bei 16 Modulen zu realisieren ist mit zu 
aufwendig. PC-Steuersoftware hab ich selbst programmiert. Da bin ich 
unabhängig und muss mich nicht auf Standards beschränken.

Ich wollte halt den Verkabelaufwand so gering wie möglich halten. 
Deshalb die Idee direkt von der LAN-Buchse am Notebook zu den 
LED-Modulen mit Netzwerkkabel und dann mit ner Schaltung das ganze 
aufsplitten auf die Matri-Module.

bezüglich SChnell:

Wenn das ganze unkompriemiert übertragen wird sind das 64x64 = 4096 
Pixel * 2Byte/Pixel = 8192 Byte mit 20 Bildern/Sek = 163840 Byte/sek 
Nutzdaten.

Das wäre aber die Obergrenze. Wenns nur die hälfte wird ist auch ok.


An UDP hab ich auch schon gedacht. Wie groß sind den bei einem UDP Paket 
die max Nutzdaten ?
Gast #2154317
Lesenswert?

Hab sowas ähnliches mal gebastelt
(http://www.twitvid.com/H3UDG)

Das sind soweit ich weiß 128x16 Pixel mit 3 Farben (also insgesamt 2Bit)
Macht 512 Byte pro Bild
Angenommen 20 Bilder pro Sekunde sind das 10Kbyte = 80Kbit

Das ganze schicke ich direkt als Binär/Bitmap Daten per UDP an das 
LEDPanel
Da hängt ein ENC28J60 an nem Mega32.

Der Mega macht fast nix weil 1 UDP Paket = 1 Bild
und fast keine Prüfung der Daten (Ich check nur obs aufm richtigen Port 
ankommt und ob die Paketgröße stimmt)

Damit ist der Flaschenhals eigentlich nur die Schnittstelle zwischen 
Mega32 und Netzwerkchip - in meinem Fall ne SPI die auf irgendwas bei 
1MBit läuft.

Ich vermute mit deiner Datenrate von 1Mbit kommst du ziemlich an die 
Leistungsgrenze des AtMega, aber es könnte klappen

Gruß,
Sven
Gast #2154323
Lesenswert?

@Hex Oschi:

Was magst du an Ethernet nicht?
Ich benutz Ethernet mittlerweile sogar bei Datenverbindungen zwischen 2 
8Bit Controllern. Finds recht angenehm wenn ich die bestehende 
Netzinfrastruktur nutzen kann.

Nochmal
Gruß,
Sven
#2154389
Lesenswert?

@  Enrico Paul (ep-lights)

>das stimmt, da ich aber 4 farben pro/pixel verwende benutze ich zwei
>kanäle pro Pixel. Deshalb 512 Kanäle pro Modul.

Wenn du 4 Farben/Pixel nutzt, passen in 1 Byte 4 Pixel, d.h. du brauchst 
sogar nur 64 Kanäle pro 16x16 Modul.

>aufwendig. PC-Steuersoftware hab ich selbst programmiert. Da bin ich
>unabhängig und muss mich nicht auf Standards beschränken.

Stimmt, Standards sind ja auch das Letzte. Am besten jeder feilt seine 
Transistoren selber. Hmm . . .

>Wenn das ganze unkompriemiert übertragen wird sind das 64x64 = 4096
>Pixel * 2Byte/Pixel = 8192 Byte mit 20 Bildern/Sek = 163840 Byte/sek
>Nutzdaten.

Wieso 2 Byte/Pixel? Also doch 15/16 Bit Farbtiefe, sprich 5 
Bit/Farbkanal R, G, B.

>Das wäre aber die Obergrenze. Wenns nur die hälfte wird ist auch ok.

Macht 1,6 Mbit/s.

>An UDP hab ich auch schon gedacht. Wie groß sind den bei einem UDP Paket
>die max Nutzdaten ?

Groß genug. ;-) Etwas weniger als 1,5kB.

MFG
Falk

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren