Hey! Sie scheinen aus United States zu kommen, möchten Sie auf die Englisch Webseite wechseln?
Switch to Englisch site
Skip to main content

Aufwertung eines etwas tristen Weihnachtspullovers mit Adafruit Flora NeoPixel

Mir gefiel der Weihnachtspullover vom letzten Jahr, er war so weich und behaglich! Leider sah er nicht übermäßig interessant aus… mit seinen weißen und grauen Mustern hob er sich nicht gerade von den vielen unkonventionellen Weihnachtspullovern ab, die angeboten werden. Da sich Wearable-Tech zunehmender Beliebtheit erfreut, entschloss ich mich, durch die Aufwertung meines alten Festtagspullovers mit einigen auffälligen LEDs meine eigene Wearable-Tech zu basteln.

Inzwischen werden zahlreiche kompakte Mikrocontroller-Plattformen angeboten, sodass jetzt der Herstellung eigener einfacher Wearables nichts mehr im Weg steht. Ich entschied mich für Adafruit Flora, einer Arduino-kompatiblen Wearable-Elektronikplattform. Es handelt sich dabei um eine ganze Familie von Sensoren und Peripheriekomponenten, die mit einem LiPo-Akku mit Strom versorgt werden kann, sodass sie perfekt für Wearable-Tech geeignet ist.

Außerdem entschloss ich mich, Flora Smart RGB NeoPixel zu verwenden. Dabei handelt es sich um intelligente, einzeln adressierbare RGB-LEDs und -Streifen auf der Basis der LEDs/Treiber WS2812, WS2811 und SK6812 unter Verwendung eines Eindraht-Steuerprotokolls. Diese können miteinander verkettet und einzeln/sequentiell adressiert werden. Bei Verbindung mit einem Mikrocontroller wird der Ausgang eines NeoPixels direkt mit dem Eingang des nächsten verbunden.

NeoPixel werden durch eine Arduino-Bibliothek unterstützt. Anfangs war ich mir nicht ganz sicher, wie die NeoPixel funktionieren. Es war mir nicht klar, wie die Einzeladressierung möglich ist, obwohl die Komponenten am Datenbus in Reihe geschaltet sind. Beim Durchlesen der Kommentare des simple.ino-Beispiels im NeoPixel-Github-Repository konnte ich mir dann aber schnell Klarheit verschaffen. Im Sketch ist angegeben, dass bei der Reihenschaltung mehrerer NeoPixel an den Datenstiften jedem NeoPixel eine Nummer im Setup zugeordnet wird. Dadurch kann trotz des Anschlusses aller Pixel an den gleichen Datenstift jedes Pixel einzeln angesteuert werden.

 

Nach dem Herunterladen der zugehörigen Bibliotheken entsprechend den Angaben im Adafruit NeoPixel Überguide, musste ich mich entscheiden, wie sich meine NeoPixel verhalten sollten. Beim Durchschauen einiger Beispiel-Sketches fand ich einen Sketch, der die Farben des Farbkreises durchläuft. Mit den Farben Weiß und Blau (Winterfarben) stellte ich mir das recht hübsch vor. Ich könnte doch NeoPixel sanft von Weiß nach Blau und wieder zurück zu Weiß usw. überblenden.

Ich wusste, dass die Farbe Weiß den Werten (127, 127, 127) und die Farbe Blau den Werten (0, 0, 255) entspricht. Zunächst versuchte ich, diese Ganzzahlen zu verändern, bis aus Weiß Blau geworden war, und subtrahierte daher jedes Mal 1 von Rot und Grün und addierte 1 zu Blau:

(127, 127, 127)
(126, 126, 128)
(125, 125, 129)
(124, 124, 130)
(123, 123, 131)
usw.

Das war etwas sprunghaft und ergab keinen weichen Übergang zwischen den Farben. Ich wollte eine weiche Überblendung wie in dem zuvor ausgeführten Beispiel. Der unten angegebene Codeabschnitt steuert die Regenbogenfunktion. Ich ging davon aus, dass ich mit etwas Ähnlichem eine Überblendung der Pixel erreichen konnte, statt Sprünge von einem Farbton zum nächsten.

