Arduino Laser Harp

26,561

334

20

Intro: Arduino Laser Harp

A couple of weeks ago I presented my culmination project, framed laser harp, at New York City College of Technology. Work on it was so interesting for me, that I decided to share it here. I am an Arduino amateur and don't have any professional experience in electrical engineering or programming. Neither am I a musician. Probably that's why I had so much fun: when you are moving blindly, you can't see the ground anyway:)

So, why laser harp? First of all, lasers are always cool. But laser beams making sounds were some kind of sorcery for me ever since I encountered a huge Arc Harp at Burning Man 2012. I was obsessed with the idea of making my own laser instrument, and finally got a chance to do it.

After quite a bit of a research, I finally found a wonderful starting point – very well documented project template made by mnsman. Although I modified many things, my project heavily relies on mnsman's work. For example, the code I'm using is entirely taken from his project.

Another extremely helpful resource was Chris Ball's instructable. It has very comprehensive wiring diagrams and is great in explaining the working principle.

Laser Harp project is pretty 'multidimensional', because it involves different types of skills, such as wiring and soldering, drafting, woodworking, familiarity with Arduino and MIDI, and more. At the same time, everything is very flexible: you could design and build your own enclosure, change the number and function of laser modules, modify the code, etc.

A note on safety: NEVER LOOK DIRECTLY INTO THE LASERS. Also, avoid using high power laser modules (more than 5mW) for this project.

Good luck, and please let me know of any inaccuracies (either descriptive or grammatical) in this instructable.

Step 1: Working Principle

A laser harp is an electronic musical instrument, consisting of several laser beams (9 in this case: 7 notes, Octave Up, Octave Down) to be blocked in order to produce sound. In a framed version of the harp, each beam strikes a photocell, and when the player's hand interrupts it, the sensor prompts an Arduino microcontroller to send a MIDI "Note On" (logic HIGH) message.

