Skip to content

Actividad

Nivel de burbuja

Intermedio | MakeCode, Python | Acelerómetro, Pantalla LED, Sonido | Lógica booleana, Operadores relacionales, Selección, Sensores

Paso 1: Hazlo

¿Qué es?

Haz una herramienta para asegurarte de que los cuadros, los estantes o las superficies de trabajo estén nivelados. El nuevo altavoz integrado del micro:bit hace que sea fácil mejorar tu nivel de espíritu con comentarios de audio.

Introducción

Guía de programación

Qué aprenderás

  • Cómo usar el sensor de acelerómetro para medir ángulos
  • Qué son "pitch" y "roll"
  • Cómo combinar lecturas de sensores en dos dimensiones para encontrar una superficie de nivel

Cómo funciona

diagrama mostrando pitch y roll en el micro:bit
  • El acelerómetro del micro:bit puede medir los ángulos de inclinación en dos direcciones: arriba y abajo (pitch) y lado a lado (roll). Este proyecto utiliza esto para mostrar cuándo el micro:bit está nivelado en la pantalla LED y haciendo un sonido, que podría ser útil al colgar un cuadro o hacer una superficie de trabajo.
  • Un bucle mantiene el programa constantemente midiendo el ángulo del micro:bit.
  • Si el acelerómetro mide un ángulo de inclinación entre +5 y -5 grados de pitch y roll, el micro:bit debe estar razonablemente nivelado. A continuación, muestra una marca en la salida de la pantalla LED y reproduce un tono musical.
  • Para escuchar el tono conecta auriculares o un altavoz a pin 0 y GND, o si tienes un nuevo micro:bit lo escucharás en el altavoz incorporado.
  • Si Bien el tono o el balanceo están fuera del rango de +5 a -5 grados, muestra una cruz en la pantalla LED y detiene el sonido.

Lo que necesitas

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

Paso 2: Prográmalo

1from microbit import *
2import music
3
4# Uses accelerometer readings in the x and y axis 
5# and also allows the micro:bit to be slightly off-level
6# to make it work better in practice
7while True:
8    if accelerometer.get_x() > -10 and accelerometer.get_x() < 10 and accelerometer.get_y() > -10 and accelerometer.get_y() < 10:
9        display.show(Image.YES)
10        music.play('C5:1')
11        sleep(200)
12    else:
13        display.show(Image.NO)
14

Paso 3: Mejóralo

  • ¿Puedes hacer que el tono musical cambie dependiendo del ángulo?
  • ¿Podrías codificar una 'burbuja' LED que se mueva por la pantalla como un nivel de espíritu real?