これは MMA7361 3軸アナログ加速度センサ の Nucleo F401RE 用のライブラリです。詳しい説明はLibrary中のReadMe.hに記載しています。文字化けや開けない場合はダウンロードしてみてください。Google Chrome では見れるはずです。
Dependents: Nucleo_L3GD20_MMA7361_Kalman
Diff: mma7361.h
- Revision:
- 0:ad6f3a862ed5
- Child:
- 3:0359af763b6c
diff -r 000000000000 -r ad6f3a862ed5 mma7361.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mma7361.h Sun Feb 01 03:56:22 2015 +0000 @@ -0,0 +1,55 @@ +#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.01 + +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,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 \ No newline at end of file