Let's Make Robots!

PhilBot (Aspiring Phil Collins Robot)

Drives around and finds something to drum on, while avoiding walls.

After seeing so many great drumming robots on LMR, I figured it was time for me to build one of my very own. I have never built a robot, or done anything quite like this, so this will be a learning process. I bought an Arduino a month or so back after reading about it constantly in my favorite magazine, MAKE. With a little help from TheCowGod, who also used the Arduino in his drumming robot, I have put together the start of PhilBot.

The brains

I also picked up a motor shield for the Arduino from Adafruit. It is a great way to use the Arduino to control multiple motors, and servos. It offers a lot of simple code to make the most out of your motors and servos. I used the body design of Brandon from Society of Robot. I used the same motor and motor mounts as well.

The body

This morning I spent some time in front of the band saw and drill press and built the body. It was pretty quick and painless, and cleaned it all up with a bench sander. Overall, I am very pleased with the way it turned out.

I decided that before I worry about drumming, I need to get this thing to drive around, avoid walls, and find objects to drum on.

I bolted everything together and ran some code that I had written ahead of time. I am not happy with the wheels I have, but it is really hard to find wheels that will work well with a 3mm motor axel. I will probably have to fabricate something myself. I also quickly realized that my "looking" servo is far too slow. For the most part, PhilBot ran pretty well for its maiden voyage with all new code. There is still plenty of work to do, but he seemed to at least stay away from walls and obstacles, yet found a few things to drum on.

Coming Together

I got my new servo this morning. I picked up the Hitec HS-81 servo. This was nice and cheap ($15 at my local hobby shop), and it is fast! I cut a (somewhat sloppy) hole into the surface so the servo sits nicely inside and tapped some holes for a couple screws to hold it in place. After letting Philbot run around a bit, it quickly became obvious that my slow servo was the cause for a lot of the problems I was having before. Now it is time to fidget with the code...

 Bass Drum!

I ran out of room for another motor on my motor controller (only 4, 2 for front drums, 2 for wheels).  So, I am using the extra servo slot I have for the bass drum.  I am also going to use the bass drum as my third leg while I am not drumming.  When I find something to drum on, I will lift up the leg, the robot rear end will sit on a couple rubber feet, and it will turn into a drum.  I don't know if it will work yet, as I am waiting for the JB Weld to cure.  The ball is actually a top that you spin.  I stuck the dowel end into a hollow aluminum pole.  Also notice my new flat battery (6V 1000 mAh) that will fit nicely in between the two layers to run the motors/servos.  Oh, and one more thing.  The drive shafts will be trimmed down, just haven't gotten there yet, nor do I know if I am going keep these wheels...but I don't have any other options for a 3mm axel.  More photos and hopefully a video once I get the two drumsticks installed and the code a little more fine tuned...

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.
Uh, kind of odd but i want to find out how u programmed(whatever part you programmed) the bot, so could plz post the code?

Hey - just thought about this; You will get a hard time getting your bot facing a flat surface in line - when your front is rounded! (Will get hard to face what to drum in the right angle)

- A (square) bumper could fix this :)

/ Fritsl

Frits, I had thought about that.  I will probably do something like a front bumper.  It will bring the drumsticks forward, and it would also be nice to have a bump switch up front just in case the sonar doesn't pick up the wall.  I am getting closer with the code to having the robot find objects, but there is still a long way to go.

I'm working on a bot right now (Blind Lemon), which is also round with two drive wheels mounted along the central axis. Because Lemon's only sensor is a front mounted bumper switch, I found that when it runs into a flat surface like a wall or a box, it tends to automatically set itself square to the wall and then trigger the bumper.

Not by design, but it worked. Maybe you could play around with that in your code. When you sense something in front of the bot, allow it to keep driving forward for a few seconds and see if yours squares up to the wall as well.

Nice looking bot. Good luck!

Smooth! So much order & slickness! Everything is clean & transparent :D

Thanks for sharing! Looking forward!!

/ Fritsl

very nice start, i see that will come a greath robot from that =D

keep going ^_^