What you will learn:
How to use a variable to store a "state" - in this case whether there is a duck or not!
What you will need:
micro:bit, enviro:bit, device to code the micro:bit with (e.g. laptop), USB cable to transfer data
How to do it:
The enviro:bit has a microphone on it, which can detect a clap sound. You will find the "when I hear a clap" block in the envirobit part of the menu. To make a simple version of this code, you could simply say "when I hear a clap"... "show icon of a duck". What we want to do is have the micro:bit remember if there is a duck or not.
1. In the variables menu, create a new variable called "duck". In the "on start" block, add in a block from the variables menu to say that at the start of the program, there is No Duck.
![](https://edu.pimoroni.com/content/images/2019/01/noduckstart.png)
2. Now we need to listen for a clap, and then check whether there is a duck or not. In the logic menu, you will find a block for "if ___ then, else"
![](https://edu.pimoroni.com/content/images/2019/01/microbit-screenshot.png)
3. If there is no duck, show a duck and remember there is One Duck. Else (otherwise), clear all ducks, and remember there is No Duck. Let's tackle the No Duck scenario.
Drag a comparison block from the logic menu into the hexagon that says "true". Use the duck variable inside it.
4. If there is No Duck, we want a duck to be displayed, so add that next.
![](https://edu.pimoroni.com/content/images/2019/01/microbit-screenshot--2-.png)
5. Now we've added a duck, the amount of ducks is not zero, so we need to change the duck variable to say that there is one duck.
![](https://edu.pimoroni.com/content/images/2019/01/microbit-screenshot--3-.png)
6. If the duck isn't zero, that means there is a duck there, so we need to clear the screen to get rid of any ducks, and take 1 away from the duck number.
![](https://edu.pimoroni.com/content/images/2019/01/microbit-screenshot--4-.png)
7. Try clapping to make your duck appear and disappear.
Challenges:
Use the same technique to turn the lights on the enviro:bit on or off.
Use a second micro:bit and the radio blocks to trigger an event - maybe use an enviro:bit on one to detect a clap, and a neopixel ring on the other to turn the lights on and off. Start and stop a motor - the choice is yours!
Take a reading and display the temperature on the micro:bit display when you clap your hands.