m

Files at this revision

API Documentation at this revision

Comitter:
GuillaumeCH
Date:
Wed May 29 06:34:59 2019 +0000
Parent:
3:4810f8316e38
Commit message:
lmlmlm

Changed in this revision

Strategie.cpp Show annotated file Show diff for this revision Revisions of this file
diff -r 4810f8316e38 -r 3d12e141c30f Strategie.cpp
--- a/Strategie.cpp	Sun May 26 14:57:47 2019 +0000
+++ b/Strategie.cpp	Wed May 29 06:34:59 2019 +0000
@@ -193,7 +193,7 @@
         //pc.printf("On attend le depart du Robot Thanos\n\r");
     }
     tempsArretMvt.attach(&arretSystem, TEMPSMATCH);
-    robot.initialisation();
+    //robot.initialisation();
     lancerTimerEcran();
     tempsMatch.start();
     typeEvitement = ARRET;
@@ -216,7 +216,7 @@
         //pc.printf("On attend le depart du Robot Thanos\n\r");
     }
     tempsArretMvt.attach(&arretSystem, TEMPSMATCH);
-    robot.initialisation();
+    //robot.initialisation();
     lancerTimerEcran();
     tempsMatch.start();
     while(tempsMatch  <= TEMPSMATCH)
@@ -240,7 +240,7 @@
                 typeMovement = DEPLACEMENT_AVANT;
                 /*robot.rotation_rel(90);
                 robot.ligne_droite_basique(130000);*/
-                robot.va_au_point(160000,24300,0);
+                robot.va_au_point(160000,23000,0);
                 brasDroit.activerBras();
                 robot.ligne_droite_basique(14000);
                 brasDroit.desactiverBras();
@@ -267,7 +267,7 @@
             case 3 : /* On met le goldenium dans la balance */ 
             {
                 typeEvitement = ARRET;
-                robot.va_au_point(130700,115000,90);
+                robot.va_au_point(130700,116000,90);
                 robot.ligne_droite_basique(15000);
                 /*robot.rotation_rel(-90);
                 robot.ligne_droite_basique(93000);
@@ -286,10 +286,10 @@
                 typeMovement = DEPLACEMENT_ARRIERE;
                 robot.marche_arriere(-8000);
                 typeMovement = DEPLACEMENT_AVANT;
-                robot.rotation_rel(130);
+                robot.rotation_abs(-134);
                 brasPousserGauche.activerBras();
                 brasPousserDroit.activerBras();
-                robot.ligne_droite_basique(117500);
+                robot.ligne_droite_basique(116000);
                 updateAndWriteScore('1', '2', '4');
                 etapeMatch++;
             
@@ -302,36 +302,18 @@
                 typeMovement = DEPLACEMENT_ARRIERE;
                 robot.marche_arriere(-8000);
                 typeMovement = DEPLACEMENT_AVANT;
-                /*robot.rotation_rel(-90);
-                robot.ligne_droite_basique(45000);
-                robot.rotation_rel(-42);
-                robot.ligne_droite_basique(86000);
-                robot.rotation_rel(-90);*/
-                robot.va_au_point(18000,179500,0);
+                robot.va_au_point(15000,178000,0);
                 robot.ligne_droite_basique(5000);
                 brasPousserGauche.activerBras();
                 brasPousserDroit.activerBras();
-                //mettre la fonction pente 
-                
-                /*robot.commande_vitesse(30,30);
-                wait(7);
-                robot.commande_vitesse(150,150);
-                wait(3);*/
-                updateAndWriteScore('1', '3', '4');
                 etapeMatch++;
             
             break;
             }
             case 6 : /* On redescant de la pente */ 
             {
-                pompe.activer();
-                robot.pente_combo(brasPousserGauche,brasPousserDroit,pompe);
-                /*robot.commande_vitesse(-30,-30);
-                wait(2);
-                brasPousserGauche.desactiverBras();
-                brasPousserDroit.desactiverBras();
-                robot.commande_vitesse(-50,-50);
-                 wait_ms(10000);*/
+                robot.pente_combo(0, brasPousserGauche,brasPousserDroit,pompe);
+                updateAndWriteScore('1', '3', '4');
                 robot.vitesse_nulle_D(0);
                 robot.vitesse_nulle_G(0);
                 etapeMatch++;
@@ -374,16 +356,19 @@
         //pc.printf("On attend le depart du Robot Thanos\n\r");
     }
     tempsArretMvt.attach(&arretSystem, 100.0);
-    robot.initialisation();
+    //robot.initialisation();
     lancerTimerEcran();
     tempsMatch.start();
+    typeEvitement = ARRET;
+
     while(tempsMatch  <= TEMPSMATCH)
     {   
         switch (etapeMatch) {
 
             case 0 : /* On active l'expérience */ 
             {
-                robot.ligne_droite_basique(25000);
+                typeMovement = DEPLACEMENT_AVANT;
+                robot.ligne_droite_basique(26500);
                 robot.poussette(300);
                 updateAndWriteScore('0', '4', '0');
                 etapeMatch++;
@@ -392,12 +377,15 @@
             }
             case 1 : /* On pousse le palet bleu de la pente de l'accélérateur */ 
             {
+                typeMovement = DEPLACEMENT_ARRIERE;
                 robot.marche_arriere(-11200);
-                robot.rotation_rel(-90);
-                robot.ligne_droite_basique(130000);
-                brasDroit.activerBras();
-                robot.ligne_droite_basique(16000);
-                brasDroit.desactiverBras();
+                typeMovement = DEPLACEMENT_AVANT;
+                /*robot.rotation_rel(90);
+                robot.ligne_droite_basique(130000);*/
+                robot.va_au_point(300000-160000,23000,180);
+                brasGauche.activerBras();
+                robot.ligne_droite_basique(14000);
+                brasGauche .desactiverBras();
                 updateAndWriteScore('0', '5', '0');
                 etapeMatch++;
             
@@ -405,11 +393,14 @@
             }
             case 2 : /* On récupère le goldenium */ 
             {
-                robot.ligne_droite_basique(54500);
-                robot.rotation_rel(90);
+                robot.va_au_point(300000-223000,30000,-90);
+                //robot.ligne_droite_basique(54500);
+                //robot.rotation_rel(-90);
                 pompe.activer();
-                robot.poussette(1000);
+                robot.poussette(1500);
+                typeMovement = DEPLACEMENT_ARRIERE;
                 robot.marche_arriere(-10000);
+                typeMovement = DEPLACEMENT_AVANT;
                 updateAndWriteScore('0', '8', '0');
                 etapeMatch++;
             
@@ -417,12 +408,14 @@
             }
             case 3 : /* On met le goldenium dans la balance */ 
             {
-                
-                robot.rotation_rel(90);
-                robot.ligne_droite_basique(96000);
-                robot.rotation_rel(90);
-                robot.ligne_droite_basique(104000);
-                robot.poussette(1000);
+                typeEvitement = ARRET;
+                robot.va_au_point(300000-130700,116000,90);
+                robot.ligne_droite_basique(15000);
+                /*robot.rotation_rel(-90);
+                robot.ligne_droite_basique(93000);
+                robot.rotation_rel(-90);
+                robot.ligne_droite_basique(104000);*/
+                robot.poussette(1500);
                 pompe.desactiver();
                 wait(2);
                 updateAndWriteScore('1', '0', '4');
@@ -432,12 +425,13 @@
             }
             case 4 : /* On pousse la zone de chaos dans la zone du redium  */ 
             {
-                
+                typeMovement = DEPLACEMENT_ARRIERE;
                 robot.marche_arriere(-8000);
-                robot.rotation_rel(-135);
+                typeMovement = DEPLACEMENT_AVANT;
+                robot.rotation_abs(-44);
                 brasPousserGauche.activerBras();
                 brasPousserDroit.activerBras();
-                robot.ligne_droite_basique(112500);
+                robot.ligne_droite_basique(116000);
                 updateAndWriteScore('1', '2', '4');
                 etapeMatch++;
             
@@ -447,31 +441,21 @@
             {
                 brasPousserGauche.desactiverBras();
                 brasPousserDroit.desactiverBras();
-                /*robot.marche_arriere(-8000);
-                robot.rotation_rel(-90);
-                robot.ligne_droite(45000);
-                robot.rotation_rel(-42);
-                robot.ligne_droite(86000);*/
-                robot.rotation_rel(90);
+                typeMovement = DEPLACEMENT_ARRIERE;
+                robot.marche_arriere(-8000);
+                typeMovement = DEPLACEMENT_AVANT;
+                robot.va_au_point(300000-18000,178000,180);
+                robot.ligne_droite_basique(5000);
                 brasPousserGauche.activerBras();
                 brasPousserDroit.activerBras();
-                robot.commande_vitesse(30,30);
-                wait(7);
-                robot.commande_vitesse(150,150);
-                wait(3);
-                updateAndWriteScore('1', '3', '4');
                 etapeMatch++;
             
             break;
             }
             case 6 : /* On redescant de la pente */ 
             {
-                robot.commande_vitesse(-30,-30);
-                wait(2);
-                brasPousserGauche.desactiverBras();
-                brasPousserDroit.desactiverBras();
-                robot.commande_vitesse(-50,-50);
-                wait_ms(10000);
+                robot.pente_combo(180, brasPousserGauche,brasPousserDroit,pompe);
+                updateAndWriteScore('1', '3', '4');
                 robot.vitesse_nulle_D(0);
                 robot.vitesse_nulle_G(0);
                 etapeMatch++;
@@ -483,6 +467,7 @@
                 robot.vitesse_nulle_D(0);
                 robot.vitesse_nulle_G(0);
                 motors_stop();
+                pompe.desactiver();
             }
         }  
     }
@@ -491,7 +476,9 @@
     robot.vitesse_nulle_D(0);
     robot.vitesse_nulle_G(0);
     motors_stop();
+    pompe.desactiver();
     while(1);
+
 }
 
 /*--------- Fin Strategie classique jaune --------------------------------------------*/
