Mein Programm für den Neopixelwürfel zeigt einige Animationen und kann sicherlich noch optimiert und geschickter programmiert werden. Auch wurden manche Möglichkeiten der zugrunde liegenden Library FastLED nicht genutzt. Zum Download gibt es verschiedene Versionen für verschiedene Boards.
Weiterlesen nach der Anzeige
Für den ESP8266 ist über den Boardverwalter das Modul Generic ESP8266 zu wählen.
Für den Arduino UNO habe ich die Animationen auf zwei Programme aufgeteilt, bedingt durch die geringe Größe des RAM (dynamischer Speicher).
Im Programm fĂĽr einen mit mehr SRAM ausgestatteten Prozessor, etwa ATMega 2560 und ESP8266 sind alle Animationen und ein Demo Mode enthalten.
Ich habe außerdem noch das Demo-Programm ColorPalette.ino aus FastLED für den Neopixelwürfel angepasst, es zeigt sehr schöne Farbverläufe.
Das Programm arbeitet interaktiv. Während eine Animation läuft, können Befehle über den seriellen Monitor abgesetzt werden, die etwa die Geschwindigkeit der Animation bestimmen, den automatischen Farbwechsel an- und ausschalten, Farbeinstellungen und Richtung verändern. Am Programmanfang führt ein Kommentar-Feld die Befehle auf.
Folgende Animationen sind enthalten:
WĂĽrfel: Acht LEDs bilden einen kleinen WĂĽrfel, der sich auf festgelegten oder zufallsgesteuerten Bahnen bewegt.
Säulen, Schrägsäulen, Wendel: zeigen Drehungen
Schlange: Lichtlinie, die zufallsgesteuert durch den WĂĽrfel wandert
Funkeln: zufallsgesteuertes farbiges oder weiĂźes Aufblitzen der LEDs
Figuren: Würfelumrisse, Kreuz, Stern – dabei zeigt nur der Würfelumriss eine Farbanimation.
Sprudel: zufallsgesteuerte aufsteigende Lichter, einfarbig oder bunt
Farben und Helligkeit
Es werden drei Farbarten und das Hue-Saturation-Value-Farbmodell von FastLED verwendet. Alle Werte sind während des Programmablaufs einstellbar, werden aber bei einem Neustart wieder auf die Startwerte zurückgesetzt.
Weiterlesen nach der Anzeige
Farbe 1 (Hue1, Saturation1, Value1) ist die Hintergrundfarbe, in der eine eigentlich ausgeschaltete LED leicht glimmt – das sieht besser aus als eine völlig dunkle LED.
Farbe 2 (Hue2, Saturation2, Value2) ist die sekundäre Farbe für eine eingeschaltete LED.
Farbe 3 (Hue3, Saturation3, Value3) ist die primäre Farbe für eine eingeschaltete LED.
Durch die Unterscheidung in primäre und sekundäre Farbe sind auf einfache Weise zweifarbige Animationen möglich – so kann etwa bei der Schlange der Kopf eine andere Farbe haben als der Körper.
Beim Programmstart wird standardmäßig ein langsamer automatischer Farbwechsel für die Animationen eingeschaltet, der auf Wunsch abschaltbar ist.
Nummern der einzelnen Pixel in den 25 Säulen
LED-Nummerierung
Mit Ausnahme der mit Zufallszahlen gesteuerten Animation der Schlage und des Würfels werden in allen Animationen die LEDs über das Auslesen von Arrays geschaltet, in denen deren Nummer steht. Die LEDs sind wie in der Tabelle rechts oben gezeigt durchnummeriert, die Grafik darunter zeigt (zur Erinnerung) nochmal die Nummerierung der Säulen.
Koordinaten per Zufallszahlen
Da die oben erwähnte Schlange und der Würfel im Zufallsmodus keine fest programmierte Bahnen verfolgen, sondern per Zufallszahlen gesteuert werden, wird ein einfaches Koordinatensystem zur Positionskontrolle verwendet. Mit einer Übersetzungstabelle in einem Array im Programmcode werden dann die LEDS geschaltet.
Bei der Schlangenaninmation gibt es eine Spezialität: Wenn sich die Schlange in den Schwanz beißen müsste, um weiterzukommen, wird kurzeitig ein rotes Funkeln ausgelöst. Der Programmcode ist weitgehend kommentiert, ich hoffe das die gemischte Verwendung deutscher und englischer Begriffe und Wörter verständlich ist.
Schema des Programmablaufs
ProgrammĂĽbersicht
Das folgende Flowchart gibt eine Übersicht über das Programm. Es besteht aus einer Ablaufsteuerung, einen Eingabeteil für Befehle und den Animationsprogrammteilen als Funktionen. Zentraler Teil ist in der Hauptschleife (void loop()) der Programmteil millis, über den andere Programmteile und Funktionen aufgerufen werden. Wer mit der Arduino-Programmierung vertraut ist, kann das Gerüst zur Realisierung eigener Animationen nutzen. Und jetzt: Viel Spaß beim Löten, beim Programmieren und beim Vorführen und Betrachten des eigenen Neopixelwürfels! Wenn Sie Ihren eigenen Würfel erfolgreich zum Laufen bekommen haben, schicken Sie bitte eine Mail, Fotos oder Videos an mail@make-magazin.de – und gerne auch Code für eigene Animationen.