Skip to content

Instantly share code, notes, and snippets.

@Happsson
Created July 6, 2017 14:48
Show Gist options
  • Save Happsson/b7d06a5f5f0a2284fdd183b7f9588c28 to your computer and use it in GitHub Desktop.
Save Happsson/b7d06a5f5f0a2284fdd183b7f9588c28 to your computer and use it in GitHub Desktop.
#include <Wire.h>
#include <Adafruit_Sensor.h>
#include <Adafruit_BNO055.h>
#include <utility/imumaths.h>
#include <EEPROM.h>
#include <SPI.h>
#define BNO055_SAMPLERATE_DELAY_MS (16) //16.6666 ms equals 60fps.
Adafruit_BNO055 bno = Adafruit_BNO055(55);
void setup(void){
/*
WiFi.softAPdisconnect(true);
WiFi.disconnect(true);
ESP.eraseConfig();
ESP.reset();
*/
Serial.begin(115200);
sensor_t sensor;
if (!bno.begin())
{
Serial.print("Ooops, no BNO055 detected ... Check your wiring or I2C ADDR!");
while (1);
}
setHardcodedCalibrationData();
bno.setExtCrystalUse(true);
Serial.println("bno initialized and calibration is set");
}
void setHardcodedCalibrationData(){
adafruit_bno055_offsets_t calibrationData;
calibrationData.accel_offset_x = 0;
calibrationData.accel_offset_y = 65500;
calibrationData.accel_offset_z = 16;
calibrationData.gyro_offset_x = 4;
calibrationData.gyro_offset_y = 65535;
calibrationData.gyro_offset_z = 1;
calibrationData.mag_offset_z = 16;
calibrationData.mag_offset_x = 4;
calibrationData.mag_offset_y = 65535;
calibrationData.accel_radius = 1000;
calibrationData.mag_radius = 749;
bno.setSensorOffsets(calibrationData);
}
void getAndSendSensorData(){
sensors_event_t event;
bno.getEvent(&event);
imu::Vector<3> euler = bno.getVector(Adafruit_BNO055::VECTOR_EULER);
s = "";
s+= "x";
s += euler.x();
s += " y";
s += euler.y();
s += " z";
s += euler.z();
s += "a";
/*
s = "";
s+= "x";
s += event.orientation.x;
s += " y";
s += event.orientation.y;
s += " z";
s += event.orientation.z;
s += "a";
*/
Serial.print(s);
}
void loop(void){
getAndSendSensorData();
delay(BNO055_SAMPLERATE_DELAY_MS);
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment