2-wheel Inverted Pendulum control program

Dependencies:   AsyncSerial Lib_DFPlayerMini Lib_MPU9250_SPI mbed

defines.h

Committer:
bluefish
Date:
2017-09-15
Revision:
0:c86a79c8b787
Child:
2:9c83de2d33ca

File content as of revision 0:c86a79c8b787:

#ifndef __DEFINES_H__
#define __DEFINES_H__

#include "mbed.h"
#include "AsyncSerial.hpp"

#include "Lib_DFPlayerMini.h"
#include "Lib_MPU9250_SPI.h"

//#define USE_SERIAL_DEBUG
//#define USE_LED_DEBUG

#ifdef USE_SERIAL_DEBUG
    #define DEBUG_BAUDRATE  115200
    AsyncSerial  usb_serial( USBTX, USBRX );
#endif

#ifdef USE_LED_DEBUG
    DigitalOut myled[4] =   { LED1, LED2, LED3, LED4 };
#endif

#define PROCESS_INTERVAL_SEC    (0.01f)

#define CAN_RX                  (p30)
#define CAN_TX                  (p29)

#define MPU9250_CS              p7
#define MPU9250_MOSI            p11
#define MPU9250_MISO            p12
#define MPU9250_SCK             p13
#define MPU9250_INT             p8

#define DFPLAYER_RX             p27
#define DFPLAYER_TX             p28
#define DFPLAYER_BUSY           p18

#define NEOPIXEL_DOUT           (p21)

#define DEVID_LEFT              (0x01)
#define DEVID_RIGHT             (0x04)

typedef struct _STRUCTSENSOR{
    float acc[3];
    float gyro[3];
    float mag[3];
} STRUCTSENSOR;

typedef struct _STRUCTPOSTURE{
    float angle;
    float angle_vec;
    float wheel[2];
    float wheel_vec[2];
} STRUCTPOSTURE;

typedef struct _STRUCTCONRTOLPARAM{
  float   K_angle;
  float   K_angle_vel;
  float   K_wheel;
  float   K_wheel_vel;
  float   K_rot_vel;
  float   K_trans_vel;
} STRUCTCONRTOLPARAM;

extern STRUCTSENSOR         sensor;
extern STRUCTPOSTURE        posture;
extern STRUCTCONRTOLPARAM   control;

//extern Ticker           tic_sen_ctrl;
//extern CAN              can_driver;
//extern MPU9250          imu;
//extern DFPlayerMini     player;

#endif