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!
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.
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.
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!).
4 Pixel pro Byte. Jedes Pixel besteht aus 2 Bit für die 4 Zustände.
(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.
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.
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.
Karl Heinz Buchegger schrieb: > Woraus schliesst du das? Das war ein Irrtum. Inzwischen habe ich den Text auf Seite 14 gesehen, in dem Dx als Pixel definiert ist, nicht als Datenbit. Das habe ich aber eigentlich korrigiert und den Text in Klammern gesetzt, und unten korrigiert.
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.
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?
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.