Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Fork of FYDP_Final2 by
robot/robot.h@5:d2e955a94940, 2015-03-25 (annotated)
- Committer:
- tntmarket
- Date:
- Wed Mar 25 09:58:50 2015 +0000
- Revision:
- 5:d2e955a94940
- Parent:
- 3:47461d37adfb
only imu output
Who changed what in which revision?
User | Revision | Line number | New 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 | 3:47461d37adfb | 17 | #include "Servo.h" |
majik | 0:21019d94ad33 | 18 | |
majik | 0:21019d94ad33 | 19 | #include "reckon.h" |
majik | 0:21019d94ad33 | 20 | #include "motors.h" |
majik | 0:21019d94ad33 | 21 | |
majik | 3:47461d37adfb | 22 | #define write_rate 100 //Maximum write rate (ms) of the motor |
majik | 3:47461d37adfb | 23 | |
majik | 0:21019d94ad33 | 24 | #define BT_BAUD_RATE 115200 //Baud rate of 9600 |
majik | 0:21019d94ad33 | 25 | #define TX_BT PTA2 //Bluetooth connection pins |
majik | 0:21019d94ad33 | 26 | #define RX_BT PTA1 //Bluetooth connection pins |
majik | 0:21019d94ad33 | 27 | #define EN_BT PTE30 //Bluetooth connection pins |
majik | 0:21019d94ad33 | 28 | |
majik | 0:21019d94ad33 | 29 | #define MOSI_MOUSE PTB16 //Bluetooth connection pins |
majik | 0:21019d94ad33 | 30 | #define MISO_MOUSE PTB17 //Bluetooth connection pins |
majik | 0:21019d94ad33 | 31 | #define SCLK_MOUSE PTB11 //Bluetooth connection pins |
majik | 0:21019d94ad33 | 32 | #define NCS_MOUSE_L PTB9 //Bluetooth connection pins |
majik | 0:21019d94ad33 | 33 | #define NCS_MOUSE_R PTB8 //Bluetooth connection pins |
majik | 0:21019d94ad33 | 34 | |
majik | 0:21019d94ad33 | 35 | //#define IMU_SDA_PIN PTE0 |
majik | 0:21019d94ad33 | 36 | //#define IMU_SCL_PIN PTE1 |
majik | 0:21019d94ad33 | 37 | #define IMU_POWER_PIN PTD6 |
majik | 0:21019d94ad33 | 38 | #define IMU2_POWER_PIN PTD4 //PTD4 |
majik | 0:21019d94ad33 | 39 | //#define IMU_NOTUSED_PIN PTE23 |
majik | 0:21019d94ad33 | 40 | |
majik | 0:21019d94ad33 | 41 | #define LED_PIN PTE3 //status LED pin |
majik | 0:21019d94ad33 | 42 | #define LED_OFF led = 1; //status LED pin |
majik | 0:21019d94ad33 | 43 | #define LED_ON led = 0; //status LED pin |
majik | 0:21019d94ad33 | 44 | |
majik | 0:21019d94ad33 | 45 | //#define CURRENTSENSOR_PIN PTC2 |
majik | 0:21019d94ad33 | 46 | #define VOLTAGESENSOR_PIN PTB0 |
majik | 0:21019d94ad33 | 47 | //#define HIGH_CURRENT_SWITCH PTB18 //turn this to high to get high current flow |
majik | 0:21019d94ad33 | 48 | |
majik | 0:21019d94ad33 | 49 | |
majik | 0:21019d94ad33 | 50 | //#define CURRENT_R1 180 //160.0 //values of the current sensor opamp resistors |
majik | 0:21019d94ad33 | 51 | //#define CURRENT_R2 10 |
majik | 0:21019d94ad33 | 52 | //#define CURRENT_R3 80 |
majik | 0:21019d94ad33 | 53 | //#define CURRENT_R4 84.7 |
majik | 0:21019d94ad33 | 54 | //#define VREF3_3 3.3 //digital logic voltage |
majik | 0:21019d94ad33 | 55 | //#define VREF5 5.0 //5v voltage //NOTE: 5v voltage is consistent when using new batts, but not using old blue batts |
majik | 0:21019d94ad33 | 56 | |
majik | 0:21019d94ad33 | 57 | #define IR_L PTB1 |
majik | 0:21019d94ad33 | 58 | #define IR_C PTB2 |
majik | 0:21019d94ad33 | 59 | #define IR_R PTB3 |
majik | 0:21019d94ad33 | 60 | #define IR_B PTC6 //turn GPIO to high to multiplex L,C,R ADC to rear sensors |
majik | 0:21019d94ad33 | 61 | |
majik | 0:21019d94ad33 | 62 | |
majik | 0:21019d94ad33 | 63 | #define MOT_AIN1_PIN PTA14 |
majik | 0:21019d94ad33 | 64 | #define MOT_AIN2_PIN PTA13 |
majik | 0:21019d94ad33 | 65 | #define MOT_PWMA_PIN PTA4 //Motor control pins |
majik | 0:21019d94ad33 | 66 | |
majik | 0:21019d94ad33 | 67 | #define MOT_BIN1_PIN PTA16 |
majik | 0:21019d94ad33 | 68 | #define MOT_BIN2_PIN PTA17 |
majik | 0:21019d94ad33 | 69 | #define MOT_PWMB_PIN PTA5 |
majik | 0:21019d94ad33 | 70 | |
majik | 0:21019d94ad33 | 71 | #define MOT_STBY_PIN PTA15 |
majik | 0:21019d94ad33 | 72 | |
majik | 0:21019d94ad33 | 73 | //used for RF device |
majik | 0:21019d94ad33 | 74 | #define TRANSFER_SIZE 4 |
majik | 0:21019d94ad33 | 75 | #define ROBOT1_ADDRESS ((unsigned long long) 0x17E7E7E7E7 ) |
majik | 0:21019d94ad33 | 76 | #define ROBOT2_ADDRESS ((unsigned long long) 0xC2C2C2C2C2 ) |
majik | 0:21019d94ad33 | 77 | #define ROBOT3_ADDRESS ((unsigned long long) 0x37E7E7E7E7 ) |
majik | 0:21019d94ad33 | 78 | #define ALLROBOT_ADDRESS ((unsigned long long) 0xE7E7E7E7E7 ) |
majik | 0:21019d94ad33 | 79 | #define ADDRESS_WIDTH 5 |
majik | 0:21019d94ad33 | 80 | const float M_PI = 3.14159265; |
majik | 0:21019d94ad33 | 81 | |
majik | 0:21019d94ad33 | 82 | extern DigitalOut led; |
majik | 3:47461d37adfb | 83 | extern Servo myservo; |
majik | 0:21019d94ad33 | 84 | |
majik | 0:21019d94ad33 | 85 | extern HC05 bt; |
majik | 0:21019d94ad33 | 86 | |
majik | 0:21019d94ad33 | 87 | extern bool send_flag; |
majik | 0:21019d94ad33 | 88 | extern bool obstacle_flag; //this alerts the robot if there is an obstacle somewhere. |
majik | 0:21019d94ad33 | 89 | extern bool fwd_flag; //indicates that the robot is trying to move forward |
majik | 0:21019d94ad33 | 90 | extern bool calibrate_flag; |
majik | 0:21019d94ad33 | 91 | extern bool calibrate_optFlow_flag; |
majik | 0:21019d94ad33 | 92 | |
majik | 0:21019d94ad33 | 93 | extern AnalogIn irL; |
majik | 0:21019d94ad33 | 94 | extern AnalogIn irC; |
majik | 0:21019d94ad33 | 95 | extern AnalogIn irR; |
majik | 0:21019d94ad33 | 96 | extern DigitalOut irBack; |
majik | 0:21019d94ad33 | 97 | extern AnalogIn voltage_sensor; |
majik | 0:21019d94ad33 | 98 | |
majik | 0:21019d94ad33 | 99 | extern ACS712 current_sensor; |
majik | 0:21019d94ad33 | 100 | extern ADNS5090 opt_flow_L; |
majik | 0:21019d94ad33 | 101 | extern ADNS5090 opt_flow_R; |
majik | 0:21019d94ad33 | 102 | |
majik | 0:21019d94ad33 | 103 | extern MPU6050 mpu; |
majik | 0:21019d94ad33 | 104 | extern MPU6051 mpu2; |
majik | 0:21019d94ad33 | 105 | |
majik | 0:21019d94ad33 | 106 | extern DigitalOut imuSwitch; |
majik | 0:21019d94ad33 | 107 | extern DigitalOut imu2Switch; |
majik | 0:21019d94ad33 | 108 | extern IMU_DATA imu_data; |
majik | 0:21019d94ad33 | 109 | extern IMU_DATA imu2_data; |
majik | 0:21019d94ad33 | 110 | |
majik | 0:21019d94ad33 | 111 | extern Reckon reckon; |
majik | 0:21019d94ad33 | 112 | |
majik | 0:21019d94ad33 | 113 | extern Motors motors; |
majik | 0:21019d94ad33 | 114 | extern RtosTimer *MotorStopTimer; |
majik | 0:21019d94ad33 | 115 | |
majik | 0:21019d94ad33 | 116 | extern nRF24L01P rf; // RF communication device |
majik | 0:21019d94ad33 | 117 | |
majik | 0:21019d94ad33 | 118 | extern unsigned long long long_time; |
majik | 0:21019d94ad33 | 119 | extern Timer t; |
majik | 3:47461d37adfb | 120 | //extern Timer t_m; //Timer used for the motor thread |
majik | 3:47461d37adfb | 121 | extern time_t prev; //previous time for motor |
majik | 0:21019d94ad33 | 122 | float getTime(); |
majik | 0:21019d94ad33 | 123 | |
majik | 0:21019d94ad33 | 124 | void initRobot(); |
majik | 0:21019d94ad33 | 125 | |
majik | 0:21019d94ad33 | 126 | #endif |