Introduction: Mini Invisible MIDI Harp

About: We are electronic engineering students from Bolivia, trying to innnovate in the creative side of electronics
English:
This is a simple and easy to make MIDI harp, it runs on an Arduino UNO and uses infrared sensors as strings.
It communicates with every recording software that has MIDI.
Its really fun to play with and also very cheap, so enjoy!!

Español:
Este es un simple y facil de hacer harpa MIDI, funciona con un Arduino UNO como controlador y tiene sensores infrarojos como cuerdas.
Puede comunicarse con cualquier software de grabacion que tenga la opcion de usar instrumentos MIDI.

Es muy divertida y bastante barato, disfruten! 


Made on August 17th 2013 for the August Build night with Jameco

All materials provided by http://jameco.com/

Step 1: Materials

English
List of materials:


- 2N2222 Transistor (x14) 
- Infrared LED's (x7)
-Infrared reciever (x7)
-100 ohm resistors (x7)
-1K ohm resistors (x7)
-10K ohm resistors (x7)
-400 ohm resistors (x7)
-One sided PCB
-Arduino UNO
-Stranded cable, plenty.
-Breadboard pins 
-Glue for wood
- PCB etching solution (Ferric chloride) 

Tools:
- Dremmel
-plyers
-Solder iron
-Insulating tape
-Multimeter
Permanent marker
-Nail polish remover
-And everything you find helpful

Español
Materiales:
- Transistor 2N2222  (x14)
- LEDs infrarojos (x7)
-Receptores infrarojos (x7)
-100 ohm resistores (x7)
-1K ohm resistores (x7)
-10K ohm resistores (x7)
-400 ohm resistores (x7)
-PCB con cobre de un solo lado
-Arduino UNO
-Cable multifilar en cantidades necesarias.
-Pines de protoboard
-Pegamento de madera
-Liquido para PCB (Clorato de ferro)

Herramientas:
- Dremmel
- Alicates
-Soldadora o cautin.
-Cinta aislante
-Multimetro
-Marcador permanente
-Quita esmalte de uñas.
-Todo lo que encuentres necesario.

Step 2: The Circuit!

English
Start by cleaning the PCB with a dry sponge so it gets kind of shinny, and start drawing the circuit with the permanent marker.
Do this for the EMITER circuit and the RECIEVER circuit.
Apply a few layers of marker so that it protects the copper well.

You can use tha laser print method to make the PCB here a link to how to do this: https://www.instructables.com/id/PCB-making-guide/

After you've got the circuit, its time to bring the etching solution!
CAUTION: its important that you use rubber gloves, use a hard plastic or glass container to use the solution and do it on a ventilated place.

Dip the PCB for a few minutes in the solution  until all the unmarked copper is gone. Then clean the pcb on water until all the solution is rinsed.
Clean the PCB with nail polish remover, and then clean it again with the sponge and you have you PCB ready to go!

Español
Empieza limpiando la placa PCB con una esponja hasta que la placa tenga brillo, y empieza a dibujar el circuito con el marcador permanente. Haz este procedimiento para la placa del emisor como la del receptor.
Aplica varias capas de marcador para poder proteger de buena forma el cobre.

Puedes usar el metodo de la impresion a laser para un mejor resultado aqui dejo un link para aprender como hacerlo: https://www.instructables.com/id/PCB-making-guide/

Despues de tener el circuito dibujado es hora de traer el quimico para el PCB!
IMPORTANTE: usa guantes de goma, usa un container de plastico duro o vidrio para contener el liquido y hazlo en un lugar ventilado.

Sumerge la placa en el quimico y remuevelo durante unos minutos hasta que el cobre descubierto se haya ido completamente, limpia la placa con agua hasta que quede sin quimicos. Limpia el marcador con el quita esmalte de uñas y termina limpiando con la esponja de nuevo para que este limpio y brilloso!


Step 3: Soldering!

English
Drill the holes on the PCB carefully with a dremmel.

Solder the components as shown on the circuit, and make sure that you leave a moveable space on the infrared reciever just in case that if it doesnt recieve the infrared light from the emmiter, you can adjust so that it does.

Español
Taladra los huecon en la placa con el dremmel.
Suelda los componentes electronicos como indica el circuito, asegurate de dejar un espacio para poder mover el receptor infrarojo en caso de que no reciba la luz infraroja del emisor, y asi poder ajustarlo.

