Laser harp
Project: Laser harp | |
---|---|
Featured: | |
State | Active |
Members | Stoney3K |
GitHub | No GitHub project defined. Add your project here. |
Description | A musical instrument using laz0rz |
Picture | |
No project picture! Fill in form Picture or Upload a jpeg here |
Laz0rz!
Made popular by French synthesizer artist Jean Michel Jarre, a laser harp is a musical instrument that generates notes when you break a laser beam with your hand.
Usually, the beams come from a single point in the floor in front of a performer and can go on forever, but some harp designs look more like a 'classic' harp with a frame containing sensors, and parallel strings instead of a V-shaped pattern.
Design
The frameless version of the harp is more challenging to build and get 'right', since it uses a different detection mechanism compared to the framed harps.
Basically, the detection is centered around timing -- the scan position of the laser beam is tracked and compared to a photodiode sensor input, similar to a bar code scanner. If the sensor picks up reflected light (off the player's hand), the signal timing can be used to determine which beam was struck.
Most of the critical components inside the laser harp are analog, with a digital drive circuit based off an Atmel ATMEGA8535 and a set of Microchip MCP4921 digital-to-analog converter chips connected to the SPI bus. This design is loosely based on Stephen Hobley's early Arduino-based version and is fairly straightforward -- any other Atmel chip would work just as well.
The analog components are quite critical to get right. For the sensor circuit, there's a very low signal to noise margin, and any means to block ambient light is welcome. Jarre does this by placing the sensors offset from the beam plane of incidence and using white gloves which give a very bright reflection when the sensors view them head-on. Also, using lenses will make the detection angle wider, providing a bigger surface area to capture the player's reflection.
Beam detection challenges
Here's how the beam detection is related to the scanner timing (forgive the noisy galvo drive signal, which was a quick-and-dirty DAC from the AVR's internal PWM). As my hand is breaking the laser beam on the sixth position when viewed from the left, the light is reflected and ends up on the sensor, which provides a logic 'high' back into the AVR after some amplification and comparator magic. Once the AVR has set the DAC's to a proper level, it will check the sensor input and determine which beams are struck. The order in which the beams are projected is not important -- a stepped triangle can be used instead of the 'sawtooth' signal used here.