TRACK_color mit Cmucam4 und Arduino Mega 2560

Hi Leute!

ich habe ein Problem bei Trackcolor.
bei mein Programm geht darum dass, mann drei unterschiedliche object bezüglich ihre farbe zu unterscheiden.
wenn ich ein rot (oder grün, oder Blau) kugel auf der kamera durchlaufen muss der rot (oder grün, oder Blau) led einschalten. aber wenn ich mein programm Upload ist sofort die Led rot und blau ein obwohl kein objekt auf der Kamera durchlauft.

#include <CMUcam4.h> // Bibliothek
#include <CMUcom4.h>
#define LED_BLINK 5 // 5 Hz
#define WAIT_TIME 5000 // 5 seconds
#define LED_UP 11 // zahlen die mit Ausgänge zusammenpasst
#define LED_MID 10
#define LED_DOWN 12
//#define LED_DEBUG 13
CMUcam4 cam(CMUCOM4_SERIAL);
void setup() { cam.begin();
cam.LEDOn(LED_BLINK);
delay(WAIT_TIME);
cam.autoGainControl(false);
cam.autoWhiteBalance(false);
cam.LEDOn(CMUCAM4_LED_ON);
// Deklaration von digitale Ausgänge
pinMode(LED_UP, OUTPUT);
pinMode(LED_MID, OUTPUT);
pinMode(LED_DOWN, OUTPUT);
//pinMode(LED_DEBUG, OUTPUT);
}
void loop() {
CMUcam4_tracking_data_t data; // l’état des LED.
int lightUp, lightMid, lightDown;
for(;:wink: {
// reset alle variablen
lightUp = LOW;
lightMid = LOW;
lightDown = LOW;
//lightDebug = LOW; // ROUGE
cam.trackColor(120,255,0,60,0,60); // Track Rot

cam.getTypeTDataPacket(&data);
// récupérer les infos transmises par la cam
if(data.pixels > 1) { // si on détecte des pixels de cette couleur
lightUp = HIGH; // on allumera la LED UP
} // Track grün
cam.trackColor(0,60,0,255,0,120);
cam.getTypeTDataPacket(&data);
if(data.pixels > 1) { lightMid = HIGH; }
// Track Blau
cam.trackColor(0,60,0,60,120,255);
cam.getTypeTDataPacket(&data);
if(data.pixels > 1) {
lightDown = HIGH;
}
digitalWrite(LED_UP, lightUp);
digitalWrite(LED_MID, lightMid);
digitalWrite(LED_DOWN, lightDown);
//digitalWrite(LED_DEBUG, lightDebug);
}
}

Hallo,

bitte den Sketch den Sketch immer in Code-Tags (#) setzen.
Des weiteren wären Link zum Modul und der Libary sinnvoll. Gleiches gilt für Schaltpläne (handgezeichnet kann da schon ausreichen) / oder ein gut erkennbares Foto des Aufbaus (Leitung sollten nachvollziehbar sein).

Des weiteren ist es meist wenig hilfreich, einfach Teile mit Copy und Paste zu übernehmen. Hatten da letztens auch jemanden bei, der dann sich unbemerkt ein paar nicht darstellbare Sonderzeichen in den Sketch geholt hat, die den Code zum Absturz (konnte nicht kompiliert werden) gebracht hat.
Kommentare in anderen Sprachen als Deutsch oder Englisch ist ebenfalls kaum hilfreich.

Hast du bereits deren Wiki oder Foren nach deinem Problem durchsucht?
http://www.cmucam.org/projects/cmucam4/boards
http://www.cmucam.org/projects/cmucam4/wiki

Zum Problem ansich kann ich nicht weiterhelfen. Mich stören die französichen Kommentare, die ich sicherlich nicht alle im Google Übersetzer eingeben werde. Des weiteren werden hier vermutlich weniger mit sowas spielen, da es doch etwas dem Einsatzzweck nicht entspricht. Der Arme Mega wird damit ja masakriert :wink:

#include <CMUcam4.h>  // Bibliothek 
#include <CMUcom4.h>
#define LED_BLINK 5 // 5 Hz 
#define WAIT_TIME 5000 // 5 seconds  
#define LED_UP 11 // zahlen die mit Ausgänge zusammenpasst
#define LED_MID 10
#define LED_DOWN 12
//#define LED_DEBUG 13
CMUcam4 cam(CMUCOM4_SERIAL);
void setup() {
  cam.begin();
  cam.LEDOn(LED_BLINK);
  delay(WAIT_TIME);
  cam.autoGainControl(false);
  cam.autoWhiteBalance(false);
  cam.LEDOn(CMUCAM4_LED_ON);
  // Deklaration von digitale Ausgänge
  pinMode(LED_UP, OUTPUT);
  pinMode(LED_MID, OUTPUT);
  pinMode(LED_DOWN, OUTPUT);
  //pinMode(LED_DEBUG, OUTPUT);
}
void loop() {
  CMUcam4_tracking_data_t data;      // l'état des LED.
  int lightUp, lightMid, lightDown;
  for (; ;)   {
  // reset alle variablen
  lightUp = LOW;
  lightMid = LOW;
  lightDown = LOW;
  //lightDebug = LOW;          // ROUGE
  cam.trackColor(120, 255, 0, 60, 0, 60); // Track Rot


    cam.getTypeTDataPacket(&data);
    // récupérer les infos transmises par la cam
    if (data.pixels > 1) {             // si on détecte des pixels de cette couleur
      lightUp = HIGH;                  // on allumera la LED UP
    }              // Track grün
    cam.trackColor(0, 60, 0, 255, 0, 120);
    cam.getTypeTDataPacket(&data);
    if (data.pixels > 1) {
      lightMid = HIGH;
    }
    // Track Blau
    cam.trackColor(0, 60, 0, 60, 120, 255);
    cam.getTypeTDataPacket(&data);
    if (data.pixels > 1) {
      lightDown = HIGH;
    }
    digitalWrite(LED_UP, lightUp);
    digitalWrite(LED_MID, lightMid);
    digitalWrite(LED_DOWN, lightDown);
    //digitalWrite(LED_DEBUG, lightDebug);
  }
}

Dank erstmal für dein Beitrag.

hier ist nochmal meine Code auf Deutsch kommentiert mit eine bild am Anhand.
ich habe immer dieselbe Probleme

#include <CMUcam4.h> // Bibliothek
#include <CMUcom4.h>
#define LED_BLINK 5 // 5 Hz
#define WAIT_TIME 5000 // 5 seconds
#define LED_UP 11 // zahlen die mit Ausgänge zusammenpasst
#define LED_MID 10
#define LED_DOWN 12
//#define LED_DEBUG 13
CMUcam4 cam(CMUCOM4_SERIAL);
void setup() { cam.begin();
cam.LEDOn(LED_BLINK);
delay(WAIT_TIME);
cam.autoGainControl(false);
cam.autoWhiteBalance(false);
cam.LEDOn(CMUCAM4_LED_ON);
// Deklaration von digitale Ausgänge
pinMode(LED_UP, OUTPUT);
pinMode(LED_MID, OUTPUT);
pinMode(LED_DOWN, OUTPUT);
//pinMode(LED_DEBUG, OUTPUT);
}
void loop() {
CMUcam4_tracking_data_t data; // Zustand den LED.
int lightUp, lightMid, lightDown;
for(;:wink: {
// inistialisieren alle variablen
lightUp = LOW;
lightMid = LOW;
lightDown = LOW;
//lightDebug = LOW; // ROUGE
cam.trackColor(120,255,0,60,0,60); // Track Rot

cam.getTypeTDataPacket(&data);
// speichern die T daten, die man von der Camera bekommt in der datenstruktur data
if(data.pixels > 1) { // wenn man die pixel diese Farbe erkennt
lightUp = HIGH; // schalten die LED UP ein
} // Track grün
cam.trackColor(0,60,0,255,0,120);
cam.getTypeTDataPacket(&data);
if(data.pixels > 1) { lightMid = HIGH; }
// Track Blau
cam.trackColor(0,60,0,60,120,255);
cam.getTypeTDataPacket(&data);
if(data.pixels > 1) {
lightDown = HIGH;
}
digitalWrite(LED_UP, lightUp);
digitalWrite(LED_MID, lightMid);
digitalWrite(LED_DOWN, lightDown);
//digitalWrite(LED_DEBUG, lightDebug);
}
}

20140930_103501[1].jpg