Advertisement
Guest User

Untitled

a guest
Jun 22nd, 2018
101
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 2.91 KB | None | 0 0
  1. /*
  2.    Fichier principal.
  3.    Auteur : Ivann
  4. */
  5.  
  6. #include "Grove_I2C_Motor_Driver.h"
  7. #include "moteur.h"
  8. #include "Emetteur.h"
  9. #include "capteur.h"
  10. #include "Position.h"
  11.  
  12. // Les librairies permettant de gérer les moteurs et le module suiveur de ligne.
  13. Moteur moteur;
  14. CapteurDeLigne capteur;
  15. Emetteur emit;
  16. Position pos;
  17.  
  18. int state = 0; // Variable d'état permettant de savoir si l'on est dans un virage ou sur un replacement sur la voie.
  19. int vitesse;
  20.  
  21. void setup() {
  22.   // Configuration initiale des moteurs et du module suiveur de ligne.
  23.   capteur.setup();
  24.   moteur.setup();
  25.  
  26.   pinMode(capteur.getSignalPinRight(), INPUT); // initialiser les suiveurs de ligne en sortie digitale 0 ou 1
  27.   pinMode(capteur.getSignalPinMiddle(), INPUT);   // initialiser les suiveurs de ligne en sortie digitale 0 ou 1
  28.   pinMode(capteur.getSignalPinLeft(), INPUT);  // initialiser les suiveurs de ligne en sortie digitale 0 ou 1.
  29.   pinMode(capteur.getfourchePin(), INPUT);     // initialiser le tachymetre en entrée digitale 0 ou 1.
  30.   Serial.begin(9600); // Connexion au port série.
  31.   moteur.moveForward(); // On indique aux moteurs d'avancer.
  32.   emit.setup();
  33.   pos.startTravel(0, 4);
  34. }
  35.  
  36. void loop() {
  37.   Serial.println(state);
  38.  
  39.   if ((capteur.capteurDroit() && capteur.capteurMid()) || (capteur.capteurGauche() && capteur.capteurMid())) {
  40.     if (pos.toPerform() > 0) {
  41.       if (pos.toPerform() == 0) {
  42.         // Tourner à droite.
  43.         moteur.turnRight();
  44.         delay(500);
  45.       } else if (pos.toPerform() == 1) {
  46.         // Tourner à gauche.
  47.         moteur.turnLeft();
  48.         delay(500);
  49.       } else if (pos.toPerform() == 999) {
  50.         // On s'arrête.
  51.         moteur.stopMoving();
  52.         delay(10000);
  53.       }
  54.     } else {
  55.       // Tout droit.
  56.       moteur.moveForward();
  57.       delay(500);
  58.     }
  59.     pos.passNextNode();
  60.    
  61.   } else if (capteur.capteurDroit() && (!(capteur.capteurMid()))) {
  62.     moteur.turnRight(); // On tourne à droite.
  63.     state = 1;
  64.  
  65.     // Si le capteur central est activé.
  66.   } else if (capteur.capteurMid() && (!(capteur.capteurDroit())) && (!(capteur.capteurGauche()))) {
  67.     moteur.moveForward();
  68.     state = 0;
  69.  
  70.     //capteur.calculateDistance(emit);
  71.  
  72.     // Si le capteur de gauche est activé.
  73.   } else if (capteur.capteurGauche() && (!(capteur.capteurMid()))) {
  74.     moteur.turnLeft();
  75.     state = 1;
  76.  
  77.     // Si aucun capteur n'est activé.
  78.   } else if (!(capteur.capteurGauche()) && (capteur.capteurMid()) && (capteur.capteurDroit())) {
  79.     if (state == 0) {
  80.       moteur.turnRight();
  81.     }
  82.  
  83.     // Si les capteurs latéraux sont activés.
  84.   } else if ((capteur.capteurGauche() && (capteur.capteurDroit()) )) {
  85.     moteur.turnRight();
  86.     state = 0;
  87.  
  88.     // Si tous les capteurs sont activés.
  89.   } else if (capteur.capteurGauche() && capteur.capteurDroit() && capteur.capteurMid()) {
  90.     moteur.turnRight();
  91.     state = 0;
  92.   }
  93. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement