Xavier Jannin / Mbed 2 deprecated PETIT_robot

Dependencies:   mbed

Committer:
xav_jann1
Date:
Wed May 22 16:54:27 2019 +0000
Revision:
0:1cfd66c3a181
Premiere version

Who changed what in which revision?

UserRevisionLine numberNew contents of line
xav_jann1 0:1cfd66c3a181 1 #ifndef BASE_H
xav_jann1 0:1cfd66c3a181 2 #define BASE_H
xav_jann1 0:1cfd66c3a181 3
xav_jann1 0:1cfd66c3a181 4 #include "mbed.h"
xav_jann1 0:1cfd66c3a181 5 #include "Moteur.h"
xav_jann1 0:1cfd66c3a181 6 #include "Odometrie.h"
xav_jann1 0:1cfd66c3a181 7 #include "Asservissement.h"
xav_jann1 0:1cfd66c3a181 8
xav_jann1 0:1cfd66c3a181 9 #ifndef M_PI
xav_jann1 0:1cfd66c3a181 10 #define M_PI 3.14159265358979323846f
xav_jann1 0:1cfd66c3a181 11 #endif
xav_jann1 0:1cfd66c3a181 12
xav_jann1 0:1cfd66c3a181 13 class Base {
xav_jann1 0:1cfd66c3a181 14 public:
xav_jann1 0:1cfd66c3a181 15 // Constructeur:
xav_jann1 0:1cfd66c3a181 16 Base(Moteur*, Moteur*, Odometrie*, int);
xav_jann1 0:1cfd66c3a181 17
xav_jann1 0:1cfd66c3a181 18 // Déplacement:
xav_jann1 0:1cfd66c3a181 19 //float moveTo(float X, float Y);
xav_jann1 0:1cfd66c3a181 20 //float setAngle();
xav_jann1 0:1cfd66c3a181 21 //float forward(float d);
xav_jann1 0:1cfd66c3a181 22 void start();
xav_jann1 0:1cfd66c3a181 23 void stop();
xav_jann1 0:1cfd66c3a181 24 void forward(float);
xav_jann1 0:1cfd66c3a181 25 void backward(float);
xav_jann1 0:1cfd66c3a181 26 void turn(float); // °
xav_jann1 0:1cfd66c3a181 27
xav_jann1 0:1cfd66c3a181 28 //float turn(float angle);
xav_jann1 0:1cfd66c3a181 29
xav_jann1 0:1cfd66c3a181 30 // PID:
xav_jann1 0:1cfd66c3a181 31 void setPID_distance(float P, float I, float D);
xav_jann1 0:1cfd66c3a181 32 void setPID_orientation(float P, float I, float D);
xav_jann1 0:1cfd66c3a181 33
xav_jann1 0:1cfd66c3a181 34 // Pointeurs:
xav_jann1 0:1cfd66c3a181 35 float* getErreur_distance_ptr();
xav_jann1 0:1cfd66c3a181 36 float* getErreur_orientation_ptr();
xav_jann1 0:1cfd66c3a181 37 float* getPID_PWM_distance_ptr();
xav_jann1 0:1cfd66c3a181 38 float* getPID_PWM_orientation_ptr();
xav_jann1 0:1cfd66c3a181 39 float* getPID_PWM_gauche_ptr();
xav_jann1 0:1cfd66c3a181 40 float* getPID_PWM_droite_ptr();
xav_jann1 0:1cfd66c3a181 41
xav_jann1 0:1cfd66c3a181 42 // Getters:
xav_jann1 0:1cfd66c3a181 43 float getErreurDistance();
xav_jann1 0:1cfd66c3a181 44 float getErreurOrientation();
xav_jann1 0:1cfd66c3a181 45
xav_jann1 0:1cfd66c3a181 46
xav_jann1 0:1cfd66c3a181 47 private:
xav_jann1 0:1cfd66c3a181 48 // Moteurs:
xav_jann1 0:1cfd66c3a181 49 Moteur* m_moteurG;
xav_jann1 0:1cfd66c3a181 50 Moteur* m_moteurD;
xav_jann1 0:1cfd66c3a181 51 bool m_moteurs_isEnabled;
xav_jann1 0:1cfd66c3a181 52
xav_jann1 0:1cfd66c3a181 53 // Odometrie:
xav_jann1 0:1cfd66c3a181 54 Odometrie* m_odometrie;
xav_jann1 0:1cfd66c3a181 55
xav_jann1 0:1cfd66c3a181 56 // Asservissement distance et orientation:
xav_jann1 0:1cfd66c3a181 57 Asservissement m_asservissement_distance;
xav_jann1 0:1cfd66c3a181 58 Asservissement m_asservissement_orientation;
xav_jann1 0:1cfd66c3a181 59 float m_pos_distance;
xav_jann1 0:1cfd66c3a181 60 float m_pos_orientation;
xav_jann1 0:1cfd66c3a181 61 void setDistanceTo(float);
xav_jann1 0:1cfd66c3a181 62 void setOrientationTo(float o);
xav_jann1 0:1cfd66c3a181 63 //Asservissement m_asservissement_vitesse;
xav_jann1 0:1cfd66c3a181 64 float m_max_erreur_distance, m_max_erreur_orientation;
xav_jann1 0:1cfd66c3a181 65 float m_distance_orientation_ratio;
xav_jann1 0:1cfd66c3a181 66
xav_jann1 0:1cfd66c3a181 67 // PWM maximale envoyée au moteurs:
xav_jann1 0:1cfd66c3a181 68 float m_pwm_max;
xav_jann1 0:1cfd66c3a181 69 float m_pwm_dynamic;
xav_jann1 0:1cfd66c3a181 70
xav_jann1 0:1cfd66c3a181 71 // Debug:
xav_jann1 0:1cfd66c3a181 72 float m_erreur_distance, m_erreur_orientation;
xav_jann1 0:1cfd66c3a181 73 float m_pwm_gauche, m_pwm_droite;
xav_jann1 0:1cfd66c3a181 74 float m_pwm_distance, m_pwm_orientation;
xav_jann1 0:1cfd66c3a181 75
xav_jann1 0:1cfd66c3a181 76 // Mise à jour de la position:
xav_jann1 0:1cfd66c3a181 77 void update();
xav_jann1 0:1cfd66c3a181 78
xav_jann1 0:1cfd66c3a181 79 // Ticker:
xav_jann1 0:1cfd66c3a181 80 Ticker m_ticker;
xav_jann1 0:1cfd66c3a181 81 };
xav_jann1 0:1cfd66c3a181 82
xav_jann1 0:1cfd66c3a181 83 #endif