For years I have been telling anyone who listens that I was going to build a robotic drum. Most people kind of shrugged indifferently. Even as I built it, most people kind of glanced over at it and conveyed doubtfulness. It seemed like no one but myself was convinced of just how awesome it was going to be.

I received a lot of snarky comments about how I was making a strange annoying noise maker. When I finally go it set up for the trial run, I quickly silenced the naysayers. This robotic drum blew everyone away. I was finally able to convey my vision and explain why someone would ever want to build a robotic drum.

The reason to build a robotic drum is because it is plain super-awesome. It keeps a beat like clockwork. You can slow down and speed up any drum beat with precision and ease. It can even play things a real human drummer could never do.

I intend to use mine for rocking out. The current plan is to program it with different drum beats and play guitar along with it.

I decided to use linear actuators (car door lock motors to be exact), and Arduinos with motor controller shields simply for ease of use and duplication. I am sure there are other more elegant ways to interface with the motors, but this is by far the easiest.

Step 1: Go Get Stuff

You will need:

(x1) Drum set (Amazon)
(x12) Drum sticks (Amazon)
(x12) Car door lock actuator motor (Amazon)
(x6) Arduino Uno (Radioshack #276-128)
(x6) Arduino Motor Shield (Radioshack #276-131)
(x1) 7" x 5" x 3" project enclosure (Radioshack #270-1807)
(x1) European-style terminal strip (Radioshack #274-680)
(x2) 24' spool 18 AWG speaker wire (Radioshack #42-2456)
(x3) Panel mount M-type power socket (Radioshack #274-1563)
(x1) 1/4" mono jack (Radioshack #274-252)
(x1) 1/4" mono plug (Radioshack #274-1536)
(x1) 4" zip tie (Radioshack #278-1632)
(x1) Stranded 22 AWG red and black wire spools (Radioshack #278-1224)
(x1) Assorted shrink tube (Radioshack #278-1611)
(x3) 9V 1.5A power adapters (M-type plugs) (Radioshack #273-356)
(x1) Power strip (Radioshack #61-056)
(x1) 7 socket USB hub (Radioshack #55053562)
(x6) 6' USB A to B cable (Radioshack #55010623)
(x1) 4' x 8' x 1/4" plywood sheet
(x4) 1/2" pipe mounting flange
(x1) 24" x 1/2" threaded pipe
(x1) 18" x 1/2" threaded pipe
(x8) 1/2" pipe L-bracket
(x2) 1/2" pipe T-bracket
(x2) 1" threaded pipe
(x4) 2" threaded pipe
(x4) 2-1/2" threaded pipe
(x2) 3" threaded pipe
(x2) Cymbal stands
(x3) 3/4" x 10' 22 gauge steel hanger strap
(x16) 8 - 1/2" wood screws
(x20) 1/4 x 5" bolts
(x4) 1/4 x 2" bolts
(x1) Box of 1/4 nuts
(x22) 6-32 x 2" nuts and bolts
(x4) 6-32 x 1" nuts and bolts
(x11) 1-1/2" binding posts
(x20) 1-1/2" (1/4" i.d.) spacers
(x18) 4-40 x 1-1.2" nuts and bolts
(x18) 1/4" (1/8" i.d.) spacers

You will also need to download the attached files and laser cut (or cut the old fashioned way) the following:

(x16) Drum brackets
(x6) Cymbal brackets
(x4) Cymbal bracket circle spacers
(x2) Kick drum brackets
Awesome project, and great tutorial. I'd love to make an adaptation of this for my son with cerebral palsy. He uses a switch to activate things like toys and I was wondering if there would be any way to use this simple switch as a way to activate a single bass drum? I'm handy, but not experienced with electrical. Any way to do this using the door lock actuator with a single switch? I'd love the mallet to hit the drum when he hits the switch, and come back when he releases. Any ideas?
<p>Well... This should be a simple problem to solve, but might take some experimenting...<br><br>I believe that the force of striking the drum forced the pedal to spring back on its own (if I remember correctly). However, I sold this off a while back when I moved cross country, so I can't say this for definite.<br><br>If that works, it should be as simple as wiring the motor, the switch, and a 9V - 12V power source in series together.<br><br>In this scenario, (theoretically) tap the button, it strikes it and bounces back. Not sure what would happen if you keep the button held down...<br><br>However, if it does not bounce back, you will need to build a circuit to reverse the motor when the button is released. You could get a momentary DPDT pushbutton switch, and wire it in such a way that when it is pressed it goes forward, and when it is released, the power gets reversed and goes backwards. The tricky bit here is that you would then need another switch that the pedal physically hits to turn off the circuit when it is fully retracted (as not to burn out the motor since it will be constantly powered in reverse when the button is not pressed).<br><br>Basically... you essentially want a useless machine circuit with a pushbutton switch instead of a lever switch... You can learn more about useless machines here:</p><p><a href="https://www.instructables.com/lesson/Switches/">https://www.instructables.com/lesson/Switches/ <br></a></p><p><a href="https://www.instructables.com/lesson/Switches/"></a>Higher tech... you could use an Arduino with a motor shield to sense a button press, then control the motor using the motor shield to engage the motor in one direction and then reverse. Basically, a very simplified version of what I built here.</p>
<p>This is incredible!</p>
<p>wow! such a project!</p><p>one question master: does it interact with dynamics ?</p><p>cheers</p>
<p>Not currently, but I don't see why it couldn't be altered to do so.</p>
<p>How could i implement the dynamics? I'm new to this world....any GENERALS recommendations will be important. </p>
<p>maybe because the door locks aren't so good for that purpose ?..</p>
<p>Is it possible to control the velocity of each drumstick?</p>
<p>Hello to all,<br><br>I am making this robot but I do not manage to program arduino. I bought compatible, the same for the motor shield ( dkelectronics ). Somebody would have programs it? Need particular libraries to be installed? Thank you in advance in all for your help?</p><p>Bonjour &agrave; tous,</p><p>Je suis en train de faire ce robot mais je n'arrive pas &agrave; programmer les arduino. J'ai achet&eacute; des compatibles, idem pour le motor shield (dkelectronics). Quelqu'un aurait il le programme ? Y at-il des biblioth&egrave;ques particuli&egrave;res &agrave; installer ? Merci d'avance &agrave; tous pour votre aide.</p>
<p>my 2 cents: this is a good project, but that motor make too noise. Use instead solenoid with a midi board (higly liquid or similar). </p>
<p>Did you ever get the Arduino programmed? </p>
<p>hi randofo,<br>the arduino is programmed fine it seems. the little orange light blinks according to the sequencer... It just doesnt fire the motors. The motor shield im using is the new adafruit one, different from the one you use. Something must need to be changed in the void setup... any clues would be much appreciated...</p>
<p>Hello. They are by two different manufacturers and likely work differently. There is not a universal motor shield protocol. <br><br>At the very least, the input and ouput pins are presumably different and need to be reassigned. Most likely, the manner in which you trigger the pins could also be different. You should try to control the motors by using/modifying the example code for the Adafruit motor library. </p>
<p>This project is sick. I love it.</p><p>I actually saw this Instructable in like 2013 and tried to build it then but couldn't make it work. But now I have 1 built for the snare drum and it works (so excited). i want to make a battery powered version using a rechargeable lithium ion, 11.1V, 2300 mA battery. my question is if the the code comes with some sort of brownout detection.</p><p>thanks,</p><p>Jon</p>
<p>are you using the new adafruit motorshield?</p>
<p>Hi. No brownout detection. The code is kind of crude. I don't imagine it would be hard to write some. I actually begrudgingly sold off this project when I moved across the country to a smaller apartment. I'm therefor not currently doing any more development on it.<br><br>You should post a picture of what you make! :)</p>
<p>thank you, I have another question: would cutting off 4 inches from the back end of the 5B drumstick affect the performance? (this would leave only about an inch of length behind from where the zip tie is attached) </p><p>I guess i'm wondering if the code incorporates the weight of the back of the drumstick (like physics calculations or something)</p><p>I just want to cut the drumstick to where the bracket is and not extend further like it's currently designed</p><p>sorry for all the questions, I havne't really looked at the code and I don't know how much thought had to be put into it.</p><p>thank you, </p><p>Jonathan</p>
<p>the Max command shows specified serial port not available , what to do?</p>
<p>Can I know how to start Sequencer? It's not working on my Microsoft Windows 8.1</p>
<p>I use Windows 7 and MaxRuntime 5.0.</p><p>Insert sketch in arduino -&gt; connect PC to Arduino (with external power) -&gt; run Max -&gt; open robotdrumsequencer. </p>
<p>Hi there!</p><p>thanks for taking the time to post your work!</p><p>I have built what you have shown us, but mine has bugs like crazy.</p><p>I'll do a little write up but issues include steps being dropped/triggers not responding properly to the information that has been sequenced in the runtime screen.</p><p>At the moment, Max runtime won't even connect with my triggers! The interface looks all janky and stripped down when it's not communicating at all...do you know what I mean by that? I'll post a screen shot when post my conclusions.</p><p>Amanda, unfortunately, hasn't responded to some inquiries I had made via PM about the script and such, whether you guys know about potential bugginess and the like.\</p><p>I'm sure she's quite busy.</p><p>Thanks so much again for sharing!</p><p>Please hit me up!</p><p>JRiNVENTOR</p>
<p>Hi,</p><p>I made one of these awesome robot drummers, at least the one for the snare drum for the beginning. I also found the Arduino code to be buggy. I figured out that the motor direction was in fact reversed (needed to replace HIGH and LOW), and that the serial communication was broken: Here, the term &quot;(Serial.available() &gt; 8)&quot; is the problem, since it wait for 8 bytes (!) pending in the serial line before doing anything. </p><p>I managed to fix these issues and now the robot drums like a charm. However, I changed a lot of stuff in the code, since I am running Linux and I'm using my own software MIDI interface based on ALSA. If you are interested in the code, drop me a line.</p><p>Cheers,</p><p>Igor</p>
<p>Hi Igor, I have the same problem of <a href="https://www.instructables.com/member/jryan5/" rel="nofollow">jryan5</a>. Can you send me your new sketch? I send you also a PM. Please, help me! </p>
<p>hey, did you get a response?</p>
<p>no, but finally I do it! :) <br>Max Runtime work well, you have only to plug-in the pc to arduino BEFORE run the program.</p><p>(sorry for my bad english)</p>
<p>If you have done this, can you tell me how to get started with Sequencer?</p>
<p>How much does this project cost all together?</p>
<p>totally cool. Must digital drum machines have a circuit that adds milllisecond variation so it sounds more human than mechanical. There may be similar variation to this project due to the nature of the materials. regardless, WHAT A COOL BUILD!!!</p>
<p>I tried this, but mine failed, i'm going to learn a bit more about programming before starting again, thanks for the info though</p>
<p>What were your issues?</p>
You, my friend, have way too much time on your hands. I respect that. Anyways, this is awesome.
<p>Great job on this instructable. I have only 1 question&hellip; How much does it cost?</p><p>thank you,</p><p>-Reese</p>
I ran the code on code bender and it would not work, can you please explain how it works.
http://vimeo.com/29007800 <br> <br>http://www.kickstarter.com/projects/164911738/musical-robots-are-ready-for-the-next-octant-relea <br> <br>
<p>I've seen Octant play, up in Portland many years ago. It'd be cool to see some pictures of your kit! <br>(I'm also an old fan of Mocket! I have to assume this is Matt Steinke?)</p>
Hey randofo, <br> <br>First of all I want to thank You for all your very nice Instructables. Everytime I have an idea to create something amazing, I check Instructables if somebody has done it before, and it's usually You :). So was it also with this &quot;drumrobot&quot;. <br> <br>So yesterday I got a used car door lock motor and connected it to my arduino via an L293 H-bridge. I powered the actuator with 12V/max. 2A power supply. It works but it's kind of slow. I programmed the arduino so i can set the &quot;traveltime_down&quot;, &quot;traveltime_up&quot;, &quot;strike_length&quot; and &quot;strike_interval&quot;. If I set the &quot;traveltime_up/down&quot; less then 100ms the actuator barely moves, but it could be enough due to the lever principle. <br>The problem is that if I set the &quot;strike_interval&quot; to 50ms or even less the L293 get's extremely hot (It's just made for 2A max). You're using the motor shield, which is based on the L298 and has the same limitation (2A max) I think. Are you facing the same Problem? Is this the reason why you have two drumsticks each, so you can double the interval? <br> <br>I also saw you're using just a 9V/1500mA power supply for two motor shields/ 4 actuators. So if both actuators are pushing/pulling it is 750mA each. Is this enough? The description on Amazon says it draws 2.6A when pushing/pulling at 12VDC. <br> <br>Sorry for the long text, but I'm pretty new to all this stuff. <br> <br>Thanks <br>
found another robot band recently: Compressorhead! They are super awesome. Can't imagine the amount of effort that must have gone into making them.. <br>http://www.youtube.com/watch?v=3RBSkq-_St8 <br> <br>-Antzy
This is my favorite Staff project of 2012. Nice work Randy and congratulations upon receiving this honor.
Love it!
It can't play faster than Joey Jordison!
Fantastic project - you've mixed two of my favourite hobbies!
thanks randy! this ible turned out awesome, plz bring the drum kit back to the office, I want to install vibration sensitive lights in it!
bring it back or she'll die!
yes! if I don't express my beatboxing I might explode!
&quot;I think a drummer is a pain in the neck&quot; NICE! <br>Nice project and a great video!
Awesome. I've had a dream for a long time to build a robotic system for playing Spanish guitar. I have this on my instructable todo list and may have to promote this one to the top.
Bah Bah <br>Behtarin Instructable :)))))
Awesome! I hope the neighbors like it! :-)

About This Instructable




Bio: My name is Randy and I founded the Instructables Design Studio. I'm also the author of the books 'Simple Bots,' and '62 Projects to ... More »
More by randofo:Custom Print Kimono Mad Scientist Extension Cord DIY Life-Sized Cardboard Cutout 
Add instructable to: