Projects - ernesto
Tactile sensors - They might have worked better if we had used a slightly thinner gauge of music wire. It would also have helped if the eye screws we used were slightly smaller. In retrospect, the "antenna-style" tactile sensors make it look more cockroach-like, but isn't the best overall design. More useful would be a couple of bumpers that don't snag (a problem with these antennae) and cover the robot all the way around.
Digital sensors - Another great shortcoming of Ernesto is his sensors. They are all digital, so he has no sense of how intense the lights are, etc. A more complex but useful model would use an analog/digital converter for the light sensors. More sensors would help create more complex behaviors. For example, a battery life sensor could make him react more aggressively when he had juice to burn, and more sluggish and careful when every movement counted.
Servos - It seems that servos (at least the ones we used) have very limited speed control. A smoother gradient would have created better behavior. He basically manages 5 speeds: full reverse, reverse, stop, forward, and full forward. Even telling the fast and slow speeds apart requires you to either watch very closely, or listen to the pitch change. Perhaps this can be fixed with more precise timing software. [Update: more accurate timing does in fact yield more speed control! The PIC assembly code below has a resolution of a large fraction of a millisecond. For best results use a Basic Stamp or other source of accurately timed pulses. See Ernesto 2 for details.]
Here is the PIC assembly language source code. It runs on a 3.58MHz PIC16F84 (sorry). It's ugly, but it works.