IT GOES NORTH MOST OF THE TIME

Dependencies:   HMC6352 Motor mbed

Revision:
2:25d2332ec855
Parent:
1:6812f830e5a1
--- a/main.cpp	Thu Oct 04 19:11:02 2012 +0000
+++ b/main.cpp	Thu Oct 04 20:42:07 2012 +0000
@@ -15,9 +15,9 @@
     
     printf("Front Right Left\n\r");
     int i=0;
-    int readLeftVals[10];
-    int readRightVals[10];
-    int readFrontVals[10];
+    float readLeftVals[10];
+    float readRightVals[10];
+    float readFrontVals[10];
     float readLeft;
     float readRight;
     float readFront;
@@ -25,14 +25,16 @@
     //Initialize the averager before the robot even moves
     for (int j=0; j<10; j++);
     {
+        readFront=irFront;
         readLeft=irLeft;
-        readLeft=10/readLeft;
-        
         readRight=irRight;
-        readRight=10/readRight;
+        readLeft=readLeft*3.3/.0032;
+        
         
-        readFront=irFront;
-        readFront=10/readFront;
+        readRight=readRight*3.3/.0032;
+        
+        
+        readFront=readFront*3.3/.0032;
         
         readFrontVals[i] = readFront;
         readRightVals[i] = readRight;
@@ -41,18 +43,20 @@
     
     while (1){
         readLeft=irLeft;
-        readLeft=10/readLeft;
+         readRight=irRight;
+         readFront=irFront;
+       readLeft=readLeft*3.3/.0032;
+        
         
-        readRight=irRight;
-        readRight=10/readRight;
+        readRight=readRight*3.3/.0032;
         
-        readFront=irFront;
-        readFront=10/readFront;
+        
+        readFront=readFront*3.3/.0032;
         
         
        
         
-        if (i>10)
+        if (i>=10)
         {
             i=0;
         }
@@ -61,7 +65,7 @@
         readLeftVals[i] = readLeft;
         i++;
         
-        int avgFront = 0, avgRight = 0, avgLeft = 0;
+        float avgFront = 0, avgRight = 0, avgLeft = 0;
         
         for (int j=0; j<10; j++)
         {
@@ -72,12 +76,16 @@
         
         printf("Front: %5f Right: %5f Left: %5f\n\r", avgFront, avgRight, avgLeft);
         
+        avgFront = readFront;
+        avgLeft = readLeft;
         switch(dir){
             case Forward:
-                if (avgFront <= 18)
+                if (avgFront >= 520)
                 {
+                    left.speed(0);
+                    right.speed(0);
+                    dir=Right;
                     wait(0.5);
-                    dir=Right;
                     printf("less than 18\n\r");
                 }
                 else
@@ -87,14 +95,18 @@
                 }
             break;
             case Right:
-                if (avgLeft>30 || avgFront<=18)
-                {
+                if (avgFront >= 470 || avgLeft<=510)
+                { //if(avgFront <=480){dir=Forward; wait(0.5);}
                     right.speed(-1);
                     left.speed(1);
                     printf("turning!\n\r");
+                
                 }
-                else 
+                else
                 {
+                    
+                    left.speed(0);
+                    right.speed(0);
                     wait(0.5);
                     dir=Forward;
                 }