LABORATORIO N° 15 MÚSICA CON ARDUINO
CAPACIDAD
TERMINAL
- Identificar las aplicaciones de la Electrónica Digital.
- Describir el funcionamiento de las unidades y dispositivos de almacenamiento de información.
- Implementar circuitos de lógica combinacional y secuencial.
COMPETENCIA
ESPECÍFICA DE LA SESION
- Programación de Tonos musicales.
- Creación de nuevos bloques.
MARCO
TEORICO
MBLOCK:
mBlock es un software fácil
de aprender y usar.
Su diseño visual es parecido
a un puzzle, donde el usuario juntando bloques (también llamadas piezas) para
construir un programa.
Y, como en un puzzle, unas
encajan entre ellas y otras no, por lo cual es fácil identificar cuando se está
haciendo algo bien o mal.
La variedad de bloques
disponibles en mBlock permiten programar una amplia posibilidad de
comportamientos.
Este tipo de programación se
llama programación visual (por bloques) y es muy distinta a la programación por
código, la cual es la típica programación escrita.
IMAGEN
Scratch está pensado
originalmente para programar videojuegos. Mientras que mBlock está pensado para
programar robots.
Aunque en mBlock se pueden programar las dos cosas:
videojuegos y robots.
La interface que presenta
mBlock es la siguiente:
Del lado izquierdo, está “el
escenario” (1) del videojuego; en el centro (2) están las categorías de bloques
de programación (las piezas con las que se construye el programa del videojuego
o del robot); y del lado derecho está el espacio en donde se “arma/construye”
el programa, dónde se colocan las piezas/bloques.
Programación de videojuegos
Para programar un
videojuego, uno debe seleccionar los bloques del centro (2) y construir el programa
en la ventana derecha (3). Para testear y visualizar el videojuego está la
ventana del lado izquierdo o “escenario” (1).
De las distintas categorías
de bloques disponibles, la única que no se puede utilizar para programar
videojuegos es la que dice “Robots” (ya que estos bloques están diseñados específicamente
para funcionar con robots)
Programación de robots
De igual forma que para
programar videojuegos, para programar robots se deben elegir los bloques del
centro (2) y construir el programa en la ventana derecha (3).
En este caso, se deben
utilizar los bloques de la categoría Robots y también se pueden utilizar las
categorías de bloques Eventos, Operadores y Control.
Para testear el programa del
robot, no existe una ventana como el “escenario” (1) para los videojuegos. Lo
que se tiene que hacer es cargar el programa al robot y testear directamente en
él.
LOS BLOQUES
En la ventana del centro (2)
se encuentran los bloques de programación, agrupados por sus distintas
funcionalidades, donde cada funcionalidad está asociada a un color diferente.
Vemos que “movimientos” está
asociado al azul, “apariencia” al color lila, sonido al magenta, lápiz al verde
mar, bloques y listas al naranja, eventos al marrón, control al naranja
melocotón, sensores al azul marino, operadores al verde y robots al azul
oscuro.
Estas funcionalidades se
pueden dividir en dos grandes grupos.
1. Bloques para videojuegos
Para programar un videojuego
se utilizan las siguientes categorías de bloques:
Movimiento, Apariencia,
Sonido, Lápiz, Sensores, Eventos, Control, Operadores, Datos y Bloques.
2. Bloques para robot,
Para programar un robot se
utilizan las siguientes categorías de bloques:
Robots, Eventos, Control,
Operadores, Datos y Bloques.
Tabla de categorías de
bloques de programación
DESCRIPCIÓN DE CATEGORÍAS DE
BLOQUES
A continuación, se describen
las diferentes categorías de bloques disponibles en mBlock.
La mayoría sólo sirven para
programar videojuegos, la categoría de Robots sólo sirve para programar robots,
y hay 3 categorías que comparten los videojuegos y robots (Control,Eventos,
Datos y Bloques).
Cuando se describen los
bloques para los videojuegos se menciona al Oso Panda, el Oso Panda es el
“avatar” que predefine para el videojuego mBlock, o sea el “personaje” que el usuario
controla cuando juega (como 0DULR de Mario Bros).
El Oso Panda o “avatar” sólo
está disponible cuando se programa un videojuego, cuando se programa un robot,
no es posible pre-visualizar el comportamiento del robot en el Oso Panda.
Nota: El Oso Panda es
nuestro ejemplo, pero también se puede sustituir por un Gato o cualquier
“avatar” que un usuario diseñe.
Bloques
de Movimiento:
Con los bloques azules
podemos hacer que el Oso Panda se desplace hacia delante o hacia atrás la
distancia que queramos, que rote sobre el mismo, que cambie de dirección, moverlo
a las coordenadas deseadas, etc.
Bloques
de apariencia:
Con los bloques lilas se
puede hacer que el fondo del “escenario” (1) cambie de color o que el Oso Panda
cambie de color, añadir un nuevo personaje, cambiar partes del cuerpo de los
personajes, hacer que hablen y muestren un mensaje, cambiar tamaños, etc.
Bloques
sonido:
Con los bloques magentas se
realiza todo tipo de sonidos y se puede controlar el volumen de ellos.
Bloques
de Lápiz:
Con los bloques verde mar el
“escenario” (1) se convierte en una pantalla interactiva tipo Paint y se puede
pintar el escenario como se quiera.
Datos
y Bloques:
Con los bloques naranja se
crean bloques de variables, de listas de datos y bloques dentro del programa.
Esto se utiliza para realizar programas más complejos y completos.
¿Qué
es una variable?
Una variable es un espacio
de memoria en nuestro programa que utilizamos cuando queremos almacenar un
valor y trabajar con éste durante la ejecución del programa.
Explicado con un ejemplo
ilustrativo, si queremos hacer un videojuego donde se tenga 3 vidas, podemos
crear una nueva variable llamada Vida y hacer que cada vez que pase algo decrezca
el valor en 1.
¿Qué usos podemos darle a
una variable?
- Almacenar el número de
preguntas acertadas en un juego de preguntas.
- Almacenar el total de
puntos que tenemos en un juego de cartas.
- Almacenar el número de
repeticiones que llevamos en una iteración.
¿Qué
es una lista?
Una lista es lo mismo que
una variable, pero en vez de almacenar sólo un valor, podemos almacenar tantos
valores como queramos.
¿Qué usos podemos darle a
una variable?
- Almacenar las respuestas
en un juego de preguntas.
- Almacenar el total de
puntos que hemos conseguido en cada uno de los niveles de un juego.
- Almacenar una lista de
palabras válidas.
Bloques
eventos
Los bloques marrón sirven
para activar el inicio de cualquier programa que hayamos hecho utilizando LQSXW
externos (como el ratón o las teclas del ordenador) o inputs internos como
envío de mensajes del propio programa a otro.
Harían la función del botón
play en un reproductor de música, cuando lo activamos, empieza todo a
funcionar.
Bloque
Control
Con los bloques de melocotón
se realiza la lógica de programación, como los bucles, que una acción se repita
varias veces, que espere un tiempo para hacer la siguiente acción o indicar que
el programa realice una acción si se cumplen ciertas condiciones y si no se cumplen
se realice otra.
Con la lógica de
programación definimos las reglas del mundo del videojuego o las del funcionamiento
del robot, como por ejemplo si queremos que se pare o gire cuando nuestro robot
o el avatar detecte un obstáculo en su camino.
Bloque
Sensores:
Con los bloques azul marino
permite detectar si el Oso Panda realiza las siguientes acciones: toca otro
Objeto, tocar un color determinado, distancia entre un objeto y el oso.
También permite detectar
cuando un color determinado toca otro color, la entrada de variables por medio
del teclado, si se está presionando alguna tecla del ratón.
Verificando todas estas
posibles acciones, se puede hacer que el Oso salte, pare, retroceda, que el juego
acabe, que sume puntos, que cambie la pantalla.
EXPERIENCIAS
HECHAS EN EL LABORATORIO
MÚSICA Y SONIDOS CON mBlock
Primero lo primero, debemos
abrir el software mBlock y ubicarnos en la parte de configuración con arduino
mBot, un caso más expícito lo señalaremos más adelante en la explicación
detallada en el procedimiento de laboratorio.
Es importante reconocer cómo
lee las notas el arduino para poder transferir ello en el mBlock:
Para que la música salga con
mayor detalle como queremos oírla, cabe recordar que pueden aplicarse notas sostenidas, además
de indicar tiempos.
MÚSICA CON ARDUINO
Para poder reproducir los
sonidos configurados en mBlock, es necesario que el puerto USB esté conectado y
previamente sincronizado al sistema del computador a utilizar. Paso siguiente
es actualizar el contenido de mBlock a transferir al arduino.
El pin de salida debe ser de
tipo PWM ya que debemos poder variar su frecuencia. En Arduino Uno, Mini y
Nano podrán ser 3, 5, 6, 9, 10 y 11.
OBSERVACIONES
Ø Hay
diferentes formas de programar un Arduino uno de ellos el programa mBlock el cual empleamos para la realización
del laboratorio.
Ø Para
poder crear música con el potenciómetro se debe de tener en cuenta las salidas
y entradas del Arduino para que así pueda detectar a nuestra variable.
Ø En
el programa mBlock se pueden crear variables el cual nos sirve para hacer
diferentes aplicaciones en el Arduino.
Ø Al
momento de hacer la experiencia se debe de verificar que el modulo del
protoboard este conectado.
CONCLUSIONES
Ø Concluimos que se logró implementar el circuito para crear música usando Arduino y una computadora.
Ø Concluimos
que podemos programar un Arduino a partir de bloque usando el Software mBlock.
Ø Concluimos que logramos describir el funcionamiento de las unidades y dispositivos de almacenamiento de información que se puede hacer con el Arduino.
Ø Concluimos
que creamos un programa para que el Arduino reproduzca un sonido presionando
una tecla del teclado del computador.
Ø Concluimos
que creamos un programa en donde las salidas del Arduino enciendan un LED
cuando según la nota musical que se reproduce.
Ø Concluimos
que se logró identificar las aplicaciones de la Electrónica Digital en el
Arduino.
Ø Concluimos que se logro implementar el circuito para crear música programando las entradas y salidas del Arduino, y por medio de un potenció metro crear música.
INTEGRANTES:
ANDY CHOQUE
JOSE ANDREE CARRIZALES
Comentarios
Publicar un comentario