Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Base/Base.h@0:1cfd66c3a181, 2019-05-22 (annotated)
- Committer:
- xav_jann1
- Date:
- Wed May 22 16:54:27 2019 +0000
- Revision:
- 0:1cfd66c3a181
Premiere version
Who changed what in which revision?
User | Revision | Line number | New 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 |