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.
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.
- The top part of the panel lets me read or write an arbitrary address in
the PIC's memory space.
- The next line (that says ``state 000000DA'') reports status messages
generated by various control procedures.
- Each of the lower eight buttons is assigned to a function that lets
me test some part of the robot's operation, described below.
- (Revision) resets the robot and prints the RCS Id on the status line.
- (Steer) toggles the steering servo between its two states, parallel
and perpendicular to the rear wheels.
- (Fwd10) drives the robots forward ten centimeters using the shaft
encoder to measure distance.
- (Cam) rotates the cam assembly alternately in (paper released) and
out (paper attached) of the chassis.
- (Tape) spins the tape-winding motor for a half-second.
- (RotAddr) rotates the robot the number of degrees specified in
the Addr: input field. (GUI overloading. :v)
- (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.
- (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.