Pianuino – Grupo 7
PIANUINO
– SISTEMAS EMPOTRADOS Y DE TIEMPO REAL –
GRUPO 7
Raquel Serrano Rubio
Jose Ignacio González Méndez
Sara Concepción Mariscal
1. Introducción
La idea principal del proyecto es realizar un piano que pueda ser tocado con los pies donde además, pueda ser clasificado en un futuro como un juego de mesa ya que es transportable y, se utiliza a través de una aplicación móvil en la cual podrás tener tus canciones favoritas.
La idea surgió de la película Big de Tom Hanks. Él trabaja en una tienda de juguetes donde uno de sus juguetes más llamativos es el piano gigante de suelo.
2. Componentes y costes
COMPONENTES |
UNIDADES |
COSTE |
Arduino UNO |
1 |
0 €
(prestado por la URJC) |
Placa Protoboard mini |
2 |
0 €
(prestado por la URJC) |
Placa Protoboard |
1 |
0 €
(Propiedad de Raquel S.) |
Set Makey Makey |
1 |
56,29€ |
Resistencia 100 Ohmios |
7 |
0 €
(prestado por la URJC) |
Led Rojo |
14 |
2,1 € |
Botón |
7 |
2,95€ |
Cables |
– |
6,25€ |
Módulo I2C |
1 |
3€ |
Módulo Bluetooth |
1 |
5,50€ |
Maquetación
(Maderas, bisagras, tornillos..) |
– |
30,48€ |
Pantalla LCD |
1 |
2,59€ |
Total |
109,16 € |
3. Proceso de montaje
Tras formular la idea sobre lo que queríamos hacer y comprado todo el material necesario comenzamos con el proyecto. El trabajo del proyecto se ha realizado conjuntamente tanto en los días de clase como algún que otro día fuera. Todos los miembros del grupo hemos participado en todas y cada una de las tareas realizadas.
3.1 Parte física
Para realizar la maqueta del piano utilizamos 2 tablones de madera(de ancho 10mm) como base, y 7 teclas de madera de un ancho menor, las cuales, fueron ancladas a los tablones de madera con una bisagra por tecla.
Los tablones que sirven como base, han sido cortados en cuatro piezas iguales donde, en cada una de ellas, van fijadas 2 teclas.
A su vez, cada trozo de tablón va unido otro trozo a través de dos bisagras donde el objetivo de la unión será que todos los tablones formen una caja.
Todo ello ha sido pintado con sprays de pintura negros y blancos.
Una vez obtenido el soporte de madera, se procede a pegar los leds al borde de cada tecla con pegamento termofusible.
Con dicho pegamento, también se pegó la estructura que se ingenió con cartones de rollo de papel de cocina y vasos de plástico debajo de cada tecla.
Dicha estructura consiste en cortar el cartón a una altura determinada y pegar justo encima un vaso de plástico donde irán fijados los botones.
La altura del cartón vendrá determinada por la longitud del clip que se pegó a la parte de arriba de cada tecla para que hiciese contacto con el papel de aluminio que se encuentra, también, en contacto con el tablón de abajo.
3.2 Código
Para la realización del código inicial utilizamos una pequeña
protoboard en la que conectamos dos pulsadores y dos diodos led para hacer las
pruebas y posteriormente adaptar este código al nivel de complejidad que el
piano requería.
protoboard en la que conectamos dos pulsadores y dos diodos led para hacer las
pruebas y posteriormente adaptar este código al nivel de complejidad que el
piano requería.
El código está dividido en dos partes fundamentales:
·
void loop(): este método recibe constantemente la señal enviada por la
aplicación móvil conectada al módulo bluetooth, según la señal recibida ejecuta
los distintos subprogramas.
void loop(): este método recibe constantemente la señal enviada por la
aplicación móvil conectada al módulo bluetooth, según la señal recibida ejecuta
los distintos subprogramas.
·
Subprogramas: En el código
existen 5 subprogramas diferentes:
Subprogramas: En el código
existen 5 subprogramas diferentes:
o VersionLibre: en este método se interactúa libremente con el piano.
o Canción: el piano mostrará las teclas indicadas que debe pulsar para
poder aprender a tocar la canción programada. La canción no seguirá su curso hasta
que se pulse la tecla correspondiente, siendo su finalidad la del aprendizaje.
poder aprender a tocar la canción programada. La canción no seguirá su curso hasta
que se pulse la tecla correspondiente, siendo su finalidad la del aprendizaje.
o
Juego: existen tres subprogramas que
dividen este apartado (Fácil – Medio – Difícil). Todos ellos siguen el mismo
patrón, con la excepción de que si en un tiempo determinado (que varía según la
dificultad elegida) la tecla no ha sido pulsada, el led se apagará pasando a
encender la siguiente nota de la canción. En este caso, el subprograma además
lleva un contador de puntos que en caso de acertar incrementa la puntuación y
en caso de fallar o que se pase el tiempo resta los puntos, este contador se
mostraría por la pantalla LCD pero por problemas más adelante explicados, no ha
sido posible desarrollar este apartado de puntuación.
Juego: existen tres subprogramas que
dividen este apartado (Fácil – Medio – Difícil). Todos ellos siguen el mismo
patrón, con la excepción de que si en un tiempo determinado (que varía según la
dificultad elegida) la tecla no ha sido pulsada, el led se apagará pasando a
encender la siguiente nota de la canción. En este caso, el subprograma además
lleva un contador de puntos que en caso de acertar incrementa la puntuación y
en caso de fallar o que se pase el tiempo resta los puntos, este contador se
mostraría por la pantalla LCD pero por problemas más adelante explicados, no ha
sido posible desarrollar este apartado de puntuación.
Para poder utilizar el piano es requerido tener instalado en un
dispositivo Android la aplicación Pianuino
desarrollada en AppInventor, que será la encargada de enviar las señales a
la placa Arduino.
dispositivo Android la aplicación Pianuino
desarrollada en AppInventor, que será la encargada de enviar las señales a
la placa Arduino.
Por otro lado, se ha programado
una aplicación en Scratch para realizar los sonidos del piano. Dicha aplicación
consiste en mostrar por pantalla un piano y con las teclas del teclado
[a,s,d,f,g,w, espacio] (que corresponden a la pulsación de cada tecla del
piano) simular los sonidos de una escala musical.
una aplicación en Scratch para realizar los sonidos del piano. Dicha aplicación
consiste en mostrar por pantalla un piano y con las teclas del teclado
[a,s,d,f,g,w, espacio] (que corresponden a la pulsación de cada tecla del
piano) simular los sonidos de una escala musical.
A continuación se muestran
imágenes del mismo. https://scratch.mit.edu/
imágenes del mismo. https://scratch.mit.edu/
Gracias al kit Makey Makey
simulamos un teclado con cualquier objeto al que esté conectado. Para simular
que el piano emita sonidos y encienda los leds una vez lo pises, se ingenió el
mecanismo del clip y aluminio para cerrar el circuito y provocar el sonido no
solo pisando la madera que es como funcionaría el Makey makey, sino una vez se
produzca el contacto.
simulamos un teclado con cualquier objeto al que esté conectado. Para simular
que el piano emita sonidos y encienda los leds una vez lo pises, se ingenió el
mecanismo del clip y aluminio para cerrar el circuito y provocar el sonido no
solo pisando la madera que es como funcionaría el Makey makey, sino una vez se
produzca el contacto.
La combinación entre la parte física y el código se ha realizado a
través de diferentes cables, todos ellos unidos en una caja próxima al piano en
la que se encuentran las protoboards y placas utilizadas para las conexiones y
el correcto funcionamiento.
través de diferentes cables, todos ellos unidos en una caja próxima al piano en
la que se encuentran las protoboards y placas utilizadas para las conexiones y
el correcto funcionamiento.
4. Esquema hardware – software
5. Problemas y soluciones
·
El primer problema que surgió fue
a la hora de hacer la parte física del proyecto. Al atornillar las teclas del
piano a las maderas que le daban soporte, los tornillos sobresalían por la
parte delantera de la tecla lo que podía perjudicar cuando se fuera a tocar la
tecla.
El primer problema que surgió fue
a la hora de hacer la parte física del proyecto. Al atornillar las teclas del
piano a las maderas que le daban soporte, los tornillos sobresalían por la
parte delantera de la tecla lo que podía perjudicar cuando se fuera a tocar la
tecla.
La solución fue poner trozos de madera encima
para que pudieran quedar ocultos y no alterara al juego.
para que pudieran quedar ocultos y no alterara al juego.
·
Para poder reproducir sonidos
mediante Arduino (ya que el zumbador no tiene mucha potencia) se necesitaban
varios componentes de altos precios, por lo que tuvimos que optar por el más
económico: el kit Makey Makey.
Para poder reproducir sonidos
mediante Arduino (ya que el zumbador no tiene mucha potencia) se necesitaban
varios componentes de altos precios, por lo que tuvimos que optar por el más
económico: el kit Makey Makey.
·
La idea principal en cuanto a la
Iluminación de las teclas era poder encender 5 leds en serie y se encendieran
todos a la vez. Tras hacer diferentes pruebas y con diferentes voltajes, no
conseguimos encender más de tres. Por tanto, dejamos únicamente dos leds por
puerto, siendo ellos los dos centrales de cada tecla.
La idea principal en cuanto a la
Iluminación de las teclas era poder encender 5 leds en serie y se encendieran
todos a la vez. Tras hacer diferentes pruebas y con diferentes voltajes, no
conseguimos encender más de tres. Por tanto, dejamos únicamente dos leds por
puerto, siendo ellos los dos centrales de cada tecla.
·
La pantalla LCD prestada por la
URJC tenía cables soldados en sus entradas y quedaba inutilizable para poder
utilizar el módulo I2C que era necesario para nuestro proyecto, por lo que
tuvimos que comprar una pantalla LCD nueva. La pantalla funcionaba correctamente
en las pruebas, pero al incluirla junto al piano no muestra los mensajes
esperados. Finalmente, el código está propuesto para la utilización de dicha
pantalla pero no es incluida en la presentación.
La pantalla LCD prestada por la
URJC tenía cables soldados en sus entradas y quedaba inutilizable para poder
utilizar el módulo I2C que era necesario para nuestro proyecto, por lo que
tuvimos que comprar una pantalla LCD nueva. La pantalla funcionaba correctamente
en las pruebas, pero al incluirla junto al piano no muestra los mensajes
esperados. Finalmente, el código está propuesto para la utilización de dicha
pantalla pero no es incluida en la presentación.
·
Por último, en la parte de la
codificación de la aplicación móvil, la placa Arduino recibe constantemente la
señal enviada por bluetooth por lo que no finaliza una acción hasta que no sea
pulsado otro modo de juego. Esto supone que si por ejemplo estás tocando la
canción y no das a otro modo de juego antes de que finalice, al terminar la
canción ésta empezara de nuevo. Y si por el contrario pulsas antes de
finalizar, el siguiente modo de juego empezará al finalizar el escogido con
anterioridad.
Por último, en la parte de la
codificación de la aplicación móvil, la placa Arduino recibe constantemente la
señal enviada por bluetooth por lo que no finaliza una acción hasta que no sea
pulsado otro modo de juego. Esto supone que si por ejemplo estás tocando la
canción y no das a otro modo de juego antes de que finalice, al terminar la
canción ésta empezara de nuevo. Y si por el contrario pulsas antes de
finalizar, el siguiente modo de juego empezará al finalizar el escogido con
anterioridad.
Esto no supone ningún problema en el
desarrollo del juego, únicamente es un requisito que debe conocerse para poder
utilizar el piano correctamente.
desarrollo del juego, únicamente es un requisito que debe conocerse para poder
utilizar el piano correctamente.
Tras explicar los problemas, se propone como mejoras incluir la
pantalla LCD para poder contabilizar los puntos, ampliar la lista de canciones
y controlar la señal recibida del bluetooth para que el usuario no tenga que
estar pendiente de cuándo finaliza la canción para utilizar otro modo de juego.
pantalla LCD para poder contabilizar los puntos, ampliar la lista de canciones
y controlar la señal recibida del bluetooth para que el usuario no tenga que
estar pendiente de cuándo finaliza la canción para utilizar otro modo de juego.
6. Anexos
·
Vídeo demo: Video
Vídeo demo: Video
Memoria : Memoria
Código Arduino: Código
Presentación: Presentación
Aplicación: Aplicación