2-wheel Inverted Pendulum control program
Dependencies: AsyncSerial Lib_DFPlayerMini Lib_MPU9250_SPI mbed
Diff: defines.h
- Revision:
- 0:c86a79c8b787
- Child:
- 2:9c83de2d33ca
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/defines.h Fri Sep 15 14:54:59 2017 +0000 @@ -0,0 +1,73 @@ +#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 \ No newline at end of file