Let's Make Robots!

Cacophonix 2

Play a traditional Chinese musical instrument.

Recently my son showed an interest in learning music so my wife bought a Guzheng. I decided to try and build a robot that can play it using just LOZ blocks and a Micro Magician. The first video was the robots first attempt at detecting and plucking a string. For this test I used a small white cable tie to simulate the strings on

The body is just a simple humanoid shape roughly the same size as my son and designed to sit on the stool my son uses. I started running low on parts so for now it only has 1 3DOF arm. This arm has two 13Kg/cm, metal geared servos for the shoulder and elbow. A 1.5Kg/cm miniature servo is used for the finger that will pluck the strings. If I can get this arm working well enough then I'll buy more parts to build a second arm and the head.

I had a bit of trouble getting the miniature servo to mount but eventually I found a block pattern that holds the servo firmly inplace without any screws.

As servo positions can drift slightly with temperature and the human sized arm has some flexibility I will try to add a sensor on the finger. This will help fine tune the position of the arm and act like an encoder for positioning the arm.

Second Arm:
If I can get the first arm working well then I will build a second arm. This works in a similar manner to the first arm except it varies pressure on the string being plucked to create a vibrato effect.

Music Teacher:
If I can get the robot to locate and pluck the strings well enough then the next step is to make it into a music teacher for me and my son. I will add a microphone and amplifier circuit so that the Micro Magician can count the frequency of the note. Aside from being useful for tuning the instrument this will let the robot confirm it is plucking the right string and even listen to simple melodies in order to lean a new song.



I discovered not all the strings had a steel cores so I've gone to plan B and will try to detect them with IR. I rigged up an IR LED and IR photo-transistor on a Micro Magician with a 2S LiPo. This little hand held detector lights up it's D13 LED when an object is detected.

After some experimenting I found the best way to detect the strings was to have the sensor at about 45° to the top of the Guzheng.This prevented the IR reflecting back from the instrument body behing the strings. In the diagram below the IR LED is purple and the photo-transistor is light grey. The white circles are the cross sections of the strings to be detected. The dark grey rectangle represents the robots finger that will pluck the string.

When configured as shown, the robot will know that when the string is detected the finger can drop down between the strings and then pull back and up to pluck the detected string. the first video shows the string detector in action.


Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.

this is very nice..

That's so cool. I can't wait to see t playing. How precise is the finger as I assume that the high arm build of LoX is not the most stable construction in terms of shaking & swinging.

Yes it is a bit wobbly. This is one reason it needs the string sensor.

Rather than try to program the robot to pluck strings at fixed positions, the sensor gives the robot some ability to compensate.

The robot must not only compensate for the lack of ridgidity in the body and arm but also the robots position on the chair and the chairs position relative to the instrument.

Where's the "like" button when I need it? :D


Wait till I get it working. By then LMR 4 might actually be finished with a "Like" button included :D


No, there will be no like button - it's a thing would wreck the tone in the community.

There will however be [include] and [wiki] which I know you will like because of the way you post.

For the record: We are test-dumping data now, we *are* that far - but this is going as fast as a snail traveling around the world ;)

...but you should have pulled for the digeridoo.  Gotta have some Australian pride.  At least teach him to play "Waltzing Matilda" (or as close as you can get in the scale of the Guzheng.)

DAGU does have a Didgeridoo at the office. I bought it as a souvenir for my boss.

Unfortunately robotic lungs (Bellows), tounge and vocal chords are a little more difficult to produce. To reproduce they cyclic breathing required to play it properly you would also need some valves and simulated cheeks (second set of bellows).

It would be easier just to teach Shi Sen to play it (assuming I knew how).

Nice project. Ambitious too. Can't wait to see and hear more.

This whole project depends on making a sensor for the finger so it can detect the strings. If I can get the finger sensor to work then it will not matter if the chair and the robot are not perfectly lined up with the Guzheng. It will not matter if the servos drift a bit with temperature. The software will be able to adjust the arm position automatically.