This is for our FYDP project. 2 MPU6050s are used
robot/robot.h
- Committer:
- majik
- Date:
- 2015-03-22
- Revision:
- 4:05484073a641
- Parent:
- 3:47461d37adfb
File content as of revision 4:05484073a641:
#ifndef ROBOT_H #define ROBOT_H #include "mbed.h" #include "rtos.h" #include "stdint.h" #include "HC05.h" #include "nRF24L01P.h" #include "MPU6050_6Axis_MotionApps20.h" #include "MPU6051_6Axis_MotionApps20.h" #include "DMP.h" #include "IMUDATA.h" #include "ADNS5090.h" #include "ACS712.h" #include "Servo.h" #include "reckon.h" #include "motors.h" #define write_rate 100 //Maximum write rate (ms) of the motor #define BT_BAUD_RATE 115200 //Baud rate of 9600 #define TX_BT PTA2 //Bluetooth connection pins #define RX_BT PTA1 //Bluetooth connection pins #define EN_BT PTE30 //Bluetooth connection pins #define MOSI_MOUSE PTB16 //Bluetooth connection pins #define MISO_MOUSE PTB17 //Bluetooth connection pins #define SCLK_MOUSE PTB11 //Bluetooth connection pins #define NCS_MOUSE_L PTB9 //Bluetooth connection pins #define NCS_MOUSE_R PTB8 //Bluetooth connection pins //#define IMU_SDA_PIN PTE0 //#define IMU_SCL_PIN PTE1 #define IMU_POWER_PIN PTD6 #define IMU2_POWER_PIN PTD4 //PTD4 //#define IMU_NOTUSED_PIN PTE23 #define LED_PIN PTE3 //status LED pin #define LED_OFF led = 1; //status LED pin #define LED_ON led = 0; //status LED pin //#define CURRENTSENSOR_PIN PTC2 #define VOLTAGESENSOR_PIN PTB0 //#define HIGH_CURRENT_SWITCH PTB18 //turn this to high to get high current flow //#define CURRENT_R1 180 //160.0 //values of the current sensor opamp resistors //#define CURRENT_R2 10 //#define CURRENT_R3 80 //#define CURRENT_R4 84.7 //#define VREF3_3 3.3 //digital logic voltage //#define VREF5 5.0 //5v voltage //NOTE: 5v voltage is consistent when using new batts, but not using old blue batts #define IR_L PTB1 #define IR_C PTB2 #define IR_R PTB3 #define IR_B PTC6 //turn GPIO to high to multiplex L,C,R ADC to rear sensors #define MOT_AIN1_PIN PTA14 #define MOT_AIN2_PIN PTA13 #define MOT_PWMA_PIN PTA4 //Motor control pins #define MOT_BIN1_PIN PTA16 #define MOT_BIN2_PIN PTA17 #define MOT_PWMB_PIN PTA5 #define MOT_STBY_PIN PTA15 //used for RF device #define TRANSFER_SIZE 4 #define ROBOT1_ADDRESS ((unsigned long long) 0x17E7E7E7E7 ) #define ROBOT2_ADDRESS ((unsigned long long) 0xC2C2C2C2C2 ) #define ROBOT3_ADDRESS ((unsigned long long) 0x37E7E7E7E7 ) #define ALLROBOT_ADDRESS ((unsigned long long) 0xE7E7E7E7E7 ) #define ADDRESS_WIDTH 5 const float M_PI = 3.14159265; extern DigitalOut led; extern Servo myservo; extern HC05 bt; extern bool send_flag; extern bool obstacle_flag; //this alerts the robot if there is an obstacle somewhere. extern bool fwd_flag; //indicates that the robot is trying to move forward extern bool calibrate_flag; extern bool calibrate_optFlow_flag; extern AnalogIn irL; extern AnalogIn irC; extern AnalogIn irR; extern DigitalOut irBack; extern AnalogIn voltage_sensor; extern ACS712 current_sensor; extern ADNS5090 opt_flow_L; extern ADNS5090 opt_flow_R; extern MPU6050 mpu; extern MPU6051 mpu2; extern DigitalOut imuSwitch; extern DigitalOut imu2Switch; extern IMU_DATA imu_data; extern IMU_DATA imu2_data; extern Reckon reckon; extern Motors motors; extern RtosTimer *MotorStopTimer; extern nRF24L01P rf; // RF communication device extern unsigned long long long_time; extern Timer t; //extern Timer t_m; //Timer used for the motor thread extern time_t prev; //previous time for motor float getTime(); void initRobot(); void moveMotors(int Lspeed, int Rspeed, int ms); #endif