Stephen Hobley Reveals The Laser Harp
Stephen Hobley, a photographer by trade, has taken the wraps off his pet Laser Harp project.
Here’s how Hobley describes the technology in his own words…
LASER CONTROL:
Basically an Arduino connects to a 12-bit DAC chip (TLV5618) using the SPI 3 wire interface. It sends numbers on a timer interrupt to the DAC to specify where the beams are, 0, 455, 900, etc… all the way up to 4095 for 10 beams. It holds each position for about 500uS (half a millisecond) and switches laser blanking on (or is that “off”?) for this time. When it reaches the end it brings the mirror back to the start position. The output of the DAC chip is 0-5V – this is then converted to -5v / +5v using a TL082 Opamp chip from Radio shack. Finally it’s passed through a Balanced Line Driver chip to give the full (-/+ 10v ptp) differential signal required by the mirror (laser galvanometer) amplifier.
REFLECTION SENSOR:
The reflection sensor is wired into pin 2 of the Arduino, on it’s hardware interrupt line – so when this is triggered the Arduino stops processing for a uS or two to record the beam pulse in an array. This routine has to be very short. I noticed some double pulses on the output from the beam sensor, so I added a 555 timer in astable (monostable?) mode. This is triggered by the first falling edge of the sensor and outputs a solid single pulse.
The reflection sensor uses TAOS (#12) light to voltage sensors, that are wired into a two opamp differentiator circuit that rejects ambient light (so the circuit only sees flashing laser pulses, anything that is on all the time is rejected). The opamps are tuned to the approx frequency of the flashing laser light. This was the hardest part of the project, and for a long time I did not think I could get it to work (and that maybe JMJ’s harp was a fake). Then by accident I wired one Opamp to +5v not ground, and forgot to wire the other one to ground, and as if by magic the sensor started to “see” the pulses being reflected off the far wall of the dining room.
I built a small stand for the sensor and have this attached to the harp via a 6′ cable. The harp also has footswitch control. In this way the harp can be below the stage (like Jarre) and the sensor and control next to the player. You can get larger beam spread this way, as the laser mirror is limited to 40 degree range.
MIDI:
Finally a MIDI output routine is running on the main thread of execution and processes any MIDI messages to be sent out of the TX pin of the Arduino. Optionally the amount of reflected light is also read by one of the ADC pins and this is scaled and transmitted as MIDI continuous controller data. It can be mapped to any controller number. So sliding your hand down the beam can ‘bend’ notes, or sweep the filter etc… This is not 100% reliable (or musical) so I tend to turn that off. There’s also an LCD status panel on the top that is also serviced by this thread.
To learn more you can watch Hobley describe the innards of the Laser Harp below…
More information about Stephen Hobley’s Laser Harp.