Hoy nos divertiremos con música. Usaremos bloques musicales junto con el sensor de movimiento para crear ritmos y, en el proceso, exploraremos un nuevo concepto: los 'flags', elementos clave para marcar situaciones específicas dentro del programa.
Al presionar el botón de Start, el CyberPi reproducirá distintos sonidos según la dirección en la que se incline. Además, exploraremos el uso de los 'flags' para identificar su estado dentro del código y responder adecuadamente a cada situación.
Aquí se presentan los bloques esenciales para esta práctica, que deberemos utilizar obligatoriamente. Además, será necesario emplear algunos bloques ya vistos en prácticas anteriores.
Primero, implementaremos el código base de la práctica P0 para mostrar nuestros datos.
Al presionar el botón Start (B), la pantalla de inicio se borrará, se mostrará un título acorde al programa y los LEDs RGB se encenderán con un color específico. Durante esta pantalla, el CyberPi reaccionará a la inclinación en cualquiera de sus cuatro direcciones, reproduciendo un sonido y cambiando el color de los LEDs, creando así una especie de batería electrónica que transforma el movimiento en sonido.
Para detectar la inclinación, utilizaremos bloques de eventos. Sin embargo, sin una restricción, los sonidos también se activarían en la pantalla de inicio. Para evitarlo, usaremos una variable de control (flag), que nos permitirá saber en qué estado se encuentra el programa.
Deberás crear esta variable y asignarle el valor 0 al iniciar el CyberPi (puedes llamarla flag, estado, Paco o como prefieras). Luego, cuando se presione B y comience el programa DJ-BOT, cambiaremos su valor a 1.
Esta variable nos indicará si estamos en la pantalla de inicio (flag = 0) o en el programa de generación de sonidos (flag = 1). En otros escenarios, podríamos añadir más estados para modificar su comportamiento según sea necesario.
Así, cada vez que el CyberPi se incline, comprobará si debe producir un sonido o no, dependiendo del estado de la variable.
Dentro del mismo programa, podemos diseñar distintos instrumentos, como sonidos de batería, notas musicales o efectos predefinidos. Para ello, además del título, mostraremos en pantalla un número que representará nuestra variable de control (‘flag’). Configuraremos uno de los botones para cambiar su valor entre distintas opciones:
flag = 1 → Sonidos de batería
flag = 2 → Sonidos de piano
flag = 3 → (Puedes añadir tantas opciones como desees)
Además, modificaremos la lógica de los eventos de inclinación, incorporando condiciones adicionales para que el sonido varíe según el valor de ‘flag’.