PIXELZAUBER
Ich habe mir dieses Jahr zu Weihnachten einen RGB-Panel von ADAFRUIT mit 64 * 32 Pixel gekauft. Dazu habe ich das Device Matrix Portal S3 gekauft. Um ihn wirklich mit dem HUB75-Kabel zum Laufen zu bringen, ist es nötig die beiden Kabel des Panels mit Schraubverschlüssen des S3 zu verbinden. Rot an Plus, schwarz an MINUS. Da ich die ARDUINO-IDE bevorzuge, habe ich nach Anleitung alles dafür heruntergeladen und die Beispiele laufen lassen. Gerne wollte ich Fotos, etc auf das Panel bringen - natürlich entsprechend den Fähigkeiten des Controllers. Um jetzt mehrere Bilder und Schriften in Folge ablaufen zu lassen, waren mehrere Schritte notwendig: 1. Reduzierung der Bilder auf max. 64 * 32 Pixel. Dazu habe ich GIMP benutzt, Im Menuepunkt Bild muss man dazu skalieren anwählen und auf max. 64 und max. 32 Pixel runterskalieren. 2. Mit einem kleinen Pythonprogramm wird das Image dann in C-Code umgewandelt-weitestgehend, da ich mir noch nicht die Mühe gemacht habe, tiefer in Python einzutauchen.
from PIL import Image import sys import numpy as np print(sys.argv[1]) img = Image.open(sys.argv[1])
imgasarray = np.array(img) print(imgasarray.shape); print('{') for x in imgasarray: print('{',end=""); for y in x: print("{" , end='') for z in y: print(str(z),end=',') print('}',end=',') print('},') print('}')
Der Imagename wird über die Commandline übergeben, die Ausgabe leite ich in eine Datei um, die ich mit emacs nachbereite. Einmal alle Vorkommen von ,} duch } ersetzen (Replace String) . Dann das letzte Komma im Array ersetzen und das Array mit den shape Angaben in das folgende Arduinoprogramm kopieren:
Das Programm
include
include
include
define BLACK 0x0000
define BLUE 0x001F
define RED 0xF800
define GREEN 0x07E0
define CYAN 0x07FF
define MAGENTA 0xF81F
define YELLOW 0xFFE0
define WHITE 0xFFFF