![](/media/cache/group/default_image.jpg.50x50_q85.jpg)
vf
Dependencies: Servo ServoArm mbed
Fork of PES_Official by
Diff: Headers/Robot.h
- Revision:
- 4:67d7177c213f
- Parent:
- 3:fa61be4ecaa6
- Child:
- 5:1aaf5de776ff
diff -r fa61be4ecaa6 -r 67d7177c213f Headers/Robot.h --- a/Headers/Robot.h Wed Mar 22 13:33:07 2017 +0000 +++ b/Headers/Robot.h Wed Apr 19 12:23:52 2017 +0000 @@ -3,26 +3,10 @@ #include <cstdlib> #include <mbed.h> +#include "Servo.h" #include "mbed.h" -//DistanceSensors: -#define NEAR 0.1f //Used for distance Sensors. If they're to near to a wall -> turn -#define LEFT 5 //Arrayindex of the left Sensor & left LED -#define FWD 0 //Arrayindex of the front Sensor & front LED -#define RIGHT 1 //Arrayindex of the right Sensor & right LED. - -//ColorSensors: -#define RED_UPLIMIT 500 //Default limit in mV -#define GREEN_DOWNLIMIT 501 //Default limit in mV -#define GREEN_UPLIMIT 1200 //Default limit in mV -#define GREEN 1 -#define NOBLOCK 0 -#define RED -1 - -//Misc: -#define TIMEOUT 5 - /* Declarations for the Motors in the Robot in order to drive -------- */ @@ -30,10 +14,10 @@ { public: - DistanceSensors(AnalogIn* sensorVoltage, DigitalOut* bit0, DigitalOut* bit1, DigitalOut* bit2, int number); + DistanceSensors(AnalogIn* sensorVoltage, AnalogIn* frontS, AnalogIn* leftS, AnalogIn* rightS, DigitalOut* bit0, DigitalOut* bit1, DigitalOut* bit2, int number); DistanceSensors(); - void init(AnalogIn* sensorVoltage, DigitalOut* bit0, DigitalOut* bit1, DigitalOut* bit2, int number); + void init(AnalogIn* sensorVoltage, AnalogIn* frontS, AnalogIn* leftS, AnalogIn* rightS, DigitalOut* bit0, DigitalOut* bit1, DigitalOut* bit2, int number); virtual ~DistanceSensors(); float read(); @@ -42,6 +26,10 @@ private: AnalogIn* sensorVoltage; + AnalogIn* frontS; + AnalogIn* leftS; + AnalogIn* rightS; + DigitalOut* bit0; DigitalOut* bit1; DigitalOut* bit2; @@ -65,6 +53,24 @@ AnalogIn* FarbVoltage; }; +/* +class Arm{ + + public: + Arm(Servo joint); + Arm(); + void init(Servo joint); + + void down(); + void neutral(); + void back(); + void setAngle(float angle); + + private: + Servo joint; + +}; +*/ class Robot { @@ -72,17 +78,40 @@ public: //Robot related: - Robot(PwmOut* left, PwmOut* right, DigitalOut* enableSignal, DigitalOut* leds, AnalogIn* FarbVoltage ); + Robot(PwmOut* left, PwmOut* right, DigitalOut* enableSignal, DigitalOut* leds, AnalogIn* FarbVoltage, AnalogIn* frontS, AnalogIn* leftS, AnalogIn* rightS ); + + //Drive Functions void drive(); + void driveB(); + void turnLeft(); + void turnLeftS(); void turnRight(); + void turnRightS(); void turnAround(int left); void stop(); - void search(int* counter, Timer* t); + //Functions that use the drive functions + void wallRight(int* counter, int* timer, int* lastAct); + void wallLeft(int* counter, int* timer, int* lastAct); + void wallFront(int* counter, int* timer, int* lastAct); + void counterMax(int* counter, int* timer, int* lastAct, int* rando); + + void legoFront(int* counter, int* timer, int* lastAct, int* legoFound); + void legoRight(int* counter, int* timer, int* lastAct, int* legoFound); + void legoLeft(int* counter, int* timer, int* lastAct, int* legoFound); + + void nothingFound(int* counter, int* timer, int* lastAct); + + void search(int* counter, int* timer, int* found); + void lego(int* counter, Timer* t); //DistanceSensors related: - DistanceSensors sensors[6]; + DistanceSensors sensors[9]; + AnalogIn* frontS; + AnalogIn* leftS; + AnalogIn* rightS; + void initializeDistanceSensors(); //void init(); @@ -103,6 +132,8 @@ DigitalIn* errorSignal; DigitalIn* overtemperatur; + Servo* arm; + };