Ich hab mir mal das OLED Display Module von Seedstudio geleistet. Der Preis ist mit 30$ ganz OK. Das größere und touchemfindliche Display TE35 war mir für 75$ zu teuer.

Da ich ein FEZ Cerberus Mainboard besitze stehe ich vor einen kleinen Problem. Kleiner Speicher…

Das Module besitzt (komfort) Methoden zum Darstellen von Text:

oledDisplay.SimpleGraphics.DisplayText("Hello World!",
Resources.GetFont(Resources.FontResources.small), GT.Color.Red, 10, 10);

Diese Methode erstellt dummerweise eine Bilddatei (BMP) mit 128×128 Pixeln und stellt es da. Dies ist die Größe des gesamten Bildschirmmoduls.

 

Es gibt eine weitere Möglichkeit Bereiche des Bildschirms zu beschreiben. Dazu nutzen wir die Methode FlushRawBitmap, welche mit virtuellem RAM arbeitet und somit Speicher spart.

 

Beispiel Text:

byte[] vramText = new byte[128 * 20 * 2];
Bitmap bitmapText = new Bitmap(128, 20);
bitmapText.DrawText("Suplanus", Resources.GetFont(Resources.FontResources.small), GT.Color.Yellow, 0, 0);
Util.BitmapConvertBPP(bitmapText.GetBitmap(), vramText, Util.BPP_Type.BPP16_BGR_BE);
oledDisplay.FlushRawBitmap(0, 0, 128, 20, vramText);

Beispiel Bild:

byte[] vramImage32 = new byte[32 * 32 * 2];
Util.BitmapConvertBPP(Resources.GetBitmap(Resources.BitmapResources.star32).GetBitmap(), vramImage32, Util.BPP_Type.BPP16_BGR_BE);
oledDisplay.FlushRawBitmap(48, 40, 32, 32, vramImage32);

Um Bilder zu laden müssen diese zuvor in Resources.resx eingefügt werden.