NOT FINISHED YET!!! My first try to get a self built fully working Quadrocopter based on an mbed, a self built frame and some other more or less cheap parts.

Dependencies:   mbed MODI2C

Committer:
maetugr
Date:
Fri Feb 14 14:17:32 2014 +0000
Revision:
40:2ca410923691
Parent:
34:3aa1cbcde59d
now with MPU6050 before taking it too FlyBed2

Who changed what in which revision?

UserRevisionLine numberNew contents of line
maetugr 34:3aa1cbcde59d 1 // based on http://mbed.org/users/BlazeX/code/HMC5883/
maetugr 34:3aa1cbcde59d 2
maetugr 34:3aa1cbcde59d 3 #ifndef HMC5883_H
maetugr 34:3aa1cbcde59d 4 #define HMC5883_H
maetugr 34:3aa1cbcde59d 5
maetugr 34:3aa1cbcde59d 6 #include "mbed.h"
maetugr 34:3aa1cbcde59d 7 #include "I2C_Sensor.h"
maetugr 34:3aa1cbcde59d 8
maetugr 34:3aa1cbcde59d 9 #define HMC5883_I2C_ADDRESS 0x3C
maetugr 34:3aa1cbcde59d 10
maetugr 34:3aa1cbcde59d 11 #define HMC5883_CONF_REG_A 0x00
maetugr 34:3aa1cbcde59d 12 #define HMC5883_CONF_REG_B 0x01
maetugr 34:3aa1cbcde59d 13 #define HMC5883_MODE_REG 0x02
maetugr 34:3aa1cbcde59d 14 #define HMC5883_DATA_OUT_X_MSB 0x03
maetugr 34:3aa1cbcde59d 15
maetugr 34:3aa1cbcde59d 16 class HMC5883 : public I2C_Sensor
maetugr 34:3aa1cbcde59d 17 {
maetugr 34:3aa1cbcde59d 18 public:
maetugr 34:3aa1cbcde59d 19 HMC5883(PinName sda, PinName scl);
maetugr 40:2ca410923691 20 float data[3]; // where the measured data is saved
maetugr 40:2ca410923691 21 void read(); // read all axis from register to array data
maetugr 34:3aa1cbcde59d 22 void calibrate(int s);
maetugr 34:3aa1cbcde59d 23 float get_angle();
maetugr 34:3aa1cbcde59d 24
maetugr 34:3aa1cbcde59d 25 private:
maetugr 40:2ca410923691 26 int raw[3];
maetugr 40:2ca410923691 27 void readraw(); // function to get raw data
maetugr 34:3aa1cbcde59d 28
maetugr 34:3aa1cbcde59d 29 float scale[3]; // calibration parameters
maetugr 34:3aa1cbcde59d 30 float offset[3];
maetugr 34:3aa1cbcde59d 31 };
maetugr 34:3aa1cbcde59d 32
maetugr 34:3aa1cbcde59d 33 #endif