WAS SIND NEOPIXELS |
In absehbarer Zeit wird es nur noch Leuchtmittel geben, die aus LEDs aufgebaut sind. Eine LED ist eine Halbleiter-Diode, die den durchfliessenden Strom mit hohem Wirkungsgrad in Licht umwandelt. Je nach Material kann man verschiedene Farben erzeugen. Kombiniert man eine rote, grüne und blaue LED in einem Gehäuse, so ergibt sich eine Farb-LED, mit der man durch additive Farbmischung jede andere Farbe erzeugen kann. Das Prinzip wird auch beim Farbfernsehen angewendet. Farb-LEDs werden manchmal mit einer elektronischen Schaltung (Controller) im gleichen Gehäuse kombiniert und hintereinader kaskadiert. Mit nur 3 Zuleitungen kann man trotzdem jeder einzelnen eine andere Farbe geben. Üblicherweise werden die LEDs auf einem LED-Streifen (LEDstrip) montiert. Es gibt aber auch Ringe oder rechteckige Anordnungen (Matrix). Im Folgenden verwendest du entweder einen LED-Streifen, einen LED-Ring oder eine LED-Matrix mit mindestens 12 LEDs. Diese müssen den Typ WS2812B haben. Bezugsquellen: Elektronik-Shops, Online-Versand (Adafruit, Seed, Pi-Shop, Ebay, Aliexpress, usw.) |
PROGRAMMIEREN MIT GROSSEM SPASSFAKTOR |
Ein Lichtsystem, das mit einem Mikrocontroller wie dem Calliope angesteuert wird, ist extrem flexibel und vielseitig, und es es gänzlich deiner Phantasie und deinem Einfallreichtum beim Schreiben des Steuerungsprogramms überlassen, was man schliesslich sehen wird. In diesem Arbeitsblatt lernst du einige grundlegende Verfahren kennen, die du dann auf dein eigenes Projekt übertragen kannst. Wie du sehen wirst, macht das Programmieren von Lichtsystemen deshalb Spass, weil die Auswirkungen jeder Programmzeile sofort optisch sichtbar werden. |
ANSCHLUSS |
Achtung: Falls du eine Anordnung mit mehr als 20-30 LEDs verwendest, musst du diese mit einer externen Stromversorgung von 5 V speisen, beispielsweise mit einer PowerBank. |
AUFGABE 1: PIXEL AUF BESTIMMTE FARBE SETZEN |
Die Ansteuerung der NeoPixels erfolgt mittels eines seriellen Protokolls. Dabei werden der Reihe nach die 3 Farbwerte für das erste Pixel, dann für das zweite usw. gesendet. Das erste Pixel "schnappt" sich seine Werte weg und leitet den Rest des Datenstroms weiter. Unter MicroPython ist die Programmierung sehr einfach: Du erstellst ein "Objekt" NeoPixel, indem du angibt, welches der Datenport ist (üblicherweise pin1) und wieviele NeoPixel deine Anordnung aufweist, also für 24 LEDs: np = NeoPixel(pin1, 24) Im Speichersystem entsteht nun eine Liste mit 24 Tupels, welche die RGB-Farben der 24 LEDs aufnehmen kann (als (R, G, B)-Farbwerte je im Bereich 0..255).
Wie du siehst, musst du neben dem Modulcalliope_mini auch noch das Modul neopixel importieren. Falls du das np.show() vergisst, so siehst du keine Veränderung der Farben, da ja deine LEDs erst bei diesem Aufruf den Datenstrom erhalten. |
AUFGABE 2: EIN PIXEL LAUFEN LASSEN |
|
AUFGABE 3: LÄNGER WERDENDER FARBIGER WURM |
|
AUFGABE 4: ALLE LEDs MITEINANDER HELL/DUNKEL STEUERN |
|
AUFGABE 5: KERZENFLACKERN |
|
AUFGABE 6: EIGENEN IDEEN VERWIRKLICHEN |
Erfinde ein Lichtspiel nach eigenen Ideen.
|