These are the core files for the Robot at Team conception.

Dependencies:   mbed UniServ

Committer:
obrie829
Date:
Wed Jun 07 11:35:59 2017 +0000
Revision:
17:ec52258b9472
Parent:
15:4efc66de795a
v18

Who changed what in which revision?

UserRevisionLine numberNew 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_ */