IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Arduino Discussion :

Créer un trieur de billes


Sujet :

Arduino

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre à l'essai
    Homme Profil pro
    Lycéen
    Inscrit en
    Février 2024
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 19
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Février 2024
    Messages : 6
    Par défaut Créer un trieur de billes
    bonjour a tous,
    j'ai un projet à faire qui est de créer un système permettant de trier les billes par couleur ( rouge, vert et bleu). Pour cela j'ai à ma disposition une carte arduino, un servomoteur et un capteur de couleur TCS3200, mais je n'arrive pas a trouver/créer un code qui détecte la couleur de la bille avec le TCS3200 puis orienter le servomoteur en fonction de la couleur.
    pouvez-vous m'aider svp.

  2. #2
    Responsable Arduino et Systèmes Embarqués


    Avatar de f-leb
    Homme Profil pro
    Enseignant
    Inscrit en
    Janvier 2009
    Messages
    13 197
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Janvier 2009
    Messages : 13 197
    Billets dans le blog
    47
    Par défaut
    Bonsoir,

    Si tu tapes "TCS3200" dans le gestionnaire de bibliothèques, tu devrais trouver des bibliothèques à installer avec des exemples d'utilisation pour démarrer.

  3. #3
    Membre Expert Avatar de edgarjacobs
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2011
    Messages
    787
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 65
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mai 2011
    Messages : 787
    Par défaut
    Hello,

    Je te conseille de fractionner les tâches: dans un premier temps, ne t'occupe pas du servo, remplace-le par 3 leds (ou une led rgb). Quand tu auras réglé le problème de la détection de la couleur, tu chercheras comment activer convenablement le servo.

  4. #4
    Membre à l'essai
    Homme Profil pro
    Lycéen
    Inscrit en
    Février 2024
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 19
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Février 2024
    Messages : 6
    Par défaut
    Tu n'a pas un code pour m'aider stp

  5. #5
    Membre Expert Avatar de edgarjacobs
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2011
    Messages
    787
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 65
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mai 2011
    Messages : 787
    Par défaut
    Dans ce forum, on ne fera pas l'exercice à ta place (ce qui ne t'apporterait rien), mais on te donnera des pistes et des conseils pour résoudre ton problème. Montre ce que tu as déjà écrit, explique ce que ça devrait faire et ce que ça ne fait pas, etc....

    Si tu veux un début de code (c'est d'un classique ) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    // fonction appelée une seule fois au début du programme
    void setup(void) {
    ....
    ....
    }
     
     
    // fonction appelée en boucle
    void loop(void) {
    ....
    ....
    }
    Edit: as-tu fais une simple recherche avec "TCS3200 examples" ?

  6. #6
    Membre à l'essai
    Homme Profil pro
    Lycéen
    Inscrit en
    Février 2024
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 19
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Février 2024
    Messages : 6
    Par défaut
    bonjour voici mon code, je me suis inspirer de code que j'ai pu voir sur internet.
    normalement c'est sencé capter les couleurs rouge verte et bleue et en fonction de la couleur, orienter le servomoteur a un certain angle mais ca ne fait rien du tout.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    #include <Servo.h>
     
    #define S0 4
    #define S1 5
    #define S2 7
    #define S3 6
    #define sensorOut 8
    Servo myservo;
    int pos = 90;
     
    int redFrequency = 0;
    int greenFrequency = 0;
    int blueFrequency = 0;
     
    void setup() {
     
      pinMode(S0, OUTPUT);
      pinMode(S1, OUTPUT);
      pinMode(S2, OUTPUT);
      pinMode(S3, OUTPUT);
     
      pinMode(sensorOut, INPUT);
      myservo.attach(9);
     
      digitalWrite(S0,HIGH);
      digitalWrite(S1,LOW);
     
      Serial.begin(9600);
    }
     
    void loop()  {
     
      digitalWrite(S2,LOW);
      digitalWrite(S3,LOW);
     
      redFrequency = pulseIn(sensorOut, LOW);
     
      if(redFrequency ==50 && greenFrequency ==140 && blueFrequency ==105){
     
      myservo.attach(135);
      delay(10);}
     
      digitalWrite(S2, HIGH);
      digitalWrite(S3, HIGH);
     
      greenFrequency = pulseIn(sensorOut, LOW);
      if(redFrequency ==130 && greenFrequency ==141 && blueFrequency==42){
        myservo.attach(90);
      delay(10);}
     
      digitalWrite(S2, LOW);
      digitalWrite(S3, HIGH);
     
      blueFrequency = pulseIn(sensorOut, LOW);
      if (redFrequency ==146 && greenFrequency ==121 && blueFrequency ==36){
        myservo.attach(45);
      delay(10);}
    }

  7. #7
    Membre Expert
    Avatar de jpbbricole
    Homme Profil pro
    Retraité des réseaux informatiques
    Inscrit en
    Février 2013
    Messages
    1 017
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Retraité des réseaux informatiques
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Février 2013
    Messages : 1 017
    Par défaut
    Bonjour raphGR

    Si tu recherches Arduino TCS3200 trieur couleurs tu trouvera de quoi faire
    .

    Cordialement
    jpbbricole

  8. #8
    Expert confirmé

    Homme Profil pro
    mad scientist :)
    Inscrit en
    Septembre 2019
    Messages
    2 917
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : mad scientist :)

    Informations forums :
    Inscription : Septembre 2019
    Messages : 2 917
    Par défaut
    Y a t-il quelqu'un pour me dire ce qui ne va pas dans mon code
    regardez comment on fait bouger un servo ==> c'est write() pas attach()

    d'autre part vous êtes assez optimiste si vous pensez que vous allez tomber pile sur une couleur genre (50,140,105)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
      if(redFrequency ==50 && greenFrequency ==140 && blueFrequency ==105){
    et il serait bon d'initialiser ces variables avec la valeur du capteur avant de les utiliser

  9. #9
    Membre à l'essai
    Homme Profil pro
    Lycéen
    Inscrit en
    Février 2024
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 19
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Février 2024
    Messages : 6
    Par défaut
    bonjour,
    merci pour le servomoteur, pouvez-vous me dire comment on initialise les variables avec la valeur svp

  10. #10
    Expert confirmé

    Homme Profil pro
    mad scientist :)
    Inscrit en
    Septembre 2019
    Messages
    2 917
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : mad scientist :)

    Informations forums :
    Inscription : Septembre 2019
    Messages : 2 917
    Par défaut
    Citation Envoyé par raphGR Voir le message
    pouvez-vous me dire comment on initialise les variables avec la valeur svp
    les variables dans votre code sont redFrequency, greenFrequency et blueFrequency.
    par exemple vous lisez redFrequency et sans avoir lu les autres vous enchaînez sur un test qui porte aussi sur les 2 autres...


    ==> Avez vous lu un tuto pour comprendre comment ce composant fonctionne et comment extraire une des couleurs?

    en voici un en anglais
    https://randomnerdtutorials.com/ardu...cs230-tcs3200/

Discussions similaires

  1. Crer une jolie Horloge
    Par HwRZxLc4 dans le forum Général JavaScript
    Réponses: 10
    Dernier message: 23/05/2006, 10h18
  2. animer le mouvement d'une bille dans un JPanel
    Par berry dans le forum AWT/Swing
    Réponses: 4
    Dernier message: 07/05/2006, 00h28
  3. apache2 crer un virutal host
    Par Blo0d4x3 dans le forum Apache
    Réponses: 6
    Dernier message: 16/03/2006, 21h54
  4. Est-il possible de crer un raccourci vers un reperoire ???
    Par Florina dans le forum Shell et commandes GNU
    Réponses: 2
    Dernier message: 13/12/2005, 09h33
  5. Réponses: 4
    Dernier message: 22/11/2004, 19h29

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo