Code for our FYDP -only one IMU works right now -RTOS is working

Dependencies:   mbed

Committer:
majik
Date:
Wed Mar 18 22:23:48 2015 +0000
Revision:
0:964eb6a2ef00
This is our FYDP code, but only one IMU works with the RTOS.

Who changed what in which revision?

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