Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Revision 4:3d12e141c30f, committed 2019-05-29
- 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 |
--- 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);
}