Introduction: Piano Player
El objetivo del proyecto es elaborar un sistema que pueda tocar música preprogramada en las teclas digitales de una aplicación de piano para el iPad 2.
Nuestro proyecto consta de un sistema con un grado de libertad de desplazamiento lineal actuado por un sistema banda polea acoplado a un motor de pasos para mover una base rectangular en la que se encuentran tres servomotores que fungen como dedos del sistema para tocar la canción
Step 1: Materiales
Arduino UNO
Driver A4988
Stepper motor NEMA17
3 x Micro Servo sg90
‘Dedos touch’ hechos de acrílico y adjuntos con aluminio
Fuente 12V
Fuente 5V
Cable cobre
Perfiles de aluminio t20 2 x 40 cm
Varillas de 8 mm x 40 cm
Polea y banda GT2
Placas de acrílico de 6 mm
Tornillos
Step 2: Diseño De Corredera
El sistema del carro es básicamente una corredera con unas guías lineales soportadas por unas paredes de acrílico (piezas) y unas barras de sujeción
Para esta parte se utilizaron perfiles de aluminio t20, piezas de acrílico de 6mm para las paredes y varillas de 8mm de diámetro que funcionan como las guías para el carro.
La estructura de la figura está sujeta mediante tornillos de ¼ de pulgada y 1 pulgada de largo en la parte de los perfiles extruidos. Por otra parte, los tornillos que presionan las barras son también de 1/4 , pero estos son más cortos, ½ de pulgada de largo para hacer presión.
Step 3: Diseño Del Carro
Los sliders de nylamid se perforan para encajar en la guía de 8mm de diámetro
Step 4: Montaje Del Stepper Motor Y Polea
El motor de pasos Nema 17 se encuentra montado mediante tres tornillos m4 x 12 mm que van desde la pared lateral de acrílico hasta el soporte del motor, después el motor de pasos se inserta en la base de acrílico (Base_Stepper) con cuatro tornillos M3 x 10mm. Finalmente, se inserta la polea dentada GT2 en la flecha del stepper
Del otro lado se monta un balero que es la contraparte de la polea GT2. Se monta también sobre una base de acrílico atornillada a la pared lateral de forma que quede a la misma altura de la polea que está del otro lado.
Step 5: Diseño De La Mano
El diseño mecánico de la mano se conforma del ensamble de dos placas rectangulares de acrílico unidas por cuatro soportes de madera mdf de 6 mm, otros dos soportes de madera se encuentran extra entre las placas para sujetar la banda dentada que hará el desplazamiento lineal en el eje X.
Sobre la placa superior hay tres orificios rectangulares sobre los que se han ajustados tres servomotores. a las flechas de éstos se ha ajustado un ‘dedo’ de acrílico, donde el dedo del servomotor de en medio es recto, y los de los extremos tienen una inclinación de 25º para el centro, ésto para que la punta de los tres dedos tengan una separación de 17 mm entre cada uno, para poder posicionar cada punta en tres teclas blancas consecutivas.
Step 6: Ensamble
A la estructura del sistema de corredera y carro se le deben montar la banda dentada de la polea GT2 y sobre el carro la estructura de la mano para que finalmente el ensamble quede como la imagen adjunta
Step 7: Conexion Del Motor a Pasos
El motor de pasos Nema 17 está alimentado por una fuente de 12V y conectado al Arduino UNO a través de un driver A4988 y un CNC Shield para Arduino para el control del mismo. Aquí se muestra el esquemático de las conexiones
Step 8: Conexión De Los Microservos
Es necesaria una fuente independiente de 5V, la señal de los servos van a los pines del arduino que estén libres, como ejemplo, 5,6, 7 (pueden variar). La señal de los servos son conectados a los pines, con su voltajes y tierras puenteados respectivamente
Step 9: Sistema Touch Para Los "dedos"
se recomienda hacerlos con elementos planos en los extremos. Envueltos en aluminio, cuidando que quede lo más plano posible, conectados a cables con una carga de 5V ya que estamos utilizando un iPad como piano. Si se utiliza un piano físico este paso no es necesario
Step 10: Programación
La idea principal de la programación es hacer cuatro arrays para cada canción; los cuales deben ser del mismo tamaño. La programación contiene todas las canciones programadas dentro de un switch; para escoger la canción a tocar el usuario manda por comunicación serial el nombre de la canción que desea.
El primer array contiene las posiciones de la mano en cada nota. En nuestra programación configuramos cuatro posiciones A, B, C y D las cuales cubrían 3 notas cada una, por lo que en total podíamos tocar 12 notas. Sin embargo también podemos cambiar la escala del piano para alcanzar otras notas dependiendo de la canción que se tocara y las notas que esta necesite.
El array 3 contiene los tiempos de las notas, es decir qué tanto tiempo debe permanecer el servomotor del dedo correspondiente en la posición baja (tocando la tecla). Este array como los demás debe tener el mismo tamaño ya que cada elemento corresponde a cada nota, por ejemplo la nota 1 debe estar en la posición B, dedo 3 con una duración de 300 ms.
El array 4 contiene los delays entre teclas, es decir qué tanto tiempo debe transcurrir entre cada nota, o qué tanto tiempo debe transcurrir sin que ningún servo se mueva a la posición de tocar tecla.