Roboshark / Mbed 2 deprecated TestRegler

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
diff -r b2a16b1cf487 -r d7dfee648545 Fahren.cpp
--- 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){
diff -r b2a16b1cf487 -r d7dfee648545 Fahren.h
--- 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();
     
diff -r b2a16b1cf487 -r d7dfee648545 Regler.cpp
--- 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;
     }
         
diff -r b2a16b1cf487 -r d7dfee648545 main.cpp
--- 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);