Étape 3: Code :
Le code python pour MMA8452Q peut être téléchargé depuis notre dépôt github-ControlEverythingCommunity
Voici le lien pour la même chose :
https://github.com/ControlEverythingCommunity/MMA8...
Le datasheet du MMA8452Q peut être trouvé ici :
https://S3.amazonaws.com/controleverything.Media/c...
Nous avons utilisé SMBus bibliothèque de code python, les étapes pour installer SMBus sur pi framboise est décrite ici :
https://Pypi.Python.org/Pypi/SMBus-cffi/0.5.1
Vous pouvez également copier le code d’ici, il est affecté comme suit :
# Distribué avec une licence libre-arbitre.
# Utiliser aucunement vous voulez, Profitez ou sans, autant il s’intègre dans les licences de ses ouvrages connexes.
# MMA8452Q
# Ce code est conçu pour fonctionner avec le MMA8452Q_I2CS I2C Mini Module disponible à ControlEverything.com.
# https://www.controleverything.com/content/Accelor...
importer smbus
moment de l’importation
# Obtenir le bus I2C
bus = smbus. SMBus(1)
# Adresse de MMA8452Q, 0x1C(28)
Registre de contrôle select #, 0x2A(42)
# 0x00(00) en mode veille
bus.write_byte_data (0x1C, 0x2A, 0 x 00)
# Adresse de MMA8452Q, 0x1C(28)
Registre de contrôle select #, 0x2A(42)
# 0x01(01) en mode actif
bus.write_byte_data (0x1C, 0x2A, 0 x 01)
# Adresse de MMA8452Q, 0x1C(28)
# Sélectionnez Configuration register, 0x0E(14)
# 0x00(00) plage définie à +/-2g
bus.write_byte_data (0x1C, 0x0E, 0 x 00)
Time.Sleep(0.5)
# Adresse de MMA8452Q, 0x1C(28)
# Lire les données à partir de 0x00(0), 7 octets
# Status register, MSB de l’axe des abscisses, LSB de l’axe x, axe y MSB, LSB de l’axe des ordonnées, MSB de l’axe z, LSB de l’axe z
données = bus.read_i2c_block_data (0x1C, 0 x 00, 7)
# Convertir les données
xAccl = (données [1] * 256 + data[2]) / 16
Si xAccl > 2047 :
xAccl-= 4096
yAccl = (données [3] * 256 + data[4]) / 16
Si yAccl > 2047 :
yAccl = 4096 z
Accl = (données [5] * 256 + data[6]) / 16
Si zAccl > 2047 :
zAccl-= 4096
# Sortie de données à l’écran
imprimer "accélération dans l’axe des abscisses: %d" % xAccl
imprimer "accélération dans l’axe des ordonnées: %d" % yAccl
imprimer "accélération dans l’axe z: %d" % zAccl