Menu
Microbots
0
  • Learn
    • Getting Started
    • Maker Builds
    • Education
  • Shop
    • ProtoBot
    • Modules & Parts
    • Tools & Gears
    • Coming Soon
  • About
    • Our Story
    • Reach Out
    • FAQs
  • Sign in
  • English
  • Your Cart is Empty
Microbots
  • Learn
    • Getting Started
    • Maker Builds
    • Education
  • Shop
    • ProtoBot
    • Modules & Parts
    • Tools & Gears
    • Coming Soon
  • About
    • Our Story
    • Reach Out
    • FAQs
  • Language

  • 0 0

CodeCell: Reading the Gyroscope

CodeCell Gyroscope

CodeCell includes a built-in BNO085 3-axis gyroscope that measures angular velocity - how fast CodeCell is rotating around each axis. This lets you detect turning, spinning, or orientation changes.

How It Works

The gyroscope measures rotation speed in degrees per second (°/s) along three axes:

  • X-axis → Tilt forward/backward
  • Y-axis → Tilt left/right
  • Z-axis → Twist or spin

You can enable and read gyroscope data using two simple functions:

myCodeCell.Init(MOTION_GYRO);             // Enable gyroscope sensing
myCodeCell.Motion_GyroRead(x, y, z);      // Read angular velocity on all axes

Each reading gives the current rotation speed on the X, Y, and Z axes in °/s.

Example 1 – Read Gyroscope Data

This example prints live angular velocity readings to the Serial Monitor, showing how fast CodeCell is rotating around each axis.


#include <CodeCell.h>

CodeCell myCodeCell;

float x = 0.0, y = 0.0, z = 0.0;

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

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

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

What You’ll Notice:

  • When still, values are close to 0.
  • Tilting forward/backward changes X.
  • Tilting left/right changes Y.
  • Rotating like a steering wheel changes Z.

Example 2 – Detect Rotation and Change LED Color

This example changes CodeCell’s onboard LED color based on rotation direction, red when turning left, green when turning right.


#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);  // Enable gyroscope
}

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

    Serial.print("Gyro Z: ");
    Serial.println(z);

    if (z > ROTATION_THRESHOLD) {          // Rotating right
      myCodeCell.LED(0, 255, 0);           // Green LED
    } 
    else if (z < -ROTATION_THRESHOLD) {    // Rotating left
      myCodeCell.LED(255, 0, 0);           // Red LED
    } 
    else {
      myCodeCell.LED(0, 0, 0);             // LED off
    }
  }
}

How It Works:

  • Z > 3 → Rotating right → LED turns green.
  • Z < -3 → Rotating left → LED turns red.

Adjust ROTATION_THRESHOLD to control sensitivity:

  • Higher → Detects only fast rotations.
  • Lower → Detects even small movements.

Customization Tips

  • Try different axes: Visualize pitch (X) or roll (Y) using other LED colors.
  • Detect flicks: Use short bursts of rotation for gesture input.
  • Combine with other sensors: Merge with accelerometer or magnetometer data for full motion tracking.
  • Share:

Follow

Github

  • About
  • Software
  • Education
  • Contact
  • FAQs
  • Terms
  • Refund Policy
  • Privacy Policy

Join our Community ~ Be the first to know about new products and get exciting deals!

© 2026 Microbots.

★ Reviews

Let customers speak for us

73 reviews
Write a review
85%
(62)
5%
(4)
3%
(2)
3%
(2)
4%
(3)
67
21
G
ProtoBot
Gennadii

Got a Pro version, it's very easy to put together, and it works great.
Would be great to have brushless motors and more GPIO access through the plastic shell in ProtoBot v2

A
ProtoBot
Armand

It is a compact, very well designed RC-like robotic car with endless possibilities for those with active imaginations. Inspirational and creative in a small form factor. Innovate and enjoy!

User picture
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.

123