Saya Matsuura
/
drum
明石高専ロボ研 drum
gy521.hpp
- Committer:
- TanakaRobo
- Date:
- 2020-11-12
- Revision:
- 7:678c6b604ac7
- Parent:
- 4:39ef4d91dc34
File content as of revision 7:678c6b604ac7:
#ifndef GY521_H #define GY521_H #include "mbed.h" /*GY521を使う。 *I2Cオブジェクトを渡す *GY521(I2C &i2c,int bit = 2,int calibration = 1000,double user_reg = 1.0); *example *L432KC : SDA = PB_7 , SCL = PB_6 *F446RE : SDA = PB_3 , SCL = PB_10 *ループ内で毎回 *<obj>.update() *を呼び出してください。 */ //I2C i2c(SDA,SCL); //GY521 gyro(i2c); enum GY521RegisterMap { WHO_AM_I = 0x75, PWR_MGMT_1 = 0x6B, LPF = 0x1A, FS_SEL = 0x1B, AFS_SEL = 0x1C, ACCEL_XOUT_H = 0x3B, ACCEL_YOUT_H = 0x3D, ACCEL_ZOUT_H = 0x3F, //TEMPERATURE = 0x41, //GYRO_XOUT_H = 0x43, //GYRO_YOUT_H = 0x45, GYRO_ZOUT_H = 0x47 }; class GY521{ public: GY521(I2C &i2c,int bit = 2,int calibration = 1000,double user_reg = 1.0); double yaw; //double temp; void update(); void reset(int user); void start(double start = 0){ yaw = start; } double checkStatus(int mode); private: I2C &i2c_; Timer timer_; int16_t gyroRead2(enum GY521RegisterMap reg); double gyro_z_aver_; double gyro_z_now_; double gyro_z_prev_; double gyro_LSB_; double diff_yaw_; int bit_; int calibration_; bool flag_; }; #endif /* GY521_H */