This is for our FYDP project. 2 MPU6050s are used

Dependencies:   Servo mbed

Committer:
majik
Date:
Sat Mar 21 21:31:29 2015 +0000
Revision:
0:21019d94ad33
Child:
3:47461d37adfb
Both IMUs work now

Who changed what in which revision?

UserRevisionLine numberNew contents of line
majik 0:21019d94ad33 1 #ifndef ROBOT_H
majik 0:21019d94ad33 2 #define ROBOT_H
majik 0:21019d94ad33 3
majik 0:21019d94ad33 4 #include "mbed.h"
majik 0:21019d94ad33 5 #include "rtos.h"
majik 0:21019d94ad33 6 #include "stdint.h"
majik 0:21019d94ad33 7
majik 0:21019d94ad33 8 #include "HC05.h"
majik 0:21019d94ad33 9 #include "nRF24L01P.h"
majik 0:21019d94ad33 10
majik 0:21019d94ad33 11 #include "MPU6050_6Axis_MotionApps20.h"
majik 0:21019d94ad33 12 #include "MPU6051_6Axis_MotionApps20.h"
majik 0:21019d94ad33 13 #include "DMP.h"
majik 0:21019d94ad33 14 #include "IMUDATA.h"
majik 0:21019d94ad33 15 #include "ADNS5090.h"
majik 0:21019d94ad33 16 #include "ACS712.h"
majik 0:21019d94ad33 17
majik 0:21019d94ad33 18 #include "reckon.h"
majik 0:21019d94ad33 19 #include "motors.h"
majik 0:21019d94ad33 20
majik 0:21019d94ad33 21 #define BT_BAUD_RATE 115200 //Baud rate of 9600
majik 0:21019d94ad33 22 #define TX_BT PTA2 //Bluetooth connection pins
majik 0:21019d94ad33 23 #define RX_BT PTA1 //Bluetooth connection pins
majik 0:21019d94ad33 24 #define EN_BT PTE30 //Bluetooth connection pins
majik 0:21019d94ad33 25
majik 0:21019d94ad33 26 #define MOSI_MOUSE PTB16 //Bluetooth connection pins
majik 0:21019d94ad33 27 #define MISO_MOUSE PTB17 //Bluetooth connection pins
majik 0:21019d94ad33 28 #define SCLK_MOUSE PTB11 //Bluetooth connection pins
majik 0:21019d94ad33 29 #define NCS_MOUSE_L PTB9 //Bluetooth connection pins
majik 0:21019d94ad33 30 #define NCS_MOUSE_R PTB8 //Bluetooth connection pins
majik 0:21019d94ad33 31
majik 0:21019d94ad33 32 //#define IMU_SDA_PIN PTE0
majik 0:21019d94ad33 33 //#define IMU_SCL_PIN PTE1
majik 0:21019d94ad33 34 #define IMU_POWER_PIN PTD6
majik 0:21019d94ad33 35 #define IMU2_POWER_PIN PTD4 //PTD4
majik 0:21019d94ad33 36 //#define IMU_NOTUSED_PIN PTE23
majik 0:21019d94ad33 37
majik 0:21019d94ad33 38 #define LED_PIN PTE3 //status LED pin
majik 0:21019d94ad33 39 #define LED_OFF led = 1; //status LED pin
majik 0:21019d94ad33 40 #define LED_ON led = 0; //status LED pin
majik 0:21019d94ad33 41
majik 0:21019d94ad33 42 //#define CURRENTSENSOR_PIN PTC2
majik 0:21019d94ad33 43 #define VOLTAGESENSOR_PIN PTB0
majik 0:21019d94ad33 44 //#define HIGH_CURRENT_SWITCH PTB18 //turn this to high to get high current flow
majik 0:21019d94ad33 45
majik 0:21019d94ad33 46
majik 0:21019d94ad33 47 //#define CURRENT_R1 180 //160.0 //values of the current sensor opamp resistors
majik 0:21019d94ad33 48 //#define CURRENT_R2 10
majik 0:21019d94ad33 49 //#define CURRENT_R3 80
majik 0:21019d94ad33 50 //#define CURRENT_R4 84.7
majik 0:21019d94ad33 51 //#define VREF3_3 3.3 //digital logic voltage
majik 0:21019d94ad33 52 //#define VREF5 5.0 //5v voltage //NOTE: 5v voltage is consistent when using new batts, but not using old blue batts
majik 0:21019d94ad33 53
majik 0:21019d94ad33 54 #define IR_L PTB1
majik 0:21019d94ad33 55 #define IR_C PTB2
majik 0:21019d94ad33 56 #define IR_R PTB3
majik 0:21019d94ad33 57 #define IR_B PTC6 //turn GPIO to high to multiplex L,C,R ADC to rear sensors
majik 0:21019d94ad33 58
majik 0:21019d94ad33 59
majik 0:21019d94ad33 60 #define MOT_AIN1_PIN PTA14
majik 0:21019d94ad33 61 #define MOT_AIN2_PIN PTA13
majik 0:21019d94ad33 62 #define MOT_PWMA_PIN PTA4 //Motor control pins
majik 0:21019d94ad33 63
majik 0:21019d94ad33 64 #define MOT_BIN1_PIN PTA16
majik 0:21019d94ad33 65 #define MOT_BIN2_PIN PTA17
majik 0:21019d94ad33 66 #define MOT_PWMB_PIN PTA5
majik 0:21019d94ad33 67
majik 0:21019d94ad33 68 #define MOT_STBY_PIN PTA15
majik 0:21019d94ad33 69
majik 0:21019d94ad33 70 //used for RF device
majik 0:21019d94ad33 71 #define TRANSFER_SIZE 4
majik 0:21019d94ad33 72 #define ROBOT1_ADDRESS ((unsigned long long) 0x17E7E7E7E7 )
majik 0:21019d94ad33 73 #define ROBOT2_ADDRESS ((unsigned long long) 0xC2C2C2C2C2 )
majik 0:21019d94ad33 74 #define ROBOT3_ADDRESS ((unsigned long long) 0x37E7E7E7E7 )
majik 0:21019d94ad33 75 #define ALLROBOT_ADDRESS ((unsigned long long) 0xE7E7E7E7E7 )
majik 0:21019d94ad33 76 #define ADDRESS_WIDTH 5
majik 0:21019d94ad33 77 const float M_PI = 3.14159265;
majik 0:21019d94ad33 78
majik 0:21019d94ad33 79 extern DigitalOut led;
majik 0:21019d94ad33 80
majik 0:21019d94ad33 81 extern HC05 bt;
majik 0:21019d94ad33 82
majik 0:21019d94ad33 83 extern bool send_flag;
majik 0:21019d94ad33 84 extern bool obstacle_flag; //this alerts the robot if there is an obstacle somewhere.
majik 0:21019d94ad33 85 extern bool fwd_flag; //indicates that the robot is trying to move forward
majik 0:21019d94ad33 86 extern bool calibrate_flag;
majik 0:21019d94ad33 87 extern bool calibrate_optFlow_flag;
majik 0:21019d94ad33 88
majik 0:21019d94ad33 89 extern AnalogIn irL;
majik 0:21019d94ad33 90 extern AnalogIn irC;
majik 0:21019d94ad33 91 extern AnalogIn irR;
majik 0:21019d94ad33 92 extern DigitalOut irBack;
majik 0:21019d94ad33 93 extern AnalogIn voltage_sensor;
majik 0:21019d94ad33 94
majik 0:21019d94ad33 95 extern ACS712 current_sensor;
majik 0:21019d94ad33 96 extern ADNS5090 opt_flow_L;
majik 0:21019d94ad33 97 extern ADNS5090 opt_flow_R;
majik 0:21019d94ad33 98
majik 0:21019d94ad33 99 extern MPU6050 mpu;
majik 0:21019d94ad33 100 extern MPU6051 mpu2;
majik 0:21019d94ad33 101
majik 0:21019d94ad33 102 extern DigitalOut imuSwitch;
majik 0:21019d94ad33 103 extern DigitalOut imu2Switch;
majik 0:21019d94ad33 104 extern IMU_DATA imu_data;
majik 0:21019d94ad33 105 extern IMU_DATA imu2_data;
majik 0:21019d94ad33 106
majik 0:21019d94ad33 107 extern Reckon reckon;
majik 0:21019d94ad33 108
majik 0:21019d94ad33 109 extern Motors motors;
majik 0:21019d94ad33 110 extern RtosTimer *MotorStopTimer;
majik 0:21019d94ad33 111
majik 0:21019d94ad33 112 extern nRF24L01P rf; // RF communication device
majik 0:21019d94ad33 113
majik 0:21019d94ad33 114 extern unsigned long long long_time;
majik 0:21019d94ad33 115 extern Timer t;
majik 0:21019d94ad33 116 float getTime();
majik 0:21019d94ad33 117
majik 0:21019d94ad33 118 void initRobot();
majik 0:21019d94ad33 119 void moveMotors(int Lspeed, int Rspeed, int ms);
majik 0:21019d94ad33 120
majik 0:21019d94ad33 121 #endif