Localization

Dependencies:   BNO055_fusion mbed

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers LOCALIZE.h Source File

LOCALIZE.h

00001 #ifndef LOCALIZE_H
00002 #define LOCALIZE_H
00003 
00004 #include "mbed.h"
00005 #include "BNO055.h"
00006 
00007 #define R_P_ADDR    0x04
00008 //0x0B^0x0F=0x04
00009 #define R_N_ADDR    0x0B
00010 
00011 #define FRAME_OFF   0
00012 #define FRAME_H     150
00013 #define FRAME_W     104
00014 #define R_WAIT      0.025
00015 #define R_ERROR     14
00016 #define RX_OFF      7
00017 #define RY_OFF      6
00018 
00019 #define ERROR_IMU   -1
00020 #define ERROR_RX_P  -2
00021 #define ERROR_RX_N  -3
00022 #define ERROR_RY_P  -4
00023 #define ERROR_RY_N  -5
00024 
00025 typedef struct {
00026     int x;
00027     int y;
00028     int a;
00029 }LOCALIZE_xya;
00030 
00031 class LOCALIZE
00032 {
00033 public:
00034     LOCALIZE(I2C& y_i2c, I2C& x_imu_i2c, PinName imu_reset, PinName sw1, PinName sw2, PinName sw3, PinName sw4);
00035     int init(void);
00036     void get_raw_xy(void);
00037     void get_angle(LOCALIZE_xya *xya);
00038     void get_xy(LOCALIZE_xya *xya);
00039     int _angle, _rx_p, _rx_n, _ry_p, _ry_n;//
00040     BNO055_EULER_TypeDef _euler;
00041     void ledSw(void);
00042     
00043 protected:
00044     I2C _y_i2c;
00045     I2C _x_imu_i2c;
00046     BNO055 _imu;
00047     DigitalIn _sw1;
00048     DigitalIn _sw2;
00049     DigitalIn _sw3;
00050     DigitalIn _sw4;
00051     
00052     BNO055_GRAVITY_TypeDef _gravity;
00053     BNO055_LIN_ACC_TypeDef _accel;
00054     LOCALIZE_xya _xya;
00055     
00056 };
00057 
00058 #endif  //LOCALIZE_H