hey !
I'm a french student and with three friends we have to realize a project for our exams. We want to make a robot which uses a CMUCAM4 with Arduino. In the CMUCAM4 there is a test mod which track a color.
We have found this program (
http://www.cmucam.org/docs/cmucam4/arduino_api/_c_m_ucam4_8cpp_source.html), and we don't know if it's the program of the test mod, because we need it. And I found another program and it's the same problem :
#include "CMUCam4.h"
#define led1 5
#define led2 6
#define led3 7
#define blob_left_led 8
#define blob_middle_led 9
#define blob_right_led 10
#define error_led 11
CMUCam4 camera;
unsigned char blob_x;
unsigned char blob_y;
int mode;
int error;
CMUCam4::CMUCAM4_color_range_t blueTracking;
CMUCam4::CMUCAM4_track_data_t trackingData;
void setup()
{
camera.init();
pinMode(led1, OUTPUT);
pinMode(led2, OUTPUT);
pinMode(led3, OUTPUT);
pinMode(blob_left_led, OUTPUT);
pinMode(blob_middle_led, OUTPUT);
pinMode(blob_right_led, OUTPUT);
pinMode(error_led, OUTPUT);
blueTracking.redLow = 40;
blueTracking.redHigh = 120;
blueTracking.greenLow = 160;
blueTracking.greenHigh = 255;
blueTracking.blueLow = 150;
blueTracking.blueHigh = 230;
trackingData.centroidX = 0;
trackingData.centroidY = 0;
trackingData.boundX1 = 0;
trackingData.boundY1 = 0;
trackingData.boundX2 = 0;
trackingData.boundY2 = 0;
trackingData.trackedPixels = 0;
trackingData.trackingConfidence = 0;
mode = 0;
}
void loop()
{
if(mode == 0) //send tracking information
{
camera.setTrackColor(&blueTracking);
camera.startTrackColor(&blueTracking);
delay(1000); //give a second to settle
mode = 1;
digitalWrite(led1, HIGH);
}
else if(mode == 1)
{
//get tracking data, and note if error occured
error = camera.getTrackData(&trackingData);
if(error < 0)
digitalWrite(error_led, HIGH);
else
digitalWrite(error_led, LOW);
digitalWrite(led2, HIGH);
delay(100);
mode = 2;
}
else if(mode == 2)
{
//display information
blob_x = trackingData.centroidX;
blob_y = trackingData.centroidY;
Serial.print("Error: ");
Serial.println(error);
Serial.print("Centroid X: ");
Serial.println(blob_x);
Serial.print("Centroid Y: ");
Serial.println(blob_y);
mode = 3;
}
else if(mode == 3)
{
//indicate with LED where target is
if(blob_x < '2') //blob left (50)
{
digitalWrite(blob_left_led, HIGH);
}
else if(blob_x < 'n') //blob middle (110)
{
digitalWrite(blob_middle_led, HIGH);
}
else //blob_x < CMUCAM4_WINDOW_X_MAX
{
digitalWrite(blob_right_led, HIGH);
}
}
}
If you know the answer of our problem or if you know where we can find the program of the test mod, please help us.
Thank you very much for reading it

Moderator edit:
[code] [/code] tags added.