Yellow Drum Machine
Would you like to build your own Yellow Drum Machine? Please read this.
Audiofile Engineering asked me to make a robot like this for them, to be won in a promotional contest. Yellow Drum Machine II is done now, and it can be found here.
If the google-videos of this robot is down, here is an excact copy, take that, Google :)
.. There is always more fun to do with this robot, but for now I will just mark it "complete" in the current version, hope you enjoy it.
Notice how the robot first plays on the object it finds (or is forced to find by the angry cameraman), plays a small beat, and records the beat it plays on it. Then this recorded beat is played again, and it starts to play on the object (an belt tracks and everything else it has),and also playing this sampled beat :)
Also some videos from construction and tuning-time..
What it does? Basically:
- Navigate around, collect some data, avoid obstacles, until it
- Finds something "worth playing on" (a single isolated object or a wide flat surface that it can find an angle onto)
- Snakes into place
- Plays some beats on what it have found, and samples this, checking it has a "good sound"
- Based on data collected in the area, and sample just made, then compose a little rhythm, and plays this along with the sample
Why? Well.. I was sitting thinking what I should do for my next robot, what it should do.. Listening to music.. making a rythm with some robot-parts.. Thought; "Hey, I will make a robot that drives around and plays on stuff"

It is just made with sticks mounted very fast with a melt glue gun. But it is really solid still.

Under neath is speaker and a microphone.
The speaker is used for beeps from the microcontroller, and to make click-sounds to the beat. The click-sounds are simply made by setting a pin high and then low straight after each oter. This way I can have the Microcontroller make sound to the music it is also playing, without using any time / causing delay.
The microphone (located on the stick between the two motors) is used to sample sounds and take input, measuring if the sticks are hitting anything or not.
Also it can be used to detect a foot stumping on the floor or someone clapping, and so the robot can find the speed of this after four beats, and play along / fall in to your clapping or stumping.
And.. It can be used when there are kids playing with the robot; Signals "Record", the kids shout, and the robot then plays music / a beat with their shouting as a part of "the music" :)

This robot is made interely without servos. The drumsticks (The "Bass Drum" on the picture) are just these litle geared motors that I am quite fond of.

At the top there is another speaker. It is quite too large, I know, but I thought it looked cool :D Also because it is so torn and twisted, as I could not get it out of it´s old cabinet. On the top-speaker there is a red LED. It lights when the robot is recording, and gives a small blink when it is playing back a sample.

As said above, there is no servo on this robot. The head is also using the little motors from solarbotics. It was, however necessary to use some very thin wire to connect the SRF05, as it otherwise would sort of jam the head now and then if I was using my standard blue wire.
It was quite a fun challenge to make the rather complicated navigation and not having a servo, but only left /right/front to place the head, and then do the rest with the body.
The navigation is complicated because it is not just a matter of navigating around obstacles - that was the easy part. Second the robot has to find good places to drum; A single, isolated object, or a flat wall. Then the robot has to place itself on a good angle to the wall, or straight infront of the object.. All with only L/R/F with the head ;) But it does it quite well now! I am usually amazed of what it finds to play on, when I just let it drive around.

The robot runs for ever on just 4 cells. It must be because the belt-tracks are so geared that there is no strain on the motors.. And no servos, and the sampler takes nothing either.. I dont know, I just know that it runs for hours, more than my wife can stand to listen to - on one charge :D

In the center of this image is a L293D Motor driver. It is just used to enable the head to turn both ways.
Notice how easy it is to mount stuff with this glue; I just thought it would look good there on the side. Put some glue on, and stick it there. Hey, the cables are dangling.. Well.. press then onto the wood, and add a line of glue, bingo!
There is a blue print sticking out behind the wood from a cheese-container ;) That is "the sampler". It is actually this
- And it is just hacked; I took off the switches, and now the microcontroller can record and playback sounds.

- As almost always; Picaxe 28X1 mounted on a standard board. So fast, so effective!!

I think the biggest advantege with building fast as I do (instead of measuring and drawing) - is that you get cooler designs! Lot more soul in this one, than a robot I would make if I was to draw it first..

I know nothing is straight or even or level etc.. But who gives? It is made to play the drums, not to have straight lines :) And trust me; it IS actually quite solid. I will not try, but I am sure it could withstand to be dropped from a table without any harm done.. And if not, it is REALLY fast to fix it again!


Basic construction-materials..
Thanks for listening!
Any questions? If not, then let´s get funky :D


