Note

Bonjour, bienvenue dans la communauté SunFounder Raspberry Pi & Arduino & ESP32 Enthusiasts sur Facebook ! Plongez plus profondément dans l’univers du Raspberry Pi, Arduino et ESP32 avec d’autres passionnés.

Pourquoi nous rejoindre ?

  • Support d’experts : Résolvez les problèmes après-vente et les défis techniques avec l’aide de notre communauté et de notre équipe.

  • Apprendre & Partager : Échangez des astuces et des tutoriels pour améliorer vos compétences.

  • Aperçus exclusifs : Bénéficiez d’un accès anticipé aux annonces de nouveaux produits et aux avant-premières.

  • Réductions spéciales : Profitez de réductions exclusives sur nos nouveaux produits.

  • Promotions festives et concours : Participez à des concours et à des promotions spéciales pendant les fêtes.

👉 Prêt à explorer et à créer avec nous ? Cliquez sur [ici] et rejoignez-nous dès aujourd’hui !

10. Lecture de l’IMU

Grâce au module IMU 6-DOF, PiDog peut déterminer s’il est sur une pente ou s’il est soulevé.

Le module IMU 6-DOF est équipé d’un accéléromètre à 3 axes et d’un gyroscope à 3 axes, permettant de mesurer l’accélération et la vitesse angulaire dans trois directions.

Note

Avant d’utiliser le module, assurez-vous qu’il est correctement assemblé. L’étiquette sur le module vous indiquera s’il est inversé.

Vous pouvez lire l’accélération avec :

ax, ay, az = Pidog.accData

Lorsque PiDog est placé à l’horizontale, l’accélération sur l’axe x (ax) doit être proche de l’accélération de la gravité (1g), avec une valeur de -16384. Les valeurs sur les axes y et z doivent être proches de 0.

Utilisez la méthode suivante pour lire la vitesse angulaire :

gx, gy, gz = my_dog.gyroData

Lorsque PiDog est positionné à l’horizontale, les trois valeurs doivent être proches de 0.

Voici quelques exemples d’utilisation du module 6-DOF :

  1. Lire l’accélération et la vitesse angulaire en temps réel.

from pidog import Pidog
import time

my_dog = Pidog()

my_dog.do_action("pushup", step_count=10, speed=20)

while True:
    ax, ay, az = my_dog.accData
    gx, gy, gz = my_dog.gyroData
    print(f"accData: {ax/16384:.2f} g ,{ay/16384:.2f} g, {az/16384:.2f} g       gyroData: {gx} °/s, {gy} °/s, {gz} °/s")
    time.sleep(0.2)
    if my_dog.is_legs_done():
        break

my_dog.stop_and_lie()

my_dog.close()
  1. Calculer l’angle d’inclinaison du corps de PiDog.

from pidog import Pidog
import time
import math

my_dog = Pidog()

while True:
    ax, ay, az = my_dog.accData
    body_pitch = math.atan2(ay,ax)/math.pi*180%360-180
    print(f"Body Degree: {body_pitch:.2f} °" )
    time.sleep(0.2)

my_dog.close()
  1. PiDog garde ses yeux horizontaux tout en s’inclinant.

from pidog import Pidog
import time
import math

my_dog = Pidog()

while True:
    ax, ay, az = my_dog.accData
    body_pitch = math.atan2(ay,ax)/math.pi*180%360-180
    my_dog.head_move([[0, 0, 0]], pitch_comp=-body_pitch, speed=80)
    time.sleep(0.2)

my_dog.close()