OLED-Pupillen mit Teensy 3.1

Hinterlasse einen Kommentar

15.08.2015 von plaintron

Im Adafruit-Blog erschien heute ein Bericht über ein interessantes Experiment: Wie kann ich möglichst realistisch ein Auge (also Iris und Pupille) auf einem RGB-OLED-Display darstellen und mit einem Mikrocontroller steuern?

Der erste Ansatz von Marc Wolf sieht so aus: Eine Serie von Bildern wird auf einer SD-Karte gespeichert. Diese Bilder werden dann wie ein Film hintereinander via Controller auf das Display geschickt. Ein Eingabegerät (hier ein Poti) soll dann die Weite der Pupille steuern.

Wer schon mal mit Farbdisplays am Mikrocontroller gearbeitet hat, ahnt, was da für Schwierigkeiten auftreten: Ein hoch aufgelöstes Bild braucht eine Menge Arbeitsspeicher und etwas Zeit für die serielle Übertragung von der SD-Karte zum Display. Damit ist es so gut wie unmöglich, eine fließende Animation hinzubekommen. Genau das ist auch die Erfahrung, die Marc Wolf bei seinen ersten Versuchen gemacht hat.

Der Teensy 3.1 ist hier nicht das Nadelöhr. Mit seinen 32 Bit und 72 MHz wäre er schon in der Lage, bei einer Bildgröße von 128 x 128 Pixel eine ordentliche Animation auf das Display zu zaubern.

Hier der zweite Versuch:

Aber die Daten sind einfach nicht schnell genug da. Das Auslesen von der SD-Karte und der Transport über SPI dauern zu lange.

Als Grafik-Mensch habe ich an der Stelle allerdings sofort laut gerufen: Halt! Doch nicht so! Das ist ja Technik von vor 30 Jahren. Wir müssen doch bei einem Bild, das sich von einem Frame zum nächsten nur relativ wenig verändert, nicht ständig ein komplettes Bitmap nachladen und sofort wieder verwerfen. Wie wäre es stattdessen mit ein paar klugen mathematischen Operationen auf dem Bildmaterial? Oder damit, nur die Bildteile zu überschreiben, die sich von einem Frame zum nächsten wirklich ändern?

Das dachte sich auch Phillip Burgess und hat zunächst sein Teensy-Board so weit frisiert, dass es 40 Frames pro Sekunde verarbeiten konnte. Dann nahm er ein einziges Bitmap, nämlich ein langgestrecktes, gerades Abbild der Iris-Struktur und rechnete das auf Polarkoordinaten um, damit sich die Kreisform ergibt.

So sieht das aus:

Beeindruckend, oder? Programmierung findet eben zu einem guten Teil im Gehirn statt, nicht nur auf der Maschine 😉

Advertisements

Kommentieren

Trage deine Daten unten ein oder klicke ein Icon um dich einzuloggen:

WordPress.com-Logo

Du kommentierst mit Deinem WordPress.com-Konto. Abmelden / Ändern )

Twitter-Bild

Du kommentierst mit Deinem Twitter-Konto. Abmelden / Ändern )

Facebook-Foto

Du kommentierst mit Deinem Facebook-Konto. Abmelden / Ändern )

Google+ Foto

Du kommentierst mit Deinem Google+-Konto. Abmelden / Ändern )

Verbinde mit %s

Blogverzeichnis - Bloggerei.de
%d Bloggern gefällt das: