BNO044 Demo

Dependencies:   BNO055 mbed

Fork of BNO055_HelloWorld by Dave Turner

Committer:
5hel2l2y
Date:
Fri Jun 17 17:29:08 2016 +0000
Revision:
1:aa7766849e5d
Parent:
0:a8e6e26ebe0f
Initial commit for BNO055 demo

Who changed what in which revision?

UserRevisionLine numberNew contents of line
5hel2l2y 1:aa7766849e5d 1 // BNO055 Demo
5hel2l2y 1:aa7766849e5d 2
StressedDave 0:a8e6e26ebe0f 3 #include "mbed.h"
StressedDave 0:a8e6e26ebe0f 4 #include "BNO055.h"
StressedDave 0:a8e6e26ebe0f 5
5hel2l2y 1:aa7766849e5d 6 //Serial pc(USBTX, USBRX);
5hel2l2y 1:aa7766849e5d 7 Serial pc(p9, p11);
5hel2l2y 1:aa7766849e5d 8 //BNO055 imu(I2C_SDA,I2C_SCL);
5hel2l2y 1:aa7766849e5d 9 BNO055 imu(p30, p7);
5hel2l2y 1:aa7766849e5d 10
5hel2l2y 1:aa7766849e5d 11 void setup() {
5hel2l2y 1:aa7766849e5d 12 pc.baud(115200);
5hel2l2y 1:aa7766849e5d 13
5hel2l2y 1:aa7766849e5d 14 pc.printf("\r\n------ BNO055 Demo -----------\r\n");
5hel2l2y 1:aa7766849e5d 15
5hel2l2y 1:aa7766849e5d 16 // Reset the BNO055
5hel2l2y 1:aa7766849e5d 17 imu.reset();
5hel2l2y 1:aa7766849e5d 18 // Check that the BNO055 is connected and display info
5hel2l2y 1:aa7766849e5d 19 if (imu.check())
5hel2l2y 1:aa7766849e5d 20 {
5hel2l2y 1:aa7766849e5d 21 pc.printf("BNO055 found\r\n\r\n");
5hel2l2y 1:aa7766849e5d 22 pc.printf("Chip ID: %d\r\n",imu.ID.id);
5hel2l2y 1:aa7766849e5d 23 pc.printf("Accelerometer ID: %d\r\n",imu.ID.accel);
5hel2l2y 1:aa7766849e5d 24 pc.printf("Gyroscope ID: %d\r\n",imu.ID.gyro);
5hel2l2y 1:aa7766849e5d 25 pc.printf("Magnetometer ID: %d\r\n\r\n",imu.ID.mag);
5hel2l2y 1:aa7766849e5d 26 pc.printf("Firmware version v%d.%0d\r\n",imu.ID.sw[0],imu.ID.sw[1]);
5hel2l2y 1:aa7766849e5d 27 pc.printf("Bootloader version v%d\r\n\r\n",imu.ID.bootload);
5hel2l2y 1:aa7766849e5d 28 }
5hel2l2y 1:aa7766849e5d 29
5hel2l2y 1:aa7766849e5d 30 // Set power mode, POWER_MODE_NORMAL(default), POWER_MODE_LOWPOWER, or POWER_MODE_SUSPEND(sleep)
5hel2l2y 1:aa7766849e5d 31 // By default, I2C will pull high when bus is free(pg90 of datasheet)
5hel2l2y 1:aa7766849e5d 32 imu.setpowermode(POWER_MODE_SUSPEND);
5hel2l2y 1:aa7766849e5d 33 }
StressedDave 0:a8e6e26ebe0f 34
StressedDave 0:a8e6e26ebe0f 35 int main() {
5hel2l2y 1:aa7766849e5d 36 setup();
5hel2l2y 1:aa7766849e5d 37
StressedDave 0:a8e6e26ebe0f 38 while (true) {
5hel2l2y 1:aa7766849e5d 39 imu.setmode(OPERATION_MODE_AMG);
5hel2l2y 1:aa7766849e5d 40 pc.printf("Temp:\r\n");
5hel2l2y 1:aa7766849e5d 41 imu.set_temp_units(CENTIGRADE);
5hel2l2y 1:aa7766849e5d 42 imu.get_temp();
5hel2l2y 1:aa7766849e5d 43 pc.printf("TC: %d\r\n", imu.temperature);
5hel2l2y 1:aa7766849e5d 44 imu.set_temp_units(FAHRENHEIT);
5hel2l2y 1:aa7766849e5d 45 imu.get_temp();
5hel2l2y 1:aa7766849e5d 46 pc.printf("TF: %d\r\n", imu.temperature);
5hel2l2y 1:aa7766849e5d 47
5hel2l2y 1:aa7766849e5d 48 imu.get_accel();
5hel2l2y 1:aa7766849e5d 49 pc.printf("Accel:\r\n");
5hel2l2y 1:aa7766849e5d 50 pc.printf("AX: %2f\r\n", imu.accel.x);
5hel2l2y 1:aa7766849e5d 51 pc.printf("AY: %2f\r\n", imu.accel.y);
5hel2l2y 1:aa7766849e5d 52 pc.printf("AZ: %2f\r\n", imu.accel.z);
5hel2l2y 1:aa7766849e5d 53
5hel2l2y 1:aa7766849e5d 54 imu.get_gyro();
5hel2l2y 1:aa7766849e5d 55 pc.printf("Gyro:\r\n");
5hel2l2y 1:aa7766849e5d 56 pc.printf("GX: %2f\r\n", imu.gyro.x);
5hel2l2y 1:aa7766849e5d 57 pc.printf("GY: %2f\r\n", imu.gyro.y);
5hel2l2y 1:aa7766849e5d 58 pc.printf("GZ: %2f\r\n", imu.gyro.z);
5hel2l2y 1:aa7766849e5d 59
5hel2l2y 1:aa7766849e5d 60 imu.get_mag();
5hel2l2y 1:aa7766849e5d 61 pc.printf("Mag:\r\n");
5hel2l2y 1:aa7766849e5d 62 pc.printf("MX: %2f\r\n", imu.mag.x);
5hel2l2y 1:aa7766849e5d 63 pc.printf("MY: %2f\r\n", imu.mag.y);
5hel2l2y 1:aa7766849e5d 64 pc.printf("MZ: %2f\r\n\r\n", imu.mag.z);
5hel2l2y 1:aa7766849e5d 65
StressedDave 0:a8e6e26ebe0f 66 wait(1.0);
StressedDave 0:a8e6e26ebe0f 67 }
StressedDave 0:a8e6e26ebe0f 68 }