This Instructable will teach you how to create magnetic robots that traverse vertical surfaces. These robots can move on any metallic walls, including elevators, whiteboards, refrigerators or metal doors.

The robots are outfitted with several light sensors, allowing them to respond to simple user interactions. My implementation supports 3 robot 'personalities', which can be changed by covering the topmost light sensor:
Red robots move fast, going towards objects (such as human hands or other robots)
Green robots move slower, turning away from objects
Yellow robots move the slowest, and stop completely when motion or objects are detected

This instructable details my first prototype. In the future I plan to build in more complex, autonomous behaviors. I will use these robots to engage people in public spaces such as elevators or hallways. In doing so, I hope to facilitate creative interaction between people and technology in mundane, everyday settings.

Stacey Kuznetsov
Human Computer Interaction Institute
Carnegie Mellon University

for Making Things Interactive, Spring '09

*** UPDATE ***
I recently made another version of this project using continuous servo's from sparkfun and a custom-cut PCB. The new robot is much much sturdier:

Step 1: Gather Materials

To make one robot, you will need:

2 servo motors http://www.rctoys.com/rc-toys-and-parts/DF-SRV-6G/RC-PARTS-DRAGANFLY-SERVOS.html?utm_source=googlebase_froogle&utm_medium=US&utm_term=DF-SRV-6G
4 light sensors http://www.goldmine-elec-products.com/prodinfo.asp?number=G14025
4 2.2 K resistors
4 10K resistors
1 100 ohm resistors
1 Arduino Mini http://www.arduino.cc/en/Main/ArduinoBoardMini
6 magnetic disks http://www.kjmagnetics.com/proddetail.asp?prod=R8201
1 RGB LED http://www.superbrightleds.com/pdfs/RGB-1WS.pdf
1 lightweight Battery http://www.sparkfun.com/commerce/product_info.php?products_id=731
Some hard wire (not easily bendable)
Electric Tape
Shrink Tubing
Cardboard or paper
Hot glue or epoxy

