Capable of speeds exceeding 3 feet per second, 3pi is a great first robot for ambitious beginners and a perfect second robot for those looking to move up from non-programmable or slower beginner robots.
The 3pi robot is designed to excel in line-following and maze-solving competitions. It has a small size (9.5 cm/3.7" diameter, 83 g/2.9 oz without batteries) and takes just four AAA cells (not included), while a unique power system runs the motors at a constant 9.25 V independent of the battery charge level. The regulated voltage allows the 3pi to reach speeds up to 100 cm/second while making precise turns and spins that don’t vary with the battery voltage.
The 3pi robot makes a great platform for people with C programming experience to learn robotics, and it is a fun environment for ambitious beginners to learn C programming. At its heart is an Atmel ATmega168 microcontroller running at 20 MHz with 16KB of flash program memory and 1KB data memory, enough space to run complicated programs. An extra 512 bytes of persistent flash memory is provided on the microcontroller for data logging or long-term learning applications. The popular, free GNU C/C++ compiler works perfectly with the 3pi, Atmel’s AVR Studio provides a comfortable development environment, and an extensive set of libraries provided by Pololu makes it a breeze to interface with all of the integrated hardware. The 3pi is also compatible with the popular Arduino development platform. We provide a number of sample programs to show how to use the various 3pi components, as well as how to perform more complex behaviors such as line following and maze solving.
The diagrams below highlight the important features of the 3pi.
For instructions on setting up and programming the 3pi, including sample code, contest ideas, and more, see 3pi User Guide in Downloads.
An external AVR ISP programmer such as the Orangutan USB programmer is required to program the 3pi.
The 3pi is powered by 4 AAA batteries, which are not included. We recommend rechargeable NiMH cells, which may be purchased here
One expansion kit features cutouts that let you view the LCD below and allow you to reach the power button, reset button, and ISP programming header on the base. The other expansion kit has no cutouts and instead replaces the LCD, giving you access to more I/O lines and more prototyping space. These kits can be purchased with PCBs that have either black or red solder masks; the pictures below show the black versions.
A Video Introduction to the 3pi
To see for yourself what the 3pi is like, please take a look at the video below, which introduces its basic features and operation.
More Pictures and Videos of the 3pi Robot:
The following video shows a 3pi prototype autonomously solving a line maze. It first runs through the maze executing a search algorithm, keeping track of which way it is turning at intersections and discarding paths that lead to dead ends. Once it finds the end, which is marked by a solid black circle, it determines from memory the best path from start to finish and on subsequent runs aggressively drives that shortest path. This is just one example of what the 3pi is capable of.
This unedited video shows six 3pi prototypes simultaneously participating in a line-following exhibition at a local robotics competition. The robots were all programmed independently. Last one remaining on the line wins!
The following pictures show the 3pi’s LEDs as it drives around in the dark:
- Processor: ATmega168
- Motor driver: TB6612FNG
- Motor channels: 2
- User I/O lines: 2 (1*)
- Minimum operating voltage: 3 V (2*)
- Maximum operating voltage: 7 V (2*)
- Maximum PWM frequency: 80 kHz
- Reverse voltage protection?: Y
- External programmer required?: Y
1* - Digital I/O lines PD0 and PD1 are available; two more analog inputs and one analog/digital pin can be made available by removing jumpers and disabling special features of the board.
2* - Designed for use with 4 x AAA NiMH or Alkaline cells. A step-up regulator boosts the motor voltage to 9.25 V.
Starting with serial number 0J5840, 3pi robots are shipping with the newer ATmega328P microcontroller instead of the ATmega168. The ATmega328 is essentially a drop-in replacement for the ATmega168 with twice the memory (32 KB flash, 2 KB RAM, and 1 KB of EEPROM), so the 3pi code written for the ATmega168 should work with minimal modification on the ATmega328 (the Pololu AVR Library now supports the ATmega328P).