2-wheel Inverted Pendulum control program

Dependencies:   AsyncSerial Lib_DFPlayerMini Lib_MPU9250_SPI mbed

Committer:
bluefish
Date:
Fri Apr 20 18:14:15 2018 +0000
Revision:
6:a5f674c2f262
Parent:
4:72c26c07c251
Child:
7:77174a098e6f
???

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