Accueil » Développeur » Tutoriels » Utiliser l’accéléromètre

Développeur>Tutoriels>Utiliser l’accéléromètre


Dans ce tutoriel vous allez apprendre à gérer l’accéléromètre du robot MRPi1.

L’accéléromètre du robot

Le robot MRPi1 est équipé d’un accéléromètre 3 axes de référence MMA8652FC de chez NXP.

accelerometer

Cet accéléromètre permet de mesurer l’accélération linéaire exprimé en g (environ 9,81 m/s2) .

 

chassis

  • axe X : coté du robot
  • axe Y : avant et arrière du robot
  • axe Z : haut et bas du robot

Les valeurs de sorties au repos :

  • X out = 0 g
  • Y out = 0 g
  • Z out = -1 g

Lecture des axes

Je considère que vous êtes connecté au robot MRPi1 via le logiciel Putty par exemple (voir le guide de démarrage)

  • Lancer l’interpréteur python :
$ python

img1_led

  • importer la libraire mrpi1_lib :

>>> from mrpi1_lib import *
  • lire l’axe X :
>>> acceleroX()

img1_acc

Exemple sans accélération.

La valeur retourné est une valeur en g (accélération).

Deuxième exemple avec une accélération sur l’axe X :

img2_acc

Les fonctions pour lire les 3 axes sont  :

  • acceleroX() : pour lire l’accélération sur l’axe X.
  • acceleroY() : pour lire l’accélération sur l’axe Y.
  • acceleroZ() : pour lire l’accélération sur l’axe Z.

Détection de chocs

Un exemple de détection des chocs sur le robot MRPi1 :

from mrpi1_lib import *
import time

while 1:

  // Lecture du capteur
  axeX = acceleroX();
  axeY = acceleroY();
  axeZ = acceleroZ();

  time.sleep(0.01)

  // axe X
  if(axeX > 0.1):
    led(1,1)
  else:
    led(1,0)   

  // axe Y
  if(axeY > 0.1):
    led(2,1)
  else:
    led(2,0) 

  // axe Z
  if(axeZ > 0.1):
    led(3,1)
  else:
    led(3,0)