a

Dependencies:   Servo ServoArm mbed

Fork of PES_Official-TestF by zhaw_st16b_pes2_10

Revision:
9:ac362674c480
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Headers/Robot.h	Tue May 02 08:39:35 2017 +0000
@@ -0,0 +1,145 @@
+#ifndef ROBOT_H
+#define ROBOT_H
+
+#include <cstdlib>
+#include <mbed.h>
+#include "Servo.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(Servo* servoArm);
+        
+        void init(Servo* servoArm);
+        
+        void collecttodown(int* done);
+        void downtocollect(int* done);
+        void collecttoback(int* done);
+        void backtocollect(int* done);
+        
+    private:
+        Servo*  servoArm;
+        float   angle;
+        
+};
+
+class Robot
+{
+    
+    public:
+        
+        //Robot related:
+        Robot(PwmOut* left, PwmOut* right, DigitalOut* enableSignal, DigitalOut* leds, AnalogIn* FarbVoltage,  AnalogIn* frontS, AnalogIn* leftS, AnalogIn* rightS, Servo* Arm );
+        
+        //Drive Functions
+        void drive();
+        void driveB();
+
+        void turnLeft();
+        void turnLeftS();
+        void turnRight();
+        void turnRightS();
+        void turnAround(int left);
+        void stop();
+        
+        //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, 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);
+        
+        void search(int* counter, int* timer, int* found);
+        void lego(int* counter, Timer* t);
+        
+        //DistanceSensors related:
+        DistanceSensors sensors[9];
+        AnalogIn* frontS;
+        AnalogIn* leftS;
+        AnalogIn* rightS;
+        
+        
+        void initializeDistanceSensors();
+        //void init();
+        
+        //LEDS related:
+        DigitalOut*     leds;
+        
+        //Farbsensors related:
+        Farbsensor      FarbVoltage;
+        
+        //Arm related:
+        Arm             Arm;
+        
+    private:
+    
+        //Robot related:
+        PwmOut*         left;
+        PwmOut*         right;
+    
+        DigitalOut*     powerSignal;
+        DigitalIn*      errorSignal;
+        DigitalIn*      overtemperatur;
+        
+        Servo*          arm;
+        
+
+};
+
+#endif
\ No newline at end of file