Deutsch English |
WAS SIND NEOPIXEL |
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 SPASS |
Ein Lichtsystem, das mit einem Mikrocontroller wie dem micro:bit 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 |
|
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 pin0) und wieviele NeoPixel deine Anordnung aufweist, also für 24 LEDs: np = NeoPixel(pin0, 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 Modul calliope_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. Lasse weitere LEDs in verschiedenen Farben leuchten: blau, gelb, cyan usw. Im Prinzip könntest du den Tupel (255, 0, 0) verwenden, um eine rote Farbe zu erhalten. Da die LEDs sehr hell sind, genügt der Wert 30 |
AUFGABE 2: EIN PIXEL LAUFEN LASSEN |
|
Programm: from calliope_mini import * from neopixel import * nbLeds = 24 np = NeoPixel(pin0, nbLeds) for i in range(24): np[i] = (30, 0, 0) np.show() sleep(100) np[i] = (0, 0, 0) Ändere das Programm so, dass sich das rote Pixel "endlos" vom Anfang zum Ende bewegt. |
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.
|