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 gyroscope

Le CodeCell est livré avec un gyroscope 3 axes BNO085 intégré, qui peut mesurer la vitesse angulaire - la vitesse à laquelle CodeCell tourne autour de chaque axe - ce qui facilite la détection des changements de direction.

Qu'est-ce qu'un gyroscope ?

Contrairement à un accéléromètre qui mesure le mouvement en ligne droite, un gyroscope détecte le mouvement de rotation . Il indique la vitesse de rotation de CodeCell en degrés par seconde (°/s).

  • Axe X → Rotation autour de l'axe gauche-droite (pas)
  • Axe Y → Rotation autour de l'axe avant-arrière (roulement)
  • Axe Z → Rotation autour de l'axe haut-bas (lacet)

Étape 1 : Lire les données du gyroscope à partir de CodeCell

Avant de pouvoir utiliser le gyroscope, nous devons l’initialiser et commencer à lire les données.

Ce code lit les valeurs de vitesse angulaire X, Y et Z et les imprime toutes les 100 ms.

 #include <CodeCell.h>

 CodeCell myCodeCell;

 float x = 0.0; // Angular velocity around X-axis
 float y = 0.0; // Angular velocity around Y-axis
 float z = 0.0; // Angular velocity around Z-axis

 void setup() {
 Serial.begin(115200);
 myCodeCell.Init(MOTION_GYRO); // Initialize the gyroscope
 }

 void loop() {
 if (myCodeCell.Run(10)) { // Read at 10Hz (every 100ms)
 myCodeCell.Motion_GyroRead(x, y, z); // Get gyro readings

 Serial.print("Gyro X: "); Serial.print(x);
 Serial.print(" Y: "); Serial.print(y);
 Serial.print(" Z: "); Serial.println(z);
 }
 }

Ce que vous remarquerez :

  • Lorsque CodeCell est toujours , toutes les valeurs doivent être proches de 0.
  • Si vous l'inclinez vers l'avant ou vers l'arrière , les valeurs de l'axe X changent.
  • Si vous le tournez vers la gauche ou la droite , les valeurs de l'axe Y changent.
  • Si vous le faites pivoter comme un volant , les valeurs de l'axe Z changent.

Plus la valeur est élevée, plus la rotation est rapide.

Étape 2 : Détecter la rotation et changer la couleur de la LED

Maintenant, détectons quand CodeCell tourne à gauche ou à droite et modifions la couleur de la LED RVB en conséquence .

Ce programme :

  • Fait passer la LED au vert lorsqu'elle est tournée vers la droite (Z positif) .
  • Fait passer la LED au rouge lorsqu'elle est tournée vers la gauche (Z négatif) .
 #include <CodeCell.h>

 CodeCell myCodeCell;

 float x = 0.0, y = 0.0, z = 0.0;
 const float ROTATION_THRESHOLD = 3.0; // Rotation speed threshold (°/s)

 void setup() {
 Serial.begin(115200);
 myCodeCell.Init(MOTION_GYRO); // Initialize gyroscope
 }

 void loop() {
 if (myCodeCell.Run(10)) { // Read at 10Hz
 myCodeCell.Motion_GyroRead(x, y, z); // Get gyroscope values

 Serial.print("Gyro Z: ");
 Serial.println(z); // Print rotation speed
 
si (z > SEUIL_DE_ROTATION) {
 myCodeCell.LED(0, 255, 0); // Allume la LED verte (rotation à droite)
 }
 sinon si (z < -ROTATION_THRESHOLD) {
 myCodeCell.LED(255, 0, 0); // Allumer la LED en rouge (rotation à gauche)
 }
 autre {
 myCodeCell.LED(0, 0, 0); // Éteint la LED lorsqu'elle ne tourne pas
 }
 }
 }

Le gyroscope mesure la vitesse angulaire en degrés par seconde (°/s). Si la valeur de la rotation Z (lacet) dépasse le seuil, nous considérons que CodeCell est en rotation.

  • Z > 3 → En tournant vers la droite , la LED devient verte .
  • Z < -3 → En tournant vers la gauche , la LED devient rouge .

Essayez de modifier ROTATION_THRESHOLD pour augmenter ou diminuer la sensibilité.

  • Valeur supérieure = Détecte uniquement les rotations rapides
  • Valeur inférieure = Détecte même les petites rotations

Expérimentez vos propres idées !

Maintenant que vous pouvez suivre la rotation, essayez :

  • Utilisation de différentes couleurs de LED pour différents axes
  • Détection de mouvements rapides ou de gestes
  • Apprendre et suivre la rotation au fil du temps

  • 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.