2

I have to use a BNO055 to get temperature/accelerometer/Euler/Gyroscope data into one Arduino board for a school project. I am very new to coding so I am not familiar with the commands. I have gotten my BNO055 to give me all the data individually but I am having problems getting them all compiled into one code file to upload. I have googled it but I keep getting links to upload them individually. Posted below is my latest attempt.

#include <Wire.h>
#include <Adafruit_Sensor.h>
#include <Adafruit_BNO055.h>
#include <utility/imumaths.h>

Adafruit_BNO055 bno = Adafruit_BNO055(55);

void setup(void) {  Serial.begin(9600);  Serial.println("Orientation Sensor Test"); Serial.println("");

 /* Initialise the sensor /  if (!bno.begin())  {    / There was a problem detecting the BNO055 ... check your connections */    Serial.print("Ooops, no BNO055 detected ... Check your wiring or I2C ADDR!");    while (1);  }

 delay(1000);

 bno.setExtCrystalUse(true); }

void loop(void) {  /* Get a new sensor event */  sensors_event_t event;  bno.getEvent(&event);

 /* Display the current temperature */  int8_t temp = bno.getTemp();

 Serial.print("Current Temperature: ");  Serial.print(temp);  Serial.println(" Celsius");  Serial.print(""); }

void loop(void) {  /* Get a new Sensor event */  sensors_event_t event;  bno.getEvent(&event);

 imu::Vector<3> gyroscope = bno.getVector(Adafruit_BNO055::VECTOR_GYROSCOPE);

 /* Display the floating point data */  Serial.print("X: ");  Serial.print(gyroscope.x());  Serial.print(" Y: ");  Serial.print(gyroscope.y());  Serial.print(" Z: ");  Serial.print(gyroscope.z());  Serial.println("");  delay(100); }

void loop(void) {  /* Get a new sensor event */  sensors_event_t event;  bno.getEvent(&event);

 imu::Vector<3> accelerometer = bno.getVector(Adafruit_BNO055::VECTOR_ACCELEROMETER);

 /* Display the floating point data */  Serial.print("X: ");  Serial.print(accelerometer.x());  Serial.print(" Y: ");  Serial.print(accelerometer.y());  Serial.print(" Z: ");  Serial.print(accelerometer.z());  Serial.println("");  delay(100); }

void loop(void) {  /* Get a new sensor event */  sensors_event_t event;  bno.getEvent(&event);

 imu::Vector<3> euler = bno.getVector(Adafruit_BNO055::VECTOR_EULER);

 /* Display the floating point data */  Serial.print("X: ");  Serial.print(euler.x());  Serial.print(" Y: ");  Serial.print(euler.y());  Serial.print(" Z: ");  Serial.print(euler.z());  Serial.println("");  delay(100); }

1 Answers1

2

Does the code below work? I have no compiler at hand, so I can not test it.

If you have to explain what you have done, you'll get into trouble. I don't know your teacher, but ... ;-). Seriously, that was very basic stuff. Try to find some documentation, how to program with the Arduino IDE and learn the basics. A good startpoint is https://www.arduino.cc/en/Tutorial/HomePage .

Then go on with SENSORs and Vector Maths.

#include <Wire.h>
#include <Adafruit_Sensor.h>
#include <Adafruit_BNO055.h>
#include <utility/imumaths.h>

Adafruit_BNO055 bno = Adafruit_BNO055(55);

void setup(void) { Serial.begin(9600); Serial.println("Orientation Sensor Test"); Serial.println("");

/* Initialise the sensor / if (!bno.begin()) { / There was a problem detecting the BNO055 ... check your connections */ Serial.print("Ooops, no BNO055 detected ... Check your wiring or I2C ADDR!"); while (1); }

delay(1000);

bno.setExtCrystalUse(true); }

void loop(void) { /* Get a new sensor event */ sensors_event_t event; bno.getEvent(&event);

/* Display the current temperature */ int8_t temp = bno.getTemp();

Serial.print("Current Temperature: "); Serial.print(temp); Serial.println(" Celsius"); Serial.print("");

imu::Vector<3> gyroscope = bno.getVector(Adafruit_BNO055::VECTOR_GYROSCOPE);

/* Display the floating point data */ Serial.print("X: "); Serial.print(gyroscope.x()); Serial.print(" Y: "); Serial.print(gyroscope.y()); Serial.print(" Z: "); Serial.print(gyroscope.z()); Serial.println(""); delay(100);

imu::Vector<3> accelerometer = bno.getVector(Adafruit_BNO055::VECTOR_ACCELEROMETER);

/* Display the floating point data */ Serial.print("X: "); Serial.print(accelerometer.x()); Serial.print(" Y: "); Serial.print(accelerometer.y()); Serial.print(" Z: "); Serial.print(accelerometer.z()); Serial.println(""); delay(100);

imu::Vector<3> euler = bno.getVector(Adafruit_BNO055::VECTOR_EULER);

/* Display the floating point data */ Serial.print("X: "); Serial.print(euler.x()); Serial.print(" Y: "); Serial.print(euler.y()); Serial.print(" Z: "); Serial.print(euler.z()); Serial.println(""); delay(100); }

Peter Paul Kiefer
  • 1,893
  • 9
  • 11