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.
Sensors/Comp/HMC5883.h@34:3aa1cbcde59d, 2013-06-10 (annotated)
- Committer:
- maetugr
- Date:
- Mon Jun 10 13:22:46 2013 +0000
- Revision:
- 34:3aa1cbcde59d
- Child:
- 40:2ca410923691
First version with new ESCs (they are working with the KK Board); some strange kicks in the behaviour of balancing, next step a logger
Who changed what in which revision?
User | Revision | Line number | New 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 | 34:3aa1cbcde59d | 20 | |
maetugr | 34:3aa1cbcde59d | 21 | virtual 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 | 34:3aa1cbcde59d | 26 | virtual void readraw(); // function to get raw data |
maetugr | 34:3aa1cbcde59d | 27 | |
maetugr | 34:3aa1cbcde59d | 28 | float scale[3]; // calibration parameters |
maetugr | 34:3aa1cbcde59d | 29 | float offset[3]; |
maetugr | 34:3aa1cbcde59d | 30 | }; |
maetugr | 34:3aa1cbcde59d | 31 | |
maetugr | 34:3aa1cbcde59d | 32 | #endif |