Jeremy Hance, David Deterra and Daniel Dunham

CSE466

Final Project Proposal

11/20/2001

 

Project title: Programmable Robot

 

Project Goal:

Create a robot using stepper motors, an 8051 and a sonar board that can receive a program from a host computer and follow it. If the robot encounters an obstacle before completing the program, it will use the remaining instructions to determine where its ultimate destination would have been and navigate to it.

 

Risks:

Obtaining proper materials: We may be unable to obtain a good pair of stepper motors that are evenly matched. This may cause problems in turning the vehicle or even in moving forward.

Power: As an autonomous robot, we will want to have our device unfettered by cables. This means we will need on onboard power supply to power the equipment. This could pose a difficulty, but should be addressed in the first phase of the project.

Code Size and Modularity: The system will have broken up into manageable and diviseable parts so that our team can work on it in parallel. This may be difficult but will be addressed while shooting for the first milestone. We will also be attempted to develop with the idea that the system could be expanded in the future. This consideration will be a major factor in breaking up the code and producing documentation.

 

Milestones:

Basic Functionality: The device should be able to accept instructions via a serial port and move accordingly. It shall have the ability to move forward a set amount, and move 90 degrees left or right. Once the basic functionality is in place, minus the sonar, the rest should be mainly programming.

Programmable: The device shall be able to accept and record a short program in its memory. This program will consist of individual byte sized instructions. The device will be able to switch modes between accepting the program and attempting executing. If it encounters an obstacle, it will stop until the obstacle is removed.

More complex instructions: The instruction set will be enhanced by allowing the system to use the unused bytes of each instruction to determine a magnitude. The bits that are not used to distinguish an instruction will be used to tell how many times an instruction should be executed. The turn functions may also be modified so that a turn does not necessarily indicate a turn of 90 degrees.

Full Functionality: The device will take a program as download or be able to accept individual commands via a serial port (possibly over wireless). If during the execution of the program the device encounters an obstacle, it will use the remaining instructions in the program to determine its ultimate destination and attempt to find an alternative path to that location.

 

Materials:

We anticipate that we will need the following materials, this is not necessarily a complete list, nor may we need all that is specified:

1- 8051 to act as our central processor

1- Sonar for collision detection

2- Stepper motors for motive power. Preferably of the same type.

2- Stepper motor drivers

2- wheels to mount on the stepper motors

1- castor wheel for support

1- breadboard for mounting the various devices

Legos for mounting the sonar

1- Virtual Wireless Kit (assuming that we are able to use wireless)

Other lightweight building materials such as basal wood or cardboard for the device frame.

A battery pack