Différences entre versions de « BMP085-Utiliser »

De MCHobby - Wiki
Sauter à la navigation Sauter à la recherche
 
(4 versions intermédiaires par le même utilisateur non affichées)
Ligne 1 : Ligne 1 :
 
{{BMP085-NAV}}
 
{{BMP085-NAV}}
  
{{traduction}}
+
{{ambox-stop|text=Cette page s'applique à l'ancienne génération de pilotes et reste<br />disponible pour référence. Il est vivement recommandé d'utiliser le nouveau pilote<br />BMP085 'Unifié'  (API v2) pour tous vos futures projets. }}
  
 
{{bloc-etroit|text=Il faut utiliser beaucoup d'épouvantables opérations mathématiques déplaisantes pour utiliser ce senseur et calculer l'altitude ainsi que la pression barométrique. Vous pouvez consulter la fiche technique mais à vrai dire, ce n'est pas très intuitif ni très pédagogique - c'est juste la façon dont le senseur fonctionne.  
 
{{bloc-etroit|text=Il faut utiliser beaucoup d'épouvantables opérations mathématiques déplaisantes pour utiliser ce senseur et calculer l'altitude ainsi que la pression barométrique. Vous pouvez consulter la fiche technique mais à vrai dire, ce n'est pas très intuitif ni très pédagogique - c'est juste la façon dont le senseur fonctionne.  
Ligne 31 : Ligne 31 :
 
     Serial.print(bmp.readTemperature());
 
     Serial.print(bmp.readTemperature());
 
     Serial.println(" *C");
 
     Serial.println(" *C");
     Serial.print("Pressure = ");
+
     Serial.print("Pression = ");
 
     Serial.print(bmp.readPressure());
 
     Serial.print(bmp.readPressure());
 
     Serial.println(" Pa");
 
     Serial.println(" Pa");
Ligne 38 : Ligne 38 :
 
}</nowiki>
 
}</nowiki>
  
Then open up the serial monitor at 9600 baud. The sketch will continuously print out the temperature in '''°C''' and pressure in '''Pa''' (Pascals). You can test that the sensor is measuring variations in temperature and pressure by placing your fingertip over the open port hole in the top of the sensor. The temperature and pressure will increase as you can see here:
+
Ouvrez ensuite le moniteur série d'Arduino (sur le début de 9600 bauds).
  
[[Fichier:BMP085-Utiliser-00.jpg]]
+
Le sketch va continuellement afficher la température en '''°C''' et la pression en '''Pa''' (Pascals).  
  
== Altitude Measurements ==
+
Vous pouvez tester les variations de mesure du senseur (en pression et température) en plaçant votre doigt au dessus du trou du senseur. La température et la pression augmenteront comme vous pouvez le constater ici:  
Since we know that pressure drops as we gain altitude (that's why air is so thin on mountain-tops) we can compute the current altitude knowing the pressure and temperature. Again, there's a bit of hairy math involved, [http://en.wikipedia.org/wiki/Barometric_pressure you can read about the calculations on wikipedia] (where this graph is from).
 
  
[[Fichier:BMP085-Utiliser-01.png]]<br />
+
{{ADFImage|BMP085-Utiliser-00.jpg}}
 +
 
 +
== Mesure d'Altitude ==
 +
Puisque nous savons que la pression chute lorsque l'altitude augmente (c'est pourquoi l'air est si ténu en haute altitude) nous pouvons calculer l'altitude actuelle a partir de la pression et de la température. Encore un fois, cela implique encore ces épouvantables opérations mathématiques, [http://en.wikipedia.org/wiki/Barometric_pressure vous pouvez en apprendre plus sur ces calcul sur Wikipédia (''anglais'')] (d'où provient le graphique).
 +
 
 +
{{ADFImage|BMP085-Utiliser-01.png}}<br />
 
<small>Source: [http://en.wikipedia.org/wiki/Barometric_pressure Wikipedia]</small>
 
<small>Source: [http://en.wikipedia.org/wiki/Barometric_pressure Wikipedia]</small>
  
With the Arduino library, we take care of that for you! Simply run this sketch which will return the current altitude based on the pressure.
+
La librairie Arduino d'AdaFruit prend soin de tous ces aspects pour vous! Exécutez simplement le sketch qui retournera l'altitude actuelle à partir de la pression atmosphérique.
  
 
  <nowiki>    #include "Wire.h"
 
  <nowiki>    #include "Wire.h"
Ligne 61 : Ligne 65 :
 
     Serial.print(bmp.readTemperature());
 
     Serial.print(bmp.readTemperature());
 
     Serial.println(" *C");
 
     Serial.println(" *C");
     Serial.print("Pressure = ");
+
     Serial.print("Pression = ");
 
     Serial.print(bmp.readPressure());
 
     Serial.print(bmp.readPressure());
 
     Serial.println(" Pa");
 
     Serial.println(" Pa");
     // Calculate altitude assuming 'standard' barometric
+
     // Calculer l'altitude en considérant le pression
     // pressure of 1013.25 millibar = 101325 Pascal
+
     // barométrique 'standard' de 1013.25 millibar = 101325 Pascal
 
     Serial.print("Altitude = ");
 
     Serial.print("Altitude = ");
 
     Serial.print(bmp.readAltitude());
 
     Serial.print(bmp.readAltitude());
     Serial.println(" meters");
+
     Serial.println(" metres");
 
     Serial.println();
 
     Serial.println();
 
     delay(500);
 
     delay(500);
 
     }</nowiki>
 
     }</nowiki>
  
Run the sketch to see the calculated altitude.
+
Exécutez ce sketch et voyez l'altitude calculée.
 +
 
 +
{{ADFImage|BMP085-Utiliser-02.jpg}}
 +
 
 +
Par exemple: selon le senseur, nous somme actuellement à 21.5m sous le niveau de la mer.
 +
 
 +
Le seul problème c'est que nous savons pertinemment que nous ne sommes pas nous ne niveau de la mer!
  
[[Fichier:BMP085-Utiliser-02.jpg]]
+
Alors, quel est le problème avec le senseur? Aucun, le senseur fonctionne correctement. Le problème c'est que la pression au niveau de l'océan change en fonction des conditions climatiques.  
  
For example, according to the sensor we are 21.5m below sea level. Only problem is, I know for a fact that our current location is not below sea level! So what's wrong with the sensor? Turns out the sensor is just fine. The problem is that the pressure at sea level changes with the weather. So we need to 'normalize' the sensor, and let it know what the sea-level pressure is. You can look up the current sea level pressure on any weather site.
+
Il faut donc 'normaliser' (''normalize'') le senseur, et lui faire savoir quel est la pression atmosphérique au niveau de la mer. Vous pouvez obtenir la pression barométrique au niveau de la mer sur beaucoup de site de prévision atmosphérique.
  
[[Fichier:BMP085-Utiliser-03.jpg]]
+
{{ADFImage|BMP085-Utiliser-03.jpg}}
  
Unfortunately there are half-dozen different units of pressure. here we see it in inches, that's technically "Mercury Inches" or "Hg Inches We need it in Pascals, so [ http://www.engineeringtoolbox.com/pressure-units-converter-d_569.html we'll convert it]!
+
Il existe malheureusement une demi-douzaine d'unités de pression différentes. Sur l'exemple cet exemple elle est exprimée en pouce ('''inches'''), c'est techniquement la hauteur de mercure exprimé en pouce (''Mercury Inches'' or ''Hg Inches''), en Europe il existe encore "millimètre de Mercure" (''mmHg''). Nous avons besoin de cette pression en Pascals, donc [http://www.engineeringtoolbox.com/pressure-units-converter-d_569.html nous allons la convertir]!
  
[[Fichier:BMP085-Utiliser-04.jpg]]
+
{{ADFImage|BMP085-Utiliser-04.jpg}}
  
OK so that's 101,964 Pascals. Open up the '''Examples->BMP085test''' example from the Arduino IDE menubar and edit the line where you pass in the 'corrected' altitude.  
+
Cela fait donc 101,964 Pascals. ouvrez le programme '''Examples->BMP085test''' dans Arduino IDE (depuis la barre de menu) et modifiez la ligne pour y passer en argument la pression actuelle au niveau de la mer. Nous aurons maintenant une évaluation correcte de l'altitude.  
  
[[Fichier:BMP085-Utiliser-05.jpg]]
+
{{ADFImage|BMP085-Utiliser-05.jpg}}
  
Now it will print out the correct altitude! 30 meters which is a lot better.  
+
Voila, il affichera maintenant l'altitude correcte! soit 30 mètres, ce qui est nettement mieux.  
  
[[Fichier:BMP085-Utiliser-06.jpg]]
+
{{ADFImage|BMP085-Utiliser-06.jpg}}
  
 
{{BMP085-TRAILER}}
 
{{BMP085-TRAILER}}

Version actuelle datée du 17 février 2014 à 13:21

Il faut utiliser beaucoup d'épouvantables opérations mathématiques déplaisantes pour utiliser ce senseur et calculer l'altitude ainsi que la pression barométrique. Vous pouvez consulter la fiche technique mais à vrai dire, ce n'est pas très intuitif ni très pédagogique - c'est juste la façon dont le senseur fonctionne.

Pour prendre en charge toute cette complexité mathématique, AdaFruit dispose d'une librairie Arduino. Vous pouvez télécharger cette librairie sur le Github d'AdaFruit

Pour installer la librairie:

  • Cliquez sur le bouton DOWNLOADS en haut à droite.
  • Renommez le répertoire décompressé en Adafruit_BMP085.
  • Vérifiez que le répertoire Adafruit_BMP085 contienne bien les fichiers Adafruit_BMP085.cpp et Adafruit_BMP085.h
  • Placez la librairie BMP085 dans le répertoire répetoire_des_sketch_arduino/libraries/.
    Vous pourriez avoir besoin de créer un sous répertoire libraries si c'est votre première librairie.
  • Redémarrez votre environnement Arduino IDE.

Maintenant, vous pouvez compiler et télécharger ce premier sketch d'exemple.

#include "Wire.h"
#include "Adafruit_BMP085.h"

Adafruit_BMP085 bmp;

void setup() {
    Serial.begin(9600);
    bmp.begin();
}

void loop() {
    Serial.print("Temperature = ");
    Serial.print(bmp.readTemperature());
    Serial.println(" *C");
    Serial.print("Pression = ");
    Serial.print(bmp.readPressure());
    Serial.println(" Pa");
    Serial.println();
    delay(500);
}

Ouvrez ensuite le moniteur série d'Arduino (sur le début de 9600 bauds).

Le sketch va continuellement afficher la température en °C et la pression en Pa (Pascals).

Vous pouvez tester les variations de mesure du senseur (en pression et température) en plaçant votre doigt au dessus du trou du senseur. La température et la pression augmenteront comme vous pouvez le constater ici:

{{{2}}}
Crédit: AdaFruit Industries www.adafruit.com

Mesure d'Altitude

Puisque nous savons que la pression chute lorsque l'altitude augmente (c'est pourquoi l'air est si ténu en haute altitude) nous pouvons calculer l'altitude actuelle a partir de la pression et de la température. Encore un fois, cela implique encore ces épouvantables opérations mathématiques, vous pouvez en apprendre plus sur ces calcul sur Wikipédia (anglais) (d'où provient le graphique).

{{{2}}}
Crédit: AdaFruit Industries www.adafruit.com
Source: Wikipedia

La librairie Arduino d'AdaFruit prend soin de tous ces aspects pour vous! Exécutez simplement le sketch qui retournera l'altitude actuelle à partir de la pression atmosphérique.

    #include "Wire.h"
    #include "Adafruit_BMP085.h"
    Adafruit_BMP085 bmp;
    void setup() {
    Serial.begin(9600);
    bmp.begin();
    }
    void loop() {
    Serial.print("Temperature = ");
    Serial.print(bmp.readTemperature());
    Serial.println(" *C");
    Serial.print("Pression = ");
    Serial.print(bmp.readPressure());
    Serial.println(" Pa");
    // Calculer l'altitude en considérant le pression 
    // barométrique 'standard' de 1013.25 millibar = 101325 Pascal
    Serial.print("Altitude = ");
    Serial.print(bmp.readAltitude());
    Serial.println(" metres");
    Serial.println();
    delay(500);
    }

Exécutez ce sketch et voyez l'altitude calculée.

{{{2}}}
Crédit: AdaFruit Industries www.adafruit.com

Par exemple: selon le senseur, nous somme actuellement à 21.5m sous le niveau de la mer.

Le seul problème c'est que nous savons pertinemment que nous ne sommes pas nous ne niveau de la mer!

Alors, quel est le problème avec le senseur? Aucun, le senseur fonctionne correctement. Le problème c'est que la pression au niveau de l'océan change en fonction des conditions climatiques.

Il faut donc 'normaliser' (normalize) le senseur, et lui faire savoir quel est la pression atmosphérique au niveau de la mer. Vous pouvez obtenir la pression barométrique au niveau de la mer sur beaucoup de site de prévision atmosphérique.

{{{2}}}
Crédit: AdaFruit Industries www.adafruit.com

Il existe malheureusement une demi-douzaine d'unités de pression différentes. Sur l'exemple cet exemple elle est exprimée en pouce (inches), c'est techniquement la hauteur de mercure exprimé en pouce (Mercury Inches or Hg Inches), en Europe il existe encore "millimètre de Mercure" (mmHg). Nous avons besoin de cette pression en Pascals, donc nous allons la convertir!

{{{2}}}
Crédit: AdaFruit Industries www.adafruit.com

Cela fait donc 101,964 Pascals. ouvrez le programme Examples->BMP085test dans Arduino IDE (depuis la barre de menu) et modifiez la ligne pour y passer en argument la pression actuelle au niveau de la mer. Nous aurons maintenant une évaluation correcte de l'altitude.

{{{2}}}
Crédit: AdaFruit Industries www.adafruit.com

Voila, il affichera maintenant l'altitude correcte! soit 30 mètres, ce qui est nettement mieux.

{{{2}}}
Crédit: AdaFruit Industries www.adafruit.com


Source: Bosch BMP085 Breakout Board réalisé par LadyAda pour AdaFruit Industries

Créé par LadyAda pour AdaFruit Indrustries.

Traduit avec l'autorisation d'AdaFruit Industries - Translated with the permission from Adafruit Industries - www.adafruit.com

Toute référence, mention ou extrait de cette traduction doit être explicitement accompagné du texte suivant : «  Traduction par MCHobby (www.MCHobby.be) - Vente de kit et composants » avec un lien vers la source (donc cette page) et ce quelque soit le média utilisé.

L'utilisation commercial de la traduction (texte) et/ou réalisation, même partielle, pourrait être soumis à redevance. Dans tous les cas de figures, vous devez également obtenir l'accord du(des) détenteur initial des droits. Celui de MC Hobby s'arrêtant au travail de traduction proprement dit.