#700 Laser Harp Kit
Build and test an 8051-based laser harp kit.
Here’s a quick demo..
Notes
There’s a common C51-based “laser harp” kit that is available in various packagings from sellers on aliexpress, icstation and other market-places.
I picked up one of the kits from an aliexpress seller to check it out. There are various build and demo videos out there, for example:
Parts
The kit comes with all the parts needed to build the harp, including USB power cable and speaker. Note: in the final build, I replaced the speaker with a piezo buzzer - the sound quality is not much different!
Item | Qty | Ref |
---|---|---|
1kΩ | 11 | R1-7, R16-19 |
10kΩ | 8 | R8-15 |
30pF | 2 | C3-4 |
10µF | 2 | C5-6 |
12MHz crystal | 1 | Y1 |
3mm blue LED | 10 | D1-10 |
STC89C52 | 1 | U1 |
50 pin DIP socket | 1 | U1 |
wire | 2 | U1 |
40mm copper pillar | 2 | U1 |
speaker | 1 | SPK |
5V laser | 7 | JG1-7 |
power jack | 1 | DC002 |
USB power cable | 1 | |
8550 PNP | 1 | Q1 |
5516 LDR | 7 | GM1-7 |
pushbutton | 2 | K1-2 |
small copper pillar | 4 | |
DPDT switch | 1 | KG |
screw | 4 |
Circuit Design
The circuit is quite straight-forward:
- 7 lasers are pointed at 7 LDRs monitored by 7 GPIO ports
- 2 switches are wired to GPIO ports
- the microcontroller polls/reads the LDR inputs and switches
- the microcontroller generates the appropriate sound output (square wave)
Here is a transcription of the circuit in Fritzing:
Testing the Behaviour
The two buttons control the mode of the harp:
- K1: play a tune. Rotates between “Happy Birthday” and a Chinese nursery rhyme “世上只有妈妈好” (Mother is the Best)
- K2: selects between 3 note ranges octaves (low, medium, high)
The output frequencies:
Note | Octave 1 | Octave 2 | Octave 2 |
---|---|---|---|
1 | 141 | 281 | 561 |
2 | 153 | 317 | 627 |
3 | 178 | 355 | 705 |
4 | 187 | 375 | 740 |
5 | 211 | 421 | 837 |
6 | 237 | 473 | 937 |
7 | 266 | 530 | 1047 |
Here are some sample scope traces of the lowest and highest notes in the first octave:
Conclusion
After playing around for a few minutes, a couple of limitation are quite apparent:
- why 7 notes?? There are plenty of spare GPIO pins, so why not 8 for a full octave?
- tuning: I don’t think the note frequencies match standard tuning
- button responsiveness: the code doesn’t handle concurrently pressing the range button and playing a note, making it very hard to play a tune across multiple octaves
- “string” sensitivity: it does not appear very responsive to making/breaking contact with a laser
Next Steps?
I haven’t found the 8051 source code or tried to download it fro the chip. Hoever given the problems with the laser harp - most of which can be solved in code - I don’t think that’s a big loss.
The obvious next step is to redo this project but with:
- 8 lasers/notes
- new code that is more responsive and handles concurrent button presses while playing a note. Maybe attempt this with 8051, or switch to an AVR/Arduino.
Credits and References
- DIY Kit C51 MCU Laser Harp Kit String DIY Keyboard Kit Electronic Parts 7 Strings Electronic DIY Kit Technology Piano Music Box - aliexpress
- DIY Kit C51 MCU Laser Harp Kit String Electronic Keyboard Kit DIY Module Electric Production Sensor Music Controller - same product from icstation
- STC89Cxx series MCU Data Sheet