.

Dependencies:   BNO055 SDFileSystem mbed

Committer:
alejo5214416
Date:
Thu Sep 06 04:02:06 2018 +0000
Revision:
2:54bb4cee7885
Parent:
1:74fb432755d0
Child:
3:a4a031655cda
Cambios en libreria para interrupcion por aceler?metro y adicion de led de calibracion;

Who changed what in which revision?

UserRevisionLine numberNew contents of line
alejo5214416 0:b91b6f47eb98 1 #include "mbed.h"
alejo5214416 0:b91b6f47eb98 2 #include "BNO055.h"
alejo5214416 2:54bb4cee7885 3 #define TS 0.1
alejo5214416 0:b91b6f47eb98 4 using namespace std;
alejo5214416 0:b91b6f47eb98 5
alejo5214416 0:b91b6f47eb98 6 DigitalOut led1(LED1);
alejo5214416 2:54bb4cee7885 7 DigitalOut green(p21);
alejo5214416 2:54bb4cee7885 8 DigitalOut blue(p22);
alejo5214416 2:54bb4cee7885 9 DigitalOut red(p23);
alejo5214416 2:54bb4cee7885 10
alejo5214416 0:b91b6f47eb98 11 Serial pc(USBTX, USBRX);
alejo5214416 0:b91b6f47eb98 12 // BNO055
alejo5214416 0:b91b6f47eb98 13 BNO055 bno055(p9, p10);
alejo5214416 1:74fb432755d0 14 InterruptIn interrupt(p15, PullUp);
alejo5214416 0:b91b6f47eb98 15
alejo5214416 0:b91b6f47eb98 16
alejo5214416 0:b91b6f47eb98 17
alejo5214416 0:b91b6f47eb98 18 void event();
alejo5214416 0:b91b6f47eb98 19 int main() {
alejo5214416 0:b91b6f47eb98 20 bno055.reset();
alejo5214416 0:b91b6f47eb98 21 bno055.setmode(OPERATION_MODE_NDOF);
alejo5214416 0:b91b6f47eb98 22 bno055.write_calibration_data();
alejo5214416 0:b91b6f47eb98 23 bno055.get_calib();
alejo5214416 0:b91b6f47eb98 24 interrupt.rise(&event);
alejo5214416 0:b91b6f47eb98 25 while (bno055.calib == 0) {
alejo5214416 0:b91b6f47eb98 26 bno055.get_calib();
alejo5214416 0:b91b6f47eb98 27 }
alejo5214416 1:74fb432755d0 28 if (bno055.check()){
alejo5214416 1:74fb432755d0 29 bno055.initIntr();
alejo5214416 1:74fb432755d0 30 }
alejo5214416 1:74fb432755d0 31
alejo5214416 0:b91b6f47eb98 32 while(1) {
alejo5214416 2:54bb4cee7885 33
alejo5214416 0:b91b6f47eb98 34 bno055.get_angles(); //query the i2c device
alejo5214416 1:74fb432755d0 35 pc.printf("yaw:%6.2f pitch:%6.2f roll:%6.2f\r\n",bno055.euler.yaw, bno055.euler.pitch, bno055.euler.roll);
alejo5214416 0:b91b6f47eb98 36 bno055.get_lia(); //query the i2c device
alejo5214416 0:b91b6f47eb98 37 pc.printf("X: %3.2f, Y: %3.2f, Z: %3.2f\r\n",bno055.lia.x,bno055.lia.y,bno055.lia.z);
alejo5214416 2:54bb4cee7885 38 wait_ms(TS);
alejo5214416 2:54bb4cee7885 39
alejo5214416 0:b91b6f47eb98 40 }
alejo5214416 0:b91b6f47eb98 41 }
alejo5214416 0:b91b6f47eb98 42
alejo5214416 0:b91b6f47eb98 43
alejo5214416 0:b91b6f47eb98 44 void event(){
alejo5214416 1:74fb432755d0 45 led1 = !led1;
alejo5214416 2:54bb4cee7885 46 //wait(10);
alejo5214416 2:54bb4cee7885 47 /*
alejo5214416 2:54bb4cee7885 48 float v_act=0;
alejo5214416 2:54bb4cee7885 49 float x_act=0;
alejo5214416 2:54bb4cee7885 50 float v_ant=0;
alejo5214416 2:54bb4cee7885 51 float x_ant=0;
alejo5214416 2:54bb4cee7885 52 bno055.get_angles(); //query the i2c device
alejo5214416 2:54bb4cee7885 53 bno055.get_lia(); //query the i2c device
alejo5214416 2:54bb4cee7885 54 v_act = v_ant + TS*float(bno055.lia.x);
alejo5214416 2:54bb4cee7885 55 wait(TS);
alejo5214416 2:54bb4cee7885 56 pc.printf("V_act = %f",v_act);
alejo5214416 2:54bb4cee7885 57 */
alejo5214416 0:b91b6f47eb98 58 bno055.resetIntr();
alejo5214416 0:b91b6f47eb98 59 }