Gestion de l'arrêt sur obstable fonctionnel
This commit is contained in:
parent
8733b2cd80
commit
896df5c089
@ -365,7 +365,7 @@ void gestion_match(){
|
||||
|
||||
case DEPLACEMENT_RELATIF : // Deplacement relatif en cours
|
||||
|
||||
if(deplacement_relatif(translation_x_mm, translation_y_mm, rotation_rad, 1) == ACTION_TERMINEE){
|
||||
if(deplacement_relatif(translation_x_mm, translation_y_mm, rotation_rad, 1) != ACTION_EN_COURS){
|
||||
index_Maitre = ATTENTE_ORDRE;
|
||||
}
|
||||
break;
|
||||
@ -871,12 +871,16 @@ enum etat_action_t deplacement_relatif(int distance_x_mm, int distance_y_mm, flo
|
||||
// Arrêt du mouvement
|
||||
chassis_emission.status = MOUVEMENT_INTERRUPTION;
|
||||
send_Chassis(&chassis_emission);
|
||||
etat_deplacement = DR_INIT;
|
||||
return ACTION_ECHEC;
|
||||
}
|
||||
}else if(distance_x_mm < 0){
|
||||
if(detect_adv_reception.distance_cm[6] < 50){
|
||||
// Arrêt du mouvement
|
||||
chassis_emission.status = MOUVEMENT_INTERRUPTION;
|
||||
send_Chassis(&chassis_emission);
|
||||
etat_deplacement = DR_INIT;
|
||||
return ACTION_ECHEC;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -232,7 +232,7 @@ void Mvmt(){
|
||||
// Serial.print("X Y Z A !");Serial.print("\t\t");Serial.print("\tinter");Serial.println("\tModif");
|
||||
// Serial.print(stepperX.distanceToGo());Serial.print("/");Serial.print(stepperY.distanceToGo());Serial.print("/");Serial.print(stepperZ.distanceToGo());Serial.print("/");Serial.print(stepperA.distanceToGo());Serial.print("\t");Serial.print(Interrupt);Serial.print("\t");Serial.println(Modif_Mvt);
|
||||
#endif
|
||||
while((stepperX.distanceToGo() != 0 || stepperY.distanceToGo() != 0 || stepperZ.distanceToGo() != 0 || stepperA.distanceToGo() != 0) /*&& (Interrupt != 1 || Modif_Mvt != 1)*/){
|
||||
while((stepperX.distanceToGo() != 0 || stepperY.distanceToGo() != 0 || stepperZ.distanceToGo() != 0 || stepperA.distanceToGo() != 0) && (I2C_memory[0] != 1)){
|
||||
stepperX.run(); // X
|
||||
stepperY.run(); // Y
|
||||
stepperZ.run(); // Z
|
||||
@ -244,6 +244,23 @@ void Mvmt(){
|
||||
// delay(100);
|
||||
#endif
|
||||
}
|
||||
// Bien bloquer le robot en cas d'interruption
|
||||
if(I2C_memory[0] == 1){
|
||||
stepperX.setAcceleration(40000);
|
||||
stepperY.setAcceleration(40000);
|
||||
stepperZ.setAcceleration(40000);
|
||||
stepperA.setAcceleration(40000);
|
||||
stepperX.stop(); // X
|
||||
stepperY.stop(); // Y
|
||||
stepperZ.stop(); // Z
|
||||
stepperA.stop(); // A
|
||||
while(stepperX.distanceToGo() != 0 || stepperY.distanceToGo() != 0 || stepperZ.distanceToGo() != 0 || stepperA.distanceToGo() != 0){
|
||||
stepperX.run(); // X
|
||||
stepperY.run(); // Y
|
||||
stepperZ.run(); // Z
|
||||
stepperA.run(); // A
|
||||
}
|
||||
}
|
||||
}
|
||||
// if(Modif_Mvt == 1){
|
||||
// Position_Calculation();
|
||||
|
Loading…
Reference in New Issue
Block a user