dimanche 13 juillet 2014

Magnétomètre/boussole HMC5883L et Arduino

Le circuit intégré HMC5883L fabriqué par Honeywell permet de mesurer les 3 composantes (x, y et z) du champ magnétique dans lequel il est plongé. On peut donc s'en servir comme appareil scientifique permettant de mesurer un champ magnétique avec précision, ou encore comme une boussole qui aidera notre robot à se repérer dans l'espace.

(Il y a quelques années, je vous avais parlé d'une autre méthode pour mesurer un champ magnétique (particulièrement intéressante si vous préférez éviter l'utilisation d'un microcontrôleur):  la sonde à effet Hall Allegro A1302.)

Le circuit intégré lui-même est un minuscule CMS (composant monté en surface) comportant 16 pins réparties autour d'un carré dont les côtés ne mesurent que 3 mm:  hors de question pour moi de souder ça!  Heureusement, il est facile de se procurer un breakout déjà tout fait, comportant déjà les résistances et condensateurs nécessaires  au bon fonctionnement du CI, qu'on pourra facilement brancher à l'Arduino en l'insérant dans un breadboard ou autre.

Sparkfun et Adafruit ont chacun leur version de breakout HMC5883L, mais comme d'habitude ce sont les vendeurs chinois qui offrent les meilleurs prix sur eBay (le mien n'a coûté que $1,50, frais de ports inclus...).

Branchements à l'Arduino

Puisque le magnétomètre utilise le protocole I2C, nous utiliserons les pins de l'Arduino dédiées à ce protocole:
  • La pin VCC du breakout se branche à la pin 5 V de l'Arduino
  • La pin GND du breakout se branche à la pin GND de l'Arduino
  • La pin SCL (serial clock) se branche à la pin A5 de l'Arduino
  • La pin SDA (serial data) se branche à la pin A4 de l'Arduino
  • Nous n'utiliserons pas la pin DRDY (data ready).

Programmation de l'Arduino

En ce qui concerne la programmation de l'Arduino, le plus simple est d'utiliser l'excellente bibliothèque mise au point par Adafruit, qui offre entre autre l'avantage d'afficher l'intensité du champ magnétique en microgauss plutôt qu'une valeur numérique arbitraire située entre 0 et 1023).

Vous pouvez télécharger ici la bibliothèque Adafruit HMC5883, mais vous aurez également besoin de la bibliothèque Adafruit_sensor

Après avoir installé les deux bibliothèques dans le répertoire "libraries" de votre carnet de croquis, vous aurez accès à l'exemple "magsensor" qui montre comment récupérer les 3 composantes du champ magnétique (en microgauss), ainsi que l'orientation du champ magnétique terrestre (le nord étant à 0° par rapport à l'axe X indiqué sur le breakout).


Voici ce que ça donne dans le moniteur série:


Yves Pelletier (Twitter:  @ElectroAmateur)

Aucun commentaire:

Enregistrer un commentaire

Related Posts Plugin for WordPress, Blogger...