Blinkenlights-Syntax serielle Ansteuerung

Das Blinkenlights kann mit dem SerialMatrix-Code direkt über USB angesteuert werden, hierfür gilt folgende Syntax:

1 Byte wird übertragen und dient als kompletter Steuer-Frame.

Das MSB gibt an, ob es sich um einen Steuer oder Schaltbefehl handelt.

Ein Schaltbefehl hat MSB = 0 und sieht wie folgt aus:

0 x x x y y y 1/0 (Ein, Aus)

xxx gibt die Koordinate in x-Postion an, yyy die Koordinate in y-Position. Das letzte Bit gibt an, ob die LED ein- oder ausgeschaltet werden soll.

Soll zum Beispiel die erste LED in der Matrix eingeschalten werden, lautet das zu übertragende Byte: 0b00000001 (0x01)

Der Nullpunkt der Koordinaten kann über den „Ecke wählen“ Befehl eingestellt werden:

Steuerbefehle sind Befehle zum Steuern und Abfragen von Zuständen der Matrix. Diese sind wie folgt aufgebaut:

1 A # # # # # #

Mit A = 1 kann der Zustand der LED abgefragt werden, der Befehl sieht wie folgt aus:

1 1 x x x y y y

Als Antwort erhält man

1 x x x y y y 1/0 (Ein, Aus)

Die übrigen Steuerbefehle sind:

Verwendung
1 0 0 0 0 0 0 0 Erweiterter Befehlssatz (noch nicht implementiert)1)
0x80
1 0 0 0 0 0 0 1 Clear Screen
0x81
1 0 0 0 0 0 1 0 Invert Screen
0x82
1 0 0 0 0 1 A B Ecke wählen 2)
0x84 - 0x87
1 0 0 0 1 0 0 0 LED-Matrizen durchnummerieren
0x88
1 0 0 0 1 0 0 1 Anzahl der LED Matrizen ausgeben (funktioniert nur wenn rückgekoppelt wird)
0x89
1 0 0 0 1 0 1 0 Die nächsten zwei Bytes gehen an eine andere LED-Matrix (1. Byte Adresse, 2. Byte Befehl)
0x8A
Auf alle verarbeiteten Befehle erhält man ein „ACK“ (0x08), auf unbekannte Befehle ein „NAK“ (0x15).
1)
eventuell für weitere Blinkenlights in einer Matrix, …
2)
0|0 Ausgangspunkt LED1, dreht im Uhrzeigersinn