2-wheel Inverted Pendulum control program

Dependencies:   AsyncSerial Lib_DFPlayerMini Lib_MPU9250_SPI mbed

Committer:
bluefish
Date:
Mon Nov 20 00:43:51 2017 +0000
Revision:
4:72c26c07c251
Parent:
3:7bcf3407e102
Child:
6:a5f674c2f262
???????

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 2:9c83de2d33ca 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 3:7bcf3407e102 37 #define BLUETOOTH_RX USBRX
bluefish 3:7bcf3407e102 38 #define BLUETOOTH_TX USBTX
bluefish 2:9c83de2d33ca 39
bluefish 0:c86a79c8b787 40 #define NEOPIXEL_DOUT (p21)
bluefish 0:c86a79c8b787 41
bluefish 0:c86a79c8b787 42 #define DEVID_LEFT (0x01)
bluefish 0:c86a79c8b787 43 #define DEVID_RIGHT (0x04)
bluefish 0:c86a79c8b787 44
bluefish 0:c86a79c8b787 45 typedef struct _STRUCTSENSOR{
bluefish 0:c86a79c8b787 46 float acc[3];
bluefish 0:c86a79c8b787 47 float gyro[3];
bluefish 0:c86a79c8b787 48 float mag[3];
bluefish 0:c86a79c8b787 49 } STRUCTSENSOR;
bluefish 0:c86a79c8b787 50
bluefish 0:c86a79c8b787 51 typedef struct _STRUCTPOSTURE{
bluefish 0:c86a79c8b787 52 float angle;
bluefish 2:9c83de2d33ca 53 float angle_vel;
bluefish 0:c86a79c8b787 54 float wheel[2];
bluefish 0:c86a79c8b787 55 float wheel_vec[2];
bluefish 0:c86a79c8b787 56 } STRUCTPOSTURE;
bluefish 0:c86a79c8b787 57
bluefish 0:c86a79c8b787 58 typedef struct _STRUCTCONRTOLPARAM{
bluefish 0:c86a79c8b787 59 float K_angle;
bluefish 0:c86a79c8b787 60 float K_angle_vel;
bluefish 0:c86a79c8b787 61 float K_wheel;
bluefish 0:c86a79c8b787 62 float K_wheel_vel;
bluefish 0:c86a79c8b787 63 float K_rot_vel;
bluefish 0:c86a79c8b787 64 float K_trans_vel;
bluefish 4:72c26c07c251 65 float C_max_angle;
bluefish 0:c86a79c8b787 66 } STRUCTCONRTOLPARAM;
bluefish 0:c86a79c8b787 67
bluefish 2:9c83de2d33ca 68 typedef struct _STRUCTPAD{
bluefish 2:9c83de2d33ca 69 uint8_t enable; // 制御許可(0=制御しない 1=制御する)
bluefish 2:9c83de2d33ca 70 float x; // X軸値( -1.0~1.0 0.0で中立 )
bluefish 2:9c83de2d33ca 71 float y; // Y軸値( -1.0~1.0 0.0で中立 )
bluefish 2:9c83de2d33ca 72 } STRUCTPAD;
bluefish 2:9c83de2d33ca 73
bluefish 0:c86a79c8b787 74 extern STRUCTSENSOR sensor;
bluefish 0:c86a79c8b787 75 extern STRUCTPOSTURE posture;
bluefish 0:c86a79c8b787 76 extern STRUCTCONRTOLPARAM control;
bluefish 2:9c83de2d33ca 77 extern STRUCTPAD pad;
bluefish 0:c86a79c8b787 78
bluefish 0:c86a79c8b787 79 //extern Ticker tic_sen_ctrl;
bluefish 0:c86a79c8b787 80 //extern CAN can_driver;
bluefish 0:c86a79c8b787 81 //extern MPU9250 imu;
bluefish 0:c86a79c8b787 82 //extern DFPlayerMini player;
bluefish 0:c86a79c8b787 83
bluefish 0:c86a79c8b787 84 #endif