Trieur M&M's

De Les Fabriques du Ponant
Révision datée du 19 janvier 2018 à 17:28 par Antonydbzh (discussion | contributions) (membres de l'équipe)
(diff) ← Version précédente | Voir la version actuelle (diff) | Version suivante → (diff)
Aller à : navigation, rechercher

robot trieur smarties

pédagogie

manipuler les outils éléctronique

membres de l'équipe

  • Najib CHAOUI
  • Naoufal LAABID
  • Dalal EL ADBI
  • Amine EL MAMSAOUI
  • Mohamed Amine EL AARAJE

Fichier:TrieurM&M.pdf

#include<Servo.h>
Servo Tservo;
Servo Bservo;
//La déclaration de 4 variable entier  
int color,R,G,B;
void setup(){
  pinMode(2,OUTPUT);//cette fonction definie la pile numero 2 comme sortie 
  pinMode(3,OUTPUT);//cette fonction definie la pile numero 3 comme sortie 
  pinMode(4,OUTPUT);//cette fonction definie la pile numero 4 comme sortie 
  Tservo.attach(8);
  Bservo.attach(9);
  Serial.begin(9600);
}

void loop(){
  Bservo.write(0);
  Tservo.write(95);
  delay(2500);
  
  for(int i = 95; i > 20; i--) {
    Tservo.write(i);
    delay(2);
  }
  delay(300);
  color=getcolor();
  switch (color) {
    case 1:
   { 
    Bservo.write(45);
    break;
    }
    case 2:
   { 
    Bservo.write(90);
    break;
    }
    case 3:
   { 
    Bservo.write(0);
    break;
    }
    default:
    break;
  }
  delay(300);
  
  for(int i = 20; i > 0; i--) {
    Tservo.write(i);
    delay(2);
  } 
  delay(1000);
  
  for(int i = 20; i < 95; i++) {
    Tservo.write(i);
    delay(2);
  }
  color=0;
}
//definir une fonction qui récupère les valeurs de tension des couleurs


int getcolor(){
digitalWrite(2,HIGH);
delay(2000);
Serial.println("R = ");
Serial.println(analogRead(0)); 
//La fonction analogRead permet de lire la tension de couleur ,par defaut la plus grande tension c'est celle de rouge puis de vert ,puis de bleau 
R=analogRead(0);
digitalWrite(2,LOW);
digitalWrite(3,HIGH);//cette fonction ca sort le courant de 5 v sur la pile 4
delay(2000);
Serial.println("G = ");
Serial.println(analogRead(0));
G=analogRead(0);//
//la fonction digitalwrite c'est pour ecrire sur une sortie numérique 
digitalWrite(3,LOW);//envoyer un courant de 0 v
digitalWrite(4,HIGH);//alors ca sort le courant de 5 v sur la pile 4
delay(2000);//cette fonction delay permet d'attendre pendant 2000ms 
Serial.println("B = ");
Serial.println(analogRead(0));
B=analogRead(0);
digitalWrite(4,LOW);
delay(50);

//faire un test sur les valeur de tension des couleurs 

if(R>B && R>G)
{color=1;return color;}
if(G>R && G>B)
{color=2;return color;}
if(B>R && B>G)
{color=3;return color;}
}



Documentation

Difficultés rencontrées :

  • Au niveau du capteur de couleur, on n'avait pas un, donc nous avons été obligé de le dépanner à base d'une LED RGB et une photorésistance, et cela nous a pris beaucoup de temps pour installer le matériel et programmer.
  • Nous avons pu capter que trois couleur: bleu, rouge et vert.
  • Au niveau du câblage, il était compliqué parce que la squelette du projet est composée de trois étages ce qui a rendu la mission assez difficile.