jonh : robots : fiat : code

Fiat's source code

Caveat. This code is spottily documented and could use some cleaning up. It looks like the sort of code that one might write towards the end of a project when immediate operation is more urgent (if not more important) that maintainability, cough cough.

The PIC code.

The Palm III code.

Screen dump of Palm III control application This is the ``user interface'' on the robot itself (courtesy of Clint Hepner and xcopilot). I had plans to remotely control the robot over the infrared port, but ran out of time during the term.


  1. (Revision) resets the robot and prints the RCS Id on the status line.
  2. (Steer) toggles the steering servo between its two states, parallel and perpendicular to the rear wheels.
  3. (Fwd10) drives the robots forward ten centimeters using the shaft encoder to measure distance.
  4. (Cam) rotates the cam assembly alternately in (paper released) and out (paper attached) of the chassis.
  5. (Tape) spins the tape-winding motor for a half-second.
  6. (RotAddr) rotates the robot the number of degrees specified in the Addr: input field. (GUI overloading. :v)
  7. (Demo) performs a sequence of the above primitive operations. It picks up a sheet of paper, carries it forward a ways, turns 90 degrees, carries it forward again, rotates 180 degrees, drops the paper, and returns to its original position, ready to pick up the next sheet on the stack.
  8. (DelayDemo) was used to make the demo video. It waits three seconds (for me to get my hand out of the frame), then performs the demo three times, to move a stack of three sheets of paper.