Arduino library for the Bosch BNO055 9-axis Absolute Orientation Sensor.
The library provides access to accelerometer, gyroscope, magnetometer, Euler angles, quaternions, gravity vector, linear acceleration, calibration data, power management and device configuration.
- Accelerometer
- Gyroscope
- Magnetometer
- Euler Angles
- Quaternion Output
- Linear Acceleration
- Gravity Vector
- Temperature Sensor
- Calibration Management
- Device Information
- Power Mode Control
- Interrupt Management
- Sensor Configuration
- I2C Communication
- External Crystal Support
- AVR
- ESP8266
- ESP32
- Arduino Compatible Boards
This library requires:
- 7Semi_BusCore
Install the dependency before using this library.
- Open Arduino IDE.
- Open Library Manager.
- Search for 7Semi BNO055.
- Click Install.
-
Download this repository.
-
Install the library using:
- Sketch
- Include Library
- Add ZIP Library
-
Install 7Semi_BusCore.
-
Restart Arduino IDE.
| BNO055 | MCU |
|---|---|
| VIN | 3.3V / 5V |
| GND | GND |
| SDA | SDA |
| SCL | SCL |
| ADR | GND (0x28) |
| ADR | VCC (0x29) |
#include <7Semi_BNO055.h>
BNO055_7Semi imu;
void setup()
{
Serial.begin(115200);
if (!imu.begin())
{
Serial.println("BNO055 not detected");
while (1);
}
}imu.setMode(
BNO055_OP_Mode::NDOF);Available modes:
CONFIG
ACCONLY
MAGONLY
GYRONLY
ACCMAG
ACCGYRO
MAGGYRO
AMG
IMUPLUS
COMPASS
M4G
NDOF_FMC_OFF
NDOFfloat heading;
float roll;
float pitch;
imu.readEuler(
heading,
roll,
pitch);float w;
float x;
float y;
float z;
imu.readQuaternion(
w,
x,
y,
z);int16_t x;
int16_t y;
int16_t z;
imu.readAccel(
x,
y,
z);int16_t x;
int16_t y;
int16_t z;
imu.readGyro(
x,
y,
z);int16_t x;
int16_t y;
int16_t z;
imu.readMag(
x,
y,
z);int16_t x;
int16_t y;
int16_t z;
imu.readLinear(
x,
y,
z);int16_t x;
int16_t y;
int16_t z;
imu.readGravity(
x,
y,
z);int8_t temperature;
imu.readTemperature(
temperature);uint8_t system;
uint8_t gyro;
uint8_t accel;
uint8_t mag;
imu.getCalibration(
system,
gyro,
accel,
mag);BNO055_CalibrationData data;
imu.readCalibrationData(
data);BNO055_CalibrationData data;
imu.writeCalibrationData(
data);DeviceInfo info;
imu.getDeviceInfo(
info);Available fields:
info.chipID
info.accelID
info.magID
info.gyroID
info.swRevision
info.blRevisionimu.setPowerMode(
BNO055_Power_Mode::NORMAL);BNO055_Power_Mode mode;
imu.getPowerMode(
mode);imu.enableInterrupt(
BNO055_Interrupt::AccelAnyMotion);imu.disableInterrupt(
BNO055_Interrupt::AccelAnyMotion);bool enabled;
imu.isInterruptEnabled(
BNO055_Interrupt::AccelAnyMotion,
enabled);The library includes the following examples:
- Basic
- Accelerometer
- Gyroscope
- Magnetometer
- LinearAcceleration
- Gravity
- Euler
- Quaternion
MIT License
Copyright (c) 7Semi
Website
GitHub
https://github.com/7semi-solutions/7Semi_BNO055_Arduino-Library