Arexx CONQUERANTS : Différence entre versions

De troyesGEII
Aller à : navigation, rechercher
(Page créée avec « Catégorie:Projets Tutorés S2 »)
 
 
(23 révisions intermédiaires par un autre utilisateur non affichées)
Ligne 1 : Ligne 1 :
 
[[Catégorie:Projets Tutorés S2]]
 
[[Catégorie:Projets Tutorés S2]]
 +
 +
<!-- ={{Rouge|Introduction}}=
 +
 +
==={{Bleu|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
 +
 +
={{Rouge|Planning}}=
 +
 +
==={{Bleu|Diagramme de Gantt}}===
 +
 +
[[Image:gantt.jpg]]
 +
 +
={{Rouge|Eagle}}=
 +
 +
==={{Bleu|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.'''
 +
[[Image:Schéma_Capteur_Arexx.png]]
 +
 +
={{Rouge|Programmation}}=
 +
 +
==={{Bleu| 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.
 +
 +
<source lang=c>
 +
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();
 +
 +
}
 +
</source>
 +
 +
==={{Bleu| 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).
 +
 +
 +
<source lang=c>
 +
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();
 +
}
 +
</source>
 +
 +
==={{Bleu| 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.
 +
 +
==={{Bleu| Test complet}}===
 +
<source lang=c>
 +
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()
 +
{
 +
}
 +
 +
</source>
 +
-->

Version actuelle datée du 23 décembre 2015 à 22:37