Friday, March 10, 2006

Testing The Limits Of Human Endurance

I am still in a haze from this week. My brain is still fuzzy from the lack of sleep and the intense stress. My eyes are still puffy. My back is still stiff. I may never fully recover... and at the very least I'm sure I shaved a few years off of my life.


On the upside, I now know what my body is capable of. I now know that I can go for 42 hours without sleep and still function - not well, mind you, but whatever. Yes I started to go a bit delirious... kept thinking I heard someone calling my name... and at one point I fell asleep while walking and got that "Oh no! I'm falling" sensation - which is REALLY scary when you open your eyes and find that you are NOT actually safe in your bed.... but still, I survived. And could survive again if I had to. One guy in my class actually went for 63 hours. He's nuts! I also know that I can do ANYTHING I set my mind to. And that is the most fantastically amazing feeling in the world. :) And not only can I do it, but I can do it well and I can kick butt in the final competition.

Go me!

This quarter's project was to build a robot that would play a game of "hockey" against another robot. We each got 5 balls and had to take turns firing them at our opponent's goal. Each robot had to be smart enough to know when it was it's turn to shoot and when it was it's turn to be on defense. And it had to know where to shoot and how to defend the goal. It also had to fire only 1 ball at a time and be able to reload the ball firing mechanism as needed. The robots also had to know whether or not the game had gone into a timeout... during a timeout the robots had to sit perfectly still and wait for the game to resume.... AND each one had to remember who's turn it was before the timeout was called.

There was some SERIOUS circuit building and code writing involved with this project!

Our robot used two proximity sensors to determine its position on the field, 4 "tape" sensors (basically an IR emitter and detector in one package) to follow lines on the field so that we drove straight, and an phototransistor to determine whose turn it was to fire or defend. (IR beacons on the field flashed at different frequencies depending on whose turn it was, or if there was a timeout, etc.) We had two independent drive wheels (which allowed us to steer) and two "pitching" wheels to fire the balls (much like a baseball pitching machine). Reloading of balls was accomplished with two solenoids that were timed and spaced appropriately so as to only allow one ball to be reloaded into the firing mechanism at a time.

Our design was simple and robust. And it kicked butt!

Some of the more complicated bots had rotating turrets... they were really cool looking, but very few of them worked. :( Some robots used sonar. Some used inductors to sense the magnetic fields set up on the playing field. Some robots spun wildly out of control. Many just sat there and did nothing... or they drove into the corner and shook. Not pretty.

It was really sad to see some of our classmates fail so miserably. I watched them put in all the same hours that I put in and then at the last minute their bot just died. It sucked. Luckily for them, our performance at the competition has nothing to do with our grade in the class. (Too bad for my group b/c we TOTALLY would have gotten an A, no question!)

Anyway, here are several pictures taken during the last few hectic hours before the competition:
(Just click "View Pictures"!)