nucleo-l432kcのテンプレートです。

Dependencies:   mbed ros_lib_kinetic

Committer:
TanakaRobo
Date:
Thu Aug 15 08:58:21 2019 +0000
Revision:
4:47f17b5ac6e7
Parent:
2:a84e3730c6cb
scrp_master added

Who changed what in which revision?

UserRevisionLine numberNew contents of line
TanakaRobo 1:17051435cfc5 1 #ifndef GY521_H
TanakaRobo 1:17051435cfc5 2 #define GY521_H
TanakaRobo 0:a8a56075e947 3 #include "mbed.h"
TanakaRobo 0:a8a56075e947 4
TanakaRobo 1:17051435cfc5 5 /*GY521を使う。
TanakaRobo 1:17051435cfc5 6 *I2Cオブジェクトを渡す
TanakaRobo 1:17051435cfc5 7 *GY521(I2C &i2c,int bit = 2,int calibration = 1000,double user_reg = 1.0);
TanakaRobo 1:17051435cfc5 8 *example
TanakaRobo 1:17051435cfc5 9 *L432KC : SDA = PB_7 , SCL = PB_6
TanakaRobo 1:17051435cfc5 10 *F446RE : SDA = PB_3 , SCL = PB_10
TanakaRobo 1:17051435cfc5 11 */
TanakaRobo 1:17051435cfc5 12 //I2C i2c(SDA,SCL);
TanakaRobo 1:17051435cfc5 13 //GY521 gyro(i2c);
TanakaRobo 0:a8a56075e947 14
TanakaRobo 4:47f17b5ac6e7 15 enum GY521RegisterMap {
TanakaRobo 4:47f17b5ac6e7 16 WHO_AM_I = 0x75,
TanakaRobo 4:47f17b5ac6e7 17 PWR_MGMT_1 = 0x6B,
TanakaRobo 4:47f17b5ac6e7 18 LPF = 0x1A,
TanakaRobo 4:47f17b5ac6e7 19 FS_SEL = 0x1B,
TanakaRobo 4:47f17b5ac6e7 20 AFS_SEL = 0x1C,
TanakaRobo 4:47f17b5ac6e7 21 ACCEL_XOUT_H = 0x3B,
TanakaRobo 4:47f17b5ac6e7 22 ACCEL_YOUT_H = 0x3D,
TanakaRobo 4:47f17b5ac6e7 23 ACCEL_ZOUT_H = 0x3F,
TanakaRobo 4:47f17b5ac6e7 24 //TEMPERATURE = 0x41,
TanakaRobo 4:47f17b5ac6e7 25 //GYRO_XOUT_H = 0x43,
TanakaRobo 4:47f17b5ac6e7 26 //GYRO_YOUT_H = 0x45,
TanakaRobo 4:47f17b5ac6e7 27 GYRO_ZOUT_H = 0x47
TanakaRobo 4:47f17b5ac6e7 28 };
TanakaRobo 4:47f17b5ac6e7 29
TanakaRobo 0:a8a56075e947 30 class GY521{
TanakaRobo 0:a8a56075e947 31 public:
TanakaRobo 0:a8a56075e947 32 GY521(I2C &i2c,int bit = 2,int calibration = 1000,double user_reg = 1.0);
TanakaRobo 0:a8a56075e947 33 double yaw;
TanakaRobo 0:a8a56075e947 34 //double temp;
TanakaRobo 0:a8a56075e947 35 void updata();
TanakaRobo 0:a8a56075e947 36 void reset(int user);
TanakaRobo 0:a8a56075e947 37 void start(double start = 0){
TanakaRobo 0:a8a56075e947 38 yaw = start;
TanakaRobo 0:a8a56075e947 39 }
TanakaRobo 0:a8a56075e947 40 double checkStatus(int mode);
TanakaRobo 0:a8a56075e947 41 private:
TanakaRobo 1:17051435cfc5 42 I2C &i2c_;
TanakaRobo 1:17051435cfc5 43 Timer timer_;
TanakaRobo 0:a8a56075e947 44 int16_t gyroRead2(enum GY521RegisterMap reg);
TanakaRobo 1:17051435cfc5 45 double gyro_z_aver_;
TanakaRobo 1:17051435cfc5 46 double gyro_z_now_;
TanakaRobo 1:17051435cfc5 47 double gyro_z_prev_;
TanakaRobo 1:17051435cfc5 48 double gyro_LSB_;
TanakaRobo 1:17051435cfc5 49 double diff_yaw_;
TanakaRobo 0:a8a56075e947 50 int bit_;
TanakaRobo 1:17051435cfc5 51 int calibration_;
TanakaRobo 1:17051435cfc5 52 bool flag_;
TanakaRobo 1:17051435cfc5 53 };
TanakaRobo 1:17051435cfc5 54
TanakaRobo 1:17051435cfc5 55 #endif /* GY521_H */