Scott  0.01
test de synopsis
Scott.h
1 #ifndef Scott_h
2 #define Scott_h
3 #define LIBRARY_VERSION 1.0.0
4 
5 #define ORIGINAL 1 // Version de base de Scott
6 #define DIY 2 // Version DIY de Scott
7 #define SPEED_FACTOR 880000 // Facteur pour le calcul de la vitesse en °/seconde vers durée entre pas
8 
9 class Scott
10 {
11 
12  public:
13 
14  Scott(int version); //Contructeur
15 
27  void setPin(int DroitA1,int DroitA2,int DroitB1,int DroitB2, int GaucheA1,int GaucheA2,int GaucheB1,int GaucheB2);
31  void setPin();
32 
36  void stop();
41  void stop(unsigned int temps);
42 
46  void gauche();
51  void gauche(unsigned int pas);
52 
56  void droite();
61  void droite(unsigned int pas);
62 
66  void avant();
71  void avant(unsigned int pas);
72 
76  void arriere();
81  void arriere(unsigned int pas);
82 
87  void setSpeed(unsigned int vitesse);
88 
94  void setCalibration(int ligneFactor, int angleFactor);
95 
101  void turnGo(float angle, int ligne);
107  void turnGoDegree(float angle, int ligne);
108 
114  void goPosition(int XPosition,int YPosition);
115 
116  private:
117 
118  // Pin pour les moteurs pas-à-pas par défaut
119 
120  int _pinStepper[8];
121 
122  int _DroitA1=2;
123  int _DroitA2=3;
124  int _DroitB1=4;
125  int _DroitB2=5;
126  int _GaucheA1=9;
127  int _GaucheA2=7;
128  int _GaucheB1=10;
129  int _GaucheB2=8;
130 
131  int _XActu=0; // Position actuelle en X du robot dans le repere global
132  int _YActu=0; // Position actuelle en Y du robot dans le repere global
133  double _omega=0; // Position actuelle angulaire du robot dans le repere global
134 
135  double _tick=2500; // Durée entre deux pas définie par la vitesse de déplacment souhaitée
136 
137  int _ligneFactor = 258; //Facteur pour passer de mm à nombre de pas
138  int _angleFactor = 11500; // Facteur pour passer de radians à nombre de pas
139 
140  // Séquences de fonctionnement des moteur pas-à-pas
141  // Séquence avec couple normal - les phases sont alimentés une à une
142  bool _sequenceArriere[4][8]={{1,0,0,0,0,0,0,1},{0,1,0,0,0,0,1,0},{0,0,1,0,0,1,0,0},{0,0,0,1,1,0,0,0}};
143  bool _sequenceAvant[4][8]={{0,0,0,1,1,0,0,0},{0,0,1,0,0,1,0,0},{0,1,0,0,0,0,1,0},{1,0,0,0,0,0,0,1}};
144  bool _sequenceGauche[4][8]={{1,0,0,0,1,0,0,0},{0,1,0,0,0,1,0,0},{0,0,1,0,0,0,1,0},{0,0,0,1,0,0,0,1}};
145  bool _sequenceDroite[4][8]={{0,0,0,1,0,0,0,1},{0,0,1,0,0,0,1,0},{0,1,0,0,0,1,0,0},{1,0,0,0,1,0,0,0}};
146 
147  // Séquence avec plus de couple - Les phases sont alimentées deux à deux
148  bool _sequenceArriereCouple[4][8]={{1,1,0,0,1,0,0,1},{0,1,1,0,0,0,1,1},{0,0,1,1,0,1,1,0},{1,0,0,1,1,1,0,0}};
149  bool _sequenceAvantCouple[4][8]={{1,0,0,1,1,1,0,0},{0,0,1,1,0,1,1,0},{0,1,1,0,0,0,1,1},{1,1,0,0,1,0,0,1}};
150  bool _sequenceGaucheCouple[4][8]={{1,1,0,0,1,1,0,0},{0,1,1,0,0,1,1,0},{0,0,1,1,0,0,1,1},{1,0,0,1,1,0,0,1}};
151  bool _sequenceDroiteCouple[4][8]={{1,0,0,1,1,0,0,1},{0,0,1,1,0,0,1,1},{0,1,1,0,0,1,1,0},{1,1,0,0,1,1,0,0}};
152 
153  bool _sequenceStop[8]={0,0,0,0,0,0,0,0};
154 };
155 #endif
void avant()
Definition: Scott.cpp:137
Definition: Scott.h:9
void droite()
Definition: Scott.cpp:174
void stop()
Definition: Scott.cpp:128
void turnGoDegree(float angle, int ligne)
Definition: Scott.cpp:57
void setCalibration(int ligneFactor, int angleFactor)
Definition: Scott.cpp:122
void arriere()
Definition: Scott.cpp:149
void setPin()
Definition: Scott.cpp:40
void setSpeed(unsigned int vitesse)
Definition: Scott.cpp:45
void goPosition(int XPosition, int YPosition)
Definition: Scott.cpp:92
void gauche()
Definition: Scott.cpp:161
void turnGo(float angle, int ligne)
Definition: Scott.cpp:64