View Single Post
  #1   Spotlight this post!  
Unread 25-01-2007, 14:01
BradAMiller BradAMiller is offline
Registered User
AKA: Brad
#0190 ( Gompei and the Herd)
Team Role: Mentor
 
Join Date: Mar 2004
Location: Worcester, MA
Posts: 588
BradAMiller has a brilliant futureBradAMiller has a brilliant futureBradAMiller has a brilliant futureBradAMiller has a brilliant futureBradAMiller has a brilliant futureBradAMiller has a brilliant futureBradAMiller has a brilliant futureBradAMiller has a brilliant futureBradAMiller has a brilliant futureBradAMiller has a brilliant futureBradAMiller has a brilliant future
Camera tracking demo in easyC or WPILib

Here is the shortest program that I could write that will track to a green light. It assumes 2 motors connected to PWM ports 1 and 2. Also the camera is fixed (no servoing). The robot will follow the light as long as it is seeing it.

Here is the easyC version (just the C code), but there is a link to an easyC Pro project and an MPLab project. There is also a link to a video showing it running on a FRC controller on a Vex robot chassis.

Code:
#include "Main.h"

void main ( void )
{
      unsigned char regionSize; 
      unsigned char mx; 
      int error; 

      TwoWheelDrive(2,1); // The following 4 functions are built into WPILib, but have no blocks
      SetInvertedMotor(1); //    So they have to be user code blocks
      SetInvertedMotor(2);
      SetCameraDebugMode(1);
      InitCamera ( 1 ) ; // default FIRST green setup
      StartCamera ( ) ;
      while ( 1 )
      {
            CaptureTrackingData ( &mx , 0 , 0 , 0 , 0 , 0 , &regionSize , 0 , 0 , 0 ) ;
            if ( regionSize > 10 )
            {
                  error = ((int) mx) - 80 ;
                  Drive(50, error); // turn towards the light
            }
            else
            {
                  Drive(0, 0); // no light - stop driving
            }
      }
}
Attached Files
File Type: zip EasyCTrackToTheLight.zip (23.2 KB, 45 views)
File Type: zip MPLabTrackToTheLight.zip (143.6 KB, 40 views)
__________________
Brad Miller
Robotics Resource Center
Worcester Polytechnic Institute