This was a quick weekend project, inspired by some YouTube videos.


Three small servos, stuck together with double-sided tape, form the body of the bot. Two servos point upwards and the centre one points forwards. Hot-glue connects the galvanised wire legs to the servo horns. The parts are small, so use a small hot-glue gun if you have one. Hot-glue and double-sided tape are strong enough for the bot, but not so strong that the parts can’t be disassembled and re-used.

The robot walks by pushing the middle leg down on one side, then using the servo on the opposite side to swing the body of the robot forwards. The servo on the near side also rotates in the same direction at the same time, so as to be in position for the next step.

To turn the bot, the top servos are rotated in opposite directions during each half cycle.

A standard Arduino is far too big for this bot, however, an Arduino Pro Mini is smaller than the back of the bot (18mm x 33mm). The Pro Mini is a full featured Arduino, but without the USB interface. To program this board you also need an FTDI adapter like the Sparkfun FTDI breakout. There is no connector on the Arduino, but you can just hold the header pins on the FTDI breakout against the holes along the end of the Arduino.

The Arduino Pro Mini I had was the 5V version. Lacking a boost converter to turn the 3.7V battery into 5V, I tried wiring the battery directly to the Arduino and everything worked. The 110mAh battery I used is tiny and fits underneath the bot.

An infra-red LED and infra-red photo-transistor form the obstacle detector. The photo-transistor is wired with its emitter to ground and its collector to Vcc, via a 5.5k resistor. The Arduino measures the voltage across the photo-transistor. There is a fair amount of ambient infra-red light, so the bot measures the voltage on the photo-transistor with the LED turned off, then again with it turned on. If the voltages are much different, it’s time to turn. In a sunlit room, a black paper tube to shield the sides of the photo-transistor will make detection more reliable.


If you live in New Zealand MindKits and Nicegear are good sources for this stuff.

The Arduino sketch can be downloaded from or cloned from the bitbucket repo