LED Laufschrift Programmierung von "Grafiken"

OP #2239818
Lesenswert?

Hallo zusammen,

ich versuche mich daran, die LED Laufschrift Mc Crypt 590998 per 
Processing (simple, auf Java basierende Sprache) direkt anzusteuern: 
http://www.conrad.de/ce/de/product/590998/LED-LAUFSCHRIFT-ROT

Das Ansteuern und Einspielen von Text funktioniert schon wunderbar. Die 
Laufschrift kann aber auch Grafiken ausgeben. Im beiliegenden Data Sheet 
wird der Aufbau von Grafiken beschrieben (Seite 13-14). Leider komme ich 
mit der Beschreibung überhaupt nicht zurecht.

Ich bin für jeden Tipp dankbar, in welcher Form ich Grafiken 
programmieren muss, um diese auf der Laufschrift anzeigen zu können!
Angehängte Dateien:
#2239833
Lesenswert?

der daani schrieb:

> Laufschrift kann aber auch Grafiken ausgeben. Im beiliegenden Data Sheet
> wird der Aufbau von Grafiken beschrieben (Seite 13-14). Leider komme ich
> mit der Beschreibung überhaupt nicht zurecht.

Welchen Teil hast du den verstanden?
Eigentlich ist das doch ziemlich einfach aufgebaut. MIt dem Verständnis, 
wie sich Bits zu Bytes zusammensetzen und der Info aus dem Datenblatt, 
welches Bit jetzt mit welchem Pixel (und dessen Farbe) korrespondiert, 
ist das nicht weiter kompliziert.
#2239848
Lesenswert?

Die typische Herangehensweise ist es, einmal Muster darstellen zu 
wollen, die man einfach wiedererkennen kann. Beispielsweise $f0 oder 
$33-Bytes, welche unterschiedlich breite Streifen ergeben. Und dann 
einfach ausprobieren. Echo hat die Möglichkeit, dass Du auch Binärdaten 
ausgibst. Probier einfach so lange bis Du das verstanden hast.
OP #2239853
Lesenswert?

Hallo Karl Heinz, danke für die prompte Antwort!

Soweit ich es verstehe, ist die gesamte Laufschrift in Blöcke von 
jeweils 8x8 Pixeln aufgeteilt (aufgrund der Breite der Laufschrift in 
meinem Fall nicht 4 Blöcke, sondern 10).

Danach wird es aber ziemlich dunkel. Die Pixel sind nach dem Schema D0 
bis D255 benannt, wobei 4 Pixel in einem Byte repräsentiert werden. 
Einerseits verstehe ich das nicht so recht und andererseits weiß ich 
damentsprechend natürlich nicht, wie ich das in Code umsetzen soll.

Vielleicht hilft es, mein Grundlagenverständnis hier kurz abzugleichen:
Ein Bit kann 0 oder 1 sein. Ein Byte besteht aus 8 Bits. Im Data Sheet 
wird allerdings von 4 Bit pro Byte gesprochen!?

Bitte entschuldige, falls das dumme Fragen sind. Ich habe erst vor 
einigen Tagen damit begonnen, mich mit dem Thema Mikrocontroller 
auseinanderzusetzen (aber schon wahnsinnig Spaß daran gefunden!).
#2239861
Lesenswert?

(Ahh ich glaube ich verstehe das Problem. Da es schwierig ist beliebige 
Bytes über eine serielle Schnittstelle zu übertragen beschränken die 
sich anscheinend auf druckbare Zeichen aus ASCII, die gehen immer.

Entweder die Übertragen das Bitmuster Hexadezimal, oder die werten 
einfach nur die 4 untersten Bits aus.)

Mist, DX sind wirklich Pixel. Andreas hat Recht.
#2239869
Lesenswert?

der daani schrieb:
> Hallo Karl Heinz, danke für die prompte Antwort!
>
> Soweit ich es verstehe, ist die gesamte Laufschrift in Blöcke von
> jeweils 8x8 Pixeln aufgeteilt (aufgrund der Breite der Laufschrift in
> meinem Fall nicht 4 Blöcke, sondern 10).

Davon kann ich im Datenblatt nichts sehen.
Das Datenblatt sagt, dass es Graphic-Blöcke gibt, von denen jeder 32*8 
Pixel gross ist, organisiert in 8*8 Einheiten.

Ein Graphic-Block ist wohl eher sowas wie ein Gestaltungselement und 
umfasst keineswegs den kompletten 'Bildschirm'

> Danach wird es aber ziemlich dunkel. Die Pixel sind nach dem Schema D0
> bis D255 benannt

D steht einfach für Daten

> Einerseits verstehe ich das nicht so recht und andererseits weiß ich
> damentsprechend natürlich nicht, wie ich das in Code umsetzen soll.

Schau dir die Zeichnung an
Da ist ganz klar durchnummeriert, wie die einzelnen Dxx sich auf die 
Pixel aufteilen. Wenn jetzt noch dazukommt, dass jedes Dxx aus 2 Bit 
besteht (wegen der Farbe), dann ist doch ganz klar, wie sich eine 
Abfolge von Bytes auf die Pixel aufteilt.


In Code setzt du das erst mal gar nicht um, sondern man fängt damit an, 
dass man sich auf karriertem Papier ein entsprechendes Raster 
aufzeichnet und dort markiert, welche LED in welcher Farbe leuchten 
soll. Und dann geht man, so wie in der Zeichnung gezeigt, die einzelnen 
Kästchen durch und fügt die Bits entsprechend ihrer Farbe aneinander. 
Noch in 8 Bit Blöcke (wegen der Bytes) aufteilen und schon hat man die 
Hex-Codes der 64 Bytes, die nach dem Block-Kommando gesendet werden 
müssen und so einen Graphic Block definieren.
Und dann programmiert man das, dass genau diese Hex-Codes gesendet 
werden.

So wie ich das verstehe, ist damit der Block aber nur definiert. 
Spannender ist jetzt die Frage, wie man ihn zur Anzeige bringt. Dazu ist 
ja ein Beispiel im Datenblatt angegeben.
#2239887
Lesenswert?

Christian Berger schrieb:
> (Ahh ich glaube ich verstehe das Problem. Da es schwierig ist beliebige
> Bytes über eine serielle Schnittstelle zu übertragen beschränken die
> sich anscheinend auf druckbare Zeichen aus ASCII, die gehen immer.

Woraus schliesst du das?

> Entweder die Übertragen das Bitmuster Hexadezimal, oder die werten
> einfach nur die 4 untersten Bits aus.)

Auch das nicht.
Jedes Pixel kann 4 Farben haben. Daher 2 Bit pro Pixel. Daher passen in 
1 Byte 4 Pixel hinein. Und die sind einfach zeilenweise hintereinander 
gestellt, so wie in der Zeichnung gezeigt. Die ersten 2 Byte sind die 8 
Pixel in der ersten Zeile, die nächsten 2 Byte die 8 Pixel in der 
nächsten Zeile usw. Bis man in der 8. Zeile angelangt ist, dann geht das 
Spiel mit den nächsten 8 Pixelspalten wieder von vorne los. 4-mal 
insgesamt.
OP #2239898
Lesenswert?

Hallo Andreas, Christian und Karl Heinz,

erstmal vielen Dank für die schnellen und geduldigen Antworten für einen 
überforderten Anfänger!

Wenn ein Graphic Block aus 8x8 Pixeln aufgebaut ist (das Bild mit dem 
"Gestaltungselement hat mir sehr geholfen), entspricht dann ein Pixel 
einer LED im Laufband?

Bezüglich der Farbe: Mein Laufband "kann" nur rot. Stelle ich dann eine 
leuchtende LED mit 10 10 10 10 dar?

Danke für den Tipp bezüglich des Vorgehens. Um die Funktionsweise zu 
verstehen würde ich zunächst gerne ein ganz einfaches Muster 
(abwechselnd eine LED an - eine aus) realisieren.
OP #2239937
Lesenswert?

Ich habe zwischenzeitlich - abgesehen vom Versuch, mit Hilfe Eurer 
Antworten den prinzipiellen Aufbau zu verstehen - einen weiteren Versuch 
gemacht: mit der Laufschrift kam das Editor-Programm "NewSign 03127 or 
03128". Per USB Port Monitor habe ich die Kommunikation zwischen dem 
Tool und der Laufschrift mitgeloggt.

Bei der Übertragung an die Laufschrift finden sich an der Stelle, an der 
die Informationen bezüglich Grafik auftachen sollten, diese 
Informationen:
1
¨ ¨*(((*(*        ¨ª¨ª  ª ª ª
Wisst Ihr was es damit auf sich hat?

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