Introduction: Laser Harp

The Laser Harp is an easily accessible music-making device which allows users of all mobility levels to make music using a pentatonic scale. Utilizing a Raspberry Pi Pico 2 W microcontroller and CircuitPython, the harp uses beam-break sensors to detect when users pass an object or a hand through the virtual "string", which is visualized by a red 5mw laser diode for visual feedback.


Project Contributors:

  1. Jack Tommaney
  2. Daniel Martin

Supplies

Materials:

5 x Baltic Birch 1/8" and 3 x 1/4" panels (or other wood types) for laser cutting components

5 x 1/4" diameter, 1 7/16" long binding posts, plus M4 screws to secure them (they should come with them if you got a kit like we did).

1 x Pico 2 W microcontroller and MicroUSB to USB cable

1 x Breadboard

6 x Adafruit Red Laser Diode 5-miliwatts

6 x Adafruit Beam-break Sensor Pairs

4 x 5-way Wago Connectors

4 x 3-way Wago Connectors

2 x 2-way Wago Inline Connectors

20 x Header Pins

1 x 3W Speaker of any make (2-wire interface)

1 x Adafruit DAC

1 x Adafruit Amp

Assorted wire (20-22 gauge) in 3 colors (ideally at least one of these colors is solid-core)

------------------

Tools:

Wire Strippers / Wire Cutters

Hot Glue Supplies

Soldering Supplies

Laser Cutter

Step 1: Laser Cut Components

Laser cut the following:

Two copies of base.dxf, both in 1/4" thick wood

Two copies of inner_layer_5_and_6.dxf, one in 1/4" and one in 1/8" wood

One copy of stand.dxf in 1/4" wood

One copy of every other file in 1/8" wood

Make sure your binding posts will fit in the five holes that have been cut. Mine needed to be enlarged slightly with a drill.

Step 2: Connect Panels and Pieces

Insert your binding posts into one of the base pieces. These will let you perfectly line up layers 1 and 2 on top of the base—use wood glue to permanently attach them in that order.

To keep the free pieces of layer 2 in place, I recommend placing the laser pointers in their positions and using and the edge of the harp to line the wood pieces up just right, then using wood glue to glue them in place.

Once layer 2 is secure, you can move on to the other half. Leave layers 3 and 4 for later.

Glue layers 5 and 6 onto the other base, being sure to start from the opposite side as you did for the first half. You can use the same techniques as before to line them up: grab your beam break sensors and free pieces of wood and line them up to glue them one at a time. Once done, you should now have two halves and two remaining layers.

Step 3: Install Lasers and Beam Break Sensors

Once the cut pieces are assembled into the frame halves and before assembling layers (3) and (4), carefully install each laser on the top half of the frame by putting a drop of hot glue in each channel, then pressing the laser into it (lens end facing out of the frame). Repeat this process for each laser, then with each beam break sensor emitter. For the sensor receivers, the process is the same, but they are installed on the base side of the frame facing up, with 3 wires instead of two. After installing the laser pointers, you may now glue layers 3 and 4 onto the laser half (in that order) to hold the lasers and the wires in place.

Step 4: Install Pico + Speaker + AMP/DAC

Begin by sticking the breadboard + Pico into the frame half containing the beam-break sensors. Once this is installed with the Pico's USB port facing out the back of the frame, loosely install the speaker (already wired to the amp with a 1" length of cable) wherever there's space. Add the DAC to the end of the breadboard as shown, and wire it to the amp with a single signal cable (endpoint is L-OUT on the DAC). Wire the amp's power and ground, as well as the DAC's V-Out and GND pins, to the +/- rails on the breadboard.

Step 5: Wiring

This section is a bit free-form: Find the best way to connect all the power and grounds from the sensors and lasers to the +/- rails on the breadboard. For this, we decided to use several Wago connectors, connecting each individual power or ground node to a connector, and then chaining the Wago connectors to the breadboard with two cables for each polarity. For the lasers, we ended up soldering 6-1 and 4-1 connections, which reduced the amount of Wago connectors needed for that half. It is recommended to also stick the Wagos to the paneling with more hot glue, for durability and ease of maintenance.

For the beam-break signal wires, wire each one to a port on the Pico. The mappings used in this project were:

String 1 (tip of harp) to GP0

String 2 to GP1

String 3 to GP2

String 4 to GP15 (owing to cable restrictions)

String 5 to GP4

String 6 to GP5


Connect the rails of the breadboard to any V-OUT (5V) and GND pins on the Pico.


Once these are in place, the wiring for the project is essentially done.


**Tip: Wait until final assembly to connect the two wires powering the lasers to the Pico. This will make assembly simpler until the final step.

Step 6: Final Assembly

Put the rivets or screws through the cut holes in one side of the harp. Connect the +/- leads for the lasers (if you haven't done this yet) to the rails on the breadboard. Edit the code.py file on the Pico, and paste in the code below. Then, lower one half of the harp onto the other, and set it in place. Tighten down all the screws and make sure it all works. Congratulations, you now have a LaserHarp!