Eirbot1A-2020
asserv.hpp
1 #ifndef __ASSERV_H_
2 #define __ASSERV_H_
3 
4 #include "mbed.h"
5 #include "encoder.hpp"
6 #include "moteur.hpp"
7 #include "asserv_vitesse_angle.hpp"
8 #include "math.h"
9 
10 #define A_MAX 0.5
11 
12 // TODO
13 // - goto_XY
14 // - rotate(angle)
15 
16 //POsition, ROtation, STOP
17 //PO_ANGLE = premiere etape deplacement XY
18 //PO_DISTANCE = deuxieme etape XY
19 //ROT = rotation seule
20 //STOP = le robot garde sa position (s'il a de l'inertie il la compense)
21 //RES = asserv coupée
22 enum asserv_state {PO_ANGLE, PO_DISTANCE, PO_STOP, ROT, STOP, RES, RECULER};
23 
24 void init_asserv(void);
25 void reset_consigne(void); //update derniere position connue
26 void set_pwm(void);
27 int sign(float x);
28 void function_Asserv(void); //THE function
29 void update_state(void);
30 void set_state(enum asserv_state s);
31 void set_state_distance(void);
32 void reculer(void);
33 enum asserv_state get_state(void);
34 void set_consigne(char c);
35 void print_debug_asserv(Serial &pc,char c);
36 char *update_debug_string();
37 
38 float XY_to_Distance(float x, float y);
39 float XY_to_Angle(float x, float y);
40 
41 //set
42 void set_X0Y0(float lX0, float lY0);
43 void go_XY(float x_d, float y_d);
44 void rotate(float angle);
45 
46 //get
47 void get_XY(float *x, float *y);
48 float get_angle();
49 
50 #endif // __ASSERV_H_
GP2
Contient les différentes méthodes pour initialiser, activer et désactiver les GP2 et détecter les obs...
Definition: detection.hpp:16
Protocole
Contient toutes les méthodes permettant d'utiliser le protocole côté nucléo.
Definition: Protocole_nucleo.hpp:26
go_to
int go_to(struct position dest)
Permet de transmettre au protocole l'ordre de se déplacer.
Definition: asserv.cpp:8
Encoder
Definition: encoder.hpp:6
Protocole::set_angle
enum Etat set_angle(short angle)
Permet de demander une rotation du robot.
Definition: protocole.cpp:184
Protocole::set_position
enum Etat set_position(short x, short y, char etats[3], int timeout)
Permet de demander un changement de position à l'asservissement.
Definition: protocole.cpp:221
Protocole::get_position
enum Etat get_position(struct position *pos)
Permet de demander la valeur de la position.
Definition: protocole.cpp:128
rotate
void rotate(short angle)
Permet d'ordonner la rotation du robot.
Definition: asserv.cpp:30
angle
short angle()
Permet de demander l'information sur l'angle du robot par rapport à la table.
Definition: asserv.cpp:52
asserv.hpp
Fichier d'interface avec l'asservissement, permet d'utiliser le protocole de communication pour deman...
print_timeout
void print_timeout()
Permet d'afficher TIMEOUT en rouge.
Definition: affichage.cpp:15
print_detection
void print_detection()
Permet d'afficher DETECTION en orange.
Definition: affichage.cpp:43
affichage
void affichage(int asserv_back)
Permet d'afficher timeout/success/fail en fonction du retour du protocole de communication.
Definition: affichage.cpp:54
GP2::disactivate
static void disactivate(char side)
Désactive la détection.
Definition: detection.cpp:18
Protocole::get_angle
enum Etat get_angle(short *angle)
Permet de demander la valeur de l'angle.
Definition: protocole.cpp:144
position
Simple structure permettant de définir une position.
Definition: asserv.hpp:31