An fully working IMU-Filter and Sensor drivers for the 10DOF-Board over I2C. All in one simple class. Include, calibrate sensors, call read, get angles. (3D Visualisation code for Python also included) Sensors: L3G4200D, ADXL345, HMC5883, BMP085

Dependencies:   mbed

IMU/IMU_10DOF.h

Committer:
maetugr
Date:
2013-08-27
Revision:
1:798db5deb8b9
Child:
4:f62337b907e5

File content as of revision 1:798db5deb8b9:

// by MaEtUgR

#ifndef IMU_10DOF_H
#define IMU_10DOF_H

#include "mbed.h"
#include "L3G4200D.h"   // Gyro (Gyroscope)
#include "ADXL345.h"    // Acc (Accelerometer)
#include "HMC5883.h"    // Comp (Compass)
#include "IMU_Filter.h" // Class to calculate position angles

class IMU_10DOF
{           
    public:
        IMU_10DOF(PinName sda, PinName scl);
        void read();                    // read all axis from register to array data
        
        float * angle;                  // where the measured and calculated angles are saved
        
        float dt;                       // local time to calculate processing speed for entire loop and just reading sensors
        float dt_sensors;               // |
    private:                            // |
        Timer LocalTimer;               // |
        float time_for_dt;              // |
        float time_for_dt_sensors;      // |
        
        L3G4200D    Gyro;               // All sensors Hardwaredrivers
        ADXL345     Acc;
        HMC5883     Comp;
        IMU_Filter  Filter;             // Filterclass to join sensor data
};

#endif