Direkt zum Inhalt

Einführung

Verwenden wir das Leuchten-Modul und einige Taster, um einen Farbmischer zu erstellen!

  1. Denken Sie daran, dass jeder Sparkle 3 verschiedene Farb-LEDs enthält?
    • 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!

  2. Lass uns den Start unseres Programms einrichten.
    • 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.

  3. In on start, setup the sparkles using the variable you just created. Make sure you set it to P0 with 9 LEDs.
    • 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!

  4. We need to do one more thing before testing the program.
    • 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!

  5. Now let's add some blocks to let us change the colour of the Sparkles using a button.
    • 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!

  6. You probably noticed when testing your program that if you press the button enough times, the amount of red seems to start from zero again.
    • 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.

  7. We can now change the amount of red, but we want a colour mixer! Let's add another colour using the other switch.
    • 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?

  8. You may have noticed that we have run out of buttons for the third colour, blue - but there is a solution!
    • 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!

  9. You've probably found the last program doesn't quite work correctly - if you press both buttons, the blue and green both increase! This is because the second If block is still true if we are holding down both buttons, so g is also increased by 10.
    • 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!

  10. When r, g and b are all the same, the Sparkles will be white.
    • 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.

Finish Line

TechCamp

Mitglied seit: 10

119 erstellte Leitfäden

Team

Mitarbeiter des Techcamps Mitglied Mitarbeiter des Techcamps

6 Mitglieder

140 erstellte Leitfäden