diff --git a/Actionneurs/Actionneurs.ino b/Actionneurs/Actionneurs.ino index bfea9f0..9a9c1ae 100644 --- a/Actionneurs/Actionneurs.ino +++ b/Actionneurs/Actionneurs.ino @@ -5,7 +5,7 @@ #define SERVO_PINCE_GAUCHE 8 #define SERVO_PINCE_DROITE 9 -#define FOURCHE_TRANSPORT 5, 266 +#define FOURCHE_TRANSPORT 5, 277 #define FOURCHE_LEVEE 5, 206 #define FOURCHE_PRISE 5, 308 @@ -13,7 +13,7 @@ #define DOIGT_PINCE_GAUCHE_OUVRE 3, 1790 #define DOIGT_PINCE_GAUCHE_SEUIL 1545 -#define DOIGT_PINCE_DROIT_FERME 4, 2475 +#define DOIGT_PINCE_DROIT_FERME 4, 2500 #define DOIGT_PINCE_DROIT_OUVRE 4, 2365 #define DOIGT_PINCE_DROIT_SEUIL 1575 @@ -231,7 +231,11 @@ void loop() while(Actionneur_prepare_prise_extern() != ACTION_TERMINEE); I2C_memory[I2C_CDE_REALISE] = I2C_memory[I2C_CDE_DEMANDE]; break; - + + case 8: + while(Actionneur_fourche_transport() != ACTION_TERMINEE); + I2C_memory[I2C_CDE_REALISE] = I2C_memory[I2C_CDE_DEMANDE]; + break; } @@ -394,7 +398,7 @@ enum etat_action_t Actionneur_deplacement(void){ } enum etat_action_t Actionneur_prepare_prise_extern(void){ - Servo_set(FOURCHE_PRISE); + Servo_set(FOURCHE_TRANSPORT); // Ascenseur en bas Ascenseur_descend(); // Pinces internes fermées @@ -433,26 +437,12 @@ enum etat_action_t Actionneur_depile_planche(void){ delay(1000); ledcWrite(FOURCHE_LEVEE); delay(1000); - ledcWrite(FOURCHE_PRISE); - delay(50); - ledcWrite(FOURCHE_LEVEE); - delay(150); - ledcWrite(FOURCHE_PRISE); - delay(50); - ledcWrite(FOURCHE_LEVEE); - delay(150); - ledcWrite(FOURCHE_PRISE); - delay(50); - ledcWrite(FOURCHE_LEVEE); - delay(150); - ledcWrite(FOURCHE_PRISE); - delay(50); - ledcWrite(FOURCHE_LEVEE); - delay(150); - ledcWrite(FOURCHE_PRISE); - delay(50); - ledcWrite(FOURCHE_LEVEE); - delay(150); + for(int i=0;i<20;i++){ + ledcWrite(FOURCHE_PRISE); + delay(50); + ledcWrite(FOURCHE_LEVEE); + delay(200); + } return ACTION_TERMINEE; @@ -474,7 +464,6 @@ enum etat_action_t Actionneur_prise_initiale(void){ Servo_set(DOIGT_PINCE_GAUCHE_OUVRE); Servo_set(DOIGT_PINCE_DROIT_OUVRE); - Servo_set(FOURCHE_LEVEE); etat_actionneur = ACTIONNEUR_PRISE_INTERNE_2; break; @@ -498,7 +487,7 @@ enum etat_action_t Actionneur_prise_initiale(void){ case ACTIONNEUR_RECULE_PRISE_INTERNE_2: Serial.println("ACTIONNEUR_RECULE_PRISE_INTERNE_2"); if(Translateur_etat() == ACTION_TERMINEE){ - Servo_set(FOURCHE_TRANSPORT); + //Servo_set(FOURCHE_TRANSPORT); etat_actionneur=ACTIONNEUR_PRISE_INTERNE_1; return ACTION_TERMINEE; } @@ -509,6 +498,11 @@ enum etat_action_t Actionneur_prise_initiale(void){ } +enum etat_action_t Actionneur_fourche_transport(){ + Servo_set(FOURCHE_TRANSPORT); + return ACTION_TERMINEE; +} + enum etat_action_t Actionneur_empile(){ static enum etat_actionneur_t{ ACTIONNEUR_LEVE, diff --git a/Cerveau/Cerveau.ino b/Cerveau/Cerveau.ino index 02e8fee..b40e39c 100644 --- a/Cerveau/Cerveau.ino +++ b/Cerveau/Cerveau.ino @@ -706,13 +706,18 @@ enum etat_action_t gradin_approche(void){ // Depile les planches while(actionneur_action(ACTIONNEUR_DEPILE)!=ACTION_TERMINEE); // Recule de 4 cm - while(deplacement_relatif(-20, 0, 0, 0) != ACTION_TERMINEE); + while(deplacement_relatif(-40, 0, 0, 0) != ACTION_TERMINEE); // Prepa prise externe while(actionneur_action(ACTIONNEUR_PRISE_EXTERNE)!=ACTION_TERMINEE); // Avance de 4,4 cm - while(deplacement_relatif(45, 0, 0, 0) != ACTION_TERMINEE); + while(deplacement_relatif(65, 0, 0, 0) != ACTION_TERMINEE); // On attrape les canettes internes while(actionneur_action(ACTIONNEUR_PRISE)!=ACTION_TERMINEE); + // On recule pour ne pas faire tomber la fourche sur les cannettes + //while(deplacement_relatif(-20, 0, 0, 0) != ACTION_TERMINEE); + // On baisse la fourche + //while(actionneur_action(ACTIONNEUR_FOURCHE_TRANSPORT)!=ACTION_TERMINEE); + statu_approche_gradin = GA_CHERCHE_GAUCHE; return ACTION_TERMINEE; break; diff --git a/Cerveau/Com_actionneur.h b/Cerveau/Com_actionneur.h index e0ab7cc..46f8d73 100644 --- a/Cerveau/Com_actionneur.h +++ b/Cerveau/Com_actionneur.h @@ -11,6 +11,7 @@ #define ACTIONNEUR_EMPILE 5 #define ACTIONNEUR_DEPILE 6 #define ACTIONNEUR_PRISE_EXTERNE 7 +#define ACTIONNEUR_FOURCHE_TRANSPORT 8 struct com_actionneur_t{ char demande_action, action_terminee;