Initialisation du test de l'homologation + fonction pour définir la position
This commit is contained in:
parent
2710dadaa2
commit
0e66ae9e4b
@ -13,6 +13,24 @@ void Localisation_init(){
|
|||||||
position.angle_radian = 0;
|
position.angle_radian = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void Localisation_set(double x_mm, double y_mm, double angle_radian){
|
||||||
|
position.x_mm = x_mm;
|
||||||
|
position.y_mm = y_mm;
|
||||||
|
position.angle_radian = angle_radian;
|
||||||
|
}
|
||||||
|
|
||||||
|
void Localisation_set_x(double x_mm){
|
||||||
|
position.x_mm = x_mm;
|
||||||
|
}
|
||||||
|
|
||||||
|
void Localisation_set_y(double y_mm){
|
||||||
|
position.y_mm = y_mm;
|
||||||
|
}
|
||||||
|
|
||||||
|
void Localisation_set_angle(double angle_radian){
|
||||||
|
position.angle_radian = angle_radian;
|
||||||
|
}
|
||||||
|
|
||||||
void Localisation_gestion(){
|
void Localisation_gestion(){
|
||||||
struct t_angle_gyro_double angle_gyro;
|
struct t_angle_gyro_double angle_gyro;
|
||||||
// Voir http://poivron-robotique.fr/Robot-holonome-localisation-partie-2.html
|
// Voir http://poivron-robotique.fr/Robot-holonome-localisation-partie-2.html
|
||||||
|
@ -3,3 +3,8 @@
|
|||||||
struct position_t Localisation_get(void);
|
struct position_t Localisation_get(void);
|
||||||
void Localisation_gestion();
|
void Localisation_gestion();
|
||||||
void Localisation_init();
|
void Localisation_init();
|
||||||
|
|
||||||
|
void Localisation_set(double x_mm, double y_mm, double angle_radian);
|
||||||
|
void Localisation_set_x(double x_mm);
|
||||||
|
void Localisation_set_y(double y_mm);
|
||||||
|
void Localisation_set_angle(double angle_radian);
|
12
Strategie.c
Normal file
12
Strategie.c
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
|
||||||
|
|
||||||
|
void Homologation(void){
|
||||||
|
static enum etat_strategie_t{
|
||||||
|
STRATEGIE_INIT
|
||||||
|
}etat_strategie;
|
||||||
|
|
||||||
|
switch(etat_strategie){
|
||||||
|
case STRATEGIE_INIT:
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
@ -10,3 +10,4 @@ enum longer_direction_t{
|
|||||||
|
|
||||||
enum etat_action_t cerise_accostage(void);
|
enum etat_action_t cerise_accostage(void);
|
||||||
enum etat_action_t cerise_longer_bord(enum longer_direction_t longer_direction);
|
enum etat_action_t cerise_longer_bord(enum longer_direction_t longer_direction);
|
||||||
|
void Homologation(void);
|
@ -15,8 +15,9 @@
|
|||||||
#include "Trajectoire.h"
|
#include "Trajectoire.h"
|
||||||
#include "Test.h"
|
#include "Test.h"
|
||||||
|
|
||||||
int test_accostage();
|
int test_accostage(void);
|
||||||
int test_longe();
|
int test_longe(void);
|
||||||
|
int test_homologation(void);
|
||||||
|
|
||||||
void affichage_test_strategie(){
|
void affichage_test_strategie(){
|
||||||
uint32_t temps;
|
uint32_t temps;
|
||||||
@ -34,20 +35,28 @@ void affichage_test_strategie(){
|
|||||||
int test_strategie(){
|
int test_strategie(){
|
||||||
printf("L - longer.\n");
|
printf("L - longer.\n");
|
||||||
printf("A - Accoster.\n");
|
printf("A - Accoster.\n");
|
||||||
|
printf("H - Homologation.\n");
|
||||||
int lettre;
|
int lettre;
|
||||||
do{
|
do{
|
||||||
lettre = getchar_timeout_us(0);
|
lettre = getchar_timeout_us(0);
|
||||||
}while(lettre == PICO_ERROR_TIMEOUT || lettre == 0);
|
}while(lettre == PICO_ERROR_TIMEOUT || lettre == 0);
|
||||||
switch(lettre){
|
switch(lettre){
|
||||||
|
case 'a':
|
||||||
|
case 'A':
|
||||||
|
while(test_accostage());
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 'h':
|
||||||
|
case 'H':
|
||||||
|
while(test_homologation());
|
||||||
|
break;
|
||||||
|
|
||||||
case 'l':
|
case 'l':
|
||||||
case 'L':
|
case 'L':
|
||||||
while(test_longe());
|
while(test_longe());
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 'a':
|
|
||||||
case 'A':
|
|
||||||
while(test_accostage());
|
|
||||||
break;
|
|
||||||
|
|
||||||
case 'q':
|
case 'q':
|
||||||
case 'Q':
|
case 'Q':
|
||||||
@ -57,6 +66,53 @@ int test_strategie(){
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int test_homologation(){
|
||||||
|
int lettre, _step_ms = 1, temps_ms=0, _step_ms_gyro=2,temps_ms_init;
|
||||||
|
|
||||||
|
i2c_maitre_init();
|
||||||
|
Trajet_init();
|
||||||
|
//printf("Init gyroscope\n");
|
||||||
|
Gyro_Init();
|
||||||
|
|
||||||
|
stdio_flush();
|
||||||
|
|
||||||
|
set_position_avec_gyroscope(1);
|
||||||
|
|
||||||
|
temps_ms = Temps_get_temps_ms();
|
||||||
|
temps_ms_init = temps_ms;
|
||||||
|
do{
|
||||||
|
i2c_gestion(i2c0);
|
||||||
|
i2c_annexe_gestion();
|
||||||
|
// Routines à 1 ms
|
||||||
|
if(temps_ms != Temps_get_temps_ms()){
|
||||||
|
temps_ms = Temps_get_temps_ms();
|
||||||
|
QEI_update();
|
||||||
|
Localisation_gestion();
|
||||||
|
AsserMoteur_Gestion(_step_ms);
|
||||||
|
|
||||||
|
// Routine à 2 ms
|
||||||
|
if(temps_ms % _step_ms_gyro == 0){
|
||||||
|
// Gyro_Read(_step_ms_gyro);
|
||||||
|
}
|
||||||
|
|
||||||
|
if(temps_ms > temps_ms_init + 200){
|
||||||
|
if(cerise_longer_bord(LONGER_VERS_A) == ACTION_TERMINEE){
|
||||||
|
printf("Accostage_terminee\n");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
lettre = getchar_timeout_us(0);
|
||||||
|
}while((lettre == PICO_ERROR_TIMEOUT) || (lettre == 0));
|
||||||
|
printf("Lettre : %d; %c\n", lettre, lettre);
|
||||||
|
|
||||||
|
if(lettre == 'q' && lettre == 'Q'){
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
return 1;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
int test_longe(){
|
int test_longe(){
|
||||||
int lettre, _step_ms = 1, temps_ms=0, _step_ms_gyro=2,temps_ms_init;
|
int lettre, _step_ms = 1, temps_ms=0, _step_ms_gyro=2,temps_ms_init;
|
||||||
|
Loading…
Reference in New Issue
Block a user