Table des matières:

Mesure de l'accélération avec ADXL345 et Raspberry Pi : 4 étapes
Mesure de l'accélération avec ADXL345 et Raspberry Pi : 4 étapes

Vidéo: Mesure de l'accélération avec ADXL345 et Raspberry Pi : 4 étapes

Vidéo: Mesure de l'accélération avec ADXL345 et Raspberry Pi : 4 étapes
Vidéo: Klipper - ADXL345 accelerometer sensor with Raspberry Pi Pico 2024, Juillet
Anonim
Image
Image

L'ADXL345 est un petit accéléromètre mince, ultrabasse consommation, à 3 axes avec une mesure haute résolution (13 bits) jusqu'à ±16 g. Les données de sortie numériques sont formatées en complément à deux de 16 bits et sont accessibles via l'interface numérique I2 C. Il mesure l'accélération statique de la gravité dans les applications de détection d'inclinaison, ainsi que l'accélération dynamique résultant d'un mouvement ou d'un choc. Sa haute résolution (3,9 mg/LSB) permet de mesurer des changements d'inclinaison inférieurs à 1,0°.

Dans ce tutoriel, l'interfaçage du module capteur ADXL345 avec raspberry pi est démontré et sa programmation en langage python a également été illustrée. Pour lire les valeurs d'accélération sur tous les 3 axes, nous avons utilisé raspberry pi avec un adaptateur I2C. Cet adaptateur I2C rend la connexion au module capteur facile et plus fiable.

Étape 1: Matériel requis:

Matériel requis
Matériel requis
Matériel requis
Matériel requis
Matériel requis
Matériel requis

Les matériaux dont nous avons besoin pour atteindre notre objectif comprennent les composants matériels suivants:

1. ADXL345

2. Framboise Pi

3. Câble I2C

4. Bouclier I2C pour framboise pi

5. Câble Ethernet

Étape 2: connexion matérielle:

Raccordement matériel
Raccordement matériel
Raccordement matériel
Raccordement matériel

La section de raccordement matériel explique essentiellement les connexions de câblage requises entre le capteur et le raspberry pi. Assurer des connexions correctes est la nécessité de base tout en travaillant sur n'importe quel système pour la sortie souhaitée. Ainsi, les connexions requises sont les suivantes:

L'ADXL345 fonctionnera sur I2C. Voici l'exemple de schéma de câblage, montrant comment câbler chaque interface du capteur.

Prête à l'emploi, la carte est configurée pour une interface I2C, en tant que telle, nous vous recommandons d'utiliser cette connexion si vous êtes par ailleurs agnostique.

Tout ce dont vous avez besoin, c'est de quatre fils ! Seules quatre connexions sont nécessaires pour les broches Vcc, Gnd, SCL et SDA et celles-ci sont connectées à l'aide d'un câble I2C.

Ces connexions sont illustrées dans les images ci-dessus.

Étape 3: Code de mesure de l'accélération:

Code de mesure de l'accélération
Code de mesure de l'accélération

L'avantage d'utiliser raspberry pi est qu'il vous offre la flexibilité du langage de programmation dans lequel vous souhaitez programmer la carte afin d'interfacer le capteur avec elle. Exploitant cet avantage de cette carte, nous démontrons ici sa programmation en python. Le code python pour ADXL345 peut être téléchargé depuis notre communauté github qui est Control Everything Community.

En plus de la facilité des utilisateurs, nous expliquons le code ici également:

Comme première étape de codage, vous devez télécharger la bibliothèque smbus dans le cas de python, car cette bibliothèque prend en charge les fonctions utilisées dans le code. Donc, pour télécharger la bibliothèque, vous pouvez visiter le lien suivant:

pypi.python.org/pypi/smbus-cffi/0.5.1

Vous pouvez également copier le code python fonctionnel de ce capteur à partir d'ici:

importer smbus

heure d'importation

# Obtenir le bus I2C = smbus. SMBus(1)

# Adresse ADXL345, 0x53(83)

# Sélectionnez le registre de débit de bande passante, 0x2C (44)

# 0x0A(10) Mode normal, débit de données de sortie = 100 Hz

bus.write_byte_data (0x53, 0x2C, 0x0A)

# Adresse ADXL345, 0x53(83)

# Sélectionnez le registre de contrôle de puissance, 0x2D(45)

# 0x08(08) Désactiver la veille automatique

bus.write_byte_data (0x53, 0x2D, 0x08)

# Adresse ADXL345, 0x53(83)

# Sélectionnez le registre de format de données, 0x31(49)

# 0x08(08) Autotest désactivé, interface 4 fils

# Pleine résolution, Portée = +/-2g

bus.write_byte_data (0x53, 0x31, 0x08)

temps.sommeil (0,5)

# Adresse ADXL345, 0x53(83)

# Lire les données à partir de 0x32(50), 2 octets

# LSB sur l'axe X, MSB sur l'axe X

data0 = bus.read_byte_data(0x53, 0x32)

data1 = bus.read_byte_data (0x53, 0x33)

# Convertir les données en 10 bits

xAccl = ((données1 & 0x03) * 256) + données0

si xAccl > 511:

xAccl -= 1024

# Adresse ADXL345, 0x53(83)

# Lire les données de 0x34(52), 2 octets

# Axe Y LSB, Axe Y MSB

data0 = bus.read_byte_data (0x53, 0x34)

data1 = bus.read_byte_data (0x53, 0x35)

# Convertir les données en 10 bits

yAccl = ((données1 & 0x03) * 256) + données0

si yAccl > 511:

yAccl -= 1024

# Adresse ADXL345, 0x53(83)

# Lire les données de 0x36(54), 2 octets

# LSB sur l'axe Z, MSB sur l'axe Z

data0 = bus.read_byte_data (0x53, 0x36)

data1 = bus.read_byte_data (0x53, 0x37)

# Convertir les données en 10 bits

zAccl = ((données1 & 0x03) * 256) + données0

si zAccl > 511:

zAccl -= 1024

# Données de sortie à l'écran

print "Accélération dans l'axe X: %d" %xAccl

print "Accélération dans l'axe Y: %d" %yAccl

print "Accélération dans l'axe Z: %d" %zAccl

La partie de code mentionnée ci-dessous comprend les bibliothèques nécessaires à la bonne exécution des codes python.

importer l'heure d'importation smbus

Le code peut être exécuté en tapant la commande mentionnée ci-dessous dans l'invite de commande.

$> python ADXL345.py

La sortie du capteur est également indiquée dans l'image ci-dessus pour la référence de l'utilisateur.

Étape 4: Candidatures:

Applications
Applications

L'ADXL345 est un petit accéléromètre mince à très faible consommation d'énergie à 3 axes qui peut être utilisé dans les combinés, l'instrumentation médicale, etc. Son application comprend également les appareils de jeu et de pointage, l'instrumentation industrielle, les appareils de navigation personnels et la protection des disques durs (HDD).

Conseillé: