détecter couleur

Bonjour,
Je cherche un logiciel permettant de détecter la couleur d'objets avec une lecture assez rapide.
Merci si vous pouvez m'aider
Cordialement.

Bonjour
Le tcs3200 et ces applications en détection rouge vert bleu

un logiciel? un composant?
des composants, il y en a plein...
mais le logiciel j'en connais pas, a moins de le faire soit meme

un lien parmi d'autre
http://www.robotshop.com/letsmakerobots/tcs3200-color-sensor-with-k-nearest-neighbor-classification-algorithm

Le sujet m’intéresse j’ai un projet de détecteur de couleur verte couplé à une fonction data-logger, ceci avec arduino uno et un Data Logger Module Pour Carte SD, pour confirmer la détection dans temps, ci cela vous intéresse ?

Merci domi24f pour le lien donné.
Voici quelques détails.
Je souhaiterais déterminer la couleur d'une série d'objets avec une vitesse de lecture de l'ordre le la seconde et une précision du code couleur RVB de seulement 5 à 10%.
Le logiciel du lien de *domi24f * semble intéressant. Quelqu'un l'a-t-il déjà essayé.
Connaissez-vous d'autres logiciels ?
Cordialement.

tu sais, une dectection d'une couleur, en general c'est quasi instantannée.
le module donnée par domi24f dans la datasheet, le detection peut se faire a une frequence de 50KHz soit en 1/50K= 20ms...
Par la suite, ce qui va prendre le temps, c'est le traitement que tu vas en faire et la frequence de ton arduino...faire tourner un moteur par exemple.

meme a 8MHz ton arduino aura fait 8 millions de boucle en 1 seconde dans ton programme. donc imagine de fois en 1 seconde ton capteur aura transmit a ton arduino...

et puis, c'est pas un logiciel, evite les abus de langage, mais plus un programme...

Tu peux utiliser une caméra Pixy avec le logiciel Pixymon !

Bonjour,
La caméra Pixy est trop chère pour ce que je souhaite faire.
Je voudrais seulement afficher le code couleur d'une série de billes colorées.
Existe-t-il une librairie Arduino qui faciliterait la création d'un programme ?
Cordialement.

Si tu veux des exemples, j'ai recement vu cela

une petite machine qui tri des M&M's, avec une detection de couleurs...

http://beta.ivc.no/wiki/index.php/Skittles_M%26M's_Sorting_Machine

c'est pas vraiment ce que tu veux faire, mais il y a le code, je penses que tu peut t'y inspiré..

Bonjour
Voici un programme que j’ai utilisé pour ma détection fluorescéine, la led rouge s’éclaire quand du rouge est présent devant, pareille pour les autres couleurs

/ **************************************************************
//Programme: Capteur TCS3200
// Pour utilisation de détection de fluorésine 1/pm dans l'eau
// arduino mega 2560 + Capteur TCS3200 monté sur équipement
// Soft arduino 1.0.5-r2
// ceci dans le noir absolu pour des valeurs cohérentes
//éclairage avev un angle à 90°de la solution par laser 405nm 90°(voir schémat)
//suite: alimentation en continu intégrant fonction datalogger 1 mesure toute 10mn
// pin vdd connecté + 5volt du arduino:
//***************************************************************
//pin du module TCS3200 vers connexion PWM arduino mega, uno, nano:

const int s0 = 8;
const int s1 = 9;
const int s2 = 12;
const int s3 = 11;
const int out = 10;
//Pin de controle led RGB:
int pinledrouge = 2;
int pinledvert = 3;
int pinledbleu = 4;

//Couleurs variables
int rouge = 0;
int vert = 0;
int bleu = 0;

void setup()
{
pinMode(s0, OUTPUT);
pinMode(s1, OUTPUT);
pinMode(s2, OUTPUT);
pinMode(s3, OUTPUT);
pinMode(out, INPUT);
pinMode(pinledrouge, OUTPUT);
pinMode(pinledvert, OUTPUT);
pinMode(pinledbleu, OUTPUT);
Serial.begin(9600);
//sencibilité= S0 >L S1 >H =2% - S0 >H S1 >L =20%- S0 >H S1 >H =100%:
digitalWrite(s0, HIGH);
digitalWrite(s1, HIGH);
}

