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.
				
