LABORATORIO N° 08
MÚSICA CON ARDUINO
Alumno(s):
- Jove Caceres Boris Yeltsein
- Neyra Montes Walter Dalin
- Ventura Cabana Jamil Simeon
a) Teoría demBlock.
mBlock y sus bloques de programación
Los robots Makeblock se programan con el software propio de la compañía, llamado mBlock.
mBlock es un software fácil de aprender y usar, ya que está pensado para niños. 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.
Figura 1. diferencia de programar con bloques y código al Arduino.
mBlock está basado, o es una variante de un famoso software libre llamado Scratch 2.0. El cuál está orientado a la educación y es muy conocido en todo el mundo.
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:
Figura 2. Interface del mBlock, escenario (1), Bloques(2), Espacio de construcción de
programa(3).
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.
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.
- Bloques para video juegos.
Para programar un videojuego se utilizan las siguientes categorías de bloques: Movimiento, Apariencia, Sonido, Lápiz, Sensores, Eventos, Control, Operadores, Datos y Bloques.
- Bloques para robot.
Para programar un robot se utilizan las siguientes categorías de bloques: Robots, Eventos, Control, Operadores, Datos y Bloques.
Tabla 1. 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 Mario 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 input 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...
Bloques Operadores:
Con los bloques verdes se realizan comparaciones de
valores, sumas, restas, contadores, uniones de palabras o de números,etc. Por
ejemplo, para definir la condición para que el robot u Oso panda se pare a una
cierta distancia de un obstáculo, se tendrá que usar el bloque de comparación
“menor que”. Estos bloques, combinándolos con los de sensores, nos permiten
saber si estamos a una distancia menor o mayor de otro objeto, y así poder
hacer una u otra acción.
Bloques Robots:
Los bloques Robots, de color azul fuerte, es un grupo de
bloques exclusivo, creado por Makeblock tanto para las placas propias como la
mCore, la Orion como para las placas Arduinos, las cuales son el “cerebro” de
los robots Makeblock.
Este grupo de bloques no existe en el programa estándar de
Scratch.
A continuación, hacemos una breve descripción de los bloques
Robot para el mBot (robot de Makeblock). Makeblock amplía y actualiza este
grupo a medida de que introduce nuevos sensores en sus robots.
Bloque mBot Program
Es básicamente el bloque que envía el mensaje de “Ejecutar
el programa cargado en el robot” cuando se enciende. Sustituye al bloque de
banderita verde cuando se programa un videojuego. Gracias a este bloque, una
vez pasado el programa, el robot puede trabajar sin estar conectado al
ordenador vía cable o bluetooth.
Para cargar un programa en la placa Arduino ,el mBot debe
estar previamente conectado al ordenador mediante un cable USB, después se hace
clic con el botón derecho sobre el bloque mBot Program y se selecciona
"Upload to Arduino".
Para programar un robot se utilizan las siguientes categorías de bloques: Robots, Eventos, Control, Operadores, Datos y Bloques.
Tabla 1. Tabla de categorías de bloques de programación
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 Mario 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 input 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...
Bloques Operadores:
Con los bloques verdes se realizan comparaciones de
valores, sumas, restas, contadores, uniones de palabras o de números,etc. Por
ejemplo, para definir la condición para que el robot u Oso panda se pare a una
cierta distancia de un obstáculo, se tendrá que usar el bloque de comparación
“menor que”. Estos bloques, combinándolos con los de sensores, nos permiten
saber si estamos a una distancia menor o mayor de otro objeto, y así poder
hacer una u otra acción.
Bloques Robots:
Los bloques Robots, de color azul fuerte, es un grupo de
bloques exclusivo, creado por Makeblock tanto para las placas propias como la
mCore, la Orion como para las placas Arduinos, las cuales son el “cerebro” de
los robots Makeblock.
Este grupo de bloques no existe en el programa estándar de
Scratch.
A continuación, hacemos una breve descripción de los bloques
Robot para el mBot (robot de Makeblock). Makeblock amplía y actualiza este
grupo a medida de que introduce nuevos sensores en sus robots.
Bloque mBot Program
Es básicamente el bloque que envía el mensaje de “Ejecutar
el programa cargado en el robot” cuando se enciende. Sustituye al bloque de
banderita verde cuando se programa un videojuego. Gracias a este bloque, una
vez pasado el programa, el robot puede trabajar sin estar conectado al
ordenador vía cable o bluetooth.
Para cargar un programa en la placa Arduino ,el mBot debe
estar previamente conectado al ordenador mediante un cable USB, después se hace
clic con el botón derecho sobre el bloque mBot Program y se selecciona
"Upload to Arduino".
b) Vídeo tutorial editado y subtitulado explicando las experiencias hechas en el laboratorio.
Anexos:
d) Observaciones y conclusiones. ¿Qué he aprendido de esta experiencia?(en modo texto)
3.1. 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.
3.2. Conclusiones:
- Concluimos que podemos programar un Arduino a partir de bloque usando el Software mBlock.
- 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 UNO.
- Concluimos que logramos describir el funcionamiento de las unidades y dispositivos de almacenamiento de información que se puede hacer con el Arduino UNO.
- Concluimos que se logró implementar el circuito para crear música usando Arduino y una computadora.
- 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.
No hay comentarios:
Publicar un comentario