Skip to content

Activitat

Espelma

Intermedi | MakeCode, Python | Micròfon, Pantalla LED | Lògica booleana, Selecció, Sensors

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.
quadrícula que mostra les coordenades de la pantalla de leds de la micro:bit
  • 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.