Menu
Microbots
0
  • Faire
    • Commencer
    • Constructions de créateurs
    • Éducation
  • Boutique
    • Modules Maker
    • Packs de création
    • Outils et engrenages
    • Robots et écrans
  • À propos
    • Notre histoire
    • Tendez la main
    • FAQ
  • français
  • Votre panier est vide
Microbots
  • Faire
    • Commencer
    • Constructions de créateurs
    • Éducation
  • Boutique
    • Modules Maker
    • Packs de création
    • Outils et engrenages
    • Robots et écrans
  • À propos
    • Notre histoire
    • Tendez la main
    • FAQ
  • Langue

  • 0 0

CodeCell : Lecture du roulis, du tangage et du lacet

Dans ce guide, nous découvrirons comment utiliser le CodeCell pour mesurer directement sa rotation en lisant les angles de roulis, de tangage et de lacet. La compréhension de ces angles est essentielle dans des applications comme la robotique, les drones et le suivi de mouvement, où des données d'orientation précises sont nécessaires.

Comprendre le roulis, le tangage et le lacet

CodeCell est équipé d'un capteur de mouvement BNO085 , qui fusionne les données d'un accéléromètre, d'un gyroscope et d'un magnétomètre pour calculer des vecteurs de rotation. Ces vecteurs permettent de déterminer l'orientation de l'appareil dans l'espace en termes de roulis, de tangage et de lacet :

  • Roulis : Rotation autour de l'axe X (inclinaison à gauche ou à droite)
  • Pitch : Rotation autour de l'axe Y (inclinaison vers l'avant ou vers l'arrière)
  • Lacet : Rotation autour de l'axe Z (tourner à gauche ou à droite)

En surveillant en permanence ces valeurs, CodeCell fournit un retour d'orientation en temps réel, ce qui le rend utile pour une variété d'applications basées sur le mouvement.

Lecture du roulis, du tangage et du lacet avec CodeCell

Pour lire les angles de rotation, suivez cet exemple simple. Ce code initialise le capteur de mouvement de CodeCell et imprime en continu les valeurs de roulis, de tangage et de lacet sur le moniteur série.

 #include <CodeCell.h>

 CodeCell myCodeCell;

 float Roll = 0.0;
 float Pitch = 0.0;
 float Yaw = 0.0;

 void setup() {
 Serial.begin(115200); // Set Serial baud rate to 115200. Ensure Tools/USB_CDC_On_Boot is enabled if using Serial.

 myCodeCell.Init(MOTION_ROTATION); // Initializes Rotation Sensing
 }

 void loop() {
 if (myCodeCell.Run(10)) { // Run every 10Hz
 myCodeCell.Motion_RotationRead(Roll, Pitch, Yaw);
 Serial.printf("Roll: %.2f°, Pitch: %.2f°, Yaw: %.2f°\n", Roll, Pitch, Yaw);
 }
 }

Explication du Code :

  1. Initialisez le capteur de mouvement CodeCell pour lire les valeurs de rotation.

  2. Exécutez le capteur à 10 Hz (toutes les 100 ms) pour obtenir des données actualisées.

  3. Imprimez les angles de roulis, de tangage et de lacet en degrés sur le moniteur série.

Cela fournit un moyen précis de mesurer l’orientation de CodeCell en temps réel.

Utilisation des données de rotation pour le contrôle servo

Une application pratique de la lecture du roulis, du tangage et du lacet consiste à contrôler un servomoteur en fonction de l'orientation de CodeCell. L'exemple suivant associe l'angle de tangage à la position du servomoteur.

 #include <CodeCell.h>
 #include <ESP32Servo.h>

 CodeCell myCodeCell;
 Servo myservo;

 float Roll = 0.0;
 float Pitch = 0.0;
 float Yaw = 0.0;
 int servo_angle = 0;

 void setup() {
 Serial.begin(115200); // Set Serial baud rate to 115200
 myCodeCell.Init(MOTION_ROTATION); // Initializes rotation sensing
 myservo.attach(1); // Attaches the servo on pin 1 to the servo object
 }

 void loop() {
 if (myCodeCell.Run(10)) {
 // Read rotation angles from the BNO085 sensor
 myCodeCell.Motion_RotationRead(Roll, Pitch, Yaw);

 // Convert the pitch angle to a servo angle
 servo_angle = abs((int)Pitch);
 servo_angle = (180 - servo_angle); 

// Limiter l'angle du servo à la plage de 0 à 60 degrés
 si (servo_angle > 60) {
 servo_angle = 60;
 } sinon si (servo_angle < 0) {
 servo_angle = 0;
 }

 Serial.println(servo_angle); // Imprimer l'angle du servo pour le débogage
 myservo.write(servo_angle); // Définir la position du servo
 }
 }

Explication:

  • Cartographie l'angle de pas pour contrôler la position du servo.

  • Limite l'angle du servo à une plage de sécurité (0 à 60 degrés) pour éviter tout mouvement excessif.

  • Utilise des mises à jour de 10 Hz pour maintenir une réponse fluide.

Conclusion

En lisant directement le roulis, le tangage et le lacet, vous pouvez débloquer des applications avancées basées sur le mouvement avec CodeCell. Essayez de modifier les exemples et de les intégrer à vos propres projets. Consultez le dépôt GitHub de CodeCell pour plus d'exemples et de documentation technique !

  • Partager:

Partage

Github

  • À propos
  • Logiciel
  • Éducation
  • Contact
  • FAQ
  • Termes
  • Politique de remboursement
  • politique de confidentialité

Soyez le premier informé des nouveaux projets et bénéficiez d'offres intéressantes !

© 2025 Microbots.