Table des matières:

Suivi de mouvement avec MPU-6000 et Raspberry Pi : 4 étapes
Suivi de mouvement avec MPU-6000 et Raspberry Pi : 4 étapes

Vidéo: Suivi de mouvement avec MPU-6000 et Raspberry Pi : 4 étapes

Vidéo: Suivi de mouvement avec MPU-6000 et Raspberry Pi : 4 étapes
Vidéo: Raspberry Pi MPU-6000 6-Axis Motion Tracking Sensor Python Tutorial 2024, Juillet
Anonim
Image
Image

Le MPU-6000 est un capteur de suivi de mouvement à 6 axes qui intègre un accéléromètre à 3 axes et un gyroscope à 3 axes. Ce capteur est capable de suivre efficacement la position et l'emplacement exacts d'un objet dans le plan tridimensionnel. Il peut être utilisé dans les systèmes qui nécessitent une analyse de position avec la plus haute précision.

Dans ce tutoriel, l'interfaçage du module capteur MPU-6000 avec raspberry pi a été illustré. Pour lire les valeurs d'accélération et d'angle de rotation, 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. MPU-6000

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 MPU-6000 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 pour le suivi des mouvements:

Code pour le suivi de mouvement
Code pour le suivi de mouvement

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 MPU-6000 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 MPU-6000, 0x68 (104)

# Sélectionnez le registre de configuration du gyroscope, 0x1B(27)

# 0x18(24) Plage de pleine échelle = 2000 dps

bus.write_byte_data (0x68, 0x1B, 0x18)

# Adresse MPU-6000, 0x68 (104)

# Sélectionnez le registre de configuration de l'accéléromètre, 0x1C(28)

# 0x18(24) Plage de pleine échelle = +/-16g

bus.write_byte_data (0x68, 0x1C, 0x18)

# Adresse MPU-6000, 0x68 (104)

# Sélectionnez le registre de gestion de l'alimentation 1, 0x6B (107)

# 0x01(01) PLL avec référence xGyro

bus.write_byte_data (0x68, 0x6B, 0x01)

temps.sommeil(0.8)

# Adresse MPU-6000, 0x68 (104)

# Lire les données de 0x3B (59), 6 octets

# Accéléromètre X-Axis MSB, X-Axis LSB, Y-Axis MSB, Y-Axis LSB, Z-Axis MSB, Z-Axis LSB

données = bus.read_i2c_block_data (0x68, 0x3B, 6)

# Convertir les données

xAccl = données[0] * 256 + données[1]

si xAccl > 32767:

xAccl -= 65536

yAccl = données[2] * 256 + données[3]

si yAccl > 32767:

yAccl -= 65536

zAccl = données[4] * 256 + données[5]

si zAccl > 32767:

zAccl -= 65536

# Adresse MPU-6000, 0x68 (104)

# Lire les données à partir de 0x43 (67), 6 octets

# Gyromètre X-Axis MSB, X-Axis LSB, Y-Axis MSB, Y-Axis LSB, Z-Axis MSB, Z-Axis LSB

données = bus.read_i2c_block_data (0x68, 0x43, 6)

# Convertir les données

xGyro = données[0] * 256 + données[1]

si xGyro > 32767:

xGyro -= 65536

yGyro = données[2] * 256 + données[3]

si yGyro > 32767:

yGyro -= 65536

zGyro = données[4] * 256 + données[5]

si zGyro > 32767:

zGyro -= 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

print "Axe X de Rotation: %d" %xGyro

print "Axe Y de Rotation: %d" %yGyro

print "Axe Z de Rotation: %d" %zGyro

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

$> python MPU-6000.py gt; python MPU-6000.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

Le MPU-6000 est un capteur de suivi de mouvement, qui trouve son application dans l'interface de mouvement des smartphones et tablettes. Dans les smartphones, ces capteurs peuvent être utilisés dans des applications telles que les commandes gestuelles pour les applications et le contrôle du téléphone, les jeux améliorés, la réalité augmentée, la capture et la visualisation de photos panoramiques et la navigation piétonne et automobile. La technologie MotionTracking peut convertir les combinés et les tablettes en de puissants appareils intelligents 3D pouvant être utilisés dans des applications allant de la surveillance de la santé et de la condition physique aux services basés sur la localisation.

Conseillé: