Purdue University CpET program Spring 2002
| Hydraulic and Air Ride Cars | All of my Current Vehicles | All the Cars I've EVER Owned | Hydraulic or Air Ride questions? |
| Car Videos! | Other Car Work | Friend's Cars | VISIT LAYITLOW.COM FORUMS |
| Donations Page! Please Donate! | Send me an Email | Purdue University Projects | LAYITLOW.COM FORUMS |
This is all we were given. A base with 2 servos connected to wheels.
Problem Statement:
Robot (mouse) is to find, navigate to, and park directly in front of a specific light source. There will be 4 light sources placed randomly on the field (an 8' by 8' area of floor tile) which will flash at 1, 6, 25, or 36KHz. The robot will be assigned to find one of the four flashing light sources at the beginning of the test.
Some interesting details:
1.) The 8' by 8' ring is actually black electrical tape that is taped to the floor in an 8' by 8' area. The robot is to stay within this ring and cannot leave.
2.) There will be 3"x3"x6" blocks of obstacles placed randomly throughout the ring. The obstacles will be painted black. The robot must not make contact with any of these obstacles.
3.) The light sources are towers of multiple LEDs that are flashing at the specified frequency. In order to make the LEDs bright, they will be given a 50% duty cycle square wave input pulse of power at the specified frequency.
4.) A wireless output to a PC will be provided to show on the PC screen vital functions such as direction, distance traveled and robot status.
5.) Teams are divided into groups of 4. There is to be 4 separate micro-controllers for the robot. Each group member will control their own section. The four parts are
a) Supervisor micro - Responsible for controlling the network functions of the micros to allow them to communicate. Also controls the wireless output and the PC interface.
b) Light source scan/locate micro - Responsible for reading the light sources and determining which is the correct light source to be found.
c) Environment sensor micro - Responsible for detecting the floor line to keep robot inside the ring. Also responsible for detecting obstacles and relating information to keep robot from making contact.
d) Motion control micro - Responsible for receiving commands from the supervisor micro to determine travel direction and distance. Responsible to assure straight line travel and control of turning radii. Also responsible to detect and relay distance traveled to the supervisor.
Mirco Selection
Our group decided to make it easy on ourselves and chose a micro-controller development board that would be more than enough to do the job. We chose a board that hosted an Atmel 90LS8035 micro on it. The 8535 development board stats are as follows:
4 MHz processor
8K x 8 ROM
512 x 8 RAM
512 x 8 EEPROM
In-System Programmable FLASH
On board RS 485/422 communication
On board A2D converter
On board LCD capability
We realized that this was way too much micro for each of us since we will using a total of 4 of these on our robot. Nevertheless, we opted to get it anyway since they were only $27 a piece and we could use them for later projects if we felt the need.
Motion Control
Being into cars and hands on things as I am, I chose to do the motion control portion of the robot. Like stated above, my main goals would be to take commands in as to what direction the robot would travel. Also, I would need to keep the robot moving in a straight line when going straight, and I would need to display distance traveled.
MY SOLUTIONS
I decided a simple full H bridge chip would be sufficient for motor control. I chose a chip from Texas Instruments that could control 1 motor. The chip was free as a sample, so I ordered 2 of them. TI is REALLY great about shipping things out. They next-day air shipped me those H bridge chips!!!
However, once they got to me, I realized that I order surface mount chips!! I figured that I would try to make them work rather than going out and getting a DIP to surface mount converter. As you can see, it was a very small chip. I soldered wires individually to each leg of the surface mount chip and then soldered them into a black 20 pin DIP that I had. I made a holder of such out of plastic and super glued the chip to the holder. It did not look all that great, but it did the job for my initial check-off that was required for school.
From the pics above, you can see the size of the chip and my make-shift holder for the surface mount chip. I decided to change design and I ordered another H bridge chip in DIP package to make mounting easier and more professional looking.
Work in Progress
I ended up taking the new chips I ordered and built an entirely new circuit for the motor drivers. Below I have some pics of my micro board as it looked wired up to the motor driver circuit and with the mounting hardware added to the base of the robot.
Side view, the right shows the wires from the
obstacle sensors
Front view before sensors were added showing
ingenious metal frame construction
Front view, 3 sensors located on the bottom.
Nice metal frame I constructed. (note sarcasm)
The top right shows a DIP switch mounted so that I could gain manual access to the motors to show functionality.
Another board shot. Top is DIP switches, right
is motor driver chip and circuit.
View of point-to-point soldering from
underside of board.
Each wheel had this pattern glued to it so
that the wheel encoders could detect distance traveled.
I also used this to ensure that the robot drove forward in a straight line.
Finished Product
The pics above show the final robot construction. Each of our 4 boards are attached to the robot, but they NEVER got to talk to one another. The top board is the "Network Supervisor's" board. He never got the network to function properly, and thus he did not graduate. Due to the network not functioning, I was originally unable to display the robot doing anything except driving forward, reverse, turning left and right. This was only accomplished by flipping the DIP switches that I mounted.
Since I knew that the supervisor was NOT going to get the network working, I finished MY objectives by writing a test program that allowed me to move the micro 1/2 wheel turn forward or reverse. It also allowed me to turn the robot 90 degrees left or right. By doing this separate test program, I was able to program the robot to drive in a straight line. I also added a "TEST PATTERN" where if I switched the MSB high on the DIP switches, the robot would run a test pattern that caused it to go forward, turn left, forward, turn right, reverse, forward, etc.... to show that the motor driver's as well as straightness correction was present. I also added LEDs to the wheel sensors that flashed as the black lines on the wheels moved to show that IF the network was functioning, I would be able to detect the distance traveled.
END RESULT
During the public showing, I was able to show that my portion worked properly, and thus was able to graduate. As of the time of this writing, (May 2004) I am currently working as a Hardware Test Engineer for Delphi Automotive (Delco Electronics) in Kokomo, IN. I am however a contract engineer seeking full time employment. Email me for a copy of my Resume if you have a job opportunity for me.

Back to Purdue University Projects
Back to Joe's Customs HOME Page