Prom_Roebi_0.1

Dependencies:   Farbsensor IRSensorLib PID_Control Servo mbed PixyLib

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