Table des matières:

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

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

Vidéo: Mesure de l'accélération avec H3LIS331DL et Raspberry Pi : 4 étapes
Vidéo: Klipper on Ender 3 😱 2024, Novembre
Anonim
Image
Image

H3LIS331DL, est un accéléromètre linéaire 3 axes basse consommation haute performance appartenant à la famille « nano », avec interface série numérique I²C. Le H3LIS331DL a des pleines échelles sélectionnables par l'utilisateur de ±100g/±200g/±400g et il est capable de mesurer des accélérations avec des débits de données de sortie de 0,5 Hz à 1 kHz. Le H3LIS331DL est garanti pour fonctionner sur une plage de température étendue de -40 °C à +85 °C.

Dans ce tutoriel, nous allons démontrer l'interfaçage de H3LIS331DL avec Raspberry Pi, en utilisant python comme langage de programmation.

É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. H3LIS331DL

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:

Le H3LIS331DL 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 Python pour la mesure de l'accélération:

Code Python pour la mesure de l'accélération
Code Python pour la 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. Python est l'un des langages de programmation les plus simples avec la syntaxe la plus simple. Le code python pour H3LIS331DL peut être téléchargé depuis notre communauté github qui est DCUBE Store.

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 de travail à partir d'ici:

importer smbus

heure d'importation

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

# Adresse H3LIS331DL, 0x18(24)

# Sélectionnez le registre de contrôle 1, 0x20(32)

# 0x27(39) Mode de mise sous tension, taux de sortie des données = 50 Hz# X, Y, axe Z activé

bus.write_byte_data (0x18, 0x20, 0x27)

# Adresse H3LIS331DL, 0x18(24)# Sélectionner le registre de contrôle 4, 0x23(35)

# 0x00(00) Mise à jour continue, Sélection pleine échelle = +/-100g

bus.write_byte_data (0x18, 0x23, 0x00)

temps.sommeil (0,5)

# Adresse H3LIS331DL, 0x18(24)

# Lire les données à partir de 0x28 (40), 2 octets

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

data0 = bus.read_byte_data (0x18, 0x28)

data1 = bus.read_byte_data (0x18, 0x29)

# Convertir le dataxAccl = data1 * 256 + data0

si xAccl > 32767:

xAccl -= 65536

# Adresse H3LIS331DL, 0x18(24)

# Lire les données de 0x2A(42), 2 octets

# Axe Y LSB, Axe Y MSB

data0 = bus.read_byte_data (0x18, 0x2A)

data1 = bus.read_byte_data (0x18, 0x2B)

# Convertir les données

yAccl = data1 * 256 + data0

si yAccl > 32767:

yAccl -= 65536

# Adresse H3LIS331DL, 0x18(24)

# Lire les données de 0x2C (44), 2 octets

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

data0 = bus.read_byte_data (0x18, 0x2C)

data1 = bus.read_byte_data (0x18, 0x2D)

# Convertir les données

zAccl = data1 * 256 + data0

si zAccl > 32767:

zAccl -= 65536

# 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

Le code est exécuté à l'aide de la commande suivante:

$> python H3LIS331DL.py gt; python H3LIS331DL.py

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

Étape 4: Candidatures:

Applications
Applications

Les accéléromètres comme le H3LIS331DL trouvent principalement leur application dans les jeux et le changement de profil d'affichage. Ce module de capteur est également utilisé dans le système avancé de gestion de l'alimentation pour les applications mobiles. H3LIS331DL est un capteur d'accélération numérique triaxial qui est incorporé avec un contrôleur d'interruption déclenché par mouvement intelligent sur puce.

Conseillé: