Arexx CONQUERANTS

De troyesGEII
Révision datée du 18 juin 2015 à 18:18 par Troyesgeii (discussion | contributions) ({{Bleu|Diagramme de Gantt}})
Aller à : navigation, rechercher


Introduction

Présentation du projet

Le projet à réaliser consiste à faire une série de test sur une carte capteur, issue du projet Arexx qui est un robot suiveur de ligne, déjà fabriquée à l’inter semestre qui s'est déroulé en janvier 2015. Ces tests devront faire en sorte de valider le bon fonctionnement de la carte capteur, de chaque composant qui sont :

  • CNY-70
  • LEDS

Pour réaliser ce projet, nous avons formé un groupe de 4 personnes :

  • ALZUBAIDI Mahmoud
  • LAGOUTTE Quentin
  • LANDEVILLE Baptiste
  • THOMAS Alexis

Planning

Diagramme de Gantt

Eagle

Schématique et Board

Voici des images des fichiers Board et Schéma de la carte capteur du robot, qui vont servir pour le dépannage. Schéma Capteur Arexx.png

Programmation

Tests des LEDS

Ce test consiste à faire allumer la led témoin choisie par l'utilisateur, et donc une fois que l'utilisateur choisi le numéro, allant de 1 à 4 dans l'ordre de la gauche vers la droite.

Si les résultats, qui doivent être observables par l'utilisateur, prouvent que l'une des leds ne fonctionne pas correctement, on se dirige vers la partie 3.3. Tests des Défaillances pour avoir des instructions quant à la réparation.

Si les leds fonctionnent tous correctement, l'utilisateur a le choix de retourner vers le menu principal d'accueil afin de poursuivre les tests de la carte.

void led(){  
Serial.println(" ");
Serial.println("Test des leds");  
Serial.println(" ");  
Serial.println("Appuyez sur 1 2 3 ou 4 pour tester la led de votre choix ou 5 pour retourner au menu");
Serial.println("Apre s appui, la led choisie devrait s'allumer pour 2s");  
Serial.println(" ");  
reception();  
switch (rec){  
case '1':    
  Serial.println("led gauche");
  digitalWrite(6,1);
  delay(2000);
  digitalWrite(6,0);
  break;
case '2':    
  Serial.println("led milieu gauche");
  digitalWrite(7,1);
  delay(2000);
  digitalWrite(7,0);
  break;
case '3':    
  Serial.println("led milieu droite");
  digitalWrite(5,1);
  delay(2000);
  digitalWrite(5,0);
  break;  
case '4':
  Serial.println("led droite");    
  digitalWrite(4,1);   
  delay(2000);         
  digitalWrite(4,0);  
  break;  
case '5':    
  accueil();  
default:  
  led();	   

}  
  led();

}

Tests des CNY-70

Le test des capteurs CNY-70, est assez similaire à celui des leds témoins, d'abord on contrôle le fonctionnement des leds infra-rouges de ces capteurs qui agissent comme émetteurs. Ensuite on test la partie récepteur, et cela est fait en lisant la valeur renvoyé par le pin analogique associé au capteur(compris entre 0 et 1023).


void capteur(){
  Serial.println(" ");  
  Serial.println("Test des capteurs");  
  Serial.println(" ");  
  Serial.println("Appuyez sur 1 2 3 ou 4 pour tester le capteur de votre choix ou 5 pour retourner au     menu");
  Serial.println("Placez les capteurs contre une surface sombre");
  Serial.println(" ");
  reception();
  digitalWrite(0,1);
  digitalWrite(1,1);
  digitalWrite(2,1);
  digitalWrite(3,1);
  switch (rec){
  case '1':
	Serial.println("capteur gauche");
	Serial.println(" ");
	digitalWrite(1,1);
	val = analogRead(A1);
	if(val > 500)	
        {
  	Serial.println("Le capteur fonctionne");
  	}	
        else {
  	Serial.println("Le capteur a un dysfonctionnement");
  	}
  	break;
  case '2':
	Serial.println("capteur milieu gauche");
	Serial.println(" ");
	val = analogRead(A0);
	if(val > 500)	
        {
  	Serial.println("Le capteur fonctionne");
  	}
	else {
  	Serial.println("Le capteur a un dysfonctionnement");
  	} 
 	break;
  case '3':
	Serial.println("capteur milieu droit");
	Serial.println(" ");
	val = analogRead(A2);
	if(val > 500)	
        {
  	Serial.println("Le capteur fonctionne");
  	}
	else {
  	Serial.println("Le capteur a un dysfonctionnement");
  	}
  	break;
  case '4':
	Serial.println("capteur droit");
	Serial.println(" ");
	val = analogRead(A3);
	if(val > 500)	
        {  	
        Serial.println("Le capteur fonctionne");
  	}	
        else {
  	Serial.println("Le capteur a un dysfonctionnement");
  	}  	
        break;
  case '5':
	accueil();
  default:
	capteur();
     }
  capteur();
}

Tests des défaillances

