added main and defined M_PI

Dependencies:   BNOWrapper

Committer:
JesiMiranda
Date:
Thu Jul 18 22:09:22 2019 +0000
Revision:
1:4a5b43b9502c
Parent:
0:0f12b8c4d5f1
Child:
2:1fd1549d3fbd
changed main;

Who changed what in which revision?

UserRevisionLine numberNew contents of line
JesiMiranda 1:4a5b43b9502c 1 #include <mbed.h>
JesiMiranda 1:4a5b43b9502c 2 #include <BNO080.h>
JesiMiranda 1:4a5b43b9502c 3
JesiMiranda 0:0f12b8c4d5f1 4 int main()
JesiMiranda 0:0f12b8c4d5f1 5 {
JesiMiranda 1:4a5b43b9502c 6 Serial pc(USBTX, USBRX);
JesiMiranda 1:4a5b43b9502c 7
JesiMiranda 1:4a5b43b9502c 8 // Create IMU, passing in output stream, pins, I2C address, and I2C frequency
JesiMiranda 1:4a5b43b9502c 9 // These pin assignments are specific to my dev setup -- you'll need to change them
JesiMiranda 1:4a5b43b9502c 10 BNO080 imu(&pc, D0, D1, D3, D4, 0x4a, 100000);
JesiMiranda 1:4a5b43b9502c 11
JesiMiranda 1:4a5b43b9502c 12 pc.baud(9600);
JesiMiranda 1:4a5b43b9502c 13 pc.printf("============================================================\n");
JesiMiranda 1:4a5b43b9502c 14
JesiMiranda 1:4a5b43b9502c 15 // Tell the IMU to report rotation every 100ms and acceleration every 200ms
JesiMiranda 1:4a5b43b9502c 16 imu.enableReport(BNO080::ROTATION, 100);
JesiMiranda 1:4a5b43b9502c 17 imu.enableReport(BNO080::TOTAL_ACCELERATION, 200);
JesiMiranda 1:4a5b43b9502c 18
JesiMiranda 1:4a5b43b9502c 19 while (true)
JesiMiranda 1:4a5b43b9502c 20 {
JesiMiranda 1:4a5b43b9502c 21 wait(.001f);
JesiMiranda 1:4a5b43b9502c 22
JesiMiranda 1:4a5b43b9502c 23 // poll the IMU for new data -- this returns true if any packets were received
JesiMiranda 1:4a5b43b9502c 24 if(imu.updateData())
JesiMiranda 1:4a5b43b9502c 25 {
JesiMiranda 1:4a5b43b9502c 26 // now check for the specific type of data that was received (can be multiple at once)
JesiMiranda 1:4a5b43b9502c 27 if (imu.hasNewData(BNO080::ROTATION))
JesiMiranda 1:4a5b43b9502c 28 {
JesiMiranda 1:4a5b43b9502c 29 // convert quaternion to Euler degrees and print
JesiMiranda 1:4a5b43b9502c 30 pc.printf("IMU Rotation Euler: ");
JesiMiranda 1:4a5b43b9502c 31 TVector3 eulerRadians = imu.rotationVector.euler();
JesiMiranda 1:4a5b43b9502c 32 TVector3 eulerDegrees = eulerRadians * (180.0 / M_PI);
JesiMiranda 1:4a5b43b9502c 33 eulerDegrees.print(pc, true);
JesiMiranda 1:4a5b43b9502c 34 pc.printf("\n");
JesiMiranda 1:4a5b43b9502c 35 }
JesiMiranda 1:4a5b43b9502c 36 if (imu.hasNewData(BNO080::TOTAL_ACCELERATION))
JesiMiranda 1:4a5b43b9502c 37 {
JesiMiranda 1:4a5b43b9502c 38 // print the acceleration vector using its builtin print() method
JesiMiranda 1:4a5b43b9502c 39 pc.printf("IMU Total Acceleration: ");
JesiMiranda 1:4a5b43b9502c 40 imu.totalAcceleration.print(pc, true);
JesiMiranda 1:4a5b43b9502c 41 pc.printf("\n");
JesiMiranda 1:4a5b43b9502c 42 }
JesiMiranda 1:4a5b43b9502c 43 }
JesiMiranda 0:0f12b8c4d5f1 44 }
JesiMiranda 1:4a5b43b9502c 45
JesiMiranda 0:0f12b8c4d5f1 46 }
JesiMiranda 1:4a5b43b9502c 47
JesiMiranda 1:4a5b43b9502c 48