Einführung
Verwenden wir das Leuchten-Modul und einige Taster, um einen Farbmischer zu erstellen!
-
-
Du erinnerst Dich, dass jedes Leuchten-Modul neun Einheiten mit LEDs für die drei Farben rot, grün und blau enthält.
-
Wir werden ein Programm mit Variablen erstellen. Damit kannst Du die Farbe der Leuchten durch Nutzung der zwei Tasten rechts und links auf dem micro:bit ändern.
-
Zuerst baue Deinen Roboter wie im Bild zusammen!
-
-
-
Lass uns den Start unseres Programms einrichten.
-
Dieses Mal werden wir Variablen-Module benötigen, jeweils eine für eine rote, eine grüne und eine blaue LED.
-
Füge vier neue Variablen-Module hinzu. Dabei kannst Du "Variable erstellen" ("Make a Variable") im Variablen-Menü verwenden!
-
Nenne sie r, g und b (für rot, grün und blau) sowie l ("sparkles") für den Neopixel-Block.
-
Wir werden diese Variablen verwenden, um die Stärke des roten, grünen und blauen Lichts einzustellen.
-
-
-
Richte den Neopixel-Block mit der soeben erstellten Variablen in dem "on start"-Modul ein. Achte darauf, dass Du P0 auf 9 leds (Einheiten) erstellst!
-
Wir wollen sicher stellen, dass die Leuchten laufend mit den aktuellen Werten von r, g und b aktualisiert werden.
-
Hierfür füge einen Forever-Scheife hinzu, genau wie im Bild!
-
-
-
Wir müssen noch eine Aufgabe erledigen, bevor das Programm getestet werden kann.
-
Bevor Du eine Variable in einem Programm verwendest (wie wir es im Leuchten-Block getan haben), musst Du sie initialisieren. Initialisieren bedeutet dabei, die neu eingeführten Variablen (r, g, b) mit einem beliebigen Wert (hier 0) zu belegen.
-
Ziehe dazu drei Set-Blocks in den "on start-Block", um r, g und b zu initialisieren (wie im Bild)!
-
Gib unterschiedliche Werte an und schau welche Farbe Du hergestellt hast!
-
-
-
Lass uns nun einige Blöcke hinzufügen, damit wir die Farbe der Leuchten durch einen Taster ändern können.
-
Füge einen wenn-dann-Block innerhalb einer Forever-Scheife ein, der prüfen soll, ob Taste A (auf dem micro:bit) gedrückt ist!
-
Wenn Taste A gedrückt ist, dann ändere den Inhalt der Variablen "r" auf 10.
-
Für den Fall, dass "r" erhöht wird, füge einen Pausen-Block mit einer Wartezeit von 200 Millisekunden ein. Andernfalls würde sich "r" sehr schnell ändern, wenn der Taster gedrückt wird.
-
Beim Starten des Programms, setze r, g und b wieder auf 0, damit Du beim Testen Deines Programms besser sehen kannst, was passiert!
-
Auf dem Bild sind die Blöcke zu sehen, die Du benötigst!
-
-
-
Du hast wahrscheinlich beim Testen Deines Programms bemerkt, dass der Rotanteil wieder bei null anfängt, wenn Du die Taste oft genug gedrückt hast.
-
Das liegt daran, dass die Stärke der Rot-, Grün- und Blauanteile für eine Leuchte nicht grösser sein darf als 255.
-
Wenn r nun grösser als 255 ist, weil Du die Taste "A" mehr als 25 Mal gedrückt hast, bedeutet dies, dass der Wert von r an der Leuchte effektiv r - 255 ist.
-
Zum Beispiel: r = 26*10=260, also ist r größer als 255, so dass an der Leuchte lediglich rotes Licht in der Helligkeit von 260-255 = 5 angezeigt wird.
-
-
-
Wir können jetzt den Rotanteil ändern, aber eigentlich wollen wir eine Farbmischer herstellen. Lass uns deswegen eine andere Farbe mit dem zweiten Taster hinzufügen!
-
Füge einen weiteren wenn-dann-Block in der Forever-Schleife hinzu, die überprüft, ob die zweite Taste (B) gedrückt ist und im positiven Fall g um 10 erhöht.
-
Vergiss nicht, einen weiteren Pausen-Block zu verwenden!
-
Falls Du Hilfe benötigst, nutze das Bild: Dort kann man sehen, welche Blöcke erforderlich sind!
-
Ach ja - Vergiss nicht, das Programm zu testen, bevor Du fortfährst. Was fällt Dir auf, wenn Rot und Grün den gleichen Wert haben?
-
-
-
Du hast bestimmt bemerkt, dass wir keine Tasten für die dritte Farbe blau haben, es gibt dafür aber eine Lösung!
-
Wie wäre es, wenn wir ein Programm schreiben, das "b" um 10 erhöht, wenn beide Tasten gleichzeitig gedrückt werden?
-
Um dies zu machen, musst Du innerhalb des wenn-dann-Blocks, der Taste A prüft, einen wenn-dann-sonst-Block setzen, der die Taste B prüft.
-
Wenn Taste B ebenfalls gedrückt ist, erhöhe b um 10,
-
Sonst (else) wird lediglich wie vorher r um 10 erhöht.
-
Noch einmal: Vergiss nicht, dass Dein Roboter etwa 200 Millisekunden warten soll!
-
Du findest noch einige Hinweise im Bild, falls nötig!
-
-
-
Du hast wahrscheinlich festgestellt, dass das letzte Programm nicht ganz richtig funktioniert. Denn wenn Du beide Tasten gleichzeitig drückst, werden sowohl das blaue Licht als auch das grüne Licht stärker.
-
Dies passiert, weil der zweite wenn-dann-Block noch auf "erfüllt" eingestellt ist. Wenn wir aber beide Tasten festhalten, wird auch "g" um 10 erhöht.
-
Füge einen wenn-dann-sonst-Block innerhalb des zweiten wenn-dann-Blocks ein, wie vorher beim ersten wenn-dann-Block, um dies zu verhindern.
-
Du kannst auch einen Blick auf die Hinweise werfen.
-
Herzlichen Glückwünsch! Du hast einen schaltergesteuerten Farbmischer erstellt!
-
-
-
Wenn die Zahlen bei r, g und b alle gleich sind, werden die Lämpchen weiß leuchten.
-
Du kannst jetzt Blöcke zu Deinem Programm hinzufügen, um...
-
... überprüfen zu können, ob die Werte bei r, g und b alle gleich sind (Hinweis: Du benötigst drei wenn-dann-Blöcke ineinander oder Du kannst einen UND-Block aus dem Logikmenü einsetzen).
-
... einen Summer ertönen zu lassen, wenn dies (r=g=b) der Fall ist.
-
Dafür musst Du ein Summer-Modul hinzufügen.
-