¿Estás interesado en la electrónica? ¡Participa en nuestro primer concurso electromaniático! Te damos la oportunidad...
Batería Musical con Arduino
¿Alguna vez has querido tu propia batería? Si es así, este proyecto es para ti. Puedes hacer tus propios ritmos una vez hayas construido esta creativa batería. Usaremos un Arduino Uno, un par de residencias en mega ohmios, sensores piezo-eléctricos, y algunos metros de cable.
Este tutorial se basa en la comunicación MIDI entre el programa simulador de Baterías, y Arduino. Echemos un vistazo a la versión de esta comunicación que haremos en este tutorial.
Materiales y partes
X1 | ||
X6 | Sensores Piezo Electricos | |
5m | Cable | |
x6 | Tornillos | |
x6 | Tuercas | |
X1 | Pliego de Foami | |
10m | Tubo PVC | |
10 | Codos tubo pvc |
Pasos y Diseño
Software
Para realizar este proyecto primero debes instalar algunos programas en tu PC. (Varios de los programas son software privados)
PASO 1
Primero debes instalar Loopbe1 que es un programa que ayuda a transferir datos desde el MIDI entre programas. Para verificar que instalaste bien el loopBe1, te debe salir en la parte inferior derecha de la pantalla una especie de corneta.
PASO 2
También debes instalar Java en tu pc, para que los programas a instalar, funcionen a la perfección.
PASO 3
Ahora debes descargar FL Studio, para instalar este programa puedes dirigirte a la página oficial de FL Studio y descargar la versión 10 Demo. Puedes usar cualquier versión, aunque la versión 10 es la que mejor nos ha funcionado.
Al instalar FL Studio 10, te saldrá instalar ASIO4ALL 2.10. Instálalo.
Abre FL Studio y comprueba que no tengas problemas.
PASO 4
Para que nos funcione el programa debes instarle un plugging a FL Studio (tienes que descargar de internet el archivo ezdrummer), una vez descargado copia el archivo ezdrummer.dll y pegalo en archivos de programa (x86), en la carpeta VstPlugins.
PASO 5
Ahora puedes verificar entrando a FL Studio
Dale clic en Channels-> More
Al oprimir More, se desplegará una ventana con todos los plugging de FL Studio, en la parte inferior, debe salir EZDRUMMER, si no aparece en la ventana dale click en refresh, Scan & Verificy.
Dale clic en ezdrummer, aparecerá un estilo de F y cierra la ventana.
PASO 6
Ahora en Channels busca ezdrmumer y dale clic, si te aparece un error, debes instalar ezdrummer y vuelve a comprobar.
Comprueba que la batería de ezfrummer funcione bien. Si tienes problemas con un retardo en el sonido.
PASO 7
Ahora, entra a OPTIONS -> MIDI SETTINGS y habilita LoopBe internal MIDI.
Y en AUDIO, Cambia el valor del buffer lenght a 512ms y el offset a 48 %.
Si quieres otro tipo de sonido, gradúa estos valores, hasta encontrar el que más te agrada.
Ancla en la barra de tareas el serial MIDI
Maqueta
Para el diseño de la batería, nos basamos en baterías electrónicas fabricadas industrialmente. Este diseño, lo puedes encontrar dándole clic acá.
Esta batería consta de seis piezas, las cuales son: el bombo, granadero, 2 tom de piso, platillo y 1 platillo charles.
Para la construcción primero debes recortar el tubo PVC en las piezas como en el diseño, aunque si tú quieres hacer tu propio diseño, puedes cambiarlo a tu gusto.
Puedes hacer los cortes con una segueta o una cortadora de tubos, debes tener mucho cuidado. Si eres menor de edad, recuerda pedirle ayuda a un adulto responsable.
Luego de tener los cortes, con los codos de tubo, comenzar a armar cada pieza introduciendo el tubo dentro del codo, teniendo en cuenta donde podría ir cada instrumento.
Ahora que tienes idea donde podría ir cada instrumento. Imprime 12 círculos de 20 a 25 cm, en madera MDF delgada.
Estos círculos simularán cada tambor.
Teniendo las 6 parejas de círculos, debes hacer otro orificio en una de las tablas de cada pareja cerca del orificio central. Estos orificios son donde pasaremos las conexiones de cada sensor al Arduino dentro del tubo.
Pega cada sensor con cinta sobre una zona de cada madera.
Recorta un trozo de foami que cubra el sensor.
Y pasa los cablecitos del sensor, por el agujero de la madera.
Ahora debes soldar un gran trozo de cable, más o menos para pasar dentro del tuvo y dejarlo hacia el Arduino. Puedes utilizar cable utp, dupont, cable de filamento. Utiliza termo-incogible o cinta aislante para que no hagas corto.
Pasa el tornillo en las dos maderas, dejando el trozo de foami dentro.
Ahora recorta sobre la silueta de la madera foami, para evitar el sonido de las baquetas sobre la madera. Pégalo con colbón.
Pasa los cables de cada plato, dentro del tubo hasta llegar donde ubicaràs el arduino, nosotros lo ubicamos en la mitad de la bateria, y lo ajustamos con amarraderas y una caja que puedes encontrar en la tienda. Dejalos lo más largos posibles.
Pasa el tornillo, dentro del agujero de la madera, y con el agujero que ya habías hecho en los tubos ajústalo fuertemente con la tuerca.
El pedal para el bombo.
Este pedal lo hicimos con un resorte y varios trozos de madera. El diseño lo puedes descargar, dando clic aquí.
La batería, sin haber conectado al Arduino, te podría quedar así.
Diseño Electrónico
Para hacer las conexiones electrónicas debemos tener en cuenta:
La resistencia, además de salvaguardar cada pin del Arduino de los flujos de corriente del sensor, le da más sensibilidad. Mientras más grande la resistencia, mayor sensibilidad.
Código Arduino
Para la programación de la batería, nos basamos en el lenguaje de Arduino, que es un lenguaje fácil de entender y programar.
Asegúrate de conectar el Arduino a tu computador (Linux, MAC, PC), con un cable Cable USB tipo A-micro USB tipo B, y asegúrate de conectar bien los sensores, puedes soldarlos a alguna placa universal, para mejor manipulación y que no haya problema de desconexión o corto.
Una vez que hayas conectado el Arduino al Pc, copias y pegas el código en el entorno de Arduino, compilas y cargas.
unsigned char PadNote[15] = {38,35,44,55,50,45,47,0,0,0,0,0,0,0,0}; // 38 granadero 35 bombo 44 hi hat 55 platillo 45 platillo 57 tonton MIDI int PadCutOff[15] = {400,400,400,400,400,400,400,1000,600,600,600,600,600,600,600}; // Sensibilidad con respecto a los tonos int MaxPlayTime[15] = {30,40,10,20,10,10,10,90,90,90,90,90,90,90,90}; // Cantidad de golpes por milisegundos #define midichannel 0; // canal MIDI boolean VelocityFlag = true; // velocidad del golpe boolean activePad[15] = { 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}; int PinPlayTime[15] = { 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}; unsigned char status; int pin = 0; int hitavg = 0; void setup() { Serial.begin(57600); // connect to the serial port 115200 } void loop() { for(int pin=0; pin < 7; pin++) { hitavg = analogRead(pin); if((hitavg > PadCutOff[pin])) { if((activePad[pin] == false)) { if(VelocityFlag == true) { hitavg = (hitavg / 8) -1 ; // Upper range } else { hitavg = 127; } MIDI_TX(144,PadNote[pin],hitavg); PinPlayTime[pin] = 0; activePad[pin] = true; } else { PinPlayTime[pin] = PinPlayTime[pin] + 1; } } else if((activePad[pin] == true)) { PinPlayTime[pin] = PinPlayTime[pin] + 1; if(PinPlayTime[pin] > MaxPlayTime[pin]) { activePad[pin] = false; MIDI_TX(128,PadNote[pin],127); } } } } void MIDI_TX(unsigned char MESSAGE, unsigned char PITCH, unsigned char VELOCITY) { status = MESSAGE + midichannel; Serial.write(status); Serial.write(PITCH); Serial.write(VELOCITY); } |
Calibración
Para la calibración del sensor debes tener en cuenta el valor en la linea de cogido:
unsigned char PadNote[15] = {38,35,44,55,50,45,47,0,0,0,0,0,0,0,0}
Cada valor, corresponde al pin análogo A0, A1, A2... A5. Entonces conectalos de acuerdo a la posición de cada plato.
Cuando ya tengas la maqueta, el código y el circuito ya armado. debes:
Primero: Debes volver a cargar el programa a arduino
Segundo: Abre FL Studio, y el pluggin de ezdrummer
Tercero: eJecuta el serial midi que tenias en la barra de tareas. (En este programa deberas escoger, con las teclas del teclado)
La primera opción del serial MIDI, es el puerto que esta leyendo el pc del Arduino. Si no sabes cual es abre, panel de control---> Administrador de dispositivos---> Puertos COM y LPT---> Puerto arduino.
La segunda opcion es el Baud Rate, que es la velocidad de los datos, escoge la opcion 57600bps
La tercera opción le debes dar en Real Time Sequencer, para que tome los valores sensados en tiempo real
Y por último escoges la opción de LoopBe Internal MIDI
A rockear!!!
Cuéntanos si implementaste este proyecto o usaste algún elemento que compraste en Vistronica, sube un video o una imagen de proyecto y etiquétanos en nuestras redes sociales como Facebook, Instagram o YouTube @Vistronica y utiliza el hashtag #VistronicaMaker y obtén recompensas.
Últimos comentarios