Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: BNOWrapper
Revision 1:4a5b43b9502c, committed 2019-07-18
- Comitter:
- JesiMiranda
- Date:
- Thu Jul 18 22:09:22 2019 +0000
- Parent:
- 0:0f12b8c4d5f1
- Child:
- 2:1fd1549d3fbd
- Commit message:
- changed main;
Changed in this revision
| main.cpp | Show annotated file Show diff for this revision Revisions of this file |
--- a/main.cpp Tue Jul 16 16:37:37 2019 +0000
+++ b/main.cpp Thu Jul 18 22:09:22 2019 +0000
@@ -1,23 +1,48 @@
-/* mbed Microcontroller Library
- * Copyright (c) 2018 ARM Limited
- * SPDX-License-Identifier: Apache-2.0
- */
-
-#include "mbed.h"
-#include "BNO080.h"
-DigitalOut led1(LED1);
-
-#define SLEEP_TIME 500 // (msec)
-
-BNO080 imu;
-// main() runs in its own thread in the OS
+#include <mbed.h>
+#include <BNO080.h>
+
int main()
{
- int count = 0;
- while (true) {
- // Blink LED and wait 0.5 seconds
- led1 = !led1;
- wait_ms(SLEEP_TIME);
- ++count;
+ Serial pc(USBTX, USBRX);
+
+ // Create IMU, passing in output stream, pins, I2C address, and I2C frequency
+ // These pin assignments are specific to my dev setup -- you'll need to change them
+ BNO080 imu(&pc, D0, D1, D3, D4, 0x4a, 100000);
+
+ pc.baud(9600);
+ pc.printf("============================================================\n");
+
+ // Tell the IMU to report rotation every 100ms and acceleration every 200ms
+ imu.enableReport(BNO080::ROTATION, 100);
+ imu.enableReport(BNO080::TOTAL_ACCELERATION, 200);
+
+ while (true)
+ {
+ wait(.001f);
+
+ // poll the IMU for new data -- this returns true if any packets were received
+ if(imu.updateData())
+ {
+ // now check for the specific type of data that was received (can be multiple at once)
+ if (imu.hasNewData(BNO080::ROTATION))
+ {
+ // convert quaternion to Euler degrees and print
+ pc.printf("IMU Rotation Euler: ");
+ TVector3 eulerRadians = imu.rotationVector.euler();
+ TVector3 eulerDegrees = eulerRadians * (180.0 / M_PI);
+ eulerDegrees.print(pc, true);
+ pc.printf("\n");
+ }
+ if (imu.hasNewData(BNO080::TOTAL_ACCELERATION))
+ {
+ // print the acceleration vector using its builtin print() method
+ pc.printf("IMU Total Acceleration: ");
+ imu.totalAcceleration.print(pc, true);
+ pc.printf("\n");
+ }
+ }
}
+
}
+
+
\ No newline at end of file