Mechatronics Robotics
/
BrobotV1
These are the core files for the Robot at Team conception.
Brobot.h@17:ec52258b9472, 2017-06-07 (annotated)
- Committer:
- obrie829
- Date:
- Wed Jun 07 11:35:59 2017 +0000
- Revision:
- 17:ec52258b9472
- Parent:
- 15:4efc66de795a
v18
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
obrie829 | 0:eba74e7a229b | 1 | /* |
obrie829 | 0:eba74e7a229b | 2 | * Brobot.h |
obrie829 | 0:eba74e7a229b | 3 | * |
obrie829 | 0:eba74e7a229b | 4 | */ |
obrie829 | 0:eba74e7a229b | 5 | |
obrie829 | 0:eba74e7a229b | 6 | #ifndef BROBOT_H_ |
obrie829 | 0:eba74e7a229b | 7 | #define BROBOT_H_ |
obrie829 | 0:eba74e7a229b | 8 | |
obrie829 | 0:eba74e7a229b | 9 | #include <cstdlib> |
obrie829 | 0:eba74e7a229b | 10 | #include <mbed.h> |
obrie829 | 8:351b0b7b05b2 | 11 | #include "SpeedControl.h" |
obrie829 | 15:4efc66de795a | 12 | #include "PID_Control.h" |
obrie829 | 15:4efc66de795a | 13 | #include "IRSensor.h" |
obrie829 | 15:4efc66de795a | 14 | #include "Pixy.h" |
obrie829 | 15:4efc66de795a | 15 | #include "UniServ.h" |
obrie829 | 0:eba74e7a229b | 16 | |
obrie829 | 0:eba74e7a229b | 17 | /** |
obrie829 | 0:eba74e7a229b | 18 | * This is a device driver class to drive the robot autonomously |
obrie829 | 0:eba74e7a229b | 19 | */ |
obrie829 | 0:eba74e7a229b | 20 | class Brobot |
obrie829 | 0:eba74e7a229b | 21 | { |
obrie829 | 0:eba74e7a229b | 22 | |
obrie829 | 0:eba74e7a229b | 23 | public: |
obrie829 | 0:eba74e7a229b | 24 | // constructors have same name as the class |
obrie829 | 15:4efc66de795a | 25 | Brobot(SpeedControl& speedctrl, AnalogIn& distance, DigitalOut& enable, DigitalOut& bit0, DigitalOut& bit1, DigitalOut& bit2, DigitalOut* leds, Pixy& pixy, UniServ& servo); |
obrie829 | 0:eba74e7a229b | 26 | |
obrie829 | 15:4efc66de795a | 27 | void avoidObstacleAndMove(int vtrans); |
obrie829 | 15:4efc66de795a | 28 | void startLeds(); |
obrie829 | 15:4efc66de795a | 29 | void ledShow(); |
obrie829 | 15:4efc66de795a | 30 | void ledDistance(); |
obrie829 | 0:eba74e7a229b | 31 | void forward(); |
obrie829 | 0:eba74e7a229b | 32 | void back(); |
obrie829 | 0:eba74e7a229b | 33 | void stop(); |
obrie829 | 15:4efc66de795a | 34 | void rotate(int ammount); // |
obrie829 | 17:ec52258b9472 | 35 | int rotateAndApproach(); |
obrie829 | 15:4efc66de795a | 36 | bool approachHome(); |
obrie829 | 15:4efc66de795a | 37 | void closeGrip(); |
obrie829 | 15:4efc66de795a | 38 | void openGrip(); |
obrie829 | 15:4efc66de795a | 39 | bool foundGreenBrick(); |
obrie829 | 15:4efc66de795a | 40 | bool foundHome(); |
obrie829 | 0:eba74e7a229b | 41 | |
obrie829 | 15:4efc66de795a | 42 | |
obrie829 | 0:eba74e7a229b | 43 | private: |
obrie829 | 15:4efc66de795a | 44 | |
obrie829 | 15:4efc66de795a | 45 | SpeedControl& speedctrl; |
obrie829 | 15:4efc66de795a | 46 | AnalogIn& distance; |
obrie829 | 15:4efc66de795a | 47 | DigitalOut& enable; |
obrie829 | 15:4efc66de795a | 48 | DigitalOut& bit0; |
obrie829 | 15:4efc66de795a | 49 | DigitalOut& bit1; |
obrie829 | 15:4efc66de795a | 50 | DigitalOut& bit2; |
obrie829 | 15:4efc66de795a | 51 | IRSensor sensor_front; // uses the default constructor because no arguments given |
obrie829 | 15:4efc66de795a | 52 | IRSensor sensor_left; |
obrie829 | 15:4efc66de795a | 53 | IRSensor sensor_right; |
obrie829 | 15:4efc66de795a | 54 | DigitalOut* leds; //0 to 5 |
obrie829 | 15:4efc66de795a | 55 | IRSensor sensors[6]; |
obrie829 | 15:4efc66de795a | 56 | Ticker t1; |
obrie829 | 15:4efc66de795a | 57 | PID_Control pid; |
obrie829 | 15:4efc66de795a | 58 | PID_Control pixypid; |
obrie829 | 17:ec52258b9472 | 59 | PID_Control pixypidS; |
obrie829 | 15:4efc66de795a | 60 | Pixy& pixy; |
obrie829 | 15:4efc66de795a | 61 | UniServ& servo; |
obrie829 | 17:ec52258b9472 | 62 | float e ; |
obrie829 | 15:4efc66de795a | 63 | |
obrie829 | 0:eba74e7a229b | 64 | }; |
obrie829 | 0:eba74e7a229b | 65 | |
obrie829 | 0:eba74e7a229b | 66 | #endif /* BROBOT_H_ */ |