Added BNO080Wheelchair.h

Dependents:   BNO080_program wheelchaircontrol8 Version1-9 BNO080_program

Committer:
t1jain
Date:
Wed Aug 07 18:49:44 2019 +0000
Revision:
12:f013530d8358
Parent:
11:dbe6d8d0ceb1
Updated Quaternion to TVector4

Who changed what in which revision?

UserRevisionLine numberNew contents of line
t1jain 9:a12af7cb3c6d 1 #ifndef BNO080Wheelchair_H
t1jain 9:a12af7cb3c6d 2 #define BNO080Wheelchair_H
t1jain 9:a12af7cb3c6d 3
t1jain 10:9275e6f7bf1b 4 //#include "filter.h"
t1jain 10:9275e6f7bf1b 5 #include "math.h"
t1jain 10:9275e6f7bf1b 6 #include "BNO080.h"
t1jain 11:dbe6d8d0ceb1 7 #include "BNO080Constants.h"
t1jain 9:a12af7cb3c6d 8
t1jain 9:a12af7cb3c6d 9 #define PI 3.141593
t1jain 9:a12af7cb3c6d 10
t1jain 10:9275e6f7bf1b 11 #define SDA D4
t1jain 10:9275e6f7bf1b 12 #define SCL D5
t1jain 10:9275e6f7bf1b 13 #define INT_PIN D12 // Change once actually connected
t1jain 10:9275e6f7bf1b 14 #define RST_PIN D10 // Change once actually connected
t1jain 10:9275e6f7bf1b 15
t1jain 9:a12af7cb3c6d 16 #define SAMPLEFREQ 50
t1jain 9:a12af7cb3c6d 17 #define CAL_TIME 3
t1jain 9:a12af7cb3c6d 18
t1jain 9:a12af7cb3c6d 19 class BNO080Wheelchair {
t1jain 9:a12af7cb3c6d 20 public:
t1jain 11:dbe6d8d0ceb1 21 BNO080* imu; //The IMU we're testing from, BNO080
t1jain 11:dbe6d8d0ceb1 22
t1jain 10:9275e6f7bf1b 23 BNO080Wheelchair(Serial *debugPort, PinName sdaPin,
t1jain 10:9275e6f7bf1b 24 PinName sclPin, PinName intPin, PinName rstPin,
t1jain 10:9275e6f7bf1b 25 uint8_t i2cAddress, int i2cPortpeed);
t1jain 10:9275e6f7bf1b 26
t1jain 9:a12af7cb3c6d 27 //Set up the IMU, check if it connects
t1jain 12:f013530d8358 28 bool setup();
t1jain 12:f013530d8358 29
t1jain 12:f013530d8358 30 //Checks if IMU has new data
t1jain 12:f013530d8358 31 bool hasNewData(BNO080::Report report);
t1jain 9:a12af7cb3c6d 32
t1jain 11:dbe6d8d0ceb1 33 //Get the x-component of the linear acceleration (total)
t1jain 9:a12af7cb3c6d 34 double accel_x();
t1jain 9:a12af7cb3c6d 35
t1jain 11:dbe6d8d0ceb1 36 //Get the y-component of the linear acceleration (total)
t1jain 9:a12af7cb3c6d 37 double accel_y();
t1jain 9:a12af7cb3c6d 38
t1jain 11:dbe6d8d0ceb1 39 //Get the z-component of the linear acceleration (total)
t1jain 9:a12af7cb3c6d 40 double accel_z();
t1jain 9:a12af7cb3c6d 41
t1jain 9:a12af7cb3c6d 42 //Get the x-component of gyro, angular velocity
t1jain 9:a12af7cb3c6d 43 double gyro_x();
t1jain 9:a12af7cb3c6d 44
t1jain 9:a12af7cb3c6d 45 //Get the y-component of gyro, angular velocity
t1jain 9:a12af7cb3c6d 46 double gyro_y();
t1jain 9:a12af7cb3c6d 47
t1jain 9:a12af7cb3c6d 48 //Get the z-component of gyro, angular velocity
t1jain 9:a12af7cb3c6d 49 double gyro_z();
t1jain 11:dbe6d8d0ceb1 50
t1jain 9:a12af7cb3c6d 51 //Get the YAW, or angle (theta), direction facing
t1jain 9:a12af7cb3c6d 52 double yaw();
t1jain 9:a12af7cb3c6d 53
t1jain 9:a12af7cb3c6d 54 //Get the pitch, (Up and down component)
t1jain 9:a12af7cb3c6d 55 double pitch();
t1jain 9:a12af7cb3c6d 56
t1jain 9:a12af7cb3c6d 57 //Get the roll, the tilt
t1jain 9:a12af7cb3c6d 58 double roll();
t1jain 10:9275e6f7bf1b 59
t1jain 11:dbe6d8d0ceb1 60 //Get x component of mag field vector
t1jain 11:dbe6d8d0ceb1 61 double mag_x();
t1jain 11:dbe6d8d0ceb1 62
t1jain 11:dbe6d8d0ceb1 63 //Get y component of mag field vector
t1jain 11:dbe6d8d0ceb1 64 double mag_y();
t1jain 11:dbe6d8d0ceb1 65
t1jain 11:dbe6d8d0ceb1 66 //Get z component of mag field vector
t1jain 11:dbe6d8d0ceb1 67 double mag_z();
t1jain 11:dbe6d8d0ceb1 68
t1jain 11:dbe6d8d0ceb1 69 //Check if IMU is pointing in one of the 4 cardinal directions (NSWE)
t1jain 11:dbe6d8d0ceb1 70 char compass();
t1jain 11:dbe6d8d0ceb1 71
t1jain 11:dbe6d8d0ceb1 72 //Get the rotation of the IMU (from magnetic north) in radians
t1jain 12:f013530d8358 73 TVector4 rotation();
t1jain 11:dbe6d8d0ceb1 74
t1jain 11:dbe6d8d0ceb1 75 double rot_w();
t1jain 11:dbe6d8d0ceb1 76 double rot_x();
t1jain 11:dbe6d8d0ceb1 77 double rot_y();
t1jain 11:dbe6d8d0ceb1 78 double rot_z();
t1jain 11:dbe6d8d0ceb1 79
t1jain 11:dbe6d8d0ceb1 80
t1jain 9:a12af7cb3c6d 81
t1jain 9:a12af7cb3c6d 82 private:
t1jain 11:dbe6d8d0ceb1 83
t1jain 9:a12af7cb3c6d 84 Timer* t;//to calculate the time
t1jain 11:dbe6d8d0ceb1 85
t1jain 9:a12af7cb3c6d 86 };
t1jain 9:a12af7cb3c6d 87
t1jain 9:a12af7cb3c6d 88 #endif