Making the Spielatron (Robotic Glockenspiel)

4.8K1910

Intro: Making the Spielatron (Robotic Glockenspiel)

We created this robotic glockenspiel from parts that we already had and made.

It is still experimental and is in version one.

The Spielatron is controlled by an Arduino which plays Midi commands sent to it from a PC.

Present limitations are

  1. It is monophonic ie can only play one hammer at a time.
  2. The servo speed limits either the beats per minute or the note length of the music eg you cannot play a semi quaver at 120 BPM.

STEP 1: Find a Glockenspiel and Make Support Frame

We had a 40 plus year old glockenspiel that was rescued from a high school music department when it became surplus to requirements. It has sat in a cupboard all this time waiting for an opportunity to be used. It is a little knocked around and some of the keys are dodgy and give dull sounding notes, however, for the fun of making the project is did not warrant purchasing a new one.


The frame was made from 10mm thick plywood and is sized to fit the glockenspiel and to accommodate four pairs of RC modelling servos. The distance from the glockenspiel to the servo was determined to provide an arc so that the hammer head would strike the desired number of keys without hitting the tacks holding the keys in place. This worked out to be approximately 220mm from the centre of rotation of the servo to the centre of the keys.

Servo pair one strikes keys G5 through to G6.

Servo pair two strikes keys G#5 through to G#6.

Servo pair three strikes keys A6 through to G7.

Servo pair four strikes keys Bb6 through to F#7.

STEP 2: 3D Print and CNC Rout Brackets and Set Up Servo Pairs - Picture 1

We had four old JR NES-507 servos plus two Hitec HS81 and two Hitec HS82 servos that were not in use. The HS81 & HS82 servos are similar enough to be used for the same purpose.

We 3D printed four brackets to mount the Hitec servos on and screwed these brackets onto the standard disc servo top provide with JR servos. As we print in ABS we usually print the files at 103% size to allow for shrinkage.

Next we routed four brackets to fit the disc tops of the Hitec servos out of 1.5mm plywood. These brackets are to support the hammers.

STEP 3: 3D Print and CNC Rout Brackets and Set Up Servo Pairs - Picture 2

STEP 4: 3D Print and CNC Rout Brackets and Set Up Servo Pairs - Picture 3

STEP 5: Make Hammers and Attach to Servos - Picture 1

The hammers are made from 3D printed heads and 4mm bamboo skewers (available from your local supermarket). The heads are attached with cyanoacrylate glue and the hammer assembly is attached to the servo bracket with two cable ties on each. These were not initially fully tightened to allow for adjusting the length when setting up and testing.

STEP 6: Make Hammers and Attach to Servos - Picture 2

STEP 7: Electronics

First we 3D printed a mount for an Arduino Uno board which was attached to two of the servo support arms of the wooden frame. An interface board was routed to connect the eight servos to the Uno with their own separate 5V power supply. There was also a header for a micro SD adapter card with the thought of being able to play some midi files stored on the card as opposed to being sent from a PC. Presently we have only used the Spielatron with files sent from a computer.

Mount the interface board (shield in Arduino speak) on the Arduino and connect the servos in the following order:

  1. Rotational servo 1 to Arduino pin 2
  2. Hammer servo 1 to Arduino pin 3
  3. Rotational servo 2 to Arduino pin 4
  4. Hammer servo 2 to Arduino pin 5
  5. Rotational servo 3 to Arduino pin 6
  6. Hammer servo 3 to Arduino pin 7
  7. Rotational servo 4 to Arduino pin 8
  8. Hammer servo 4 to Arduino pin 9

STEP 8: Electronics Interface Board - Picture 1

STEP 9: Electronics Interface Board - Picture 2

STEP 10: Arduino Code

Add the MIDI.h library to your Arduino programming environment and compile and upload the attached code to the Arduino.


Note line 81:

Serial.begin(115200); //use computer baud rate not the true midi baud rate of 31250

As commented, we are sending the Midi data to the Spielatron over a USB interface at a normal computer baud rate not the correct Midi baud rate of 31250 as none of our computers could easily be configured to this baud rate.

Also you will note that the code only deals with note on Midi events as the hammer must be raised immediately after lowering and cannot wait for a note off event to occur.

STEP 11: Completed and Working


We will do a separate Instructable on how we compose and send Midi files from our PC to the Spielatron.

7 Comments

I finished building my version a few hours ago. It was alot of fun. This project helped me understand music and MIDI a little more and was a joy to build.

Thank you Averton Engineering !

I have placed pictures and 3d models of my project on my GitHub account.

You can find it here:

https://github.com/bonnette/AutoGlockenspiel

Fantastic - we have had a look at the pics on GitHub.

You have done a great job.

It shouldn't be too difficult to get the extra notes happening.

The only issue is the time it takes for the rotational servos to get from one extreme to the other. This may need a longer delay. The servos we used were old ones we had for years and aren't very fast. So some newer faster servos may be the way to go or even another pair of servos on each side. The delay slows down the maximum speed of music you can play. Also it becomes an issue when you try and play another instrument with the Spielatron, like our Beat-R-Bot.

https://grabcad.com/library/animatronic-robot-drummer-beat-r-bot-1

MIDI stuff is so much fun and isn't LMMS amazing:)

How about a Youtube video of it playing?

Beautiful project!


Please, change the PDF removing all line numbers or add a INO file!

If I copy code from the actual PDF I get also the line numbers that I have to remove by hand!

Wow! Thank you!

Awesome! I really like the video. It does a good job of showing of how it can perform.

Thanks, we are glad you like it.

We hope to do some more videos at some time.