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
|
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;
|
index_Maitre = ATTENTE_ORDRE;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
@ -871,12 +871,16 @@ enum etat_action_t deplacement_relatif(int distance_x_mm, int distance_y_mm, flo
|
|||||||
// Arrêt du mouvement
|
// Arrêt du mouvement
|
||||||
chassis_emission.status = MOUVEMENT_INTERRUPTION;
|
chassis_emission.status = MOUVEMENT_INTERRUPTION;
|
||||||
send_Chassis(&chassis_emission);
|
send_Chassis(&chassis_emission);
|
||||||
|
etat_deplacement = DR_INIT;
|
||||||
|
return ACTION_ECHEC;
|
||||||
}
|
}
|
||||||
}else if(distance_x_mm < 0){
|
}else if(distance_x_mm < 0){
|
||||||
if(detect_adv_reception.distance_cm[6] < 50){
|
if(detect_adv_reception.distance_cm[6] < 50){
|
||||||
// Arrêt du mouvement
|
// Arrêt du mouvement
|
||||||
chassis_emission.status = MOUVEMENT_INTERRUPTION;
|
chassis_emission.status = MOUVEMENT_INTERRUPTION;
|
||||||
send_Chassis(&chassis_emission);
|
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("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);
|
// 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
|
#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
|
stepperX.run(); // X
|
||||||
stepperY.run(); // Y
|
stepperY.run(); // Y
|
||||||
stepperZ.run(); // Z
|
stepperZ.run(); // Z
|
||||||
@ -244,6 +244,23 @@ void Mvmt(){
|
|||||||
// delay(100);
|
// delay(100);
|
||||||
#endif
|
#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){
|
// if(Modif_Mvt == 1){
|
||||||
// Position_Calculation();
|
// Position_Calculation();
|
||||||
|
Loading…
Reference in New Issue
Block a user