Region V 2009

Competition Documentation

Todo List

Software

  • using CodeSourcery? Gxx Lite toolchain
  • using serial bootloader
    • code is in repository under users/nstiurca/boot_loader
    • accompanying serial programming utility (sflash) comes included in DriverLib/StellarisWare?
    • SBL currently is 1.3KB, which leaves 2KB footprint. If it can be squeezed down to <1KB, it only needs to leave 1KB footprint
      • perhaps remove some of the error checking?
  • competition code is in repository under region5/region5_2009
  • most of the drivers were copied/adapted from RASLib
    • some parts need to be optimized/cleaned up/readapted for the new hardware (as opposed to the Roboathon hardware)
    • encoder code needs to be optimized, and verify correctness/accuracy of position tracking using encoders
  • using CMUcam for color detection and hopefully some basic vision as well
    • interface through serial port
    • CMUcam can operate in either polled or continuous data acquisition modes
  • can't really begin work or make much progress on actual competition code until Mechanical and Electrical progress catches up

Mechanical Parts

  • use a small bowl to "grab" the boxes in order to drag them to their destination
    • mounted on a hinge
    • comes up/down as powered by a servo
  • mount encoders
    • coaxial to the drive wheels, but not connected to the drive shafts/wheels
    • track motion on table accurately without introducing error if drive wheels slip while ac-/de-celerating (encoder wheels should never slip since they have relatively low inertia)
  • mount battery
    • mount on bottom so as to have a low center of mass
  • mount CMUcam
    • away from bowl if used for vision & to help navigate

--- OR ---

cut hole in top of bowl, and point camera into bowl if only used to detect cube colors

  • mount blinking LED detector
    • just less than 8" above table surface
    • should be able to revolve, mounted on either a servo or stepper motor
  • no part of the robot should rise 8" (or more) above the table surface

Electronics

  • band pass filter to detect frequency of blinking LEDs
  • redesign Intro Board
    • add second serial port
    • beefier motor controllers
    • add switch for boot/program mode
      • bootloader checks if a pin (currently PB4) is high or low to decide if it should await a software update, or load the application
    • reposition pins to better accommodate current hardware
      • change M1 and M2 pins to work with Faulhaber 2224 U006 SR IE2-512 20/1 14:1 motors
        • encoder pins are unused since we are using external encoders not attached to the drive shafts
        • map old motor +/- pins to pins 1&2 on Faulhaber ports (see the Faulhaber encoder pinout diagram)
      • make sure servo pins work with Hitec HS-322HD servos
        • these are our standard servos, so this should already work
      • make ports for encoders
        • each encoder needs 2 GPIO pins, 5V, and Gnd
      • make JTAG pins more accessible
    • if possible, put battery port sideways so as to reduce board height
    • board may (should) be expanded (width & height)