Différences entre versions de « BMP085-Utiliser »

De MCHobby - Wiki
Sauter à la navigation Sauter à la recherche
 
(8 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=To use this sensor and calculate the altitude and barometric pressure, there's a lot of very hairy and unpleasant math. You can check out the math in the datasheet but really, its not intuitive or educational - its just how the sensor works. So we took care of all the icky math and wrapped it up into a nice Arduino library. You can [http://learn.adafruit.com/bmp085/downloads download the library from github]
+
{{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.  
 +
 
 +
Pour prendre en charge toute cette complexité mathématique, AdaFruit dispose d'une librairie Arduino. Vous pouvez [http://learn.adafruit.com/bmp085/downloads télécharger cette librairie sur le Github d'AdaFruit]
  
 
Pour installer la librairie:
 
Pour installer la librairie:
* To download the library click the DOWNLOADS button in the top right corner.
+
* Cliquez sur le bouton '''DOWNLOADS''' en haut à droite.
* rename the uncompressed folder '''Adafruit_BMP085'''. Check that the '''Adafruit_BMP085''' folder contains Adafruit_BMP085.cpp and '''Adafruit_BMP085.h'''
+
* Renommez le répertoire décompressé en '''Adafruit_BMP085'''.  
* Place the BMP085 library folder yourarduinosketchfolder/libraries/ folder. You may need to create the libraries subfolder if its your first library.  
+
* Vérifiez que le répertoire Adafruit_BMP085 contienne bien les fichiers '''Adafruit_BMP085.cpp''' et '''Adafruit_BMP085.h'''
* Restart the IDE.
+
* Placez la librairie BMP085 dans le répertoire '''répetoire_des_sketch_arduino/libraries/'''.<br />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.
  
Now you can run this first example sketch.
+
Maintenant, vous pouvez compiler et télécharger ce premier sketch d'exemple.
 
}}
 
}}
  
  <nowiki>   #include "Wire.h"
+
  <nowiki>#include "Wire.h"
    #include "Adafruit_BMP085.h"
+
#include "Adafruit_BMP085.h"
    Adafruit_BMP085 bmp;
+
 
    void setup() {
+
Adafruit_BMP085 bmp;
 +
 
 +
void setup() {
 
     Serial.begin(9600);
 
     Serial.begin(9600);
 
     bmp.begin();
 
     bmp.begin();
    }
+
}
    void loop() {
+
 
 +
void loop() {
 
     Serial.print("Temperature = ");
 
     Serial.print("Temperature = ");
 
     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");
 
     Serial.println();
 
     Serial.println();
 
     delay(500);
 
     delay(500);
    }/<nowiki>
+
}</nowiki>
 +
 
 +
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).
  
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:  
+
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:  
  
[[Fichier:BMP085-Utiliser-00.jpg|640px]]
+
{{ADFImage|BMP085-Utiliser-00.jpg}}
  
== Altitude Measurements ==
+
== Mesure d'Altitude ==
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).  
+
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).  
  
[[Fichier:BMP085-Utiliser-01.png|640px]]<br />
+
{{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 55 : 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!
 +
 
 +
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.
 +
 
 +
{{ADFImage|BMP085-Utiliser-03.jpg}}
 +
 
 +
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]!
 +
 
 +
{{ADFImage|BMP085-Utiliser-04.jpg}}
 +
 
 +
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.
 +
 
 +
{{ADFImage|BMP085-Utiliser-05.jpg}}
 +
 
 +
Voila, il affichera maintenant l'altitude correcte! soit 30 mètres, ce qui est nettement mieux.
 +
 
 +
{{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.