Added BNO080Wheelchair.h

Dependents:   BNO080_program wheelchaircontrol8 Version1-9 BNO080_program

Committer:
t1jain
Date:
Fri Aug 02 23:34:30 2019 +0000
Revision:
11:dbe6d8d0ceb1
Parent:
10:9275e6f7bf1b
Child:
12:f013530d8358
Added all relevant functions

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 9:a12af7cb3c6d 28 void setup();
t1jain 9:a12af7cb3c6d 29
t1jain 11:dbe6d8d0ceb1 30 //Get the x-component of the linear acceleration (total)
t1jain 9:a12af7cb3c6d 31 double accel_x();
t1jain 9:a12af7cb3c6d 32
t1jain 11:dbe6d8d0ceb1 33 //Get the y-component of the linear acceleration (total)
t1jain 9:a12af7cb3c6d 34 double accel_y();
t1jain 9:a12af7cb3c6d 35
t1jain 11:dbe6d8d0ceb1 36 //Get the z-component of the linear acceleration (total)
t1jain 9:a12af7cb3c6d 37 double accel_z();
t1jain 9:a12af7cb3c6d 38
t1jain 9:a12af7cb3c6d 39 //Get the x-component of gyro, angular velocity
t1jain 9:a12af7cb3c6d 40 double gyro_x();
t1jain 9:a12af7cb3c6d 41
t1jain 9:a12af7cb3c6d 42 //Get the y-component of gyro, angular velocity
t1jain 9:a12af7cb3c6d 43 double gyro_y();
t1jain 9:a12af7cb3c6d 44
t1jain 9:a12af7cb3c6d 45 //Get the z-component of gyro, angular velocity
t1jain 9:a12af7cb3c6d 46 double gyro_z();
t1jain 11:dbe6d8d0ceb1 47
t1jain 9:a12af7cb3c6d 48 //Get the YAW, or angle (theta), direction facing
t1jain 9:a12af7cb3c6d 49 double yaw();
t1jain 9:a12af7cb3c6d 50
t1jain 9:a12af7cb3c6d 51 //Get the pitch, (Up and down component)
t1jain 9:a12af7cb3c6d 52 double pitch();
t1jain 9:a12af7cb3c6d 53
t1jain 9:a12af7cb3c6d 54 //Get the roll, the tilt
t1jain 9:a12af7cb3c6d 55 double roll();
t1jain 10:9275e6f7bf1b 56
t1jain 11:dbe6d8d0ceb1 57 //Get x component of mag field vector
t1jain 11:dbe6d8d0ceb1 58 double mag_x();
t1jain 11:dbe6d8d0ceb1 59
t1jain 11:dbe6d8d0ceb1 60 //Get y component of mag field vector
t1jain 11:dbe6d8d0ceb1 61 double mag_y();
t1jain 11:dbe6d8d0ceb1 62
t1jain 11:dbe6d8d0ceb1 63 //Get z component of mag field vector
t1jain 11:dbe6d8d0ceb1 64 double mag_z();
t1jain 11:dbe6d8d0ceb1 65
t1jain 11:dbe6d8d0ceb1 66 //Check if IMU is pointing in one of the 4 cardinal directions (NSWE)
t1jain 11:dbe6d8d0ceb1 67 char compass();
t1jain 11:dbe6d8d0ceb1 68
t1jain 11:dbe6d8d0ceb1 69 //Get the rotation of the IMU (from magnetic north) in radians
t1jain 11:dbe6d8d0ceb1 70 Quaternion rotation();
t1jain 11:dbe6d8d0ceb1 71
t1jain 11:dbe6d8d0ceb1 72 double rot_w();
t1jain 11:dbe6d8d0ceb1 73 double rot_x();
t1jain 11:dbe6d8d0ceb1 74 double rot_y();
t1jain 11:dbe6d8d0ceb1 75 double rot_z();
t1jain 11:dbe6d8d0ceb1 76
t1jain 11:dbe6d8d0ceb1 77
t1jain 9:a12af7cb3c6d 78
t1jain 9:a12af7cb3c6d 79 private:
t1jain 11:dbe6d8d0ceb1 80
t1jain 9:a12af7cb3c6d 81 Timer* t;//to calculate the time
t1jain 11:dbe6d8d0ceb1 82
t1jain 9:a12af7cb3c6d 83 };
t1jain 9:a12af7cb3c6d 84
t1jain 9:a12af7cb3c6d 85 #endif