Arexx CONQUERANTS

De troyesGEII
Révision datée du 18 juin 2015 à 09:41 par Troyesgeii (discussion | contributions) ({{Rouge|Programmation}})
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

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

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 CNY70

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éfaillance

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()
{
}