Lors des différents tests, il est probable qu'on rencontre des problèmes avec les capteurs ou les leds témoins du robot Arexx.

Cette section détaille les différentes manipulations à effectuer dans ce cas.

En effet, pour les leds témoins frontales du robot ou les capteurs CNY-70 , si l'un d'entre eux se trouve en panne lors du test :

  - Vérifier que les deux pattes sont bien soudés et touchent bien la piste qui lui est associé(à voir sur le fichier board).
  - Contrôler la validité des pistes auxquelles sont reliés les leds à l'aide d'un multimètre, l'erreur peut être un court-circuit ou que la piste soit coupée.
  - Assurer vous du bon fonctionnement des composants reliés aux leds ou aux capteurs, que ce soit des résistances ou des transistors.
  - Examiner les trois connecteurs présents sur la carte, et tester la connexion des pattes avec les pistes qui leur correspondent.
  - Confirmer si le plan de masse n'empêche pas certaines connexions, surtout au niveau des connecteurs.


Enfin, après avoir effectué toutes les manipulations précédentes, vous trouvez que votre capteur et/ou led ne fonctionne pas, cela peut signifier que le composant lui même est défaillant et qu'il faudra donc le remplacer.

Test complet

int rec;
int val;

void setup() {
  for(int i=0;i<7;i++){
	pinMode(i,OUTPUT);
  }
  DDRC = 0x00;
  Serial.begin(9600);
	accueil();
}

void reception(){
  while(Serial.available() == 0);
  if (Serial.available() > 0){
	rec = Serial.read();
  }
}

void accueil(){
  boolean flagaccueil = true;
  Serial.println(" ");
  Serial.println("Tests de la carte capteur");
  Serial.println(" ");
  Serial.println("Appuyez sur 0 pour les tests des leds");
  Serial.println("Appuyez sur 1 pour les test des capteurs");
  Serial.println(" ");
  reception();
  if((rec == '0')&&(flagaccueil == true)){
	led();
	flagaccueil = false;
  }
  if((rec == '1')&&(flagaccueil == true)){
	capteur();
	flagaccueil = false;
  }
  else {

	accueil();
  }  
}

void led(){
  Serial.println(" ");
  Serial.println("Test des leds");
  Serial.println(" ");
	Serial.println("Appuyez sur 1 2 3 ou 4 pour tester la led de votre choix ou 5 pour retourner au menu");
  	Serial.println("Apre s appui, la led choisie devrait s'allumer pour 2s");
  	Serial.println(" ");
    	reception();
    	switch (rec){
    	case '1':
      	Serial.println("led gauche");
      	digitalWrite(6,1);
      	delay(2000);
      	digitalWrite(6,0);
      	break;
    	case '2':
      	Serial.println("led milieu gauche");
      	digitalWrite(7,1);
      	delay(2000);
      	digitalWrite(7,0);
      	break;
    	case '3':
      	Serial.println("led milieu droite");
      	digitalWrite(5,1);
      	delay(2000);
      	digitalWrite(5,0);
      	break;
    	case '4':
      	Serial.println("led droite");
      	digitalWrite(4,1);
      	delay(2000);
      	digitalWrite(4,0);
      	break;
    	case '5':
      	accueil();
    	default:
      	led();	 
    	}
    	led();

}

void capteur(){
  Serial.println(" ");
  Serial.println("Test des capteurs");
  Serial.println(" ");
  Serial.println("Appuyez sur 1 2 3 ou 4 pour tester le capteur de votre choix ou 5 pour retourner au menu");
  Serial.println("Placez les capteurs contre une surface sombre");
  Serial.println(" ");
  reception();
  digitalWrite(0,1);
  digitalWrite(1,1);
  digitalWrite(2,1);
  digitalWrite(3,1);
  switch (rec){
  case '1':
	Serial.println("capteur gauche");
	Serial.println(" ");
	digitalWrite(1,1);
	val = analogRead(A1);
	if(val > 500)
	{
  	Serial.println("Le capteur fonctionne");
  	}
	else {
  	Serial.println("Le capteur a un dysfonctionnement");
  	}
  	break;

  case '2':
	Serial.println("capteur milieu gauche");
	Serial.println(" ");
	val = analogRead(A0);
	if(val > 500)
	{
  	Serial.println("Le capteur fonctionne");
  	}
	else {
  	Serial.println("Le capteur a un dysfonctionnement");
  	}
  	break;

  case '3':
	Serial.println("capteur milieu droit");
	Serial.println(" ");
	val = analogRead(A2);
	if(val > 500)
	{
  	Serial.println("Le capteur fonctionne");
  	}
	else {
  	Serial.println("Le capteur a un dysfonctionnement");
  	}
  	break;

  case '4':
	Serial.println("capteur droit");
	Serial.println(" ");
	val = analogRead(A3);
	if(val > 500)
	{
  	Serial.println("Le capteur fonctionne");
  	}
	else {
  	Serial.println("Le capteur a un dysfonctionnement");
  	}
  	break;

  case '5':
	accueil();
  default:
	capteur();   
  }
  capteur();
}

void loop()
{
}