Test rotation par rapport à un point : OK
This commit is contained in:
parent
2abcdf5d52
commit
f26e6a0c5d
79
Test.c
79
Test.c
@ -36,8 +36,9 @@ int test_vitesse_moteur(enum t_moteur moteur);
|
||||
int test_asser_moteur(void);
|
||||
int test_localisation(void);
|
||||
int test_avance(void);
|
||||
int test_cde_vitesse(void);
|
||||
int test_cde_vitesse_rotation(void);
|
||||
int test_cde_rotation_ref_robot(void);
|
||||
int test_cde_rotation_ref_robot(double centre_x_mm, double centre_y_mm);
|
||||
int test_cde_vitesse_rectangle(void);
|
||||
int test_cde_vitesse_cercle(void);
|
||||
int test_asser_position_avance(void);
|
||||
@ -61,16 +62,13 @@ int mode_test(){
|
||||
printf("B - pour avance (asser_moteur)\n");
|
||||
printf("C - pour les codeurs\n");
|
||||
printf("D - pour les codeurs (somme en mm)\n");
|
||||
printf("E - Commande en vitesse - rotation pure\n");
|
||||
printf("F - Commande en vitesse - carré\n");
|
||||
printf("G - Commande en vitesse - cercle\n");
|
||||
printf("E - Commande en vitesse...\n");
|
||||
printf("H - Asser Position - avance\n");
|
||||
printf("I - Asser Position - avance et tourne (gyro)\n");
|
||||
printf("J - Asser Position - avance et tourne (sans gyro)\n");
|
||||
printf("K - Trajets aller retour avec Gyro\n");
|
||||
printf("L - pour la localisation\n");
|
||||
printf("M - pour les moteurs\n");
|
||||
printf("N - Rotation dans le référentiel du robot\n");
|
||||
printf("T - Trajectoire\n");
|
||||
printf("U - Scan du bus i2c\n");
|
||||
printf("V - APDS_9960\n");
|
||||
@ -103,17 +101,7 @@ int mode_test(){
|
||||
|
||||
case 'E':
|
||||
case 'e':
|
||||
while(test_cde_vitesse_rotation());
|
||||
break;
|
||||
|
||||
case 'F':
|
||||
case 'f':
|
||||
while(test_cde_vitesse_rectangle());
|
||||
break;
|
||||
|
||||
case 'G':
|
||||
case 'g':
|
||||
while(test_cde_vitesse_cercle());
|
||||
while(test_cde_vitesse());
|
||||
break;
|
||||
|
||||
case 'H':
|
||||
@ -146,11 +134,6 @@ int mode_test(){
|
||||
while(test_moteurs());
|
||||
break;
|
||||
|
||||
case 'N':
|
||||
case 'n':
|
||||
while(test_cde_rotation_ref_robot());
|
||||
break;
|
||||
|
||||
case 'T':
|
||||
case 't':
|
||||
while(test_trajectoire());
|
||||
@ -794,6 +777,48 @@ int test_asser_position_avance(){
|
||||
return 0;
|
||||
}
|
||||
|
||||
int test_cde_vitesse(){
|
||||
printf("A - Commande en vitesse - rectangle\n");
|
||||
printf("B - Commande en vitesse - cercle\n");
|
||||
printf("C - Commande en vitesse - rotation pure\n");
|
||||
printf("D - Commande en vitesse - rotation par rapport à un point (contacteur longer A)\n");
|
||||
printf("E - Commande en vitesse - rotation par rapport à un point (contacteur longer C)\n");
|
||||
|
||||
int lettre;
|
||||
do{
|
||||
lettre = getchar_timeout_us(0);
|
||||
stdio_flush();
|
||||
|
||||
}while(lettre == PICO_ERROR_TIMEOUT || lettre == '\0');
|
||||
|
||||
switch(lettre){
|
||||
case 'a':
|
||||
case 'A':
|
||||
while(test_cde_vitesse_rectangle());
|
||||
break;
|
||||
|
||||
case 'b':
|
||||
case 'B':
|
||||
while(test_cde_vitesse_cercle());
|
||||
break;
|
||||
|
||||
case 'c':
|
||||
case 'C':
|
||||
while(test_cde_vitesse_rotation());
|
||||
break;
|
||||
|
||||
case 'd':
|
||||
case 'D':
|
||||
while(test_cde_rotation_ref_robot(RAYON_ROBOT, 0));
|
||||
break;
|
||||
|
||||
case 'e':
|
||||
case 'E':
|
||||
while(test_cde_rotation_ref_robot(RAYON_ROBOT/2, -RAYON_ROBOT* RACINE_DE_3/2));
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
int test_cde_vitesse_rotation(){
|
||||
int lettre, _step_ms = 1;
|
||||
double vitesse =90.0/2 * 3.14159 /180.0;
|
||||
@ -806,23 +831,25 @@ int test_cde_vitesse_rotation(){
|
||||
sleep_ms(_step_ms);
|
||||
lettre = getchar_timeout_us(0);
|
||||
}while(lettre == PICO_ERROR_TIMEOUT);
|
||||
Moteur_Stop();
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
int test_cde_rotation_ref_robot(){
|
||||
int test_cde_rotation_ref_robot(double centre_x_mm, double centre_y_mm){
|
||||
int lettre, _step_ms = 1;
|
||||
double vitesse =90.0/2 * 3.14159 /180.0;
|
||||
printf("Rotation du robot sur lui-même en 8 secondes\nVitesse : %f rad/s\n", vitesse);
|
||||
double vitesse =90.0/4 * 3.14159 /180.0;
|
||||
printf("Rotation du robot par rapport au point (Rayon, O)\nVitesse : %f rad/s\n", vitesse);
|
||||
|
||||
commande_rotation(vitesse, RAYON_ROBOT, 0);
|
||||
commande_rotation(vitesse, centre_x_mm, centre_y_mm);
|
||||
do{
|
||||
QEI_update();
|
||||
AsserMoteur_Gestion(_step_ms);
|
||||
sleep_ms(_step_ms);
|
||||
lettre = getchar_timeout_us(0);
|
||||
}while(lettre == PICO_ERROR_TIMEOUT);
|
||||
Moteur_Stop();
|
||||
|
||||
return 0;
|
||||
}
|
||||
@ -851,6 +878,7 @@ int test_cde_vitesse_rectangle(){
|
||||
temps_ms += _step_ms;
|
||||
lettre = getchar_timeout_us(0);
|
||||
}while(lettre == PICO_ERROR_TIMEOUT);
|
||||
Moteur_Stop();
|
||||
|
||||
return 0;
|
||||
}
|
||||
@ -869,6 +897,7 @@ int test_cde_vitesse_cercle(){
|
||||
|
||||
lettre = getchar_timeout_us(0);
|
||||
}while(lettre == PICO_ERROR_TIMEOUT);
|
||||
Moteur_Stop();
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user