You will also need access to:
Soldering Iron
Hot glue gun (or epoxy)
Wire Cutters
Exacto Knife
<p>Super cool! You could also have add-ons for the white board like markers and erasers!;)</p>
<p>Neat gizmo! Did you consider, rather than using magnets as wheels, using rubber wheels for traction and mounting neodymium magnets on the bottom of the robot - so close to the level of the surface that the magnetic force would be strong enough to hold the robot to a vertical surface? That seems to me a better solution. I would think that having the magnets make direct contact with the surface, would make them difficult to turn, slow, and not provide enough traction. Just a thought.</p><p>Also, the circuit is a rat's nest of wires. Why not make a small PCB?</p><p>Overall, nice project! :)</p>
Amazing I am going to build this soon
just wanna ask if you have any programs on the part of arduino...
Very nice and good instructables for how to hack mini servo to <br>Thacks :)
I'm not great at electronics, but most of this makes sense and it looks awesome :)<br>BUT anyone know how I'd go about using a picaxe instead of arduino? Thanks muchly :)
It'd be nifty to have them clean yer windows; one on each side, like them aquarium magnets. Switch out the marker tail for a squeegie and Windex.
This is awesome! Absolutely loved the second version of the robots. How do you make them to follow a person/object? Thanks for your time!
Very nice I will be making this soon.
Wow! This is incredible! Do you sell 1 of each one?
you sir are a modern Mozart! BRAVO!
It would be better if yellow robots would bite your hand instead :)
These things are so cute! I think it's a travesty that this one wasn't "featured". BTW, How much does one cost? Also, since they travel on whiteboards, it could be fun to give them a marker "tail" so they make designs in their travels.
I love the marker tail idea! That would be so cute. Cost wise: the servos he uses are $10 each. An arduino like his is in the range of $20. Add headers (the connectors), the leds and photocells, and shipping, and I would say that each one cost him around $70. I could make it quite a bit cheaper though, just by using a different microcontroller and buying cheaper servos in bulk.
the opposite would be fun too - add an eraser and these would be like the Roomba robotic vacuums, but for the whiteboard. Turn them on when you leave at night and come in to a clean board in the morning!
lol. Wow this is a fun thread to be participating in! Given the processing power of arduino, I would get some proximity sensors and maybe a compass sensor, so that this thing can go up until it senses the edge, turn to the right and go for a bit, then go down and do the next row, and so on. Only thing is that you would need to install a ledge at the top much like the one on the bottom that holds the markers.
I recently made another version of this using continuous servo's from sparkfun (<a href="http://www.sparkfun.com/commerce/product_info.php?products_id=9347" rel="nofollow">http://www.sparkfun.com/commerce/product_info.php?products_id=9347</a>&nbsp;- $13)<br> <br> Some <a href="http://picasaweb.google.com/stacey.kuznetsov/Wallbots?feat=directlink" rel="nofollow">pictures here</a><br> <br> And a <a href="http://www.youtube.com/watch?v=DtwVwc91XYs" rel="nofollow">demo video<br> <br> I</a>&nbsp;used a custom-cut PCP, which cost me $89 for about 20ish boards?<br> So I think the price per one is<br> $26 for servos<br> $5 magnets<br> $20 arduino<br> $5 for the custom cut board<br> $2-3 for wires, LED's, resistors, etc<br> <br> So about $60 just for the robot itself. Then, the price goes up depending on what sensors/lights/etc you put on it. Photocells are less than a dollar, so &nbsp;is a hall effect sensor- which you can use to detect when the robot is about to climb off a magnetic surface.<br> <br> <br>
perfect timing, posting that video. I must say, using the hall effect sensor as you have just described is pretty genius. I had not thought of that. I am definitely going to be making something like this bot in the future, as soon as I can clear some time to do so. I would make the pcbs by hand, and I use the raw atemega chip + oscillator right on the pcb to save money. Not much to say for the servos. Also helps that I have a fully stocked workshop for everything else.
how do you print your own pcb?
There are some great instructables here for home etching pcbs. I'm working on getting access to a CNC mill (also some great instructables here for that), but right now I use the toner transfer method and chemicals.
http://www.dealextreme.com/details.dx/sku.35764 Good little miniture servo that might be helpful
I like the marker idea. If you could use a smart board like Mimeo, that my ex, an art teacher uses, you could have them create art and 'save' it to your computer.
If you added a larger flat magnet in the middle of the robot it would give you a bit more weight to play with(just need to be careful of slippage). Good show though :-)
how exactly would u upload the code the the control circuit and is there anyway for u to make a "kit" that other people could buy
Yea i have a pcb, and bunch of extra boards i printed back in the day. it's pretty easy to put together
I've read in many projects about the &quot;how&quot; of hacking servos, but I&nbsp;don't really get the &quot;why.&quot; Why is it better to hack a servo than just buy a (cheaper) motor that already allows for full rotation?<br /> Thanks for taking the time to educate me.<br /> - Russ<br />
Servos are an easier alternative to using dc motors such as hobby or gear motors. They feature a built in gearbox and drive circuitry. Say a servo costs 10 bucks. If you get a hobby motor for $1 , you still need gears and drive circuitry. The common L293D dual motor drive chip (aka dual half bridge) costs about 5 bucks. Not to mention this requires more pins of your microcontroller (like arduino) vs. a servo only requiring one. A gear motor (with a built in gear box) will typically cost more than a servo itself. So... servos are quick, cheap(er), and are generally more convenient. In a project like this, there's no space to build 2 gearboxes with about a 120:1 gear ratio each. It also leaves a lot less room for error. I can't tell you how many robots I've built where the fatal error was an ever so tiny flaw in the gear train.
Becouse it has got already build in drive transfer and you only mount wheels when you hack servo.<br />
They look like moving led stop/street lights
It would be fascinating to have a LED at the back of each robot and give them an occasional light homing behaviour. You could than have a 'crocodile' of magnetic minibots.
So now we can move this project into swarm robotics with infrared leds and recievers as the primary form of communication.
Well done!
I think its awesome
Well done!
I love it! Can you make a kit for it?
you should enter this into the arduino contest
do you sell them i wanna buy 2 of them
what changes would need to be made if u were to use LEDs for the light sensors? (due to me only having one LDR). i understand the LED wouldnt be a very good light sensor but it can be one aparenty :)
You can't use an LED in place of an LDR, an LED only emits light, it cannot detect it.
actually it can. even tho its not made to do so. its prolly not that good at it tho, but they have been used in applications like LED tables that react to movement, the LEDs that are used as the sensors are used in between the ones that give light. check the arduino site, there are examples.
You should use a board to mount the electronics. You will use less wire, it will be more robust and possibly take up less space.
It's fine for a prototype, but yeah, a custom PCB would be most excellent.
kool looks like the kind of code i need for my R2 :3

About This Instructable




More by staceyk:Arduino PCR (thermal cycler) for under $85 DIY Projects, Communities and Cultures Air quality balloons 
Add instructable to: