PicAsSo-Adventskalender: Das dritte Türchen darf endlich geöffnet werden

Seite 2: Mehr Speicher für Bilder

Inhaltsverzeichnis

Durch das EEPROM steht uns ein Speicherplatz von 64 Kbytes zur Verfügung. Da ein Bild für das OLED genau 1024 Bytes benötigt, reicht der Platz für 64 Bilder. Hier liegen die Bitmaps und der Code zum Download bereit. Doch wie speichert man Bilder im EEPROM?

Man könnte per Picaxe-Programm die Bilddaten aus dem Programmspeicher ins externe EEPROM schreiben. Allerdings ist das nicht besonders komfortabel, da man nur ein bis zwei Bilder im Programmspeicher unterbringt – beziehungsweise drei bis vier, wenn Slot 1 dazugezählt wird. Um das EEPROM voll zu schreiben, müsste man mehrmals Programme laden.

Stattdessen übertragen wir Bilder über die serielle Schnittstelle vom PC an den Picaxe, der dann die Daten per I2C ins EEPROM schreiben soll. Das Nano-Axe-Board mit dem CH340G bietet dazu hardwaremäßig alle Voraussetzungen. Das Schreiben des I2C-EEPROMs dauert jedoch relativ lange, ca. 5ms pro Byte oder Page. Selbst bei einer Baudrate von 4800Bd kommen die Zeichen schneller herein.

Deshalb verwenden wir das Übertragungsprotokoll XMODEM, das einen Handshake bietet. So können wir den PC als Gegenstelle so lange ausbremsen, bis ein Datenpaket komplett verarbeitet wurde. Die Pakete haben beim XMODEM-Protokoll eine feste Länge von 128 Datenbytes, 3 Bytes Header und ein Checksummenbyte am Ende. Insgesamt sind das 132 Bytes. Da der Picaxe-14M2 512 Bytes RAM Speicherplatz hat, können wir ein komplettes Paket puffern, verarbeiten und quittieren, sodass das nächste Paket gesendet wird.

Zuerst müssen wir die Bilddaten vorbereiten. Statt eines Arrays für die Benutzung im Quellcode benötigen wir nun binäre Bilddaten im passenden Format. Die Dateigröße beträgt dann genau 1024 Bytes. Leider kann das Online-Tool image2cpp, das wir letzten Sonntag benutzt haben, keine Binärdatei erzeugen. Ein Benutzer des Mikrocontroller-Forums hat jedoch das Tool OledBm geschrieben, das eine passende Binärdatei anfertigen kann. Der Quellcode des Tools ist dort ebenfalls verfügbar. Die Exe-Datei und der Quellcode können dort heruntergeladen werden.

Oberfläche des Tools OledBm

Mit dem Button Bild laden kann man 128×64 Pixel große Bitmap-Datei öffnen, die als Vorschau erscheint. Nach Klick auf Code erstellen wird der Button Als Binärdatei speichern aktiv. Dadurch wird die passende Binärdatei erzeugt. Diesen Vorgang kann man für weitere Bilder wiederholen.