Pas 1: Crea-ho
En què consisteix?
Fes una espelma electrònica que pots bufar! El nou micròfon integrat de la micro:bit detecta el so de la teva bufada i apaga l'espelma - i després la torna a encendre.
Introducció
Guia de programació
Què aprendràs
- Com utilitzar nombres aleatoris per encendre els leds aleatòriament
- Canviar les sortides com a resposta les entrades dels sensors
- Com utilitzar la lògica Booleana per fer un interruptor que commuta d'encès a apagat i d'apagat a encès amb el mateix esdeveniment
Com funciona
- Un nombre aleatori entre 1 i 3 es guarda a la variable anomenada "flicker (parpelleig)".
- Aquest nombre s'utilitza per encendre i apagar els leds aleatòriament per crear l'efecte d'una flama que titil·la.
- Els leds de la micro:bit estan organitzats en una quadrícula amb files i columnes numerades de 0 a 4. El programa dibuixa (encén) i esborra (apaga) diferents leds de la fila superior depenent del número guardat a lavariableflicker (parpalleig).
- Les coordenades dels leds sempre es donen amb la columna a través primer (l'eix x) i després la fila amunt i avall (l'eix y). El mig de la flama es troba a la coordenada 2, 0.
- Un "bucle per sempre" manté l'animació en funcionament.
- El programa fa servir una variable anomenada "lit (encès)" per fer un seguiment de si la llum està encesa o no. Aquesta és una variable Booleana. Les variables Booleanes només poden tenir dos valors: True - Cert (on) o False - Fals (off).
- Quan el sensor del micròfon detecta un so fort, per exemple quan hi bufes, el programa alterna el valor de encès configurant-lo com a no encès. Així, quan bufes el micròfon, si encès és cert, es fa fals i la pantalla s'esborra, apagant els leds.
- Si lit (encés) era fals (false), esdevé cert i tornem a activar l'animació.
Què necessites
- Una micro:bit
- Editor MakeCode o Python
- Piles (opcional)
Pas 2: Programa-ho
1from microbit import *
2import random
3
4lit = True
5
6while True:
7 if microphone.was_event(SoundEvent.LOUD):
8 lit = not lit
9 sleep(500)
10 if lit:
11 display.show(Image(
12 "00900:"
13 "09990:"
14 "09990:"
15 "09990:"
16 "09990"))
17 sleep(150)
18 flicker = random.randint(1, 3)
19 if flicker != 2:
20 display.set_pixel(2,0,0)
21 display.set_pixel(flicker,0,9)
22 sleep(150)
23 else:
24 display.clear()
Pas 3: Millora-ho
- Fes el teu propi disseny d'una animació que s'encengui i s'apagui fent servir el so.
- Pots fer que el bloc "en detectar un so fort" sigui més o menys sensible afegint un bloc "estableix el llindar de so fort" a un bloc "en iniciar". Troba això a Entrada i "... més". Utilitza números més petits per a sons més fluixos, números més grans per a sons més forts.
- A Python, per canviar el llindar per sons forts utilitzem
"microphone.set_threshold(SoundEvent.LOUD, 128)"
abans del bucle"while True: (mentre cert)
, canviant el nombre 128 al valor de so que vulguis. Pot ser qualsevol nombre entre 0 i 255, sent 255 el so més fort.
This content is published under a Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) licence.