void loop()
{
//Détecte la couleur:
color();
//Affiche les valeurs dans le moniteur de série:
Serial.print("[R:");
Serial.print(rouge, DEC);
Serial.print("][V:");
Serial.print(vert, DEC);
Serial.print("][B:");
Serial.print(bleu, DEC);
Serial.println();

//Vérifie que la couleur rouge a été détectée
if (rouge < bleu && rouge < vert && rouge < 100)
{
Serial.println("Rouge");
digitalWrite(pinledrouge, HIGH); //Le rouge conduit
digitalWrite(pinledvert, LOW);
digitalWrite(pinledbleu, LOW);
}

//Vérifie que la couleur bleu a été détectée
else if (bleu < rouge && bleu < vert && bleu < 1000)
{
Serial.println("Bleu");
digitalWrite(pinledrouge, LOW);
digitalWrite(pinledvert, LOW);
digitalWrite(pinledbleu, HIGH); //Le Bleu conduit
}

//Vérifie que la couleur vert a été détectée
else if (vert < rouge && vert < bleu)
{
Serial.println("FLUO");
digitalWrite(pinledrouge, LOW);
digitalWrite(pinledvert, HIGH); //Le vert conduit
digitalWrite(pinledbleu, LOW);
}
Serial.println();

//Délai pour effacer les leds et redémarrer le processus
delay(100);
digitalWrite(pinledrouge, LOW);
digitalWrite(pinledvert, LOW);
digitalWrite(pinledbleu, LOW);
}

void color()
{
//Routine qui lit la valeur des couleurs
digitalWrite(s2, LOW);
digitalWrite(s3, LOW);
//count OUT, prouge, rouge
rouge = pulseIn(out, digitalRead(out) == HIGH ? LOW : HIGH);
digitalWrite(s3, HIGH);
//count OUT, pbleu, bleu
bleu = pulseIn(out, digitalRead(out) == HIGH ? LOW : HIGH);
digitalWrite(s2, HIGH);
//count OUT, pvert, vert
vert = pulseIn(out, digitalRead(out) == HIGH ? LOW : HIGH);
}

hazerty565:
le module donnée par domi24f dans la datasheet, le detection peut se faire a une frequence de 50KHz soit en 1/50K= 20ms...

moi j'aurais dit 20µs

fdufnews oui, c'est exact... probleme de conversion...
mais c'est surtout que j'etais pressé hier, du coup j'ai pas revérifier mon post...

Bonjour,

Je me suis inspiré du programme de domi24f qui semble me convenir, mais je n'arrive pas à obtenir seulement les valeurs de RVB en éclairant les billes de couleur avec une ou plusieurs LED blanches.
Me manque-t-il une librairies ?

Cordialement.

tu as quoi comme capteurs?

TCS3200

J'ai trouvé ce qu'était S0, S1, S2, S3 , ce qui n'est pas évident, et je crois que ça va fonctionner après la construction d'un système optique pour lire des billes de mm.
Je cherche aussi le moyen d'éteindre les 4 Led sans les dessouder.

.... de billes de 5 mm.

Bonjour,

Existe t'il un capteur fiable avec une prise de mesure tous les 0,5 secs voir mieux et surtout utilisable sans librairie ?

En effet je voudrais m'en servir sur un programme tierce sur lequel je ne peux charger de librairies mais juste lire les mesures des pins.

MERCI

pourquoi tu ne peux pas charger de librairies??

je pense que tu peux trouver un capteur qui a un echantillonage supperieur a 1,8KHz, soit la plupart des capteurs...

2.4ms d'enchtillonage pour le capteur adafruit tel que celui la...

en general, c'est ultra rapide, mais tout depend ce que tu va faire derrière qui va prendre beaucoup plus de temps...