My fully self designed first stable working Quadrocopter Software.

Dependencies:   mbed

Dependents:   fluy343

/media/uploads/maetugr/dsc09031.jpg

Committer:
maetugr
Date:
Mon Aug 31 20:20:50 2015 +0000
Revision:
10:14390c90c3f5
Parent:
4:b0a60b0b24a9
before changing to MPU9250

Who changed what in which revision?

UserRevisionLine numberNew contents of line
maetugr 0:12950aa67f2a 1 // by MaEtUgR
maetugr 0:12950aa67f2a 2
maetugr 0:12950aa67f2a 3 #ifndef IMU_10DOF_H
maetugr 0:12950aa67f2a 4 #define IMU_10DOF_H
maetugr 0:12950aa67f2a 5
maetugr 0:12950aa67f2a 6 #include "mbed.h"
maetugr 0:12950aa67f2a 7 #include "L3G4200D.h" // Gyro (Gyroscope)
maetugr 0:12950aa67f2a 8 #include "ADXL345.h" // Acc (Accelerometer)
maetugr 0:12950aa67f2a 9 #include "HMC5883.h" // Comp (Compass)
maetugr 0:12950aa67f2a 10 #include "BMP085.h" // Alt (Altitude sensor or Barometer)
maetugr 4:b0a60b0b24a9 11 #include "MPU6050.h" // Combined Gyroscope & Accelerometer
maetugr 0:12950aa67f2a 12 #include "IMU_Filter.h" // Class to calculate position angles (algorithm from S.O.H. Madgwick, see header file for info)
maetugr 10:14390c90c3f5 13 //#include "MPU9250.h" // Combined Gyroscope & Accelerometer & Magnetometer over SPI
maetugr 0:12950aa67f2a 14
maetugr 0:12950aa67f2a 15 class IMU_10DOF
maetugr 0:12950aa67f2a 16 {
maetugr 0:12950aa67f2a 17 public:
maetugr 0:12950aa67f2a 18 IMU_10DOF(PinName sda, PinName scl);
maetugr 0:12950aa67f2a 19 void readAngles(); // read all axis from register to array data
maetugr 0:12950aa67f2a 20 void readAltitude(); // read all axis from register to array data
maetugr 0:12950aa67f2a 21
maetugr 0:12950aa67f2a 22 float * angle; // where the measured and calculated data is saved
maetugr 0:12950aa67f2a 23 float temperature;
maetugr 0:12950aa67f2a 24 float pressure;
maetugr 0:12950aa67f2a 25 float altitude;
maetugr 0:12950aa67f2a 26
maetugr 2:03e5f7ab473f 27 float dt; // time for entire loop
maetugr 2:03e5f7ab473f 28 float dt_sensors; // time only to read sensors
maetugr 0:12950aa67f2a 29
maetugr 10:14390c90c3f5 30 //MPU9250 mpu; // All sensors Hardwaredrivers
maetugr 10:14390c90c3f5 31 MPU6050 Sensor;
maetugr 4:b0a60b0b24a9 32 L3G4200D Gyro;
maetugr 0:12950aa67f2a 33 ADXL345 Acc;
maetugr 0:12950aa67f2a 34 HMC5883 Comp;
maetugr 0:12950aa67f2a 35 BMP085 Alt;
maetugr 2:03e5f7ab473f 36
maetugr 2:03e5f7ab473f 37 private:
maetugr 2:03e5f7ab473f 38 Timer LocalTimer; // local time to calculate processing speed for entire loop and just reading sensors
maetugr 2:03e5f7ab473f 39 float time_for_dt; // |
maetugr 2:03e5f7ab473f 40 float time_for_dt_sensors; // |
maetugr 0:12950aa67f2a 41
maetugr 0:12950aa67f2a 42 IMU_Filter Filter; // Filterclass to join sensor data
maetugr 0:12950aa67f2a 43 };
maetugr 0:12950aa67f2a 44
maetugr 0:12950aa67f2a 45 #endif