Prom_Roebi_0.1
Dependencies: Farbsensor IRSensorLib PID_Control Servo mbed PixyLib
Diff: Fahren.cpp
- Revision:
- 7:5949f408b6da
- Parent:
- 6:d611637e7cad
- Child:
- 8:077d0bb213a2
--- a/Fahren.cpp Tue May 16 14:02:23 2017 +0000 +++ b/Fahren.cpp Wed May 17 07:38:41 2017 +0000 @@ -4,9 +4,10 @@ #include "Fahren.h" -Fahren::Fahren(DigitalOut* enable, DigitalOut* bit0, DigitalOut* bit1, DigitalOut* bit2, AnalogIn* distance, DigitalOut* enableMotorDriver, PwmOut* pwmLeft, PwmOut* pwmRight) + +Fahren::Fahren(DigitalOut* enable, DigitalOut* bit0, DigitalOut* bit1, DigitalOut* bit2, AnalogIn* distance, DigitalOut* enableMotorDriver, PwmOut* pwmLeft, PwmOut* pwmRight, Camauswertung* cam) { - init(enable, bit0, bit1, bit2, distance, enableMotorDriver, pwmLeft, pwmRight); + init(enable, bit0, bit1, bit2, distance, enableMotorDriver, pwmLeft, pwmRight, cam); } Fahren::Fahren() {} @@ -16,7 +17,7 @@ */ Fahren::~Fahren() {} -void Fahren::init(DigitalOut* enable, DigitalOut* bit0, DigitalOut* bit1, DigitalOut* bit2, AnalogIn* distance, DigitalOut* enableMotorDriver, PwmOut* pwmLeft, PwmOut* pwmRight) +void Fahren::init(DigitalOut* enable, DigitalOut* bit0, DigitalOut* bit1, DigitalOut* bit2, AnalogIn* distance, DigitalOut* enableMotorDriver, PwmOut* pwmLeft, PwmOut* pwmRight, Camauswertung* cam) { this->enable = enable; this->bit0 = bit0; @@ -26,7 +27,9 @@ this->enableMotorDriver = enableMotorDriver; this->pwmLeft = pwmLeft; this->pwmRight = pwmRight; + this->cam = cam; state = 0; + } @@ -59,14 +62,16 @@ void Fahren::fahrRutine() { - // pc->printf("left:%f\n\r", sensors[5].read()); + if (pc) { + pc->printf("left:%f\n\r", sensors[5].read()); + } if(sensors[0]<=0.1 && sensors[1]<=0.12 && sensors[5]<=0.12) { //wenn hinten rechts => leichte linkskurve if(sensors[2]<=0.25) { pwmLeft->write(0.35); pwmRight->write(0.55); if (pc) { - //pc->printf("zurueck-rechtskurve\n"); + pc->printf("zurueck-rechtskurve\n"); } state=zurueck_l; } @@ -75,7 +80,7 @@ pwmLeft->write(0.45); pwmRight->write(0.65); if (pc) { - // pc->printf("zurueck-linkskurve\n"); + pc->printf("zurueck-linkskurve\n"); } state=zurueck_r; } @@ -84,7 +89,7 @@ pwmRight->write(0.6); state=zurueck; if (pc) { - // pc->printf("zurueck-gerade\n"); + pc->printf("zurueck-gerade\n"); } } } @@ -126,7 +131,7 @@ pwmLeft->write(0.3); pwmRight->write(0.3); if (pc) { - //pc->printf("drehen links\n\n\n"); + pc->printf("drehen links\n\n\n"); } } @@ -134,7 +139,7 @@ pwmLeft->write(0.7); pwmRight->write(0.7); if (pc) { - // pc->printf("drehen rechts\n\n\n"); + pc->printf("drehen rechts\n\n\n"); } } @@ -142,11 +147,15 @@ if (rand()%2==0 && state != drehen) { pwmLeft->write(0.3); pwmRight->write(0.3); - // pc->printf("random drehen\n\n\n"); + if (pc) { + pc->printf("random drehen\n\n\n"); + } } else if (rand()%2 != 0 && state != drehen) { pwmLeft->write(0.7); pwmRight->write(0.7); - //pc->printf("random drehen\n\n\n"); + if (pc) { + pc->printf("random drehen\n\n\n"); + } } state=drehen; @@ -154,7 +163,7 @@ //Wenn Front-Left etwas sehen => nach Rechts************************** else if(sensors[1] >= 0.08 && (sensors[5]<=wenden && sensors[5] >= 0.08)) { if (pc) { - // pc->printf("rechts\n"); + pc->printf("rechts\n"); } pwmLeft->write(0.65); pwmRight->write(0.45); @@ -164,7 +173,7 @@ // Wenn Front-Right etwas sehen => Links******************************* else if(sensors[5] >= 0.08 && (sensors[1]<=wenden && sensors[1] >= 0.08)) { if(pc) { - // pc->printf("Links\n"); + pc->printf("Links\n"); } pwmLeft->write(0.55); pwmRight->write(0.35); @@ -174,15 +183,16 @@ //Wenn kein Sensor anspricht => gerade aus***************************** else if(sensors[0]>=0.26) { if(pc) { - // pc->printf("gerade\n"); + pc->printf("gerade\n"); } pwmLeft->write(0.65); pwmRight->write(0.35); + state=gerade; } else { if(pc) { - // pc->printf("gerade2\n\r"); + pc->printf("gerade2\n\r"); } } } \ No newline at end of file