Modifications

Sauter à la navigation Sauter à la recherche
aucun résumé de modification
Ligne 8 : Ligne 8 :  
Pour les applications nécessitant des mesures précises, la calibration est nécessaire pour obtenir une valeur de référence fiable.
 
Pour les applications nécessitant des mesures précises, la calibration est nécessaire pour obtenir une valeur de référence fiable.
   −
[[Fichier:ADX335-326-Calibr-01.jpg]]
+
{{ADFImage|ADX335-326-Calibr-01.jpg}}
    
=== La gravité comme référence de calibration ===
 
=== La gravité comme référence de calibration ===
Ligne 16 : Ligne 16 :  
Pour calibrer un senseur avec la référence gravitationnelle, vous avez besoin de déterminér la sortie du senseur pour chaque axe lorsque celui est précisément aligné avec l'attraction terrestre (attraction gravitationnelle). Une calibration de laboratoire (de grande qualité) utilisé des gabarits/supports d'une grande précision. La méthode décrite ci-dessous est simple et fournit des résultats d'une étonnante qualité.   
 
Pour calibrer un senseur avec la référence gravitationnelle, vous avez besoin de déterminér la sortie du senseur pour chaque axe lorsque celui est précisément aligné avec l'attraction terrestre (attraction gravitationnelle). Une calibration de laboratoire (de grande qualité) utilisé des gabarits/supports d'une grande précision. La méthode décrite ci-dessous est simple et fournit des résultats d'une étonnante qualité.   
   −
[[Fichier:ADX335-326-Calibr-02.png]]
+
{{ADFImage|ADX335-326-Calibr-02.png}}
    
=== Monter le senseur ===
 
=== Monter le senseur ===
 
Pour commencer, montez/placez le senseur sur un petit breadboard comme celui que vous pouvez voir ci-dessous. La fond et les côtés du breadboard peuvent servir de références planes d'une relativement bonne précision. Cela permettra d'orienter le senseur avec précision suffisamment bonne afin d'effectuer la calibration.
 
Pour commencer, montez/placez le senseur sur un petit breadboard comme celui que vous pouvez voir ci-dessous. La fond et les côtés du breadboard peuvent servir de références planes d'une relativement bonne précision. Cela permettra d'orienter le senseur avec précision suffisamment bonne afin d'effectuer la calibration.
   −
[[Fichier:ADX335-326-Calibr-03.jpg|300px]]
+
{{ADFImage|ADX335-326-Calibr-03.jpg|300px}}
    
=== Raccorder le senseur ===
 
=== Raccorder le senseur ===
Ligne 27 : Ligne 27 :  
Raccordez le senseur comme présenté ci-dessous.  C'est un circuit équivalent à celui présenté dans la page précedente. Il y a un bouton en plus.
 
Raccordez le senseur comme présenté ci-dessous.  C'est un circuit équivalent à celui présenté dans la page précedente. Il y a un bouton en plus.
   −
[[Fichier:ADX335-326-Calibr-04.jpg|640px]]
+
{{ADFImage|ADX335-326-Calibr-04.jpg|640px}}
    
=== Exécuter le sketch de calibration ===
 
=== Exécuter le sketch de calibration ===
Ligne 63 : Ligne 63 :  
const int buttonPin = 2;
 
const int buttonPin = 2;
   −
// Raw Ranges:
+
// Plage brutes (Raw Ranges):
// initialize to mid-range and allow calibration to
+
// Initialiser la valeur à mi-échelle et permettre à la calibration de
// find the minimum and maximum for each axis
+
// trouver le minimum et le maximum pour chaque axe.
 
int xRawMin = 512;
 
int xRawMin = 512;
 
int xRawMax = 512;
 
int xRawMax = 512;
Ligne 75 : Ligne 75 :  
int zRawMax = 512;
 
int zRawMax = 512;
   −
// Take multiple samples to reduce noise
+
// Capturer plusieurs échantillons (valeurs) pour réduire l'effet du bruit
 
const int sampleSize = 10;
 
const int sampleSize = 10;
   Ligne 86 : Ligne 86 :  
void loop()  
 
void loop()  
 
{
 
{
 +
  // Lecture de la mesure dans les 3 axes.
 +
  // Selon l'orientation physique , une seule des valeurs xRaw, yRaw, zRaw
 +
  // s'éloigne vraiment de la valeur de mi-échelle (et donc s'écarte vraiment de 512).
 
   int xRaw = ReadAxis(xInput);
 
   int xRaw = ReadAxis(xInput);
 
   int yRaw = ReadAxis(yInput);
 
   int yRaw = ReadAxis(yInput);
Ligne 92 : Ligne 95 :  
   if (digitalRead(buttonPin) == LOW)
 
   if (digitalRead(buttonPin) == LOW)
 
   {
 
   {
 +
    // Envoi les 3 valeurs lue vers la calibration.
 +
    // Une seule valeur de xRaw, yRaw, zRaw s'écarte vraiment de 512.
 +
    // Le fait que ce soit xRaw, yRAw, zRaw depend de l'orientation du senseur.
 
     AutoCalibrate(xRaw, yRaw, zRaw);
 
     AutoCalibrate(xRaw, yRaw, zRaw);
 
   }
 
   }
Ligne 117 : Ligne 123 :  
     Serial.print(zRaw);
 
     Serial.print(zRaw);
 
      
 
      
     // Convert raw values to 'milli-Gs"
+
     // Convertir les valeurs brutes en 'milli-G'
 +
    // passe de [+0 .. +1024] (analogique) à [-1000 .. +1000] (mili-G)
 
     long xScaled = map(xRaw, xRawMin, xRawMax, -1000, 1000);
 
     long xScaled = map(xRaw, xRawMin, xRawMax, -1000, 1000);
 
     long yScaled = map(yRaw, yRawMin, yRawMax, -1000, 1000);
 
     long yScaled = map(yRaw, yRawMin, yRawMax, -1000, 1000);
 
     long zScaled = map(zRaw, zRawMin, zRawMax, -1000, 1000);
 
     long zScaled = map(zRaw, zRawMin, zRawMax, -1000, 1000);
 
    
 
    
     // re-scale to fractional Gs
+
     // re-convertir en valeur fractionnelle de G
 
     float xAccel = xScaled / 1000.0;
 
     float xAccel = xScaled / 1000.0;
 
     float yAccel = yScaled / 1000.0;
 
     float yAccel = yScaled / 1000.0;
Ligne 140 : Ligne 147 :     
//
 
//
// Read "sampleSize" samples and report the average
+
// Lecture de "sampleSize" échantillons et retourner la moyenne
 
//
 
//
 
int ReadAxis(int axisPin)
 
int ReadAxis(int axisPin)
Ligne 155 : Ligne 162 :     
//
 
//
// Find the extreme raw readings from each axis
+
// Trouver la valeurs brute la plus extrême pour chaque axe et la memorise
 
//
 
//
 
void AutoCalibrate(int xRaw, int yRaw, int zRaw)
 
void AutoCalibrate(int xRaw, int yRaw, int zRaw)
29 917

modifications

Menu de navigation