In this particular laser harp MIDI signal is sent from the Arduino through MIDI interface to the laptop running MIDI software (I used MuLab, because it's free and simple). The second USB A/B cable just powers up the Arduino (it is possible to use a 5V power supply or couple of batteries instead).

Step 2: Parts and Tools

Electronic Components

Tools and Supplies

  • Soldering iron and solder;
  • Wire cutters;
  • Wire strippers;
  • Glue gun with hot glue sticks;
  • Electrical tape;
  • Tape measure;
  • Marker;
  • Breadboard (for circuit prototyping);
  • Jumper wires (for circuit prototyping);
  • Tac putty tabs (to hold laser modules in place when aligned);
  • Scissors;

Enclosure

The enclosure design is entirely up to you. I had access to a professional shop, and decided to give my harp a 'real' look. I will not describe the process of building the enclosure in this instructable, however, the drawings I used will be provided (as is). I used 1x pine for the neck and the column, 1/4" MDF for the sides of the 'box' and the stand, and 1/2" plywood for the top and bottom of the 'box'. I found this shape to be inefficient, because of the difficulties in laser modules/photodiodes alignment. I highly recommend to come up with another shape, something where the lasers and photodiodes form strait vertical lines when aligned. It was for me a real nightmare to align lasers and diodes at an angle.

If you decide to replicate this shape, you will need the following tools and supplies:

  • Table saw;
  • Band saw (jig saw may be used);
  • Screw gun or pneumatic stapler;
  • Drill with different drill bits (for the photo-resistors, power button and harp outputs placement);
  • Wood glue;
  • Spatel;
  • Joint compound;
  • Paint;

Step 3: Schematics

There are two independent circuits: one for the laser modules (with power button and a 3-5V power supply), and another one for the Arduino board, photocells, and a MIDI jack. Each photocell is wired in series with an 4.7K resistor, which acts as a voltage divider and triggers logic HIGH when any of the laser beams is blocked.

In the "Laser Circuit" schematics above 5mW laser modules are shown as regular LEDs, simply because I couldn't find a laser module symbol in Fritzing. The same is true about the two AA batteries in the schematics – in reality I used a 5V power supply.

See the PDF of the EagleCAD schematic at the end of this step.

Step 4: Laser Circuit Wiring

Nine 5mW laser modules are wired in parallel and breadboarded before soldering. I also added an optional power button to the circuit, to be able to turn the lasers ON and OFF.

Step 5: Arduino Circuit Wiring

Wire a MIDI jack according to the pinout: Pin 2 – Ground, Pin 4 – 5V (through 220Ω resistor), Pin 5 – Tx. Label everything, it will be vital later. Breadboard the photocells/resistors circuit according to the schematic in Step 3. Solder after testing.

Step 6: MIDI Interface and Software

After assembling the Arduino circuit, you need to be able to send MIDI commands to the laptop. In order to do so I used a MIDIsport 4x4 interface (simply because I got it for free). MIDI cable runs from the MIDI jack (Step 5) to the MIDIsport's Port A, and from there to the laptop running MuLab software.

Step 7: Code

As I already said, the entire code was borrowed from here (Thank you, mnsman!). If you are unfamiliar with the Arduino microcontroller and the code uploading procedure, here is a great instructable on this topic.

Step 8: Enclosure

This step shows some photos of my enclosure design and build process, as well as a set of 1:1 Arch D drawings (36"x24"). If you wish to build the same enclosure, simply print out the drawings to scale, glue them directly to the wood, and then cut using appropriate tools. On the face of the MDF 'box' drill nine 1/4" holes for the photo-resistors spaced 2.5" apart. The lasers will be mounted into the neck of the harp.

Step 9: Putting It All Together

Think about how to integrate the circuits with the enclosure in the most efficient way (above are some photo suggestions). I decided to solder all the wires coming from the Arduino to the bare Arduino Proto Shield for more reliable connections.

I tried different approaches to align the lasers and the photo-resistors (hot glue, velcro, staples, white tac), and none of them worked perfectly. It was very hard not only to align the beams with the photocells, but also to keep them in place. White tac worked best for me, but still not perfect. I used some hot glue to keep the power button, MIDI and USB outputs in place.

Step 10: Done!

The video shows my friend Sharon having fun with the almost complete laser harp. The photo shows the device after painting and final touch-ups.

Good luck everyone, and let me know how it goes!

Soldering Challenge

Runner Up in the
Soldering Challenge

Share

Recommendations

  • Metalworking Contest

    Metalworking Contest
  • Tiny Home Contest

    Tiny Home Contest
  • Furniture Contest 2018

    Furniture Contest 2018

20 Discussions

0
None
PeggyV4

Question 6 months ago on Step 1

Hello ! One quick question , how did you figure out you needed to apply a 4.7k resistor as a voltage divider for the ldr , Im in the process of making it so it would be lovely to hear from you, thank you in advance

0
None
EmilyH162

9 months ago

The chris ball instructable used 6 of the analog inputs, with my arduino uno I can only have a max of 6 inputs for the code. Also the circuit is wired in a way that my instuctors were like, this should be taken down- it will not work. It won't create any readable value for individual LDR's. Now switched over to the code and circuit wiring of the other instructable, fingers crossed it works out.

0
None
EmilyH162

10 months ago

Can I import soundfonts with Mulab? I have like 0 understanding of midi, I'm in process of building this. I found a concert harp soundfont, but I don't know what software to use to get it to run.

0
None
madkins9

10 months ago

So I'm in the process of building this. thanks for the code, but I believe I've noticed a problem with the schematic. in the arduino circuit you provided, the 5v grounds immediately through the photocell without being able to be read by the arduino pins. i did some research on other laser harps, and several recommended(in order) 5v, photocell, arduino pin, resistor, then ground. this would allow the resistance value to be read before grounding out, please let me know if i'm correct of if i'm completely wrong, as i've only made the frame so far and haven't yet made and tested the circuit. thanks.

0
None
madkins9

10 months ago

could anyone help me with the code? The provided code works for 9 lasers, but I bought a 10 pack of lasers and i'd like to use them all. Either that or only use 6 for a laser guitar. Thanks.

0
None
evetanlm

1 year ago

You have made a wonderful project and i just love it so much.

0
None
eggy4567yaroshka

Reply 2 years ago

i am currently working on a laser guitar myself :D gonna put a midi fighter 3d in the stock for more functionality though

0
None
yaroshkaeggy4567

Reply 2 years ago

awesome! good luck and make an i'ble after you're done)

0
None
KevinL236

2 years ago

can you use more than 9 lasers?

if yes please tell me how

0
None
Shetsans

2 years ago

In the future, if you want to simplify it, you could just make the arduino a MIDI device, by programing the 16u2 chip. If you want some more info about how can that be done, just ask me and I will reply you asap !

1 reply
0
None
yaroshkaShetsans

Reply 2 years ago

Yes, I checked this out a couple of months ago and really liked the simplicity: https://www.arduino.cc/en/Hacking/MidiWith8U2Firmware

0
None
TumB1

2 years ago

a dumb question, but how can one use the mulab to produce sound from that external output? A little help or tutorial, please.

0
None
Shetsans

2 years ago

In the future, if you want to simplify it, you could just make the arduino a MIDI device, by programing the 16u2 chip. If you want some more info about how can that be done, just ask me and I will reply you asap !