1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
2. Contacting Pololu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
3. Important Safety Warning and Handling Precautions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
4. Getting Started with Your 3pi Robot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
4.a. What You Will Need . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
4.b. Powering Up Your 3pi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
4.c. Using the Preloaded Demo Program . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
4.d. Included Accessories . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
5. How Your 3pi Works . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
5.a. Batteries . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
5.b. Power management . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
5.c. Motors and Gearboxes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
5.d. Digital inputs and sensors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
5.e. 3pi Simplified Schematic Diagram . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
6. Programming Your 3pi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
6.a. Downloading and Installing the C/C++ Library . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
6.b. Compiling a Simple Program . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
7. Example Project #1: Line Following . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
7.a. About Line Following . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
7.b. A Simple Line-Following Algorithm for 3pi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
7.c. Advanced Line Following with 3pi: PID Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
8. Example Project #2: Maze Solving . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
8.a. Solving a Line Maze . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
8.b. Working with Multiple C Files in AVR Studio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
8.c. Left Hand on the Wall . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
8.d. The Main Loop(s) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
8.e. Simplifying the Solution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
8.f. Improving the Maze Solving Code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
9. Pin Assignment Tables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
10. Expansion Information . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
10.a. Serial slave program . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
10.b. Serial master program . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
10.c. Available I/O on the 3pi’s ATmega168 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
11. Related Resources . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
Pololu 3pi Robot User's Guide © 2001–2009 Pololu Corporation
Page 2 of 66