Nicht funktionierender Regler

Dependencies:   mbed

Fork of Roboshark_V3 by Roboshark

Files at this revision

API Documentation at this revision

Comitter:
ahlervin
Date:
Wed May 02 17:06:39 2018 +0000
Parent:
7:b2a16b1cf487
Commit message:
Funktionierender Regler

Changed in this revision

Fahren.cpp Show annotated file Show diff for this revision Revisions of this file
Fahren.h Show annotated file Show diff for this revision Revisions of this file
Regler.cpp Show annotated file Show diff for this revision Revisions of this file
main.cpp Show annotated file Show diff for this revision Revisions of this file
--- a/Fahren.cpp	Mon Apr 30 22:11:38 2018 +0000
+++ b/Fahren.cpp	Wed May 02 17:06:39 2018 +0000
@@ -6,14 +6,14 @@
 
 using namespace std;
 
-const float Fahren :: PERIOD = 2.0f;
+const float Fahren :: PERIOD = 0.2f;
 
 //Konstruktor
-Fahren::Fahren(Controller& controller, EncoderCounter& counterLeft, EncoderCounter& counterRight):
+Fahren::Fahren(Controller& controller, EncoderCounter& counterLeft, EncoderCounter& counterRight, Regler& regler):
     controller(controller), counterLeft(counterLeft), counterRight(counterRight), regler(regler){
     
-    SpeedR = 0;
-    SpeedL = 0;
+    SpeedR = 100;
+    SpeedL = 100;
     ticker.attach(callback(this, &Fahren::getSpeed), PERIOD);
 }
 
@@ -44,8 +44,8 @@
     wegLinks = 1767;
         
     //Geschwindigkeit
-    speedRight = 25;
-    speedLeft = 25;
+    speedRight = 100;
+    speedLeft = 100;
     
     //Zustand, dass der Roboter nicht gestoppt hat
     stopRight = false;
@@ -93,16 +93,19 @@
     wegLinks = 1767;
         
     //Geschwindigkeit
-    speedRight = 20; // SpeedR
-    speedLeft = 20; // SpeedL
+    speedRight = 100;//SpeedR
+    speedLeft = 100;//SpeedL
+    
+    printf("SpeedR in F2= %f\n",SpeedR);
+    printf("SpeedL in F2= %f\n",SpeedL);
     
     //Zustand, dass der Roboter nicht gestoppt hat
     stopRight = false;
     stopLeft = false;
     
     //Drehrichtung der Motoren
-    controller.setDesiredSpeedRight(speedRight);
-    controller.setDesiredSpeedLeft(-(speedLeft));
+    controller.setDesiredSpeedRight(SpeedR);
+    controller.setDesiredSpeedLeft(-(SpeedL));
     
     
     while(1){
--- a/Fahren.h	Mon Apr 30 22:11:38 2018 +0000
+++ b/Fahren.h	Wed May 02 17:06:39 2018 +0000
@@ -5,12 +5,12 @@
 #include "EncoderCounter.h"
 #include "Controller.h"
 #include "Regler.h"
-#include "IRSensor.h"
+
 
 class Fahren{
     
     public:    
-    Fahren(Controller& controller, EncoderCounter& counterLeft, EncoderCounter& counterRight); //Konstruktor
+    Fahren(Controller& controller, EncoderCounter& counterLeft, EncoderCounter& counterRight, Regler& regler); //Konstruktor
     
     virtual ~Fahren();
     
--- a/Regler.cpp	Mon Apr 30 22:11:38 2018 +0000
+++ b/Regler.cpp	Wed May 02 17:06:39 2018 +0000
@@ -4,15 +4,15 @@
 
 using namespace std;
 
-const float Regler :: PERIOD = 2.0f;
-const int Regler :: FIXSPEED = 25;
+const float Regler :: PERIOD = 0.2f;
+const int Regler :: FIXSPEED = 100;
 
 
 Regler::Regler(AnalogIn& IrRight, AnalogIn& IrLeft):
 IrRight (IrRight), IrLeft (IrLeft) {
         
-        SpeedR = 0;
-        SpeedL = 0;
+        //SpeedR = 0;
+        //SpeedL = 0;
         ticker.attach(callback(this, &Regler::setSpeed), PERIOD);
     }
      
@@ -28,29 +28,33 @@
         
         if (measR2 > measL2) {
             div1 = measR2 - measL2;
-            kor1 = 0.1f*div1;
+            kor1 = 0.05f*div1;
+            div2 = 0;
             SpeedR = FIXSPEED;
             SpeedL = FIXSPEED + kor1;
         } else if (measR2 < measL2) {
             div2 = measL2 - measR2;
-            kor2 = 0.1f*div2;
+            kor2 = 0.05f*div2;
+            div1 = 0;
             SpeedR = FIXSPEED + kor2;
             SpeedL = FIXSPEED;
         } else { 
             SpeedR = FIXSPEED;
             SpeedL = FIXSPEED;
             }
-printf("SpeedR1 = %f\n",SpeedR);
-printf("SpeedL1 = %f\n",SpeedL);        
+//printf("Div1 = %f\n",div1);
+//printf("Div2 = %f\n",div2);  
+//printf("SpeedR1 = %f\n",SpeedR);
+//printf("SpeedL1 = %f\n",SpeedL);        
 }
 float Regler :: get_SpeedR (){
         SpeedR = SpeedR;
-        printf("SpeedR2 = %f\n",SpeedR);
+        //printf("SpeedR2 = %f\n",SpeedR);
         return SpeedR;
     }
 float Regler :: get_SpeedL (){
         SpeedL = SpeedL;
-        printf("SpeedL2 = %f\n",SpeedL);  
+        //printf("SpeedL2 = %f\n",SpeedL);  
         return SpeedL;
     }
         
--- a/main.cpp	Mon Apr 30 22:11:38 2018 +0000
+++ b/main.cpp	Wed May 02 17:06:39 2018 +0000
@@ -61,7 +61,7 @@
 
 Regler regler(IrRight, IrLeft);
 
-Fahren fahren(controller, counterLeft, counterRight);                           //Reihenfolge!!!!!!!!!!!!!!!!!!! Ultra wichtig
+Fahren fahren(controller, counterLeft, counterRight, regler);                           //Reihenfolge!!!!!!!!!!!!!!!!!!! Ultra wichtig
 
 int main()
 {
@@ -108,11 +108,11 @@
     printf (" finishLast = %d\n",finishLast);
     printf("line = %f\n", line);*/
         
-        printf ("IR Right = %d \n", IrR);
-        printf("IR Left = %d\n",IrL);
-        printf("IR Front = %d\n",IrF);
-        printf("SpeedRm = %f\n",SpeedR);
-        printf("SpeedLm = %f\n",SpeedL);
+        //printf ("IR Right = %d \n", IrR);
+        //printf("IR Left = %d\n",IrL);
+        //printf("IR Front = %d\n",IrF);
+        //printf("SpeedRm = %f\n",SpeedR);
+        //printf("SpeedLm = %f\n",SpeedL);
         
                     
          if ((IrR==1) && (IrL==0) && (IrF==0) && (ende == 0)){
@@ -122,7 +122,7 @@
         }   else{ caseDrive = 0;
         }
 
-        wait (0.5);
+        //wait (0.2);