Guillaume Chauvon
/
Asservissment_robot2_v16_05
l
deplacement.h@5:3638d7e7c5c1, 2019-05-20 (annotated)
- Committer:
- JimmyAREM
- Date:
- Mon May 20 23:08:09 2019 +0000
- Revision:
- 5:3638d7e7c5c1
- Parent:
- 4:eac6746544fb
- Child:
- 6:e1585b8bd07d
maj pour publish
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
GuillaumeCH | 2:3066e614372f | 1 | #ifndef DEPLACEMENT_H |
GuillaumeCH | 2:3066e614372f | 2 | #define DEPLACEMENT_H |
GuillaumeCH | 2:3066e614372f | 3 | |
GuillaumeCH | 2:3066e614372f | 4 | #define TAILLE_TAB 250 |
GuillaumeCH | 4:eac6746544fb | 5 | struct Coordonnees |
GuillaumeCH | 4:eac6746544fb | 6 | { |
GuillaumeCH | 4:eac6746544fb | 7 | double x; |
GuillaumeCH | 4:eac6746544fb | 8 | double y; |
GuillaumeCH | 4:eac6746544fb | 9 | }; |
GuillaumeCH | 2:3066e614372f | 10 | class deplacement{ |
GuillaumeCH | 2:3066e614372f | 11 | public: |
GuillaumeCH | 2:3066e614372f | 12 | deplacement(); |
GuillaumeCH | 3:d38aa400d5e7 | 13 | void initialisation(void);//init |
GuillaumeCH | 3:d38aa400d5e7 | 14 | |
GuillaumeCH | 3:d38aa400d5e7 | 15 | void rotation_rel(double angle_vise); // rotation relative angle positif pour tourner vers la gauche |
GuillaumeCH | 3:d38aa400d5e7 | 16 | void rotation_abs(double angle_vise); //rotation absolue du robot |
GuillaumeCH | 3:d38aa400d5e7 | 17 | |
GuillaumeCH | 3:d38aa400d5e7 | 18 | void commande_vitesse(float vitesse_G, float vitesse_D); //set_PWM avec des vitesses flottantes. |
GuillaumeCH | 3:d38aa400d5e7 | 19 | |
GuillaumeCH | 3:d38aa400d5e7 | 20 | void vitesse_nulle_D(int zero); //coupe moteur droit |
GuillaumeCH | 3:d38aa400d5e7 | 21 | void vitesse_nulle_G(int zero); //coupe moteur gauche |
GuillaumeCH | 3:d38aa400d5e7 | 22 | |
GuillaumeCH | 3:d38aa400d5e7 | 23 | void marche_arriere(int distance); // ligne droite en marche arriere, argument entier NEGATIF |
GuillaumeCH | 3:d38aa400d5e7 | 24 | void ligne_droite(long int distance); // ligne droite en marche avant, argument entier POSITIF |
GuillaumeCH | 3:d38aa400d5e7 | 25 | |
GuillaumeCH | 3:d38aa400d5e7 | 26 | void asservissement(void); // asservissement en vitesse à ne pas utiliser avec les fonctions de déplacement séquentiel |
GuillaumeCH | 2:3066e614372f | 27 | void printftab(void); |
GuillaumeCH | 2:3066e614372f | 28 | void test(void); |
GuillaumeCH | 2:3066e614372f | 29 | void changement_consigne(int cons_D, int cons_G); |
GuillaumeCH | 3:d38aa400d5e7 | 30 | |
GuillaumeCH | 3:d38aa400d5e7 | 31 | |
JimmyAREM | 5:3638d7e7c5c1 | 32 | |
JimmyAREM | 5:3638d7e7c5c1 | 33 | void poussette(float temps); // set PWM 150 pendant 1.5s |
GuillaumeCH | 4:eac6746544fb | 34 | void arc(Coordonnees p1, Coordonnees p2);//p2 point final p1 point intermediaire |
GuillaumeCH | 4:eac6746544fb | 35 | int cercle(Coordonnees a,Coordonnees b, Coordonnees c); |
GuillaumeCH | 4:eac6746544fb | 36 | double int_ext_cercle(double x, double y); |
GuillaumeCH | 4:eac6746544fb | 37 | void va_au_point(double x,double y, double cap); |
GuillaumeCH | 4:eac6746544fb | 38 | double recup_angle_entre_trois_points_213(double x1,double y1,double x2,double y2,double x3,double y3); |
GuillaumeCH | 2:3066e614372f | 39 | |
GuillaumeCH | 2:3066e614372f | 40 | |
GuillaumeCH | 2:3066e614372f | 41 | private: |
GuillaumeCH | 2:3066e614372f | 42 | float consigne; |
GuillaumeCH | 2:3066e614372f | 43 | int consigne_D; |
GuillaumeCH | 2:3066e614372f | 44 | int consigne_G; |
GuillaumeCH | 2:3066e614372f | 45 | float somme_erreur_D; |
GuillaumeCH | 2:3066e614372f | 46 | float somme_erreur_G; |
GuillaumeCH | 2:3066e614372f | 47 | float erreur_precedente_D; |
GuillaumeCH | 2:3066e614372f | 48 | float erreur_precedente_G; |
GuillaumeCH | 2:3066e614372f | 49 | float erreur_glissee_D[5]; |
GuillaumeCH | 2:3066e614372f | 50 | float erreur_glissee_G[5]; |
GuillaumeCH | 2:3066e614372f | 51 | int compteur_glisse; |
GuillaumeCH | 2:3066e614372f | 52 | float Kp_D; |
GuillaumeCH | 2:3066e614372f | 53 | float Ki_D; |
GuillaumeCH | 2:3066e614372f | 54 | float Kd_D; |
GuillaumeCH | 2:3066e614372f | 55 | float Kp_G; |
GuillaumeCH | 2:3066e614372f | 56 | float Ki_G; |
GuillaumeCH | 2:3066e614372f | 57 | float Kd_G; |
GuillaumeCH | 2:3066e614372f | 58 | long int tick_prec_D; |
GuillaumeCH | 2:3066e614372f | 59 | long int tick_prec_G; |
GuillaumeCH | 2:3066e614372f | 60 | float tab_cmd_D[TAILLE_TAB]; |
GuillaumeCH | 2:3066e614372f | 61 | float tab_cmd_G[TAILLE_TAB]; |
GuillaumeCH | 2:3066e614372f | 62 | float vtab_D[TAILLE_TAB]; |
GuillaumeCH | 2:3066e614372f | 63 | float vtab_G[TAILLE_TAB]; |
GuillaumeCH | 2:3066e614372f | 64 | float erreur_tab_G[TAILLE_TAB]; |
GuillaumeCH | 2:3066e614372f | 65 | float erreur_tab_D[TAILLE_TAB]; |
GuillaumeCH | 2:3066e614372f | 66 | float somme_erreur_tab_G[TAILLE_TAB]; |
GuillaumeCH | 2:3066e614372f | 67 | float somme_erreur_tab_D[TAILLE_TAB]; |
GuillaumeCH | 2:3066e614372f | 68 | float c_D[TAILLE_TAB]; |
GuillaumeCH | 2:3066e614372f | 69 | float c_G[TAILLE_TAB]; |
GuillaumeCH | 2:3066e614372f | 70 | int dix_ms; |
GuillaumeCH | 2:3066e614372f | 71 | int consigne_tab[20][2]; |
GuillaumeCH | 2:3066e614372f | 72 | int compteur_asser; |
GuillaumeCH | 2:3066e614372f | 73 | double somme_y; |
GuillaumeCH | 4:eac6746544fb | 74 | double point[3]; |
GuillaumeCH | 2:3066e614372f | 75 | }; |
GuillaumeCH | 2:3066e614372f | 76 | |
JimmyAREM | 5:3638d7e7c5c1 | 77 | Coordonnees pointIntermediaire(); |
JimmyAREM | 5:3638d7e7c5c1 | 78 | Coordonnees pointFinale(); |
GuillaumeCH | 2:3066e614372f | 79 | #endif |