2-wheel Inverted Pendulum control program

Dependencies:   AsyncSerial Lib_DFPlayerMini Lib_MPU9250_SPI mbed

Committer:
bluefish
Date:
Fri Sep 15 14:54:59 2017 +0000
Revision:
0:c86a79c8b787
Child:
2:9c83de2d33ca
???????

Who changed what in which revision?

UserRevisionLine numberNew contents of line
bluefish 0:c86a79c8b787 1 #ifndef __DEFINES_H__
bluefish 0:c86a79c8b787 2 #define __DEFINES_H__
bluefish 0:c86a79c8b787 3
bluefish 0:c86a79c8b787 4 #include "mbed.h"
bluefish 0:c86a79c8b787 5 #include "AsyncSerial.hpp"
bluefish 0:c86a79c8b787 6
bluefish 0:c86a79c8b787 7 #include "Lib_DFPlayerMini.h"
bluefish 0:c86a79c8b787 8 #include "Lib_MPU9250_SPI.h"
bluefish 0:c86a79c8b787 9
bluefish 0:c86a79c8b787 10 //#define USE_SERIAL_DEBUG
bluefish 0:c86a79c8b787 11 //#define USE_LED_DEBUG
bluefish 0:c86a79c8b787 12
bluefish 0:c86a79c8b787 13 #ifdef USE_SERIAL_DEBUG
bluefish 0:c86a79c8b787 14 #define DEBUG_BAUDRATE 115200
bluefish 0:c86a79c8b787 15 AsyncSerial usb_serial( USBTX, USBRX );
bluefish 0:c86a79c8b787 16 #endif
bluefish 0:c86a79c8b787 17
bluefish 0:c86a79c8b787 18 #ifdef USE_LED_DEBUG
bluefish 0:c86a79c8b787 19 DigitalOut myled[4] = { LED1, LED2, LED3, LED4 };
bluefish 0:c86a79c8b787 20 #endif
bluefish 0:c86a79c8b787 21
bluefish 0:c86a79c8b787 22 #define PROCESS_INTERVAL_SEC (0.01f)
bluefish 0:c86a79c8b787 23
bluefish 0:c86a79c8b787 24 #define CAN_RX (p30)
bluefish 0:c86a79c8b787 25 #define CAN_TX (p29)
bluefish 0:c86a79c8b787 26
bluefish 0:c86a79c8b787 27 #define MPU9250_CS p7
bluefish 0:c86a79c8b787 28 #define MPU9250_MOSI p11
bluefish 0:c86a79c8b787 29 #define MPU9250_MISO p12
bluefish 0:c86a79c8b787 30 #define MPU9250_SCK p13
bluefish 0:c86a79c8b787 31 #define MPU9250_INT p8
bluefish 0:c86a79c8b787 32
bluefish 0:c86a79c8b787 33 #define DFPLAYER_RX p27
bluefish 0:c86a79c8b787 34 #define DFPLAYER_TX p28
bluefish 0:c86a79c8b787 35 #define DFPLAYER_BUSY p18
bluefish 0:c86a79c8b787 36
bluefish 0:c86a79c8b787 37 #define NEOPIXEL_DOUT (p21)
bluefish 0:c86a79c8b787 38
bluefish 0:c86a79c8b787 39 #define DEVID_LEFT (0x01)
bluefish 0:c86a79c8b787 40 #define DEVID_RIGHT (0x04)
bluefish 0:c86a79c8b787 41
bluefish 0:c86a79c8b787 42 typedef struct _STRUCTSENSOR{
bluefish 0:c86a79c8b787 43 float acc[3];
bluefish 0:c86a79c8b787 44 float gyro[3];
bluefish 0:c86a79c8b787 45 float mag[3];
bluefish 0:c86a79c8b787 46 } STRUCTSENSOR;
bluefish 0:c86a79c8b787 47
bluefish 0:c86a79c8b787 48 typedef struct _STRUCTPOSTURE{
bluefish 0:c86a79c8b787 49 float angle;
bluefish 0:c86a79c8b787 50 float angle_vec;
bluefish 0:c86a79c8b787 51 float wheel[2];
bluefish 0:c86a79c8b787 52 float wheel_vec[2];
bluefish 0:c86a79c8b787 53 } STRUCTPOSTURE;
bluefish 0:c86a79c8b787 54
bluefish 0:c86a79c8b787 55 typedef struct _STRUCTCONRTOLPARAM{
bluefish 0:c86a79c8b787 56 float K_angle;
bluefish 0:c86a79c8b787 57 float K_angle_vel;
bluefish 0:c86a79c8b787 58 float K_wheel;
bluefish 0:c86a79c8b787 59 float K_wheel_vel;
bluefish 0:c86a79c8b787 60 float K_rot_vel;
bluefish 0:c86a79c8b787 61 float K_trans_vel;
bluefish 0:c86a79c8b787 62 } STRUCTCONRTOLPARAM;
bluefish 0:c86a79c8b787 63
bluefish 0:c86a79c8b787 64 extern STRUCTSENSOR sensor;
bluefish 0:c86a79c8b787 65 extern STRUCTPOSTURE posture;
bluefish 0:c86a79c8b787 66 extern STRUCTCONRTOLPARAM control;
bluefish 0:c86a79c8b787 67
bluefish 0:c86a79c8b787 68 //extern Ticker tic_sen_ctrl;
bluefish 0:c86a79c8b787 69 //extern CAN can_driver;
bluefish 0:c86a79c8b787 70 //extern MPU9250 imu;
bluefish 0:c86a79c8b787 71 //extern DFPlayerMini player;
bluefish 0:c86a79c8b787 72
bluefish 0:c86a79c8b787 73 #endif