Brilliant
another one of those..
added to the list of things that i'd like to have crawling around my house just because they'd make me laugh every time I saw em.
awesome
I'm loving it!
Thanks :) / Frits
Thanks :)
/ Frits
...
I for one will welcome our new beat bearing overlords!
-V
I like how the speaker is
I like how the speaker is rising up like a tower on the middle. Looks kinda steampunk, like if it would be a steam powered tank.
I still don't understand how you got away without servos though. How do you know the ultra sonic sensor is right angeled? Do you use encoders or something like that?
Thanks :)Regarding "how to
Thanks :)
Regarding "how to do it without servos"; I am using this motor: http://letsmakerobots.com/node/90
If you just use it without altering it, it cannot turn around; It can only turn left/right - and when no power, it is faced forward (that´s how I mounted it: no power=face forward, there is a spring in it, it goes back into place when no power)
Then what I can get is distance straight forward, in some left and right angle.. And that is enough.
The robot has 2 navigating-modes: one for driving around, avoiding stuff, and one for lining up to what it should play on.
The last part is, as written elsewhere the hardest. But what I do in that mode is roughly:
"Look all 3 directions, estimate where to turn / slide to"
"Slide less, the less reason / more, the more reason / difference in L/R"
"If we have been sliding left/right/left/right (or starting with right) (so no left/right/left/left/right etc - and we keep getting closer) - well then we assume we are on a good angle, so f*** it, let´s drive ahead till sensor says we´re extremely close, and then give a little extra"
Sorry for the long answer - but if this is long then please don't ask me how to coordinate that all the sticks and the sample and the speaker-click all hit at the same beat!! (they do not have the same speed, and to make music, they must hit at exactly the right time, over and again!) :D
/ Frits
That's great!
Thanks, and welcome :)For
Thanks, and welcome :)
For coding examples, please look around at the site. This one tends to be quite popular for a first-time: http://letsmakerobots.com/node/17
RANDOM?? Sorry, but you are offending my religion here :) (http://letsmakerobots.com/node/67#comment-103)
Of course it is - as a resoult - random. But i do NOT use the "Random"-functions in the code, and i try NOT to just take "random numbers, such as "distance" etc.
I am getting deep now, if you have a life you can move on to something more interesting :)
I love the logic to be "perfect", I want the robot to do excactly the same again, if it was placed in excactly the same soroundings. And I want it to be so sensitive to it´s sorroundings that this never will happen.
That way - to me - the robot is some kind of a mirror to the situation it is in - as are we all in my belief.
So.. it should never be a matter of "when it was turned on", or "how far it got in the code", when a robot of mine should act autonomous. It should allways be a matter of the sorroundings, the data collected so far.
I want my robots to have "a will of their own", but I want this to be an excact resoult of the situation it was put in.
The beats are - however - semi-pre-made. Just as the navigation is semi-pre-thought; you decide that it should not just drive into a wall (unless it is for playing it), but you do not decide weather it should turn left or right when facing the wall. That descission is up to how things are looking to the left / right, and where we just came from, and where we are trying to get, and what we are doing now as well (are we reversing, for instance).
Same way with the beats; There are rules to what is "good behaviour", what makes a good beat. There are "examples", and there are setup to make everything play in sync. There is input; how does it sound when sampling, and there is such things as speed, shuffle and combinations, that are put together based upon inputs made when we got to this particular place to drum.
So.. basically and in reality it isjust completely random.. But I know "in my heart" that it is not; there are reasons - But I cannot predict what it will play.
When superman get´s drunk, bad things happen - and when someone asks me to something i feel for, I cannot stop, sorry, this post could get way looong :)
/ Frits
I don't want to sound like a hoe...
...but... could we get the code? I would love to see how it can "find" a single object in a room and the sound sample thing..
-Thanks
www.rocketbrandcustom.com baby!!
Love it....
This is just too cool and a a great laugh :D
This is really great! Thanks for the video, I laugh and smile every time I watch it. The whole idea is so innovative and inspiring. My favorite is the rythmic sonar ... reminds me of a brush on a hi-hat "hick-shick-shick" ... then the "bass" drum ... wonderful!
Jay
THANK YOU ALL!! :DThank you
THANK YOU ALL!! :D
Thank you so very much for your very inspiring and kind comments!! Really a pleasure having a hobby then - you know wives and girlfriends just do not seam to appreciate a drumming robot that much ;D
Regarding this being a toy; Yes, thanks for the idea, it is good. As written somewhere else, you can also "sing / shout" to it, when it is recording, and kids seam to love that, as it then plaus back their (naughty?) shouts in a song, clapping along etc..
Chris, regarding the code: No problem I will mail it to you personally. But I would hate to post it, and I am not sure you can get so much out of it. Reason; It is so many tasks (keeping beat in a pic which is "impossible" so strange coding is needed, making songs, tracking objects or walls, mixing up songs, and ordinary obsticle-avoiding - but without a servo, using the ins as outs, and controlling the "sampler-board" which has it´s strange parts) - all purposly mixed into each others routines.. So you will see a loong code (commented in danish), with one variable set in another routine all the time, to make it work. Sorry :)
/ Frits
Code
Frits,
I would love to get a copy of your code also. I have built several small robots over the years and have seen a few musical versions that I often thought of experimenting with. The aircraft in the background - is that a Diamond? I am currently building a Waiex.
Thanks, Dan
OK, I will also send the code to you, Dangre..
OK, I will also send the code to you, Dangre..
But.. Guys: It would be so much easier if you would just start up your projects, and "Share it" (Top right corner of this web when logged in)
I am pretty sure that I can help you with the code etc if you just have your project with it´s problems and tasks in there.
..And I am pretty sure that you will not benefit from recieving the 200 miles of code from a project such as YDM..
Also you should look here: Don't program your robot.. Teach it!
/ Frits
code
I *adore* this robot... I
I *adore* this robot... I want to start building one right now!
It reminds me a little of this, nice to know that robots with speaker hats and drumstick hands aren't complete fantasy. :)
Thank you..
I think he might play a slow, lonesome bossa nova to you on the next full moon :)
Anyway, this I imagine to be human-sized. I would really hate to have Yellow Drum Machine in human-size in my house: Baseball-bat and a sewer-pipe, bashing rocknroll :D GET OUT, you robot-you! And try not to get funky on your way!!
Thanks :)
/ Frits
PS: you could make one yourself :)
Im convinced
Cool, thanks :)For shops,
Cool, thanks :)
For shops, please read here:
http://letsmakerobots.com/node/213
I hope that you will share what you will be working on, thanks.
/ Frits
Your playful, positive
Thank you.
Are you building something?
/ Frits
Great idea and execution
Where can I buy one?
This is absolutely fantastic, I love it! I think it's the first time I've ever seen a truly 'fun' robot, and you have inspired me to try to make my own.
Having never made a robot though, nor knowing anything regarding coding, it may be a bit of an uphill struggle, but I'm sure your fantastic blog will help me get there.
Otherwise, where can I buy one of these little fella's? jk, but you should seriously consider approaching a toy manufacturer with your design, I think these would be incredibly popular. Also, if no-one has made anything similar before the Yellow Drum Machine, I think you should definitely patent it. I wouldn't be surprised if one of the big toy manufacturers is stealing your idea as I type!
Keep up the good work, and if I do ever get around to making one, I'll e-mail you the results.
Oh, and also, I love the silhouette photo's, they make me think of Johnny 5.
Thank you so very much for
Thank you so very much for all the "support" and very kind words :)
I really do hope that you try to build your own; It is fun and easy! - And yes, make sure to share your progress and problems with the rest of us!
You are one of a million that tells me to go to toy-manufacturers etc with the robots (specially YDM). But as allways I must say that I have spend much time in my life trying to sell "my great ideas" to such companies, and they just have a wall of defence. Every day they get calls from people who think they have made the next wonder..
Patent - well, been there, done that. I have a patent in China and the US - on some software - but I have found out that apart from being really expansive and time-consuming to get, it does not sell your product any more, so you are back to square one, now you just paid for it ;)
So I am just a happy inventor in general. Robots are just one of _many_ hobbies. Happy because I know that I can just go on and invent, it does not have to be a complicated problem, even if I make some great stuff.. I just throw it up on a web-page or something, give it to somebody, and it makes people happy, and that is fine by me. I just love inventing stuff, and if I can even make someone happy then.. :)
Of course - as allways; Should there be anyone with a rich uncle, or someone in the toy-industry or anybody else with a bag of money who likes what I do, well.. Let's talk :)
Till that happens; Let's have fun, Let's just make robots, I think it is much more fun that way, and we only live once, so let's do it :)
Thanks again.
/ Frits
cool robot..
hello...
its my first time on the site, read every part of it!.. i have never built a robot, but after watching this thing, im giving a try.. i am sure i can get ur help when it come to coding since i havent even done it..
im also into rc racing, so parts and stuff shouldn t be a problem..
i was wondering if anyone has done a robot that knows when it needs power and goes to get power from a specified source? i mean it has a fixed point where is gets energy and when it needs it finds it by is own.. i hope im not being unrealistic..
see you guys,, and keep up the god robots!
warren
Hi and welcome :)I am sure
Hi and welcome :)
I am sure we manage the coding!
It is absolutely possible to make a "homing robot" that finds it way back to the base and re-charges. I know so because they are out there. Though I have no clue how to make such a thing I am sure there are others who can help us :)
/ Frits
I love this so much...
... I'm crying because I don't have a little drumming robot of my own :(
That is really much! I am
That is really much! I am feeling sorry for you. I can help you make one?
/ Frits
Hey, Frits. I was looking
Hey, Frits. I was looking through my robots parts bin, and I realized that I've actually got almost all of the same parts as you used to build YDM -- I've got some Solarbotics GM3 and GM10 motors, and the Solarbotics tank treads, and even one of those little sampling devices with the microphone and speaker that I bought a while back and never did anything with. So I decided that I really want to build a YDM of my own :) I was just curious if you have any problem with that. Also, if you're fine with it, would you mind sharing your YDM code with me? I think I can handle building the hardware to work similar to yours (thanks to your very clear pictures) but it would take me forever to replicate the behavior from scratch. What do you think? I'd love to have a little YDM of my own running around and bashing on stuff :)
Dan