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:
Wed Oct 31 16:53:01 2012 +0000
Revision:
17:e096e85f6c36
Parent:
14:cf260677ecde
Child:
18:c8c09a3913ba
alle Sensoren mit i2c auf I2C_Sensor umgestellt (nicht getestet), noch keine calibration save per I2C_Sensor

Who changed what in which revision?

UserRevisionLine numberNew contents of line
maetugr 17:e096e85f6c36 1 // based on http://mbed.org/users/BlazeX/code/HMC5883/
maetugr 17:e096e85f6c36 2
maetugr 11:9bf69bc6df45 3 #ifndef HMC5883_H
maetugr 11:9bf69bc6df45 4 #define HMC5883_H
maetugr 11:9bf69bc6df45 5
maetugr 17:e096e85f6c36 6 #include "mbed.h"
maetugr 17:e096e85f6c36 7 #include "I2C_Sensor.h"
maetugr 17:e096e85f6c36 8
maetugr 11:9bf69bc6df45 9 #define HMC5883_CONF_REG_A 0x00
maetugr 11:9bf69bc6df45 10 #define HMC5883_CONF_REG_B 0x01
maetugr 11:9bf69bc6df45 11 #define HMC5883_MODE_REG 0x02
maetugr 11:9bf69bc6df45 12 #define HMC5883_DATA_OUT_X_MSB 0x03
maetugr 11:9bf69bc6df45 13
maetugr 11:9bf69bc6df45 14 // I2C addresses
maetugr 17:e096e85f6c36 15 #define HMC5883_I2C_ADDRESS 0x1E
maetugr 11:9bf69bc6df45 16
maetugr 17:e096e85f6c36 17 class HMC5883 : public I2C_Sensor
maetugr 11:9bf69bc6df45 18 {
maetugr 11:9bf69bc6df45 19 public:
maetugr 11:9bf69bc6df45 20 HMC5883(PinName sda, PinName scl);
maetugr 11:9bf69bc6df45 21
maetugr 11:9bf69bc6df45 22 float data[3];
maetugr 11:9bf69bc6df45 23 void read();
maetugr 12:67a06c9b69d5 24 void calibrate(int s);
maetugr 12:67a06c9b69d5 25 float get_angle();
maetugr 12:67a06c9b69d5 26
maetugr 12:67a06c9b69d5 27 private:
maetugr 17:e096e85f6c36 28 // raw data and function to get it
maetugr 12:67a06c9b69d5 29 int raw[3];
maetugr 12:67a06c9b69d5 30 void readraw();
maetugr 12:67a06c9b69d5 31
maetugr 14:cf260677ecde 32 // calibration parameters and their saving
maetugr 14:cf260677ecde 33 int Min[3];
maetugr 14:cf260677ecde 34 int Max[3];
maetugr 14:cf260677ecde 35 float scale[3];
maetugr 14:cf260677ecde 36 float offset[3];
maetugr 14:cf260677ecde 37 LocalFileSystem local;
maetugr 11:9bf69bc6df45 38 };
maetugr 11:9bf69bc6df45 39
maetugr 11:9bf69bc6df45 40 #endif