これは MMA7361 3軸アナログ加速度センサ の Nucleo F401RE 用のライブラリです。詳しい説明はLibrary中のReadMe.hに記載しています。文字化けや開けない場合はダウンロードしてみてください。Google Chrome では見れるはずです。

Dependents:   Nucleo_L3GD20_MMA7361_Kalman

mma7361.h

Committer:
hirokimineshita
Date:
2016-09-28
Revision:
4:c3d863eb7f91
Parent:
3:0359af763b6c
Child:
5:83a3021f51f8

File content as of revision 4:c3d863eb7f91:

#ifndef _MMA7361_H_20150129_1716_
#define _MMA7361_H_20150129_1716_

#define def         -1
#define x_axis       0
#define y_axis       1
#define z_axis       2
#define A00          31356
#define A10          34040
#define A20          28639
#define A01          32717
#define A11          33388
#define A21          31475
#define G00          15633
#define G10          15797
#define G20          15187
#define G01          5416
#define G11          3220
#define G21          7131
#define PI           3.1415926535
#define THHO         0.0000000001

class mma7361{
private:
    AnalogIn dx;
    AnalogIn dy;
    AnalogIn dz;
    DigitalOut ST;
    DigitalOut GS;
    Serial pcdev;
    int range; //0 : 1.5G  1 : 6.0G
    int mat[4][3];
public:
    mma7361();
    mma7361(PinName accelx,PinName accely,PinName accelz);
    mma7361(PinName accelx,PinName accely,PinName accelz,PinName set);
    mma7361(PinName accelx,PinName accely,PinName accelz,PinName set,PinName set_range);
    void calibration();
    void set_each_num(int ax_0_0,int ay_0_0,int az_0_0,int ax_1_0,int ay_1_0,int az_1_0,int gx_0_0,int gy_0_0,int gz_0_0,int gx_1_0,int gy_1_0,int gz_1_0,int new_range);
    void set_num(int (*new_mat)[3],int new_range);
    void set_range(int new_range);
    void clear_mat();
    int read_bit(int axis);
    int read_bit_0(int axis);
    float read_by_g(int axis);
    void low_pass_filter(int *int_bit,int axis);
    void show_mat();
    float bit_to_g(int bit,int axis);
    void set_1st_bit(int *variable,int axis,float direction_G);
    
    float rotate(int *a_value,int a_axis,int *b_value,int b_axis);
    float rad_to_deg(float rad);
};

#endif