L'accéléromètre MMA8451

 Pour mesurer l'accélération des objets mécaniques, vous disposez d'un accéléromètre 3 axes MMA8451.

 La documentation technique est accessible sur learn.adafruit.com/adafruit-mma8451-accelerometer-breakout/overview.

 L'accéléromètre MMA8451 possède 3 gammes de fonctionnement : +- 2g, +- 4g et +- 8g.
 Il est équipé d'un convertisseur analogique numérique 14 bits qui fournit une valeur dans l'intervalle entier [-8192, 8192] pour chacune de ses 3 gammes. L'information est délivrée par le MMA8451 sur une sortie conforme au protocole I2C (bus série synchrone bidirectionnel half-duplex).

La connexion du MMA8451 à l'ARDUINO est réalisée par l'intermédiaire de 2 lignes :

  • SDA (Serial Data) : ligne de données bidirectionnelle,
  • SCL (Serial Clock) : ligne d'horloge de synchronisation bidirectionnelle.

Il ne faut également connecter le +5 Volts et la masse, qui doit être commune aux équipements.

Remarque : l'adresse I2C par défaut du MMA8451 est 0x1D (29 en base 10); en cas de conflit avec un autre périphérique I2C, elle peut être changée à 0x1C (28 en base 10) en reliant la sortie A à la masse.

Téléchargement des bibliothèques

Sur les pages du site Adafruit consacrées à la partie logiciel, on peut télécharger :

  •  la bibliothèque Adafruit_MMA8451, qui contient des pilotes pour le MMA8451 et un exemple de programme ARDUINO pour acquérir les données de l'accéléromètre avec le bus I2C :

  •  la bibliothèque Adafruit_Sensor, qui contient des fichiers utiles pour les pilotes de capteurs :

En cas de problème de téléchargement sur le site Adafruit, vous pouvez aussi télécharger les 2 fichiers zip des bibliothèques ici :

 

Installation des bibliothèques

Pour installer les bibliothèques, il suffit d'extraire le répertoire qu'elles contiennent et de le copier dans l'arborescence Arduino de votre installation. 

Important : il faut renommer le répertoire contenu dans les fichiers ZIP, car l'IDE ARDUINO ne supporte pas la présence du caractère '-' dans le chemin d'accès :
- renommer Adafruit_MMA8451_Library-master en Adafruit_MMA8451
- renommer Adafruit_Sensor-master en Adafruit_Sensor.

Au final, voici ce que l'on obtient, en fonction des environnements :

  • Windows et Mac Os X : répertoire Documents/Arduino/Libraries qui est dans le répertoire utilisateur 

  • GNU/Linux : répertoire sketchbook/libraries qui est dans le répertoire utilisateur


Montage ARDUINO

Avec ARDUINO Uno, les lignes I2C correspondent aux entrées :

  • A4 -> SDA (fil jaune soudé sur la plaquette MMA5481)
  • A5 -> SCL (fil orange soudé sur la plaquette MMA5481)

Il faut ajouter les liaisons +5V (rouge)  et masse (noir). Le montage est simple :

Programme exemple

Pour la prise en main, vous pouvez charger l'exemple dans l'IDE ARDUINO : il faut redémarrer l'IDE ARDUINO pour qu'il détecte la présence des nouvelles bibliothèques, puis ouvrir le programme MMA8451demo.ino avec le menu Fichier > Exemples > AdafruitMM8451 Library > MMA8451demo

Le programme de démo :

  • crée un objet mma de type Adafruit_MMA8451, qui correspond à l'accéléromètre,
  • utilise les méthodes de la classe  Adafruit_MMA8451 avec la syntaxe objet.methode(...) :
    • mma.gebin() initialise la communication I2C avec l'accéléromètre,
    • mma.setRange(MMA8451_RANGE_2_G)  fixe la gamme à +-2g,
    • mma.read() fait une acquisition de l'accélération sur les 3 axes, puis mma.xmma.y et mma.z contiennent les 3 composantes de l'accélération au moment du read, :
    • mma.getEvent(&event) place dans l'objet event de type sensor_event_t les données de  l'accélération : on peut alors obtenir les 3 composantes en m/s2 avec les attributs event.acceleration.x, event.acceleration.y et event.acceleration.z.

Le programme affiche ces valeurs sur la liaison série, qui peut être visualisée avec le Moniteur :

Modifié le: vendredi 29 avril 2016, 09:29