The BNO055 is a sophisticated 9-axis absolute orientation sensor developed by Adafruit. It integrates an accelerometer, gyroscope, and magnetometer to provide accurate orientation data. This sensor is ideal for applications requiring precise motion tracking and orientation detection, such as robotics, drones, virtual reality systems, and wearable devices.
Parameter | Value |
---|---|
Operating Voltage | 2.4V - 3.6V |
Operating Current | 12 mA (typical) |
Power Consumption | 3.4 mA (low power mode) |
Communication | I2C, UART |
Accelerometer Range | ±2g, ±4g, ±8g, ±16g |
Gyroscope Range | ±125°/s, ±250°/s, ±500°/s, ±1000°/s, ±2000°/s |
Magnetometer Range | ±1300 µT |
Operating Temperature | -40°C to +85°C |
Pin | Name | Description |
---|---|---|
1 | VIN | Power supply (3.3V) |
2 | GND | Ground |
3 | SDA | I2C Data |
4 | SCL | I2C Clock |
5 | PS0 | Protocol select (I2C or UART) |
6 | PS1 | Protocol select (I2C or UART) |
7 | RST | Reset |
8 | INT | Interrupt |
#include <Wire.h>
#include <Adafruit_Sensor.h>
#include <Adafruit_BNO055.h>
// Create an instance of the sensor
Adafruit_BNO055 bno = Adafruit_BNO055(55);
void setup() {
Serial.begin(9600);
// Initialize the sensor
if (!bno.begin()) {
Serial.print("No BNO055 detected. Check your wiring or I2C ADDR!");
while (1);
}
delay(1000);
bno.setExtCrystalUse(true);
}
void loop() {
// Get the orientation data
sensors_event_t event;
bno.getEvent(&event);
// Print the orientation data
Serial.print("X: ");
Serial.print(event.orientation.x);
Serial.print("\tY: ");
Serial.print(event.orientation.y);
Serial.print("\tZ: ");
Serial.println(event.orientation.z);
delay(1000);
}
By following this documentation, users can effectively integrate and utilize the BNO055 sensor in their projects, ensuring accurate and reliable orientation data.