Amusons-nous un peu avec un accéléromètre MPU-6050 et un Arduino Uno.
Le MPU-6050 est une centrale inertielle qui combine un accéléromètre et un gyromètre, ce qui permet de mesurer son accélération ou son inclinaison.
Connexions à l'Arduino
Le module MPU-6050 communique en I2C, et les connexions seront donc:
- VCC du MPU-6050: 5 V de l'Arduino*
- GND du MPU-6050: GND de l'Arduino
- SCL du MPU-6050: A5 de l'Arduino
- SDA du MPU-6050: A4 de l'Arduino
Je n'ai pas utilisé les autres broches du module MPU-6050 (XDA, XCL, AD0 et INT).
Installation de la bibliothèque
J'ai eu peu de succès avec la bibliothèque de Jeff Rowberg, malgré son excellente réputation: j'obtenais de fréquents "FIFO overflows", et le sketch s'arrêtait de façon intempestive au bout de quelques secondes.
J'ai donc choisi d'utiliser la bibliothèque MPU6050_tockn, également disponible par l'entremise du gestionnaire de bibliothèques de l'IDE Arduino.
Les deux exemples fournis avec la bibliothèque, "GetAllData" et "GetAngle" permettent de vérifier rapidement le fonctionnement correct de l'accéléromètre et d'explorer les données disponibles.
Au démarrage du programme, il faut laisser le MPU-6050 immobile pendant la procédure de calibration. Différents paramètres sont ensuite affichés dans le moniteur série à chaque seconde.
Une alarme qui retentit quand on bouge le dispositif
Lorsque le MPU-6050 est parfaitement immobile, l'accélération mesurée est de 1 g selon l'axe vertical (c'est causé par la force de gravité). Le sketch ci-dessous active un buzzer piézoélectrique aussitôt que l'accélération mesurée selon n'importe lequel des 3 axes devient supérieure à 1 g.
(N.B.: il s'agit d'un buzzer actif, muni d'un oscillateur interne, qui émet un son aussitôt qu'il est alimenté; il est évidemment possible de modifier le sketch afin d'utiliser un buzzer passif).
Quelques secondes après le démarrage du programme, le buzzer émet un bip pour indiquer que la calibration de l'accéléromètre est terminée.
Une alarme qui retentit quand le dispositif est en chute libre
Si leMPU-6050 est en chute libre, l'accélération mesurée devient nulle. Une minuscule modification au sketch précédent permet d'obtenir un dispositif qui émet un son pendant qu'il tombe.
Une ligne qui demeure obstinément horizontale
Finalement, je me suis amusé à afficher sur un écran OLED SH1106 une ligne qui demeure obstinément horizontale même lorsqu'on incline l'écran.
Articles similaires
Il y a quelques années, j'avais fait quelques expériences avec un accéléromètre MMA7455: secouons cet accéléromètre!, une boîte qui crie quand elle tombe et mesure d'un angle d'inclinaison.
Yves Pelletier (Twitter, Facebook)
Une alarme qui retentit quand le dispositif est en chute libre
Si leMPU-6050 est en chute libre, l'accélération mesurée devient nulle. Une minuscule modification au sketch précédent permet d'obtenir un dispositif qui émet un son pendant qu'il tombe.
Une ligne qui demeure obstinément horizontale
Finalement, je me suis amusé à afficher sur un écran OLED SH1106 une ligne qui demeure obstinément horizontale même lorsqu'on incline l'écran.
L'écran et le MPU-6050 partagent la liaison I2C. Par contre, l'écran OLED est alimenté avec 3,3 V.
Articles similaires
Il y a quelques années, j'avais fait quelques expériences avec un accéléromètre MMA7455: secouons cet accéléromètre!, une boîte qui crie quand elle tombe et mesure d'un angle d'inclinaison.
Yves Pelletier (Twitter, Facebook)