Menu
Microbots
0
  • Faire
    • Commencer
    • Constructions de créateurs
    • Éducation
  • Boutique
    • ProtoBot
    • Modules Maker
    • Outils et engrenages
    • Robots et écrans
  • À propos
    • Notre histoire
    • Tendez la main
    • FAQ
  • Connexion
  • français
  • Votre panier est vide
Microbots
  • Faire
    • Commencer
    • Constructions de créateurs
    • Éducation
  • Boutique
    • ProtoBot
    • Modules Maker
    • 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 !

© 2026 Microbots.

★ Reviews

Let customers speak for us

70 reviews
Write a review
84%
(59)
6%
(4)
3%
(2)
3%
(2)
4%
(3)
65
21
J
ProtoBot
Javier

I Recieved yesterday my ProtoBot and the quality and details are awesome!

User picture
C
CodeCell C3
Cloke74

Great piece of kit, had just what i needed to complete the project i had in mind. Shame shipping to the UK is so expensive, but appreciate this isn’t necessarily in the hands of MicroBots

A
CodeCell C6
Anonymous

I had an issue, got a red light, I used too much flux. Support said clean it, then the one sensor worked fine. I got the help and answer same day I provided a foto.

A
CodeCell C6 Drive
Anonymous

I think this is the best of the ESP offered, most versatile.

User picture
P
CodeCell C6
Prudhvi tej Chinimilli

Been testing the Microbots CodeCell C6 and honestly impressed with how much functionality they packed into such a tiny module. Great form factor for rapid prototyping wearable/embedded sensing applications. ESP32-C6 + IMU integration makes development much easier compared to building everything from scratch.

Still exploring battery optimization and compact LiPo options for our use case, but overall the platform is promising for low-cost real-time sensing systems. Excited to keep building with it.

123