I love robots. Normally the ones I build are quite large and wouldn't fit in your pocket, but for a change of pace I decided I would try something small and fun! This robot is exactly that, and in fact fits inside of an altoids tin. It is inexpensive, versatile (so many different sensors can be used), and extremely entertaining. Check it out in action below! (Unfortunately I played with mine so much before I took any video I had used up my coin cell batteries and one motor started having issues, so I'm driving it with a 9V in the video)

The project takes some time but teaches a lot about motor controllers, the ATMega chip, and soldering. The most fun thing was picking the different sensors and writing programs to have it react (only two of my four are shown in the video), as you can give the robot lots of 'personality' that way. Never a dull moment when you have this guy in your pocket!

Step 1: Parts List

Picture of Parts List
Since this project is one that has many different possibilities I'll mainly discuss the essential parts.

1 x Arduino (preferably UNO)
1 x ATmega328 chip (other versions work too, more on this later. You'll most likely want one with a preloaded bootloader)
1 x 28 pin DIP socket (holds the ATMega, not absolutely necessary but you really should have it)
1 x 5v Regulator (L7805)
2 x 10 uf Capacitors
1 x 16Mhz Ceramic Resonator (a 16Mhz crystal works too, but you will need additional capacitors which take up space.
1 x pcb board (got a small one that fit in an altoid tin from radioshack for a few bucks)
1 x breadboard (to test the circuit)
2 x motors (I used pager motors with planetary gear boxes from robotshop.com)
2 x wheels (also got these from robotshop.com, but you can use whatever works)
1 x L293D (motor driver chip, which is necessary if you will be using motors)
1 x pushbutton (my code revolved around this thing, definitely useful)
Wires! Will need a lot to breadboard and solder.
Coin cell batteries (these keep the size small enough to fit in the altoids tin)

Fun Extras:
2 x photoresistors (lots of fun programs you can write for these)
2 x RGB LED's (gives it the personality!)
1 x mic element (lets it listen and react to sound)
Anything you think would be cool! I wanted to add sound, but sadly didn't have enough space left for a tiny piezo speaker.

Tools: clippers, soldering iron, perhaps a friend to help hold wires
DanC124 months ago

Today I went to jc penny

yhdesai6 months ago


I like the design, I am making a small robot with head lights which automatically turn on when it is dark. Any advise?
use LDR
chernani1 year ago
broken link in Brasil..
ausom haha
vincemarz1 year ago
does your program include the piezo in it or do we have to add it ourselves? i looked over the program and couldnt find any mention of it and wanted to check
Patrick S (author)  vincemarz1 year ago
I didn't add the piezo in mine, I was just giving the idea. I have some sample code for one in my VIA project so you can check there if you'd like!
vincemarz1 year ago
here do you get a piezo with three leads? or does like the analog pin connect to the negative pin or something?
you could use the MSP4302353 (launchpad) instead of the ATmega328. The MSP430 uses less power than the ATmega. And the MSP430 is also cheaper as an Arduino. But it has an Arduino compatible IDE. i hope this is somme useful information to you.
Hmm I haven't heard of it, I'll check it out. Thanks for the info.
Energia started out to bring the Wiring and Arduino framework to the Texas Instruments MSP430 LaunchPad.
your welcome :)
TREX ZoaR0K2 years ago
ok im kinda new to this so the microcontroller controls how much electricity is sent to each component by taking the information from the sensors like when 3in from wall reverse motor 1? just so you know I am new to this and not very old
Patrick S (author)  TREX ZoaR0K2 years ago
Yea, kinda! Take a look at this document here: http://www.howstuffworks.com/microcontroller.htm

Should hopefully answer your questions!
giacky982 years ago
No I'm planning to buy them but I need very small motors because I'm trying to build a robot that has a base size of 3x3cm, and I can't find any "gear-boxed" motor that isn't longer than 1.5cm (half the lenght of the platform)... but I've found some 1.2cm-long DC motors and I was planning to use them, but they haven't got a gearbox... that's the problem! :)
Patrick S (author)  giacky982 years ago
Ooh yeah it says the ones I have are about 2cm... Do you want them less than 1.5cm so you can run them directly next to each other (in a line)? On a lot of small robots you'll see motors run one in front of the other just to save space, so you could consider that and it would open up more options! Anyways best of luck, sounds like a fun project!
giacky982 years ago
Hi, I'm building a very small robot that uses (obviously) very small DC motors. There's no space for a gearbox to slow down the speed so I was thinking if is it possible to attach the wheels directly to the motors and then controlling them using PWM. Do you think that it will work?
Patrick S (author)  giacky982 years ago
Great question! It could work, the problem would be that without a gearbox the motor spins very fast but has very little torque and so may not be able to push the robot and you could possibly burn out the motor. Since your robot is so light it might still work without a gearbox. You could do a little testing. I'm guessing you don't want to have to buy motors? Because the ones I used are quite tiny and have a gearbox pre-made on them.
Try installing a bumper switch on the front and back so when it hits a wall it will change the direction of the drive motor. Really cool robot though!
Patrick S (author)  WillieWickedly2 years ago
Yeah I pondered that with a button, but the robot couldn't generate enough force to press a button and there wasn't enough space for anything larger. That would be super cool though!
How about a limit switch? The following link shows a large one but they come in smaller packages: http://www.vexrobotics.com/276-2174.html. Extend the arm to increase torque so you won't need much force.
Mic1002 years ago
nice job
in futur you can add an IR sensor lake IS471F it very usefull (avoid obstacle at 4-5cm)
and simple to connect
What are the photoresitors for?
Patrick S (author)  cartergalbreath2 years ago
In part of my program I had a mode where the level of light on each side of the robot would control the corresponding motor, so you could steer it by making shadows. Unfortunately I didn't have it working when I made the video because I had to go back and re-solder a few components.
Very cool! Way to go!
Nice job! I voted.
Patrick S (author)  stringstretcher2 years ago
That's awesome, you should make a plastic chassis for it!
Patrick S (author)  simplebotics2 years ago
I was thinking that very thing! I'll just need to get my hands on a 3d printer.
How about some lexan and a dremel? Also, how would you feel if I wrote about this robot on my robotics site, http://www.simplebotics.blogspot.com?
Patrick S (author)  simplebotics2 years ago
Ooh I just looked that up (never heard of it before) and yeah that might work, I'll check it out. That'd be great, go for it!
Is it alright if I use one of your pictures?
Patrick S (author)  simplebotics2 years ago
Yeah, no problem.
Holcan2 years ago
I can find all the materials in a radio shak? Im new in building electronical stuf :(
Patrick S (author)  Holcan2 years ago
Yeah you should be able to get everything but the motors, the atmega328 chip, and the L293D chip. I got everything from robotshop.com though, so it's all available there for sure!