@@ -504,17 +491,134 @@
 {
     write(bufferScore);
     Timer tempsMatch; // timer en seconde
-    int etapeMatch = 0;
+    int etapeMatch = 3;
     while(demarreur.getState() == false)
     {
         //on attend
         //pc.printf("On attend le depart du Robot Thanos\n\r");
     }
     tempsArretMvt.attach(&arretSystem, TEMPSMATCH);
-    robot.initialisation();
+    //robot.initialisation();
     lancerTimerEcran();
     tempsMatch.start();
     typeEvitement = ARRET;
+    while(tempsMatch  <= TEMPSMATCH)
+    {   
+        switch (etapeMatch) {
+
+            case 0 : /* On active l'expérience */ 
+            {
+                typeMovement = DEPLACEMENT_AVANT;
+                robot.ligne_droite_basique(26500);
+                robot.poussette(300);
+                updateAndWriteScore('0', '4', '0');
+                etapeMatch++;
+                
+            break;
+            }
+            case 1 : /* On pousse le palet bleu de la pente de l'accélérateur */ 
+            {
+                typeMovement = DEPLACEMENT_ARRIERE;
+                robot.marche_arriere(-11200);
+                typeMovement = DEPLACEMENT_AVANT;
+                /*robot.rotation_rel(90);
+                robot.ligne_droite_basique(130000);*/
+                robot.va_au_point(160000,23000,0);
+                brasDroit.activerBras();
+                robot.ligne_droite_basique(14000);
+                brasDroit.desactiverBras();
+                updateAndWriteScore('0', '5', '0');
+                etapeMatch++;
+            
+            break;
+            }
+            case 2 : /* On récupère le goldenium */ 
+            {
+                robot.va_au_point(223000,30000,-90);
+                //robot.ligne_droite_basique(54500);
+                //robot.rotation_rel(-90);
+                pompe.activer();
+                robot.poussette(1500);
+                typeMovement = DEPLACEMENT_ARRIERE;
+                robot.marche_arriere(-10000);
+                typeMovement = DEPLACEMENT_AVANT;
+                updateAndWriteScore('0', '8', '0');
+                etapeMatch++;
+            
+            break;
+            }
+            case 3 : /* On met le goldenium dans la balance */ 
+            {
+                typeEvitement = ARRET;
+                robot.va_au_point(225000,105000,180);
+                brasPousserGauche.activerBras();
+                brasPousserDroit.activerBras();
+                robot.va_au_point(45000,105000,180);
+                brasPousserGauche.desactiverBras();
+                brasPousserDroit.desactiverBras();
+                robot.marche_arriere(7000);
+                
+                updateAndWriteScore('1', '0', '4');
+                etapeMatch++;
+            
+            break;
+            }
+            case 4 : /* On pousse la zone de chaos dans la zone du redium  */ 
+            {
+                robot.va_au_point(15000,178000,0);
+                /*typeMovement = DEPLACEMENT_ARRIERE;
+                robot.marche_arriere(-8000);
+                typeMovement = DEPLACEMENT_AVANT;
+                robot.rotation_abs(-134);
+                brasPousserGauche.activerBras();
+                brasPousserDroit.activerBras();
+                robot.ligne_droite_basique(116000);*/
+                updateAndWriteScore('1', '2', '4');
+                etapeMatch++;
+            
+            break;
+            }
+            case 5 : /* On pousse le palet vert ou le vert et les deux bleus dans la balance en passant par la pente */ 
+            {
+                /*brasPousserGauche.desactiverBras();
+                brasPousserDroit.desactiverBras();
+                typeMovement = DEPLACEMENT_ARRIERE;
+                robot.marche_arriere(-8000);
+                typeMovement = DEPLACEMENT_AVANT;
+                robot.va_au_point(15000,178000,0);
+                robot.ligne_droite_basique(5000);
+                brasPousserGauche.activerBras();
+                brasPousserDroit.activerBras();
+                etapeMatch++;*/
+            
+            break;
+            }
+            case 6 : /* On redescant de la pente */ 
+            {
+                robot.pente_combo(0, brasPousserGauche,brasPousserDroit,pompe);
+                updateAndWriteScore('1', '3', '4');
+                robot.vitesse_nulle_D(0);
+                robot.vitesse_nulle_G(0);
+                etapeMatch++;
+            
+            break;
+            }
+            default:
+            {
+                robot.vitesse_nulle_D(0);
+                robot.vitesse_nulle_G(0);
+                motors_stop();
+                pompe.desactiver();
+            }
+        }  
+    }
+    
+    //Arrêter les moteurs
+    robot.vitesse_nulle_D(0);
+    robot.vitesse_nulle_G(0);
+    motors_stop();
+    pompe.desactiver();
+    while(1);
 }