![](/media/cache/group/default_image.jpg.50x50_q85.jpg)
k
Dependencies: Servo ServoArm mbed
Diff: Headers/Robot.h
- Revision:
- 0:15a8480061e8
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Headers/Robot.h Mon May 22 11:24:46 2017 +0000 @@ -0,0 +1,224 @@ +#ifndef ROBOT_H +#define ROBOT_H + +#include <cstdlib> +#include <mbed.h> +#include <Ultraschall.h> +#include "Declarations.h" +#include "EncoderCounter.h" +#include "LowpassFilter.h" +#include "Pixy.h" +#include "Ultraschall.h" +#include "Servo.h" +#include "ServoArm.h" +#include "Pixy.h" + +#include "mbed.h" + + +/* Declarations for the Motors in the Robot in order to drive -------- */ + +class DistanceSensors +{ + public: + + DistanceSensors(AnalogIn* sensorVoltage, AnalogIn* frontS, AnalogIn* leftS, AnalogIn* rightS, DigitalOut* bit0, DigitalOut* bit1, DigitalOut* bit2, int number); + DistanceSensors(); + + void init(AnalogIn* sensorVoltage, AnalogIn* frontS, AnalogIn* leftS, AnalogIn* rightS, DigitalOut* bit0, DigitalOut* bit1, DigitalOut* bit2, int number); + virtual ~DistanceSensors(); + float read(); + + operator float(); //Is here to constantly return the value of read. + + private: + + AnalogIn* sensorVoltage; + AnalogIn* frontS; + AnalogIn* leftS; + AnalogIn* rightS; + + DigitalOut* bit0; + DigitalOut* bit1; + DigitalOut* bit2; + + int number; + +}; + +class Farbsensor +{ + public: + + Farbsensor(); + Farbsensor(AnalogIn* FarbVoltage); + + void init(AnalogIn* FarbVoltage); + int read(); + operator int(); + + private: + + AnalogIn* FarbVoltage; +}; + +class Arm{ + + public: + + Arm(); + Arm(ServoArm* servoArm); + + void init(ServoArm* servoArm); + + int collectToDown(); + int downToCollect(); + int collectToBack(); + int backToCollect(); + int downToBack(); + int backToDown(); + + private: + ServoArm* arm; + float angle; + +}; + +class Leiste{ + + public: + + Leiste(); + Leiste(Servo* servoLeiste); + + void init(Servo* servoLeiste); + + int upToDown(); + int downToUp(); + + + private: + Servo* leiste; + + +}; + +class Greifer +{ + + public: + + Greifer(Servo* greifer); + Greifer(); + + void init(Servo* greifer); + int take(); + int leave(); + void nullPos(); + + private: + Servo* greifer; + +}; + +class USsensor +{ + public: + + USsensor(); + USsensor(Ultraschall* Usensor); + void init(Ultraschall* Usensor); + float read(); + operator float(); + + private: + Ultraschall* Usensor; +}; + +class Robot +{ + + public: + + //Robot related: + Robot(PwmOut* left, PwmOut* right, DigitalOut* powerSignal, DigitalOut* leds, AnalogIn* FarbVoltage, AnalogIn* frontS, AnalogIn* leftS, AnalogIn* rightS, ServoArm* Arm, Servo* Greifer, Servo* Leiste, Ultraschall* USsensor, Pixy* pixy ); + + //Drive Functions + void drive(); + void driveB(); + void setLeft(float pwm); + void setRight(float pwm); + + void turnLeft(); + void turnLeftS(); + void turnRight(); + void turnRightS(); + void turnAround(int left); + void stop(); + + //Functions that use the drive functions + void driveSlowly(); + void driveBackSlowly();/* + 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, int* found); + 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); + */ + int search(int* timer); + + float see(int sensor); + int getErrorMotor(); + + //DistanceSensors related: + DistanceSensors sensors[9]; + USsensor USsensor; + AnalogIn* frontS; + AnalogIn* leftS; + AnalogIn* rightS; + + + void initializeDistanceSensors(); + //void init(); + + //LEDS related: + DigitalOut* leds; + + //Farbsensors related: + Farbsensor FarbVoltage; + DigitalOut* led; + + //Arm related: + Arm Arm; + + //Greifer related: + Greifer Greifer; + + //Leiste related: + Leiste Leiste; + + //Cam: + Pixy* pixy; + + private: + + //Robot related: + PwmOut* left; + PwmOut* right; + DigitalIn* errorMotor; + + DigitalOut* powerSignal; + DigitalIn* errorSignal; + DigitalIn* overtemperatur; + + Servo* greifer; + Servo* leiste; + ServoArm* arm; +}; + +#endif \ No newline at end of file