Accéléromètre 3 axes - partie 1 : prise en main
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. |
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.x, mma.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 :