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 :
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()
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()
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()