sequences des strats

Revision:
4:7a9a9720e4d0
Parent:
3:4810f8316e38
Child:
5:aa69d0e17c4e
--- a/Strategie.cpp	Sun May 26 14:57:47 2019 +0000
+++ b/Strategie.cpp	Tue May 28 23:53:31 2019 +0000
@@ -3,7 +3,7 @@
 char bufferScore[3]={'0','0','0'}; 
 
 bool typeMovement = DEPLACEMENT_AVANT;
-bool typeEvitement = ARRET;
+int typeEvitement = ARRET;
 
 extern int distanceUltrasonGauche;
 extern int distanceUltrasonDroit;
@@ -182,6 +182,7 @@
 
 /*-------Debut Strategie homologation jaune-----------------------------------------------------------*/
 
+
 void strategieHomologationJaune(deplacement robot, Pompe pompe, Demarreur demarreur, Bras brasGauche, Bras brasDroit, BrasPousser brasPousserGauche,  BrasPousser brasPousserDroit)
 {
     write(bufferScore);
@@ -197,6 +198,91 @@
     lancerTimerEcran();
     tempsMatch.start();
     typeEvitement = ARRET;
+    while(tempsMatch  <= TEMPSMATCH)
+    {   
+        switch (etapeMatch) {
+            
+
+            case 0 : /* On tourne pour aller vers le terrain adverse et on avance jusqu'au milieu du terrain */ 
+            {
+                robot.rotation_rel(-90);
+                robot.ligne_droite_basique(127500);
+                etapeMatch++;
+                
+            break;
+            }
+            case 1 : /* On se met en position pour pousser les palets */ 
+            {
+                robot.rotation_rel(-90);
+                robot.ligne_droite_basique(60000);
+                robot.rotation_rel(-90);
+                brasPousserDroit.activerBras();
+                brasPousserGauche.activerBras();
+                etapeMatch++;
+            
+            break;
+            }
+            case 2 : /* On pousse la zone de chaos dans les cases */ 
+            {
+                robot.ligne_droite_basique(110000);
+                updateAndWriteScore('0', '1', '0');
+                etapeMatch++;
+            
+            break;
+            }
+            case 3 : /* On se met en position pour faire des rectangles */ 
+            {
+                robot.marche_arriere(-10000);
+                brasPousserDroit.desactiverBras();
+                brasPousserGauche.desactiverBras();
+                etapeMatch++;
+            
+            break;
+            }
+            case 4 : /* On fait un rectangle arriere  */ 
+            {
+                
+                robot.marche_arriere(-50000);
+                robot.rotation_rel(90);
+                robot.marche_arriere(-50000);
+                robot.rotation_rel(90);
+                robot.marche_arriere(-50000);
+                robot.rotation_rel(90);
+                robot.marche_arriere(-50000);
+                //robot.rotation_rel(180);
+                etapeMatch++;
+            
+            break;
+            }
+            case 5 : /* On pousse le palet vert ou le vert et les deux bleus dans la balance en passant par la pente */ 
+            {
+                robot.ligne_droite_basique(50000);
+                robot.rotation_rel(-90);
+                robot.ligne_droite_basique(50000);
+                robot.rotation_rel(-90);
+                robot.ligne_droite_basique(50000);
+                robot.rotation_rel(-90);
+                robot.ligne_droite_basique(50000);
+                robot.rotation_rel(-90);
+                etapeMatch++;
+            
+            break;
+            }
+            
+            default:
+            {
+                robot.vitesse_nulle_D(0);
+                robot.vitesse_nulle_G(0);
+                motors_stop();
+            }
+        }  
+    }
+    
+    //Arrêter les moteurs
+    robot.vitesse_nulle_D(0);
+    robot.vitesse_nulle_G(0);
+    motors_stop();
+    while(1);
 }
 
 /*Fin Strategie homologation jaune -------------------------------------------------------------------*/
@@ -216,7 +302,7 @@
         //pc.printf("On attend le depart du Robot Thanos\n\r");
     }
     tempsArretMvt.attach(&arretSystem, TEMPSMATCH);
-    robot.initialisation();
+    robot.initialisation();//check si modif
     lancerTimerEcran();
     tempsMatch.start();
     while(tempsMatch  <= TEMPSMATCH)
@@ -240,7 +326,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 +353,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 +372,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 +388,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(18000,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++;
@@ -383,7 +451,8 @@
 
             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 +461,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 +477,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 +492,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 +509,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 +525,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 +551,7 @@
                 robot.vitesse_nulle_D(0);
                 robot.vitesse_nulle_G(0);
                 motors_stop();
+                pompe.desactiver();
             }
         }  
     }
@@ -491,6 +560,7 @@
     robot.vitesse_nulle_D(0);
     robot.vitesse_nulle_G(0);
     motors_stop();
+    pompe.desactiver();
     while(1);
 }