Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: Servo ServoArm mbed
Fork of PES_Official by
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
Generated on Sun Jul 17 2022 01:45:57 by
