As research has demonstrated, making things with your own hands can be very satisfying as it leads to a sense of accomplishment, and creating something as exquisite as a musical instrument, one that uses light to produce beautiful sounds at that, might be even more rewarding.
Specifically, programmer and engineer Harry Mishinev, a.k.a. Cybercraftics, has developed a laser harp using a 3W laser for string, describing the entire process in his article on Instructables, as well as sharing a video walkthrough on his YouTube channel on March 12.
Laser harp idea takes shape
It all started three months ago, when Mishinev embarked on the project to build his own frameless laser harp from scratch, similar to the one used by the legendary Jean-Michel Jarre that has fascinated him since childhood and which he dreamt his whole life of having.
As he explained:
“It’s fully controlled by an Arduino and uses a motor to sweep the laser beam, paired with a clever sensor setup to detect beams interruptions.”
Loved by hobbyists, students, artists, programmers, and professionals, Arduino is an open-source electronics platform based on easy-to-use hardware and software with boards that can read inputs – in this case light on a sensor – and turn it into an output – in Mishinev’s case mesmerizing sound effects.
To achieve this, it uses the Arduino programming language (based on Wiring, an open-source programming framework for microcontrollers), and the Arduino Software (IDE), based on Processing (a software sketchbook and a language for learning how to code).
Anyway, Mishinev’s supplies for the projects included an Arduino Leonardo, an Arduino Uno, four light-dependent resistor LDRs, two ultrasonic sensors US-100, a Stepper Motor Driver ULN2003, a NEMA 16 39MM 1.8 degree 2-phase 4-wire Hybrid Thin Stepper Motor, a Relay Module, one 12v Power Supply similar to this one, one Laser – 3W TTL, four 10 Ohm resistors, and a TCRT5000 Infrared Reflective Sensor.
Step 1: Printing the 3D models
To make preparations for building your own laser harp, you’ll need to print out several 3D elements, which Mishinev shared in the article, including Lid.stl, Enclosure.stl, Mirror Holder.stl, Motor Stand.stl, Laser Harp Box v19.f3z, and Laser Harp Motor Stand v13.f3d.
Step 2: Preparing the base board
Then, it’s time to prepare a base board for your project. According to Mishinev, any wooden board with the specified dimensions (290mm length x 133mm width, 12mm thickness) would do. This is because it provides “better stability than a 3D-printed one and helps dampen the motor’s vibrations.”
Step 3: Learning to control stepper motors
The second most important component of your laser harp (right behind the laser), the stepper motor proved to be the most challenging for Mishinev to get right. Once he overcame this challenge (with the resources to share), he was ready to continue.
Indeed, the motor requirements include a 1.8° step angle (i.e., 200 steps per revolution) and a compact size to keep the weight low, allowing for quick and precise movements in both directions.
After experimenting with two types of motors and two different drivers, he decided to stick with the hybrid one, “which unfortunately is quite unpopular.” However, he believes that any other type of NEMA 16 would work.
Step 4: Mounting the stepper motor to its stand
Step 5: Cutting out a mirror piece
As Mishinev pointed out, the mirror “should be as thin as possible; otherwise, it reflects unfocused beams.” For him, a disk from an old hard drive worked best, and he used a Dremel to cut it out and shape it.
Step 6: Assembling the mirror holder
- Add a threaded insert to the holder (optional, and you can also use a standard screw instead).
- Attach the mirror to the mirror holder with some glue.
- Mount the holder to the motor.
Step 7: Preparing the loop-back sensor
- Desolder the diodes from the module.
- Use wires that are long enough to reach the motor stand, and solder the diodes to them.
Step 8: Mounting the line following diodes to the stand
Secure the two diodes with hot glue into the holes.
Step 9: Adding a relay between the laser and the 12V power supply
When the Arduino is not running or rebooting, it doesn’t send PWM signals to the laser, causing it to run at full power when it should be off. To prevent this, you should connect the relay so that it’s off by default, and the Arduino should switch it on only after completing the motor homing procedure.
Step 10: Testing all the wiring using a prototyping board
Before proceeding with soldering, Mishinev recommends testing the setup with prototyping boards, following the schematics for the ULN2003 driver here and for the A4988 driver here.
His advice is to experiment with the circuit with a lower-power laser (around 100-200 mW) before soldering the components, as “using a low-powered laser, you can make adjustments until you see seven projected dots (as shown in the video).”
Step 11: Creating the Arduinos shields
- Cut out two perfboards that match the size of the Arduinos.
- Follow the schematics available here for the ULN2003 driver and here for the A4988 driver to build the shields.
- Leave the cables from the shields to the components long enough, and trim them to size later when mounting them.
Step 12: Securing the components onto the board
The motor stand and the laser must be centered to align with the split at the top, while the Arduino boards need to be aligned with the split on the left to make sure their outputs are exposed.
You can use double-sided tape to temporarily attach them to the board, making sure everything fits before securing them with screws. Then, Mishinev says to mark the holes with a pen, remove the temporary tape, and pre-drill the holes.
Step 13: Securing the wooden board to the enclosure
You can use a piece of filament with white paint at the end to pass it through the holes of the enclosure and mark the drilling points on the wooden board. After that, drill the holes and secure the board to the enclosure with screws.
Step 14: Mounting the sensors to the lid of the enclosure
- Insert the four light sensors and solder them to the wires leading to the shields on the other side.
- Secure the sound sensors with some hot glue.
- Mount the lid.
Step 15: Mounting the reflective attachment
According to Mishinev, the reflective attachment “significantly improved the performance of the harp and increased the height at which the beams can be interrupted.”
Step 16: Uploading the code to the Arduinos
You can find the code for both Arduinos in this repository. Whenever you need to update the code of the Arduino UNO (which controls the laser and the motor), Mishinev recommends following this routine:
- Turn off the 12v power supply.
- Disconnect the Arduino Leonardo from the computer.
- Upload the Arduino code to Arduino Uno.
- Disconnect the Arduino Uno from the computer after uploading.
- Turn on the 12v power supply.
- Reconnect the Arduino Leonardo to the computer.
Furthermore, when you need to update the code of the Arduino Leonardo (which controls the Ultrasonic sensors and generates the MIDI notes), you can upload new code while the harp is running without noticing any interruption, as the Arduino UNO handles both the motor and the laser.
Step 17: Playing music with the harp
Since the Arduino Leonardo can act as a Human Interface Device (HID), you simply need to plug it into your computer and launch your favorite DAW software. Mishinev uses GarageBand, but he pointed out that it also works with Logic Pro, Ableton Live, and other popular DAWs.
Conclusion
All things considered, DIY projects are super-fun to make, but make sure to be extremely careful when playing around with lasers, especially the 3W ones, as they can cause permanent damage to your eyesight and skin. If lasers and music don’t cut it for you then you should try something else, like making a GPS receiver from scratch or ‘glasses’ that transcribe text to audio for the visually impaired. Have fun!