sequences des strats
Diff: Strategie.cpp
- 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); }