zhaw_st16b_pes2_10 / Mbed 2 deprecated PES_Official-TestF

Dependencies:   Servo ServoArm mbed

Fork of PES_Official by zhaw_st16b_pes2_10

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers Robot.h Source File

Robot.h

00001 #ifndef ROBOT_H
00002 #define ROBOT_H
00003 
00004 #include <cstdlib>
00005 #include <mbed.h>
00006 #include "Servo.h"
00007 #include "ServoArm.h"
00008 #include <Ultraschall.h>
00009 
00010 #include "mbed.h"
00011 
00012 
00013 /* Declarations for the Motors in the Robot in order to drive -------- */
00014 
00015 class DistanceSensors
00016 {
00017     public:
00018         
00019         DistanceSensors(AnalogIn* sensorVoltage, AnalogIn* frontS, AnalogIn* leftS, AnalogIn* rightS, DigitalOut* bit0, DigitalOut* bit1, DigitalOut* bit2, int number);
00020         DistanceSensors();
00021         
00022         void init(AnalogIn* sensorVoltage, AnalogIn* frontS, AnalogIn* leftS, AnalogIn* rightS, DigitalOut* bit0, DigitalOut* bit1, DigitalOut* bit2, int number);
00023         virtual ~DistanceSensors();    
00024         float read();
00025         
00026         operator float();           //Is here to constantly return the value of read.
00027         
00028     private:
00029         
00030         AnalogIn*       sensorVoltage;
00031         AnalogIn*       frontS;
00032         AnalogIn*       leftS;
00033         AnalogIn*       rightS;
00034         
00035         DigitalOut*     bit0;
00036         DigitalOut*     bit1;
00037         DigitalOut*     bit2;
00038         
00039         int             number;
00040 
00041 };
00042 
00043 class Farbsensor
00044 {
00045     public:
00046      
00047         Farbsensor();
00048         Farbsensor(AnalogIn* FarbVoltage);
00049     
00050         void init(AnalogIn* FarbVoltage);
00051         int read();
00052         operator int();
00053     
00054     private:
00055     
00056         AnalogIn*       FarbVoltage;
00057 };
00058 
00059 class Arm{
00060     
00061     public:
00062         
00063         Arm();
00064         Arm(ServoArm* servoArm);
00065         
00066         void init(ServoArm* servoArm);
00067         
00068         int collectToDown();
00069         int downToCollect();
00070         int collectToBack();
00071         int backToCollect();
00072         
00073     private:
00074         ServoArm*  arm;
00075         float   angle;
00076         
00077 };
00078 
00079 class Leiste{
00080     
00081     public:
00082         
00083         Leiste();
00084         Leiste(Servo* servoLeiste);
00085         
00086         void init(Servo* servoLeiste);
00087         
00088         int upToDown();
00089         int downToUp();
00090         
00091         
00092     private:
00093         Servo*  leiste;
00094       
00095     
00096 };
00097 
00098 class Greifer
00099 {
00100     
00101     public:
00102     
00103         Greifer(Servo* greifer);
00104         Greifer();
00105         
00106         void init(Servo* greifer);
00107         int take();
00108         int leave();
00109         void nullPos();
00110         
00111     private:
00112         Servo* greifer;        
00113 
00114 };
00115 
00116 class USsensor
00117 {
00118     public:
00119     
00120         USsensor();
00121         USsensor(Ultraschall* Usensor);
00122         void init(Ultraschall* Usensor);
00123         float read();
00124         operator float();
00125     
00126     private:
00127         Ultraschall* Usensor;
00128 };
00129 
00130 class Robot
00131 {
00132     
00133     public:
00134         
00135         //Robot related:
00136         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 );
00137         
00138         //Drive Functions
00139         void drive();
00140         void driveB();
00141 
00142         void turnLeft();
00143         void turnLeftS();
00144         void turnRight();
00145         void turnRightS();
00146         void turnAround(int left);
00147         void stop();
00148         
00149         //Functions that use the drive functions
00150         void driveSlowly();
00151         void driveBackSlowly();/*
00152         void wallRight(int* counter, int* timer, int* lastAct);
00153         void wallLeft(int* counter, int* timer, int* lastAct);
00154         void wallFront(int* counter, int* timer, int* lastAct);
00155         void counterMax(int* counter, int* timer, int* lastAct, int* rando);
00156         
00157         void legoFront(int* counter, int* timer, int* lastAct, int* legoFound, int* found);
00158         void legoRight(int* counter, int* timer, int* lastAct, int* legoFound);
00159         void legoLeft(int* counter, int* timer, int* lastAct, int* legoFound);
00160         
00161         void nothingFound(int* counter, int* timer, int* lastAct);
00162         */
00163         int search(int* timer);
00164         
00165         float see(int sensor);
00166         int getErrorMotor();
00167         
00168         //DistanceSensors related:
00169         DistanceSensors sensors[9];
00170         USsensor USsensor;
00171         AnalogIn* frontS;
00172         AnalogIn* leftS;
00173         AnalogIn* rightS;
00174         
00175         
00176         void initializeDistanceSensors();
00177         //void init();
00178         
00179         //LEDS related:
00180         DigitalOut*     leds;
00181         
00182         //Farbsensors related:
00183         Farbsensor      FarbVoltage;
00184         DigitalOut*     led;
00185         
00186         //Arm related:
00187         Arm             Arm;
00188         
00189         //Greifer related:
00190         Greifer         Greifer;
00191         
00192         //Leiste related:
00193         Leiste          Leiste;
00194         
00195     private:
00196     
00197         //Robot related:
00198         PwmOut*         left;
00199         PwmOut*         right;
00200         DigitalIn*      errorMotor;
00201     
00202         DigitalOut*     powerSignal;
00203         DigitalIn*      errorSignal;
00204         DigitalIn*      overtemperatur;
00205         
00206         Servo*          greifer;
00207         Servo*          leiste;
00208         ServoArm*       arm;
00209 };
00210 
00211 #endif