l

Dependencies:   mbed Asser2

deplacement.h

Committer:
GuillaumeCH
Date:
2019-05-16
Revision:
4:eac6746544fb
Parent:
3:d38aa400d5e7
Child:
5:3638d7e7c5c1

File content as of revision 4:eac6746544fb:

#ifndef DEPLACEMENT_H
#define DEPLACEMENT_H

#define TAILLE_TAB 250
struct Coordonnees
{
            double x; 
            double y;
};
class deplacement{
    public:
        deplacement();
        void initialisation(void);//init
        
        void rotation_rel(double angle_vise); // rotation relative angle positif pour tourner vers la gauche
        void rotation_abs(double angle_vise); //rotation absolue du robot
        
        void commande_vitesse(float vitesse_G, float vitesse_D); //set_PWM avec des vitesses flottantes.
        
        void vitesse_nulle_D(int zero); //coupe moteur droit
        void vitesse_nulle_G(int zero); //coupe moteur gauche
        
        void marche_arriere(int distance); // ligne droite en marche arriere, argument entier NEGATIF
        void ligne_droite(long int distance); // ligne droite en marche avant, argument entier POSITIF
        
        void asservissement(void); // asservissement en vitesse à ne pas utiliser avec les fonctions de déplacement séquentiel
        void printftab(void);  
        void test(void);
        void changement_consigne(int cons_D, int cons_G);

        
        void poussette(); // set PWM 150 pendant 1.5s 
        void arc(Coordonnees p1, Coordonnees p2);//p2 point final p1 point intermediaire
        int cercle(Coordonnees a,Coordonnees b, Coordonnees c);
        double int_ext_cercle(double x, double y);
        void va_au_point(double x,double y, double cap);
        double recup_angle_entre_trois_points_213(double x1,double y1,double x2,double y2,double x3,double y3);
    
    
    private:
        float consigne;
        int consigne_D;
        int consigne_G;
        float somme_erreur_D;
        float somme_erreur_G;
        float erreur_precedente_D;
        float erreur_precedente_G;
        float erreur_glissee_D[5];
        float erreur_glissee_G[5];
        int compteur_glisse;
        float Kp_D;
        float Ki_D;
        float Kd_D;
        float Kp_G;
        float Ki_G;
        float Kd_G;
        long int tick_prec_D;
        long int tick_prec_G;
        float tab_cmd_D[TAILLE_TAB];
        float tab_cmd_G[TAILLE_TAB];
        float vtab_D[TAILLE_TAB];
        float vtab_G[TAILLE_TAB];
        float erreur_tab_G[TAILLE_TAB];
        float erreur_tab_D[TAILLE_TAB];
        float somme_erreur_tab_G[TAILLE_TAB];
        float somme_erreur_tab_D[TAILLE_TAB];
        float c_D[TAILLE_TAB];
        float c_G[TAILLE_TAB];
        int dix_ms;
        int consigne_tab[20][2];
        int compteur_asser;
        double somme_y;
        double point[3];
};


#endif