PicAsSo-Adventskalender: Wir basteln am zweiten Advent fleißig weiter

Seite 2: Grafik auf dem OLED ausgeben

Inhaltsverzeichnis

Wer jetzt direkt das OLED testen und eine Grafik ausgeben will, für den haben wir Beispielprogramme vorbereitet, die hier samt Bitmaps heruntergeladen werden können . Im Picaxe-Editor öffnen wir das Projekt picasso2_make_logo.bas und laden es in den Picaxe. Auf dem OLED sollte dann ein wohlbekanntes Logo zu sehen sein. Es verschwindet nach gut zwei Sekunden mit einer Animation, bei der schrittweise je ein Viertel des Displays gelöscht wird. Das ganze wiederholt sich in einer Endlosschleife.

Dieses Logo dürfte bekannt sein ...

Hierfür muss das Bild in passende Datenbytes konvertiert werden, die per I2C an das OLED gesendet werden können. Das funktioniert folgendermaßen:

1) Eine Bitmap der Größe 128×64 Pixel mit 2 Farben (Schwarz-Weiß) erstellen, beispielsweise mit Paint oder einem anderen Bildbearbeitungsprogramm.

2) Das Online-Tool image2cpp aufrufen. Dort bei 1. Select image die Bitmap auswählen. Bei 2. Image settings die Option invert image colors ankreuzen. Bei 4. Output als Format plain bytes und bei Draw mode die Auswahl vertical treffen. Anschließend werden durch Klick auf Generate code die Daten erzeugt. Da die Auflösung 128×64 Pixel beträgt und pro Pixel 1 Bit Speicherplatz benötigt wird, entstehen genau 1024 Bytes, die das Tool in 64 Datenzeilen mit jeweils 16 Datenbytes im Hexadezimal-Format aufteilt. Die müssen nun alle markiert und in die Zwischenablage kopiert werden.

3) Im Picaxe-Editor löscht man den Bereich zwischen den Kommentarzeilen start of logo und end of logo und fügt dort stattdessen die Daten aus der Zwischenablage ein. In der ersten eingefügten Zeile (// 'make_logo_128×64', 128×64px) müssen wir am Anfang ein Semikolon setzen, damit der Picaxe-Editor sie als Kommentar erkennt. Das Quellcode- Fenster ziehen wir so breit, dass die nachfolgenden Datenzeilen jeweils komplett in eine Editorzeile passen, also keine Umbruch-Pfeilchen am Zeilenende zu sehen sind.

Damit der Picaxe-Editor die 64 Zeilen als zusammenhängenden Befehl erkennt, ist am Ende jeder Zeile ein Unterstrich notwendig. Dieser markiert einen manuellen Zeilenumbruch.

Wie kann man alle Zeilen gleichzeitig bearbeiten?

Um alle Zeilen gleichzeitig bearbeiten zu können, setzt man den Mauscursor auf das Ende der ersten Zeile und hält dann die Alt-Taste gedrückt. Anschließend markiert man mit gedrückter linker Maustaste den Bereich bis zur letzten Datenzeile, wobei die Markierung nur ein Zeichen breit sein muss. Danach lässt man zuerst die Maustaste los, dann die Alt-Taste. Oben im Menü des Picaxe-Editors erscheinen wegen der zuvor gedrückten Alt-Taste ein paar Buchstabenfelder zur Auswahl, die durch das Drücken der Alt-Taste ignoriert werden können. Nun tippt man ein Leerzeichen und einen Unterstrich ein. Durch anschließendes Betätigen der ESC-Taste wird die Markierung aufgehoben.

Vor der ersten Datenzeile wird eine Zeile mit folgendem I2C-Ausgabebefehl eingefügt: hi2cout (0x40,_

Der Wert 0x40 kennzeichnet, dass Daten zum OLED gesendet werden sollen. Nach der letzten eingefügten Zeile muss der hi2cout-Befehl abgeschlossen werden, indem eine Zeile mit einer schließenden runden Klammer ) getippt wird. Nun kann man endlich im Picaxe-Editor auf Check klicken. Sollte hier eine Fehlermeldung erscheinen, dann hat man beim Anpassen der Datenzeilen irgendwo ein Fehler gemacht. Nach dem Download des Codes in den Picaxe sollte nun das neu gewählte Bild auf dem OLED auftauchen.

Natürlich ist das Vorgehen nur eine experimentelle Methode, um ein Bild im Picaxe zu speichern und auf das OLED übertragen zu können. Die Bilddaten belegen einen Großteil des Picaxe- Programmspeichers. Wenn man ein zweites Bild speichern und darstellen möchte, kann es sein, dass der Speicher dafür nicht mehr ausreicht. Das ist stark von den Bildinhalten abhängig, da der Picaxe-Befehl abhängig von den Bytes mehr oder weniger Speicher benötigt.