Step 4: Wiring

English
Measure the stranded cable to a distance that you require and solder a pin on one end.
Next solder the oder end to the signal out hole on the RECIEVER PCB. 
Make sure that the cable is long enogh to conect to the arduino.

Then mount your PCB's and the arduino to your enclosure and make sure everything is on the right place.

Español
Mide el cable a la distancia que necesites y suelda un pin en un lado del cable.
Luego suelda el otro extremo del cable al agujero de la señal de salida de la placa del RECEPTOR.
Asegurate de que el cable sea lo suficientemente largo para conectarlo al arduino.

Luego monta las placas y al Arduino en la cubierta que diseñaste para tu harpa, y asegurate de que todo este en su lugar.

Step 5: Programing!

English
Conect all the signal cables to your digital pins on the arduino, since the sensor acts like a switch, its either going to be on or off.
make sure not to use digital pin 0 and 1 cause it gave me problems, you can use pins 2, 3, 4, 5, 6, 7, 8.

Attached is the arduino code, upload it to your arduino and the first part of this step is done!

You will need pure data instaled in you computer, since it gets the signal from the arduino and coverts this signal into a MIDI output note, below theres the Pd file, all you have to do is open the COM your arduino is on and its done.
heres the link to the pure data page its a free software: http://puredata.info/downloads

You will need MIDIyoke instaled on your PC its free and its the key ingredient to this project, it conects pure data to any other software that can have a MIDI input.
heres a link on how to install it : http://help.touch-able.com/kb/installation/midi-yoke-installation-on-windows-vista-or-windows-7

N
ow you need to setup midiyoke as a MIDI output on Pure data.
      1. Go to media on the task bar
      2. Select MIDI preferences.
      3.Select Out to MIDI Yoke 1 on Ouput devices 1 and then aply.

Next you have to set up Midi Yoke 1 as an input device on the music software that you'll use.

I used mixcraft 6, its not free but it works here a link to the page: http://www.acoustica.com/mixcraft/

Español
Conecta todos los cables de señal de salida a los pines digitales del Arduino, ya que el sensor actúa como un switch, Solo tiene la opcion de encendido o apagado.
Asegurate de no usar los pines 0 y 1 del Arduino por que dan problemas, puedes usar los pines 2, 3, 4, 5, 6, 7, 8.

Adjunto esta el codigo de Arduino, subelo a tu arduino y la primera parte de este paso esta termianda!

Necesitaras pure data instalado en tu computadora, ya que recive la senal de arduino y la convierte en una nota de salida MIDI, Abajo esta adjunto el archivo de PureData, Todo lo que tienes que hacer es abrir el COM de tu arduino y esta listo.
Aqui esta link de la pagina de Pure Data es un software abierto y gratis: http://puredata.info/downloads

Necesitaras MidiYoke instalado en tu computadora tambien, es un software gratis y es el ingrediente clave, Conecta Pure Data con cualquier programa que tenga la opcion de entradas MIDI.
Aqui les dejo un link de como instalarlo : http://help.touch-able.com/kb/installation/midi-yoke-installation-on-windows-vista-or-windows-7

Ahora necesitas configurar MidiYoke como una salida midi en Pure Data:
      1. Ve a media en la barra de herramientas
      2. Selecciona preferencias MIDI.
      3.Selecciona Out to MIDI Yoke 1 en Ouput devices 1 y haz click en aplicar.

Luego tienes que configurar a Midi Yoke 1 como una entrada MIDI en el software de musica que usarás.

Yo usé Mixcraft, no es gratis pero funciona, quie le dejo el link: http://www.acoustica.com/mixcraft/

Pure data and Arduino code / Archivos de Arduino y Pure Data

Here's a video to guide you through the instalation:

English version:

https://www.dropbox.com/s/3jfaqw4htz73s0q/Harpa_inv.pd  Pd file // Archivo de Pure Data

https://www.dropbox.com/s/6e0onfloluu3jdn/Harpa_Invisible.ino Arduino code //Codigo de Arduino



Arduino Contest

Participated in the
Arduino Contest

Weekend Projects Contest

Participated in the
Weekend Projects Contest