This is the first robot that I built. It is called a Boe-Bot. It is a very easy to build little robot kit that comes with a great introduction to the Basic Stamp microcontroller. I highly recommend that anyone interested in robotics buy one. After you complete the large manual of fun experiments and little projects you can always add-on with custom parts. As you can see, my Boe-Bot is not standard in the least, I actually have another idea or two to add-on but after about 500 lines of code, my microcontrollers memory is full. That is one of the few disadvantages of the Basic Stamp, there is not a lot of room for programs.

The add-ons I incorporated into my robot are the following:

- RF receiver with a transmitter connected through another BS2 to my computer
- Ultrasound distance sensor mounted on a servo
- Three line sensors
- "Sticky Tires" mounted on the servo wheels since the rubber bands they supply die after a while
- Infrared remote control paired with a receiver on the robot
- IR proximity sensors mounted on the front corners of the robot
- 7.2v rechargeable battery

The way my Boe-Bot is set up is with a series of switches. Depending on how the switches are flipped, it changes the program. There are a total of 6 programs, so here is a summary of what each of them does.

1. Line following - Just like the name implies, this is a line following program. What makes this line following special is it samples the conditions of the line, and the surrounding area before it starts. This allows the robot to work on all different types of line: Dark on light, light on dark, or even dark on a darker surface.

2. Infrared remote controlled - Using a simple universal remote control (programmed to work with a Sony TV) you can drive the robot. Using the 1-9 buttons on the remote, the robot moves in all directions. It is also programmed so when you use the volume buttons the ultrasound sensor will turn left and right.

3. Autonomous navigation - Using the ultrasound sensor, and the IR sensors, the robot can avoid objects. The ultrasound sensor is always looking forward until something gets to close. It then does a 180 degree scan, determines the best path to take, and turns that way. Meanwhile, if one of the IR sensors picks up something, the robot will turn away from it.

4. Autonomous navigation without the IR sensors - This has the same base program as the other autonomous navigation program, but with out the IR sensors. To pick up the slack of the IR sensors, the ultrasound sensor now does a 90 degree scan while traveling. If something gets into its path it does its 180 degree scan, determines the best path to take, and turns that way.

5. Object Following - Using the IR sensors on the corners, this is a very simple program. By placing an object like a piece of paper or a hand in front of robot, it will turn towards the object. It will even run towards the object if it is too far away, and back up if it is too close.

6. Wireless RF controlled - I wrote a simple visual basic program to talk to the robot. This program allows the robot to go forward, backwards, turn, and even look around and center the ultrasound sensor. My computer is connected to a small board containing a BS2 and an RF transmitter. All it does is relay the information between my computer and the robot. Before I bought the RF transmitter and receiver, I actually had the program allow the user to drive the robot around and take distance samples from the robot. The only draw back was the robot had to be connected to the computer via a serial cable.

I later entered this robot in the line following competition for the Robotics Club at The University of Pittsburgh in the fall of 2007. It won Second place.

Update: November 9, 2009

I installed a CMUCam3 from work onto my boebot. I wrote a quick program to track brightly colored objects, in order to keep them in the middle of the screen. I also wrote a program for line following but it has problems with shadows and changing light conditions. Below is a picture of my setup as well as a video of the object follower program.