So Let it be Written, So Let it be Done!

April 13, 2007

One evening left and I’m flagging.

Filed under: kamakula,trinity firefighting — kamakula @ 9:27 pm
Tags: , ,

I’ve been at this airport for about 12 hours, awake for about 36. My flight status is officially resolved. I was on standby for two flights that were full, then switched from flying IAD -> BDL to ORD -> BDL. I’m going to arrive in Hartford around midnight. More than likely I’ll be too tired to do anything . . . unless I’m hyped up on adrenaline at the thought of finally arriving – so chances are I won’t get to do any hardware testing of any sort till Saturday morning.

So far at the airport I’ve:

  • Outlined robot low, mid, and high level routines.
  • Coded I2C functions to start and read ultrasonic sensor.
  • Coded A2D function to perform repeated conversions on A2D pins.
  • Coded quadrature encoder state machine to increment position counter.
  • Coded capture interrupt routines to track state of encoder outputs.
  • Coded capture interrupt routine to measure accelerometer pulse width.

Code-wise, I still need to:

  • Write/port PID routines to process a PID structure (two motor/wheel speeds and one gravity/acceleration).
  • Create bitmap of standard arena map.
  • Write/port path planning functions.
  • Create search route for robot.
  • Code routine to operate servo (for arm that puts out candle).
  • Write position update code that tracks robot’s x,y,theta position as well as registering robot with arena bitmap.
  • Write high level code that guides robot through each state of the competition (startup, search for candle, return home).
  • Write code that maintains robot heading.
  • Write code that keeps robot at least a fixed distance from any wall.
  • Write code that checks for obstacles or checks sensor readings to determine when end of hallway has been reached.
  • Write code that integrates all of this to the high level planning.

Construction/Assembly -wise, the following still needs to be done:

  • Create and test tone detector circuit.
  • Assemble new gearbox.
  • Attach encoder wheels and position wheel encoders.
  • Assemble robot frame.
  • Design, create, and test candle detection.
  • Attach all sensors to robot frame.

Of course, all the code I’ve written so far today will need to be debugged and tested as will all the code I’ve yet to write. Unfortunately, I’m pretty tired of coding now. . . I’ll have until 7pm Saturday to qualify for competition on Sunday, but I think it’s a big stretch to get all of that stuff accomplished in time. I’ll check the rules to see if I can determine the exact minimum necessary for qualification. It may be possible to code something that is able to pass quals then I can continue feverishly working Saturday night and Sunday morning.

This reminds me of IGVC, except since I was coding in Matlab and CCSC, thing were a heck of a lot easier and could be written, tested, and debugged much faster.


April 12, 2007

Two Full Days Till Competition

Filed under: kamakula,robot — kamakula @ 2:35 am

Well, Tuesday evening was a wash. I spent the entire time trying to get some timer interrupts to work correctly. . . and never did. I wouldn’t figure out the issue till this afternoon.

Now, it’s getting down to crunch time. I know tomorrow evening is a wash, because I’ll need to pack and get myself to the airport a couple hundred miles away. So, that really leaves now, and friday afternoon-evening to get as much work done as possible. . . and there is a lot to do.

So, I’ve got A2D code working and it can read the encoders correctly. Hopefully, they can drive the port pins so that I can make use of them w/o having to do some sort of weird polling with the A2D.

Still to go:

  1. Finish encoders and test GPIO polling method
  2. Cut out frame from lexan.
  3. Build another gearbox.
  4. Print out more encoder wheels.
  5. Write pulse width measuring code for accelerometer.
  6. Write and test PWM code with motor controller.
  7. Test ability of infrared detectors to “see” a candle.
  8. Pickup tone detector IC and create tone detector circuit (probably need to make a couple more stops at RadioShack).
  9. Port I2C code from Pic (CCSC) to Arm7 (WinARM).

Once those are done, I can:

  • Test independent closed loop speed control of each wheel.
  • Test ability to detect smoke detector tone.
  • Test ability to balance robot and stay in place.
  • Test ability to drive robot in a straight line while balancing using only encoders.
  • Test ability to drive robot in a straight line using feedback from IR distance sensors.
  • Test ability to wander without colliding with obstacles.
  • Test ability to detect candle and approach to within 30cm.

OMG. . . I just realized that I don’t have a candle put out mechanism. I suppose I may end up going with the fan method. . . I was hoping to come up with something more ingenuous. . but I have so little time left 😦

Blog at