void rainbow(uint8_t wait) {
   uint16_t i, j;

   for(j=0; j<256; j++) {
     for(i=0; i
        strip.setPixelColor(i, Wheel((i+j) & 255));
     }
     strip.show();
     delay(wait);
   }

Ich entschloss mich, eine for-Schleife einzubauen, um so eine weiche Überblendung der NeoPixel von Blau zu Weiß zu erreichen.

    for(int count = 0; count <127; count ++)
       colorWipe(strip.Color(count, count, 255-count), 60);

Das funktionierte hervorragend. Damit funktionierte die NeoPixel-Überblendung von Blau nach Weiß, beim Zurücküberblenden von Weiß nach Blau traten allerdings wieder Sprünge auf. Das gefiel mir überhaupt nicht. Ich wollte eine kontinuierliche weiche Überblendung zwischen den beiden Farben erreichen. Dazu baute ich eine zweite for-Schleife ein, die in umgekehrter Richtung zur ersten for-Schleife läuft. Damit funktionierte auch die NeoPixel-Überblendung zurück von Weiß nach Blau.

void loop() {
    for(int count = 0; count <127; count ++)
       colorWipe(strip.Color(count, count, 255-count), 60);
    for(int count = 0; count <127; count ++)
       colorWipe(strip.Color(127-count, 127-count, 127+count), 60);
}

Aufgrund der Beleuchtung während der Videoaufnahme ist die Farbänderung nur schwer zu erkennen.

Da der Sketch mit drei NeoPixeln funktionierte, begann ich mit dem Einnähen. Vor dem Einnähen von Komponenten musste ich festlegen, wo diese platziert werden sollten. Ein NeoPixel in der Mitte jeder Schneeflocke auf dem Pullover würde bestimmt gut aussehen, da dies wie ein Funkeln wirkt. Mir gefiel es, dass der Pullover dadurch farbenprächtiger und im wahrsten Sinne des Wortes viel cooler wirken würde. Dazu waren sieben NeoPixel erforderlich.

nice, since it would look as though the snowflakes were twinkling. I love that this brought colour to the jumper and made it look a lot cooler – pun intended – this would require the use of seven NeoPixels.

Zunächst plante ich, welche NeoPixel ich zuerst einnähen würde, damit keine Kurzschüsse entstehen. Ich begann mit dem am weitesten entfernten NeoPixel und nähte in Richtung des nächstgelegenen NeoPixels, wobei ich zuerst alle Datenstifte zusammenheftete. Das Nähen mit leitfähigem Faden unterscheidet sich vom normalen Nähen doch erheblich. Der Faden ist wesentlich dicker und deutlich schwerer zu verarbeiten. Er muss wie ein blanker Draht behandelt werden, d. h. es darf zu keinen Kreuzungen kommen, um Kurzschlüsse zu vermeiden.

Nachdem alle Datenleitungen angeschlossen waren, nähte ich den GND- und den VCC-Anschluss von Adafruit Flora an und achtete dabei darauf, nicht zu dicht an die Datenstiche zu kommen. Wenn der Faden verknotet werden musste, sicherte ich ihn mit Nagelklarlack, um ein Lösen zu verhindern.

 

Da ich mich dafür entschieden hatte, die Komponenten an der Pulloverinnenseite zu befestigen, musste ich die Dafruit Flora-Steuereinheit entsprechend abdecken. Das erfolgte mit einer Tasche, die wie eine Art Klappe über der Oberseite der Dafruit Flora-Steuereinheit angeordnet und an der Unterseite mit Klettband befestigt wurde. So konnte auch der LiPo-Akku befestigt werden, ohne den Zugang zur Dafruit Flora-Steuereinheit zu behindern.

Um die Bearbeitung des Pullovers abzuschließen, schloss ich die Dafruit Flora-Steuereinheit über eine Mikro-USB-Verbindung an meinen Laptop an und lud den Sketch über die Arduino-IDE hoch. Der NeoPixel-Weihnachtspullover funktioniert! Zwar ist er ein bisschen temperamentvoll – obwohl es mein erstes Wearable-Projekt ist – aber meiner Meinung nach ganz gut gelungen!

Was mir an diesem Projekt so gut gefällt ist, dass ich nicht fest an die Überblendung von blauen und weißen LEDs gebunden bin, sondern je nach Anlass durch die Anpassung einiger Code-Zeilen die Farben der NeoPixel ändern und die LEDs sogar blinken lassen kann.

Trainee Electronics Engineer, currently studying towards my degree in Electronic Engineering at the University of Hudderfsield. Completed my HND in Electrical & Electronic Engineering from Bradford College 2017. Love to try new things and build interesting projects!