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: mbed
Fork of TestRegler by
Revision 8:d7dfee648545, committed 2018-05-02
- Comitter:
- ahlervin
- Date:
- Wed May 02 17:06:39 2018 +0000
- Parent:
- 7:b2a16b1cf487
- Commit message:
- Funktionierender Regler
Changed in this revision
--- 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);
