mbed library for Bosch BMX055 sensor

Dependents:   Auto_pilot_prototype_3_2 Auto_pilot_prototype_3_2_os_2

Committer:
Joeatsumi
Date:
Sat May 23 13:17:09 2020 +0000
Revision:
0:3df2d4d2d393
Child:
1:b387585de3b5
Magnetometer functions were added in the header and cpp file.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Joeatsumi 0:3df2d4d2d393 1 #include "mbed.h"
Joeatsumi 0:3df2d4d2d393 2
Joeatsumi 0:3df2d4d2d393 3 #define GYRO_ADDRESS 0x69
Joeatsumi 0:3df2d4d2d393 4 #define ACC_ADDRESS 0x19
Joeatsumi 0:3df2d4d2d393 5 #define MAG_ADDRESS 0x13
Joeatsumi 0:3df2d4d2d393 6
Joeatsumi 0:3df2d4d2d393 7 #define MAG_SOFT_RESET 0x4B
Joeatsumi 0:3df2d4d2d393 8 #define MAG_ENEBLE 0x4E
Joeatsumi 0:3df2d4d2d393 9
Joeatsumi 0:3df2d4d2d393 10 #define GYRO_X_L 0x04
Joeatsumi 0:3df2d4d2d393 11 #define GYRO_X_H 0x05
Joeatsumi 0:3df2d4d2d393 12 #define GYRO_Y_L 0x02
Joeatsumi 0:3df2d4d2d393 13 #define GYRO_Y_H 0x03
Joeatsumi 0:3df2d4d2d393 14 #define GYRO_Z_L 0x06
Joeatsumi 0:3df2d4d2d393 15 #define GYRO_Z_H 0x07
Joeatsumi 0:3df2d4d2d393 16
Joeatsumi 0:3df2d4d2d393 17 #define ACC_X_L 0x04
Joeatsumi 0:3df2d4d2d393 18 #define ACC_X_H 0x05
Joeatsumi 0:3df2d4d2d393 19 #define ACC_Y_L 0x02
Joeatsumi 0:3df2d4d2d393 20 #define ACC_Y_H 0x03
Joeatsumi 0:3df2d4d2d393 21 #define ACC_Z_L 0x06
Joeatsumi 0:3df2d4d2d393 22 #define ACC_Z_H 0x07
Joeatsumi 0:3df2d4d2d393 23
Joeatsumi 0:3df2d4d2d393 24 #define MAG_X_L 0x42
Joeatsumi 0:3df2d4d2d393 25 #define MAG_X_H 0x43
Joeatsumi 0:3df2d4d2d393 26 #define MAG_Y_L 0x44
Joeatsumi 0:3df2d4d2d393 27 #define MAG_Y_H 0x45
Joeatsumi 0:3df2d4d2d393 28 #define MAG_Z_L 0x46
Joeatsumi 0:3df2d4d2d393 29 #define MAG_Z_H 0x47
Joeatsumi 0:3df2d4d2d393 30
Joeatsumi 0:3df2d4d2d393 31
Joeatsumi 0:3df2d4d2d393 32 #define GYRO_RANGE_SET 0x0f
Joeatsumi 0:3df2d4d2d393 33 #define ACC_RANGE_SET 0x0f
Joeatsumi 0:3df2d4d2d393 34
Joeatsumi 0:3df2d4d2d393 35 class test_BMX055
Joeatsumi 0:3df2d4d2d393 36 {
Joeatsumi 0:3df2d4d2d393 37 public:
Joeatsumi 0:3df2d4d2d393 38 test_BMX055(PinName sda,PinName scl);
Joeatsumi 0:3df2d4d2d393 39 ~test_BMX055();
Joeatsumi 0:3df2d4d2d393 40
Joeatsumi 0:3df2d4d2d393 41 void i2c_mem_write(int device_address, int mem_address, int mem_data);
Joeatsumi 0:3df2d4d2d393 42 int i2c_mem_read(int device_address, int mem_address);
Joeatsumi 0:3df2d4d2d393 43
Joeatsumi 0:3df2d4d2d393 44 void set_gyro_range(int range);
Joeatsumi 0:3df2d4d2d393 45 void set_acc_range(int range);
Joeatsumi 0:3df2d4d2d393 46
Joeatsumi 0:3df2d4d2d393 47 void reset_mag();
Joeatsumi 0:3df2d4d2d393 48 void initiate_mag();
Joeatsumi 0:3df2d4d2d393 49
Joeatsumi 0:3df2d4d2d393 50 float get_gyro_x_data(void);
Joeatsumi 0:3df2d4d2d393 51 float get_gyro_y_data(void);
Joeatsumi 0:3df2d4d2d393 52 float get_gyro_z_data(void);
Joeatsumi 0:3df2d4d2d393 53
Joeatsumi 0:3df2d4d2d393 54 float get_acc_x_data(void);
Joeatsumi 0:3df2d4d2d393 55 float get_acc_y_data(void);
Joeatsumi 0:3df2d4d2d393 56 float get_acc_z_data(void);
Joeatsumi 0:3df2d4d2d393 57
Joeatsumi 0:3df2d4d2d393 58 float get_mag_x_data(void);
Joeatsumi 0:3df2d4d2d393 59 float get_mag_y_data(void);
Joeatsumi 0:3df2d4d2d393 60 float get_mag_z_data(void);
Joeatsumi 0:3df2d4d2d393 61
Joeatsumi 0:3df2d4d2d393 62 private:
Joeatsumi 0:3df2d4d2d393 63
Joeatsumi 0:3df2d4d2d393 64 I2C i2c;
Joeatsumi 0:3df2d4d2d393 65 int currentAcceleroRange;
Joeatsumi 0:3df2d4d2d393 66 int currentGyroRange;
Joeatsumi 0:3df2d4d2d393 67 float gyro_scale_factor;
Joeatsumi 0:3df2d4d2d393 68 int acc_scale_factor;
Joeatsumi 0:3df2d4d2d393 69 float gravity;
Joeatsumi 0:3df2d4d2d393 70 float RAD_TO_DEG;
Joeatsumi 0:3df2d4d2d393 71
Joeatsumi 0:3df2d4d2d393 72 };