Arexx SIMONIN : Différence entre versions
(42 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]] | ||
+ | <!-- [[Image:urcasimonin.jpeg]] | ||
− | |||
− | === Présentation === | + | ={{Rouge|Projet tutorés}}= |
+ | |||
+ | ==={{Bleu|Présentation}}=== | ||
Nous avons composé un groupe de 4 personnes, formé de : | Nous avons composé un groupe de 4 personnes, formé de : | ||
Ligne 15 : | Ligne 17 : | ||
* SIMONIN Mathieu | * SIMONIN Mathieu | ||
− | Le projet consiste à créer un robot suiveur de ligne, pour | + | Le projet consiste à créer un robot suiveur de ligne, pour se faire, on doit suivre un cahier des charges précis. |
+ | |||
+ | *Créer deux algorithmes permettant de tester le bon fonctionnement des capteurs et des LEDs. | ||
+ | |||
+ | *Possibilité de modification de la carte d'adaptation. | ||
+ | |||
+ | *Fabrication de la carte gestion. | ||
+ | |||
+ | *Réalisation des programmes permettant le fonctionnement de la carte gestion. | ||
+ | |||
+ | *Suite à des imprévus, nous avons dû abandonner la fabrication de la carte gestion et des programmes correspondant. | ||
+ | |||
− | Après analyse du besoin, | + | Après analyse du besoin, des solutions techniques apparaissent pour répondre à ces besoins. |
− | On aboutit alors à | + | On aboutit alors à la création de deux cartes. |
− | + | * La carte capteur pour l’analyse de la piste sur laquelle le robot évolue. | |
− | + | * Une carte « gestion » pour commander le moteur et la réaction du robot afin de rester sur la piste. | |
− | Pour | + | Pour créer une carte électronique la première étape est de réaliser un schéma électrique. |
[[Image:captureschematic.PNG]] | [[Image:captureschematic.PNG]] | ||
− | Une fois le schéma électrique fini il faut | + | Une fois le schéma électrique fini il faut concevoir le routage. |
− | Pour créer une carte un cahier des charges | + | Pour créer une carte, il faut élaborer un cahier des charges afin de respecter son bon fonctionnement : |
− | * Faire des pistes les plus courtes et | + | * Faire des pistes les plus courtes et larges possibles, pas de court-circuit, les cartes vont être superposées donc les emplacements des connecteurs doivent être au même endroit. |
− | * Pour la carte capteur les capteurs doivent être sur la couche bottom, les leds pour signaler la détection de la piste doivent être | + | * Pour la carte capteur, les capteurs doivent être sur la couche bottom, les leds pour signaler la détection de la piste doivent être cohérentes (en face du bon capteur) et visibles par l’utilisateur. |
− | * Pour la carte gestion les boutons poussoirs pour changer le mode de fonctionnement doivent être accessibles par l’utilisateur donc sur la couche top. | + | * Pour la carte gestion, les boutons poussoirs pour changer le mode de fonctionnement doivent être accessibles par l’utilisateur donc sur la couche top. Certains composants ont besoin de dissiper leur chaleur donc un système de pistes larges est nécessaire. |
[[Image:captureboard.PNG]] | [[Image:captureboard.PNG]] | ||
− | === Diagramme de Gantt === | + | Nous avons choisi de tester la carte du duo BOURENNANE/FRERSON, binôme lors du premier semestre |
+ | |||
+ | [[Image:cartecapteurfrerson.jpg]] | ||
+ | ==={{Bleu|Diagramme de Gantt}}=== | ||
+ | Nous nous sommes repartis équitablement le travail, à l'aide d'un diagramme de Gantt. | ||
+ | Abderrahmane et Mathieu se sont chargés du dossier, quand Adrien et Maxime s'occupaient des tests. En revanche l'élaboration des programmes a été réalisé par le groupe tout entier. | ||
[[Image:ganttprojettut.PNG]] | [[Image:ganttprojettut.PNG]] | ||
− | === Tests des leds === | + | ==={{Bleu|Tests des leds}}=== |
− | + | Lors de ce test, nous avons essayé de déterminer si une led s'allume ou non. Si non, nous essayons de déterminer la cause de ce problème. | |
<source lang=c> | <source lang=c> | ||
Ligne 59 : | Ligne 77 : | ||
// On fait clignoter les leds (si elles fonctionnent) | // On fait clignoter les leds (si elles fonctionnent) | ||
− | for (i = 0; i < 5; i++) | + | for (i = 0; i < 5; i++){ |
digitalWrite(0, 1); | digitalWrite(0, 1); | ||
Ligne 153 : | Ligne 171 : | ||
Serial.println("Pour depanner la led gauche, veuillez:"); | Serial.println("Pour depanner la led gauche, veuillez:"); | ||
− | Serial.println(" | + | Serial.println( "Verifier la coherence ou la qualite des resistances et transistors."); |
Serial.println( "Verifier que la piste ne soit pas coupee."); | Serial.println( "Verifier que la piste ne soit pas coupee."); | ||
Serial.println( "Verifier qu'il n'y est pas de court circuit."); | Serial.println( "Verifier qu'il n'y est pas de court circuit."); | ||
− | |||
− | |||
Serial.println( "Verifier que le capteur fonctionne."); | Serial.println( "Verifier que le capteur fonctionne."); | ||
Ligne 175 : | Ligne 191 : | ||
Serial.println("Pour depanner la led milieu gauche, veuillez:"); | Serial.println("Pour depanner la led milieu gauche, veuillez:"); | ||
− | Serial.println(" | + | Serial.println( "Verifier la coherence ou la qualite des resistances et transistors."); |
Serial.println( "Verifier que la piste ne soit pas coupee."); | Serial.println( "Verifier que la piste ne soit pas coupee."); | ||
Serial.println( "Verifier qu'il n'y est pas de court circuit."); | Serial.println( "Verifier qu'il n'y est pas de court circuit."); | ||
− | |||
− | |||
Serial.println( "Verifier que le capteur fonctionne.)"); | Serial.println( "Verifier que le capteur fonctionne.)"); | ||
Ligne 197 : | Ligne 211 : | ||
Serial.println("Pour depanner la led milieu droite, veuillez:"); | Serial.println("Pour depanner la led milieu droite, veuillez:"); | ||
− | Serial.println(" | + | Serial.println( "Verifier la coherence ou la qualite des resistances et transistors."); |
Serial.println( "Verifier que la piste ne soit pas coupee."); | Serial.println( "Verifier que la piste ne soit pas coupee."); | ||
Serial.println( "Verifier qu'il n'y est pas de court circuit."); | Serial.println( "Verifier qu'il n'y est pas de court circuit."); | ||
− | |||
− | |||
Serial.println( "Verifier que le capteur fonctionne.)"); | Serial.println( "Verifier que le capteur fonctionne.)"); | ||
Ligne 209 : | Ligne 221 : | ||
} else { | } else { | ||
− | + | Serial.println("La led milieu droit fonctionne normalement"); | |
} | } | ||
Ligne 219 : | Ligne 231 : | ||
Serial.println("Pour depanner la led droite, veuillez:"); | Serial.println("Pour depanner la led droite, veuillez:"); | ||
− | Serial.println( " | + | Serial.println( "Verifier la coherence ou la qualite des resistances et transistors."); |
Serial.println( "Verifier que la piste ne soit pas coupee."); | Serial.println( "Verifier que la piste ne soit pas coupee."); | ||
Serial.println( "Verifier qu'il n'y est pas de court circuit."); | Serial.println( "Verifier qu'il n'y est pas de court circuit."); | ||
− | |||
− | |||
Serial.println( "Verifier que le capteur fonctionne."); | Serial.println( "Verifier que le capteur fonctionne."); | ||
Ligne 241 : | Ligne 251 : | ||
</source> | </source> | ||
− | + | [[Image:Capturetestsleds.PNG]] | |
+ | ==={{Bleu|Tests des récepteurs des capteurs}}=== | ||
+ | Lors de ce test, nous avons essayé de déterminer si un capteur fonctionne ou pas. Si le capteur ne fonctionne pas, nous essayons de déterminer la cause de ce dysfonctionnement. | ||
<source lang=c> | <source lang=c> | ||
Ligne 277 : | Ligne 289 : | ||
Serial.println("Le recepteur du cote gauche ne fonctionne pas"); | Serial.println("Le recepteur du cote gauche ne fonctionne pas"); | ||
− | Serial.println(" | + | Serial.println( "Verifier la coherence ou la qualite des resistances et transistors."); |
Serial.println("Verifier que la piste ne soit pas coupee."); | Serial.println("Verifier que la piste ne soit pas coupee."); | ||
Ligne 307 : | Ligne 319 : | ||
Serial.println("le recepteur du cote droit ne fonctionne pas"); | Serial.println("le recepteur du cote droit ne fonctionne pas"); | ||
− | Serial.println(" | + | Serial.println( "Verifier la coherence ou la qualite des resistances et transistors."); |
Serial.println("Verifier que la piste ne soit pas coupee."); | Serial.println("Verifier que la piste ne soit pas coupee."); | ||
Ligne 337 : | Ligne 349 : | ||
Serial.println("Le recepteur milieu gauche ne fonctionne pas"); | Serial.println("Le recepteur milieu gauche ne fonctionne pas"); | ||
− | Serial.println(" | + | Serial.println( "Verifier la coherence ou la qualite des resistances et transistors."); |
Serial.println("Verifier que la piste ne soit pas coupee."); | Serial.println("Verifier que la piste ne soit pas coupee."); | ||
Ligne 367 : | Ligne 379 : | ||
Serial.println("Le recepteur milieu droit ne fonctionne pas"); | Serial.println("Le recepteur milieu droit ne fonctionne pas"); | ||
− | Serial.println(" | + | Serial.println( "Verifier la coherence ou la qualite des resistances et transistors."); |
Serial.println("Verifier que la piste ne soit pas coupe."); | Serial.println("Verifier que la piste ne soit pas coupe."); | ||
Ligne 386 : | Ligne 398 : | ||
</source> | </source> | ||
− | + | [[Image:Capturetetscapteurssimonin.PNG]] | |
− | === | + | ==={{Bleu|Organisation du programme}}=== |
<source lang=c> | <source lang=c> | ||
− | // | + | // on définie les variables globales |
− | void menu | + | int choixtest; // variable globale utilisée à l fois dans le void setup et dans le void menu |
− | + | void setup() { | |
− | + | // on définie les sorties | |
− | + | pinMode(0, OUTPUT); // Led milieu droit | |
− | + | pinMode(1, OUTPUT); // Led milieu gauche | |
− | + | pinMode(2, OUTPUT); // Led cote gauche | |
− | + | pinMode(3, OUTPUT); // Led cote droit | |
− | + | pinMode(4, OUTPUT); // emetteur IR cote gauche | |
− | + | pinMode(5, OUTPUT); // emetteur IR milieu gauche | |
− | + | pinMode(6, OUTPUT); // emetteur IR cote droit | |
− | + | pinMode(7, OUTPUT); // emetteur IR milieu droit | |
− | Serial. | + | Serial.begin(9600); |
− | + | } | |
− | + | void loop() { | |
− | + | menu (); // On effectue dans tous les cas la fonction menu pour savoir ce que veut tester l'utilisateur | |
− | + | switch (choixtest) { // Ensuite la variable choixtest contient la réponse de l’utilisateur | |
− | + | case 1: testled (); // On va donc exécuter le programme de test correspondant. | |
− | + | break; | |
− | + | case 2: testemetteur (); | |
− | + | break; | |
− | + | case 3: testrecepteur (); | |
− | + | break; | |
− | } | + | } // Une fois le programme choisit effectuer, le programme reviendra automatiquement au menu |
− | |||
− | |||
− | |||
− | |||
} | } | ||
Ligne 447 : | Ligne 455 : | ||
</source> | </source> | ||
− | === | + | |
+ | ==={{Bleu|Fonction menu}}=== | ||
<source lang=c> | <source lang=c> | ||
− | // | + | //////////////////////////////////////////////sous programme s'occupant du menu//////////////////////////////////////////////////////////// |
+ | |||
+ | void menu () { | ||
− | + | // on definit les variables locales | |
− | + | int choix = 0; | |
− | + | Serial.println("Bonjour,vous allez effectuer un programme permettant de tester une carte capteur."); | |
− | + | delay(3000); | |
− | + | Serial.println("Avant de lancer une procedure de test, veuillez vous assurer de:"); | |
− | + | delay(3000); | |
− | + | Serial.println("-bien connecter la carte capteur a la carte d'adaptation"); | |
− | + | delay(3000); | |
− | + | Serial.println("-puis connecter la carte d adaptation a la carte arduino"); | |
− | + | delay(3000); | |
− | + | Serial.println("Veuillez choisir le test que vous voulez effectuer:"); | |
− | + | delay(1000); | |
− | + | Serial.println("-Le test des Leds : appuyez sur 1"); | |
− | + | Serial.println("-Le test des emetteurs des capteurs : appuyez sur 2"); | |
− | + | Serial.println("-Le test des recepteurs des capteurs : appuyez sur 3"); | |
− | + | delay(3000); | |
− | + | // on attend de lire une valeur | |
− | + | do { | |
− | + | if (Serial.available() > 0) { | |
− | + | choix = Serial.read(); | |
− | + | } | |
− | + | } while (choix == '0'); | |
− | + | choixtest = choix; | |
} | } | ||
Ligne 503 : | Ligne 514 : | ||
</source> | </source> | ||
− | === Programme final === | + | ==={{Bleu|Programme final}}=== |
<source lang=c> | <source lang=c> | ||
Ligne 621 : | Ligne 632 : | ||
// On fait clignoter les leds (si elles fonctionnent) | // On fait clignoter les leds (si elles fonctionnent) | ||
− | for (i = 0; i < 5; i++) | + | for (i = 0; i < 5; i++){ |
digitalWrite(0, 1); | digitalWrite(0, 1); | ||
Ligne 715 : | Ligne 726 : | ||
Serial.println("Pour depanner la led gauche, veuillez:"); | Serial.println("Pour depanner la led gauche, veuillez:"); | ||
− | Serial.println(" | + | Serial.println( "Verifier la coherence ou la qualite des resistances et transistors."); |
Serial.println( "Verifier que la piste ne soit pas coupee."); | Serial.println( "Verifier que la piste ne soit pas coupee."); | ||
Serial.println( "Verifier qu'il n'y est pas de court circuit."); | Serial.println( "Verifier qu'il n'y est pas de court circuit."); | ||
− | |||
− | |||
Serial.println( "Verifier que le capteur fonctionne."); | Serial.println( "Verifier que le capteur fonctionne."); | ||
Ligne 737 : | Ligne 746 : | ||
Serial.println("Pour depanner la led milieu gauche, veuillez:"); | Serial.println("Pour depanner la led milieu gauche, veuillez:"); | ||
− | Serial.println(" | + | Serial.println( "Verifier la coherence ou la qualite des resistances et transistors."); |
Serial.println( "Verifier que la piste ne soit pas coupee."); | Serial.println( "Verifier que la piste ne soit pas coupee."); | ||
Serial.println( "Verifier qu'il n'y est pas de court circuit."); | Serial.println( "Verifier qu'il n'y est pas de court circuit."); | ||
− | |||
− | |||
Serial.println( "Verifier que le capteur fonctionne.)"); | Serial.println( "Verifier que le capteur fonctionne.)"); | ||
Ligne 759 : | Ligne 766 : | ||
Serial.println("Pour depanner la led milieu droite, veuillez:"); | Serial.println("Pour depanner la led milieu droite, veuillez:"); | ||
− | Serial.println(" | + | Serial.println( "Verifier la coherence ou la qualite des resistances et transistors."); |
Serial.println( "Verifier que la piste ne soit pas coupee."); | Serial.println( "Verifier que la piste ne soit pas coupee."); | ||
Serial.println( "Verifier qu'il n'y est pas de court circuit."); | Serial.println( "Verifier qu'il n'y est pas de court circuit."); | ||
− | |||
− | |||
Serial.println( "Verifier que le capteur fonctionne.)"); | Serial.println( "Verifier que le capteur fonctionne.)"); | ||
Ligne 771 : | Ligne 776 : | ||
} else { | } else { | ||
− | + | Serial.println("La led milieu droit fonctionne normalement"); | |
} | } | ||
Ligne 781 : | Ligne 786 : | ||
Serial.println("Pour depanner la led droite, veuillez:"); | Serial.println("Pour depanner la led droite, veuillez:"); | ||
− | Serial.println( " | + | Serial.println( "Verifier la coherence ou la qualite des resistances et transistors."); |
Serial.println( "Verifier que la piste ne soit pas coupee."); | Serial.println( "Verifier que la piste ne soit pas coupee."); | ||
Serial.println( "Verifier qu'il n'y est pas de court circuit."); | Serial.println( "Verifier qu'il n'y est pas de court circuit."); | ||
− | |||
− | |||
Serial.println( "Verifier que le capteur fonctionne."); | Serial.println( "Verifier que le capteur fonctionne."); | ||
Ligne 823 : | Ligne 826 : | ||
delay(3000); | delay(3000); | ||
− | Serial.println("Diriger l'appareil vers les capteurs, le clignotement va commencer dans | + | Serial.println("Diriger l'appareil vers les capteurs, le clignotement va commencer dans 10 secondes: "); |
− | delay( | + | delay(10000); |
// On fait clignoter les emetteurs IR (si elles fonctionnent) | // On fait clignoter les emetteurs IR (si elles fonctionnent) | ||
Ligne 923 : | Ligne 926 : | ||
Serial.println("Pour depanner l emetteur gauche, veuillez:"); | Serial.println("Pour depanner l emetteur gauche, veuillez:"); | ||
− | Serial.println(" | + | Serial.println( "Verifier la coherence ou la qualite des resistances et transistors."); |
Serial.println( "Verifier que la piste ne soit pas coupee."); | Serial.println( "Verifier que la piste ne soit pas coupee."); | ||
Serial.println( "Verifier qu'il n'y est pas de court circuit."); | Serial.println( "Verifier qu'il n'y est pas de court circuit."); | ||
− | |||
− | |||
Serial.println( "Verifier que l emetteur n'est pas endommage."); | Serial.println( "Verifier que l emetteur n'est pas endommage."); | ||
Ligne 943 : | Ligne 944 : | ||
Serial.println("Pour depanner l emetteur milieu gauche, veuillez:"); | Serial.println("Pour depanner l emetteur milieu gauche, veuillez:"); | ||
− | Serial.println(" | + | Serial.println( "Verifier la coherence ou la qualite des resistances et transistors."); |
Serial.println( "Verifier que la piste ne soit pas coupee."); | Serial.println( "Verifier que la piste ne soit pas coupee."); | ||
Serial.println( "Verifier qu'il n'y est pas de court circuit."); | Serial.println( "Verifier qu'il n'y est pas de court circuit."); | ||
− | |||
− | |||
Serial.println( "Verifier que l emetteur n'est pas endommage"); | Serial.println( "Verifier que l emetteur n'est pas endommage"); | ||
Ligne 963 : | Ligne 962 : | ||
Serial.println("Pour depanner l emetteur milieu droite, veuillez:"); | Serial.println("Pour depanner l emetteur milieu droite, veuillez:"); | ||
− | Serial.println(" | + | Serial.println( "Verifier la coherence ou la qualite des resistances et transistors."); |
Serial.println( "Verifier que la piste ne soit pas coupee."); | Serial.println( "Verifier que la piste ne soit pas coupee."); | ||
Serial.println( "Verifier qu'il n'y est pas de court circuit."); | Serial.println( "Verifier qu'il n'y est pas de court circuit."); | ||
− | |||
− | |||
Serial.println( "Verifier que l emetteur n'est pas endommage."); | Serial.println( "Verifier que l emetteur n'est pas endommage."); | ||
Ligne 983 : | Ligne 980 : | ||
Serial.println("Pour depanner l'emetteur droit, veuillez:"); | Serial.println("Pour depanner l'emetteur droit, veuillez:"); | ||
− | Serial.println( " | + | Serial.println( "Verifier la coherence ou la qualite des resistances et transistors."); |
Serial.println( "Verifier que la piste ne soit pas coupee."); | Serial.println( "Verifier que la piste ne soit pas coupee."); | ||
Serial.println( "Verifier qu'il n'y est pas de court circuit."); | Serial.println( "Verifier qu'il n'y est pas de court circuit."); | ||
− | |||
− | |||
Serial.println( "Verifier que l emetteur n'est pas endommage."); | Serial.println( "Verifier que l emetteur n'est pas endommage."); | ||
Ligne 1 035 : | Ligne 1 030 : | ||
Serial.println("Le recepteur du cote gauche ne fonctionne pas"); | Serial.println("Le recepteur du cote gauche ne fonctionne pas"); | ||
− | Serial.println(" | + | Serial.println( "Verifier la coherence ou la qualite des resistances et transistors."); |
Serial.println("Verifier que la piste ne soit pas coupee."); | Serial.println("Verifier que la piste ne soit pas coupee."); | ||
Ligne 1 065 : | Ligne 1 060 : | ||
Serial.println("le recepteur du cote droit ne fonctionne pas"); | Serial.println("le recepteur du cote droit ne fonctionne pas"); | ||
− | Serial.println(" | + | Serial.println( "Verifier la coherence ou la qualite des resistances et transistors."); |
Serial.println("Verifier que la piste ne soit pas coupee."); | Serial.println("Verifier que la piste ne soit pas coupee."); | ||
Ligne 1 095 : | Ligne 1 090 : | ||
Serial.println("Le recepteur milieu gauche ne fonctionne pas"); | Serial.println("Le recepteur milieu gauche ne fonctionne pas"); | ||
− | Serial.println(" | + | Serial.println( "Verifier la coherence ou la qualite des resistances et transistors."); |
Serial.println("Verifier que la piste ne soit pas coupee."); | Serial.println("Verifier que la piste ne soit pas coupee."); | ||
Ligne 1 125 : | Ligne 1 120 : | ||
Serial.println("Le recepteur milieu droit ne fonctionne pas"); | Serial.println("Le recepteur milieu droit ne fonctionne pas"); | ||
− | Serial.println(" | + | Serial.println( "Verifier la coherence ou la qualite des resistances et transistors."); |
Serial.println("Verifier que la piste ne soit pas coupee."); | Serial.println("Verifier que la piste ne soit pas coupee."); | ||
Ligne 1 144 : | Ligne 1 139 : | ||
</source> | </source> | ||
+ | |||
+ | Avec une carte quelque peu défaillante, nous constatons que nos programmes marchent. Malheureusement seulement un des 4 capteurs et 2 des 4 leds fonctionnent. | ||
+ | |||
+ | [[Image:Capturesimonincarte.PNG]]--> |