Nivel de burbuja
Placas: Citilab ED1, micro\:bit, micro\:STEAMakers, M5Stack-Core y otras con acelerómetro y pantalla de matriz de LEDs.
Acelerómetro
- Otro sensor que incorpora la placa es el acelerómetro. Con este sensor podemos saber la inclinación que tiene la placa en cualquiera de los tres ejes (X, Y y Z).
- El rango de valores en estos ejes va de -100 a 100, siendo 0 en los ejes X e Y si la placa está completamente plana respecto al suelo.
X | Y |
---|---|
![]() |
![]() |
Reto 1: prueba a hacer lo mismo pero con el eje Y, es decir, dibujando un punto hacia el lado donde esté inclinada la placa
Solución al reto 1
Mapeo de valores
- Si ahora quisiéramos encender cualquier punto de la pantalla dependiendo de la inclinación en X e Y, ¡necesitaríamos 25 bloques parecidos a los que acabamos de hacer!
- Podemos pensar una solución más eficiente tratando de mapear (convertir de un rango a otro) el valor de inclinación en X e Y al número de fila y columna del LED que queremos encender.
Inclinación (X o Y) | LED (X o Y) |
---|---|
-100 | 1 |
-50 | 2 |
0 | 3 |
50 | 4 |
100 | 5 |
De esta manera, solo necesitaremos los bloques enciende x _ y _
y apaga x _ y _
para controlar los puntos de la pantalla LED.
Reto 2: encuentra la fórmula para transformar el valor de inclinación X o Y (de -100 a 100) a un valor de fila o columna de la pantalla (del 1 al 5)
Solución al reto 2
Encender y apagar LEDs de la pantalla
- Ahora que ya tenemos la fórmula, podemos usarla para encender un LED y apagarlo justo después (¡si no, todos quedarían encendidos!).
- Si lo probamos, veremos que aun así aparece un problema, ya que puede que no se encienda y se apague el mismo LED (¡el valor de inclinación puede cambiar entre un bloque y el otro!).
- Por eso deberíamos guardar en algún sitio el valor que nos da la fórmula, y para eso están las variables.
Variables
Sirven para guardar temporalmente un valor durante la ejecución de un programa.
Primero crearemos una variable para guardar el valor de x, entrando en la categoría Variables y pulsando el botón Crear una variable. Repetimos el mismo proceso para crear la variable que guardará la y.
- Finalmente, solo tendremos que usar el bloque
asigna _ a _
para guardar las fórmulas correspondientes en las variables.
Biblioteca TFT
Placas: Citilab ED1, M5Stack-Core y otras con acelerómetro y pantalla TFT
- Podemos ir más allá y mejorar la visualización de la burbuja usando la TFT, disponible en la carpeta Gráficos y pantallas.
- Con esta biblioteca podemos usar bloques para dibujar líneas, rectángulos y otras formas, además de escribir texto en la pantalla.
- En nuestro caso podemos usar un rectángulo o un círculo para representar la burbuja, configurando su tamaño y color.
Mapeo de valores (II)
- La fórmula que usamos antes ya no nos sirve, porque ahora podemos trabajar con cualquier píxel de la pantalla.
- La pantalla de la Citilab ED1 tiene 128 píxeles de ancho y 128 de alto, así que los valores de X e Y van de 0 a 127.
Reto 3: encuentra la fórmula para transformar el valor de inclinación X o Y (de -100 a 100) a una posición en la pantalla (de 0 a 127)
Solución al reto 3
Dibujar la burbuja
- Como en el caso anterior, deberemos guardar cada resultado de la fórmula en su variable correspondiente.
- Si usamos el bloque de círculo, solo hace falta indicar el radio y el color. Una vez dibujado, podemos “borrarlo” dibujándolo otra vez en color negro.
- Es recomendable limpiar la pantalla al principio, para asegurarnos de que no queda ningún dibujo anterior.
Reescalar
- La operación de reescalar es muy útil cuando queremos convertir un valor de un rango a otro. Por eso MicroBlocks incluye un bloque que lo hace automáticamente. Hay que activar el modo avanzado en el icono de configuración.
⬅️ Actividad anterior | Actividad siguiente ➡️ |
---|
© by Citilab Edutec 2019-2025.
This work is licensed under a CC-BY-SA 4.0 license.