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 : accélération de la lecture et détection des tremblements

Votre CodeCell contient un accéléromètre 3 axes BNO085, un minuscule capteur qui mesure les mouvements. Avec seulement quelques lignes de code, vous pouvez détecter les tremblements et même déclencher une LED en cas de mouvement ! Voyons comment procéder étape par étape.

Qu'est-ce qu'un accéléromètre ?

Un accéléromètre mesure l'accélération, c'est-à-dire la vitesse à laquelle un objet accélère ou ralentit. Il détecte :

  • Gauche et droite (axe X)
  • Avant et arrière (axe Y)
  • Haut et bas (axe Z)

On ressent même la gravité ! Lorsque CodeCell est immobile, l'axe Z affiche une valeur proche de 9,81 m/s² , soit la gravité terrestre.

Étape 1 : Lire le mouvement à partir de CodeCell

Commençons par lire les valeurs de mouvement en temps réel de l'accéléromètre intégré de CodeCell. Ce code indique l'amplitude du mouvement de CodeCell dans chaque direction :

 #include <CodeCell.h>

 CodeCell myCodeCell;
 
float x = 0,0 ; // Accélération de l'axe X
 float y = 0,0 ; // Accélération de l'axe Y
 float z = 0,0 ; // Accélération de l'axe Z

 configuration vide() {
 Serial.begin(115200);
 myCodeCell.Init(MOTION_ACCELEROMETER); // Initialiser l'accéléromètre
 }

 boucle vide() {
 if (myCodeCell.Run(10)) { // Exécuter 10 fois par seconde (10 Hz)
 myCodeCell.Motion_AccelerometerRead(x, y, z); // Lire les valeurs de mouvement
 Serial.print("X: "); Serial.print(x);
 Serial.print(" Y: "); Serial.print(y);
 Série.print(" Z: "); Série.println(z);
 }
 }

Ce que vous remarquerez :

  • Lorsque CodeCell est immobile, face vers le haut, X et Y doivent être proches de 0 et Z doit être autour de 9,81 (gravité).
  • Lorsque vous déplacez CodeCell vers la gauche ou vers la droite, X change.
  • Lorsque vous le déplacez vers l'avant ou vers l'arrière, Y change.
  • Quand vous le secouez, toutes les valeurs sautent !

Étape 2 : Détecter une secousse

Maintenant, détectons quand CodeCell est secoué et utilisons la LED RVB intégrée pour le signaler.

Ce programme allumera la LED en rouge si un tremblement est détecté.

#include <CodeCell.h>
 #include <math.h> // Needed for square root calculations

 CodeCell myCodeCell;

 float x = 0.0, y = 0.0, z = 0.0;
 const float SHAKE_THRESHOLD = 15.0; // Adjust this value for sensitivity

 void setup() {
 Serial.begin(115200);
 myCodeCell.Init(MOTION_ACCELEROMETER); // Initialize accelerometer
 }

 void loop() {
 if (myCodeCell.Run(10)) { // Check every 100ms (10Hz)
 myCodeCell.Motion_AccelerometerRead(x, y, z); // Read accelerometer data

 // Calculate total movement strength (vector magnitude)
 float totalAcceleration = sqrt(x * x + y * y + z * z);

 Serial.print("Total Acceleration: ");
 Serial.println(totalAcceleration); // Show acceleration strength

 // If the acceleration is stronger than the threshold, it's a shake!
 if (totalAcceleration > SHAKE_THRESHOLD) {
 Serial.println("Shake detected!");
 myCodeCell.LED(255, 0, 0); // Turn LED red 
delay(500); // Garder la LED allumée pendant 0,5 seconde
 } autre {
 //Ne tremble pas
 }
 }
 }

Au lieu de vérifier X, Y et Z séparément, nous les combinons en une seule valeur :

Cela nous indique l'amplitude globale des mouvements de CodeCell , quelle que soit la direction. Si totalAcceleration dépasse 15,0 , nous supposons que CodeCell est secoué. La LED RVB devient rouge pendant 0,5 seconde pour signaler le tremblement.

Expérimentez vos propres idées !

Maintenant que vous pouvez détecter les mouvements , voici quelques défis amusants :

  • Changez les couleurs des LED en fonction du mouvement (par exemple, bleu pour l'inclinaison, rouge pour le tremblement).
  • Utilisez l'accéléromètre pour détecter les coups ou les chocs.
  • Découvrez comment CodeCell se déplace lorsqu'il est attaché à un robot ou à un véhicule !

En comprenant la détection de mouvement, vous apprenez la même technologie utilisée dans les smartphones, les drones et les fusées ! 🚀


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