Skip to content

Actividad

Vela

Intermedio | MakeCode, Python | Micrófono, Pantalla LED | Lógica booleana, Selección, Sensores

Paso 1: Hazlo

¿Qué es?

¡Haz una vela electrónica que puedes apagar! El nuevo micrófono incorporado del micro:bit detecta el sonido de tu soplido y apaga la vela, y vuelve a encenderla.

Introducción

Guía de programación

Qué aprenderás

  • Cómo usar números aleatorios para iluminar LED aleatorios
  • Cómo cambiar las salidas en respuesta a las entradas del sensor
  • Cómo usar la lógica booleana para hacer un interruptor que se enciende y apaga cuando se activa por el mismo evento

Cómo funciona

  • Un número aleatorio entre 1 y 3 se almacena en la variable llamada flicker.
  • Este número se utiliza para activar y desactivar LED al azar para parecer un parpadeo de llamas.
  • Los LED del micro:bit están organizados en una cuadrícula con columnas y filas numeradas de 0 a 4. El programa activa (enciende) y desactiva (apaga) diferentes LED en la fila superior dependiendo del número aleatorio almacenado en la variable flicker.
  • Las coordenadas para los LED siempre se dan con la columna a lo ancho primero (el eje x) y luego la fila hacia arriba y hacia abajo (el eje y). El centro de la llama está en coordenada 2, 0.
cuadrícula que muestra las coordenadas de la pantalla LED del micro:bit
  • Un bucle forever mantiene la animación en marcha.
  • El programa también utiliza una variable llamada lit para hacer un seguimiento de si la vela está encendida o no. Esta es una variable booleana. Las variables booleanas solo pueden tener dos valores: verdadero (on) o falso (off).
  • Cuando el sensor de micrófono detecta un sonido alto, por ejemplo cuando soplas sobre él, el código cambia el valor de lit configurándolo para que sea not lit1. Por lo tanto, cuando soplas en el micrófono, si lit es verdadero. se convierte en falso y la pantalla se limpia, apagando los LED.
  • Si lit era false, se vuelve true y volvemos a encender la animación.

Lo que necesitas

  • Un micro:bit
  • Editor de MakeCode o de Python
  • pilas (opcionales)

Paso 2: Prográmalo

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()

Paso 3: Mejóralo

  • Crea tu propio diseño para una animación para encender o apagar usando sonido.
  • Puedes hacer que el bloque de "en sonido fuerte" sea más o menos sensible añadiendo un bloque "establecer un alto nivel de sonido" a un bloque "al iniciar". Esto se encuentra en Entrada y '...más.' Utiliza números más pequeños para sonidos más silenciosos, números más grandes para sonidos más fuertes.
  • En Python, para cambiar el umbral de sonidos fuertes usa microphone.set_hold(SoundEvent.LOUD, 128) justo antes del buclewhile True:, cambiando el número 128 al valor de sonido que desees. Este puede ser cualquier número entre 0 y 255, siendo 255 el sonido más alto.