code of robot bike

Dependencies:   SDFileSystem mbed

Fork of Robot_Bicycle by Chris LU

Committer:
YCTung
Date:
Wed Jul 06 06:54:15 2016 +0000
Revision:
4:b0967990e390
Parent:
1:709be64ca63c
Child:
10:3b952ea7fad4
update program

Who changed what in which revision?

UserRevisionLine numberNew contents of line
YCTung 0:830ddddc129f 1 #ifndef SPI_9DSENSOR_H_INCLUDED
YCTung 0:830ddddc129f 2 #define SPI_9DSENSOR_H_INCLUDED
YCTung 0:830ddddc129f 3
YCTung 0:830ddddc129f 4 #include "mbed.h" // GPIO
YCTung 0:830ddddc129f 5
YCTung 0:830ddddc129f 6 #define sensorG_CTRL_REG1_address 0x20
YCTung 0:830ddddc129f 7 #define sensorXM_CTRL_REG0_address 0x1F
YCTung 0:830ddddc129f 8 #define sensorG_OUT_X_L_address 0x28
YCTung 0:830ddddc129f 9 #define sensorXM_OUT_X_L_A_address 0x28
YCTung 0:830ddddc129f 10 #define sensorXM_OUT_X_L_M_address 0x08
YCTung 0:830ddddc129f 11
YCTung 0:830ddddc129f 12 #define CSG 0
YCTung 0:830ddddc129f 13 #define CSXM 1
YCTung 0:830ddddc129f 14
YCTung 0:830ddddc129f 15 #define INDEX_GYRO_X 1
YCTung 0:830ddddc129f 16 #define INDEX_GYRO_Y 2
YCTung 0:830ddddc129f 17 #define INDEX_GYRO_Z 3
YCTung 0:830ddddc129f 18 #define INDEX_ACCE_X 4
YCTung 0:830ddddc129f 19 #define INDEX_ACCE_Y 5
YCTung 0:830ddddc129f 20 #define INDEX_ACCE_Z 6
YCTung 0:830ddddc129f 21 #define INDEX_MAGN_X 7
YCTung 0:830ddddc129f 22 #define INDEX_MAGN_Y 8
YCTung 0:830ddddc129f 23 #define INDEX_MAGN_Z 9
YCTung 0:830ddddc129f 24
YCTung 0:830ddddc129f 25 #define GX_offset 35
YCTung 0:830ddddc129f 26 #define GY_offset -28
YCTung 0:830ddddc129f 27 #define GZ_offset 151
YCTung 0:830ddddc129f 28 #define AX_offset -715///-908
YCTung 0:830ddddc129f 29 #define AY_offset -501
YCTung 0:830ddddc129f 30 #define AZ_offset 215
YCTung 0:830ddddc129f 31 #define MX_offset 136
YCTung 0:830ddddc129f 32 #define MY_offset -108
YCTung 0:830ddddc129f 33 #define MZ_offset -102
YCTung 0:830ddddc129f 34
YCTung 0:830ddddc129f 35 #define Mag_backgnd 0.36435f ///gauss, Magnetic field in Hsinchu
YCTung 0:830ddddc129f 36 #define Gyro_gainx 0.001065f///2000dps/2^15 = 61 miliDegree/s = 0.001065rad/s
YCTung 0:830ddddc129f 37 #define Gyro_gainy 0.001065f///0.001212716
YCTung 0:830ddddc129f 38 #define Gyro_gainz 0.001065f///0.0012375596
YCTung 0:830ddddc129f 39 #define Acce_gainx -0.002394f///=8*9.81/2^15
YCTung 0:830ddddc129f 40 #define Acce_gainy -0.002394f///=8*9.81/2^15
YCTung 0:830ddddc129f 41 #define Acce_gainz -0.002394f///=8*9.81/2^15
YCTung 0:830ddddc129f 42 #define Magn_gain 0.000244f ///8gauss/2^15 = 0.000244gauss
YCTung 0:830ddddc129f 43
YCTung 4:b0967990e390 44 extern SPI sensor_LSM9D;
YCTung 1:709be64ca63c 45 extern DigitalOut sensor_CSG;
YCTung 1:709be64ca63c 46 extern DigitalOut sensor_CSXM;
YCTung 1:709be64ca63c 47
YCTung 0:830ddddc129f 48 extern Serial pc;
YCTung 0:830ddddc129f 49
YCTung 0:830ddddc129f 50 extern int volatile interrupt;
YCTung 0:830ddddc129f 51
YCTung 0:830ddddc129f 52 extern const int speed;
YCTung 0:830ddddc129f 53
YCTung 0:830ddddc129f 54 extern unsigned char sensorG_CTRL_REG[6], sensorXM_CTRL_REG[9];
YCTung 0:830ddddc129f 55
YCTung 0:830ddddc129f 56 extern short int Gyro_axis_data[3], Gyro_axis_zero[3];
YCTung 0:830ddddc129f 57 extern float Gyro_scale[3];
YCTung 0:830ddddc129f 58
YCTung 0:830ddddc129f 59 extern short int Acce_axis_data[3], Acce_axis_zero[3];
YCTung 0:830ddddc129f 60 extern float Acce_scale[3];
YCTung 0:830ddddc129f 61
YCTung 0:830ddddc129f 62 extern short int Magn_axis_data[3], Magn_axis_zero[3];
YCTung 0:830ddddc129f 63 extern float Magn_scale[3];
YCTung 0:830ddddc129f 64
YCTung 0:830ddddc129f 65 extern float B_x, B_y, B_z, B_total;
YCTung 0:830ddddc129f 66 extern float u_cali[9], u_old[9];
YCTung 0:830ddddc129f 67
YCTung 0:830ddddc129f 68 extern void sig_handler(int signo);
YCTung 4:b0967990e390 69 extern void setup_spi_sensor(void);
YCTung 0:830ddddc129f 70 void close(int fd);
YCTung 0:830ddddc129f 71
YCTung 0:830ddddc129f 72 extern void init_Sensors(void);
YCTung 0:830ddddc129f 73 extern void sensorG_setup(void);
YCTung 0:830ddddc129f 74 extern void sensorXM_setup(void);
YCTung 0:830ddddc129f 75 extern void sensorG_read_3axis(void);
YCTung 0:830ddddc129f 76 extern void sensorX_read_3axis(void);
YCTung 0:830ddddc129f 77 extern void sensorM_read_3axis(void);
YCTung 0:830ddddc129f 78
YCTung 0:830ddddc129f 79 extern short int filted_sensor_data(unsigned char axis_index, float freq);
YCTung 0:830ddddc129f 80 extern void reset_gyro_offset(void);
YCTung 0:830ddddc129f 81 extern void reset_acceX_offset(void);
YCTung 0:830ddddc129f 82
YCTung 0:830ddddc129f 83 extern void get_9axis_scale(void);
YCTung 0:830ddddc129f 84
YCTung 4:b0967990e390 85 extern void print_WhoAmI_G(void);
YCTung 4:b0967990e390 86 extern void print_WhoAmI_XM(void);
YCTung 4:b0967990e390 87
YCTung 0:830ddddc129f 88 #endif // SPI_9DSENSOR_H_INCLUDED