First team commit

Dependents:   ASEE-2014

Fork of LineFollower by Christopher Bradford

Files at this revision

API Documentation at this revision

Comitter:
blu12758
Date:
Mon Mar 24 00:44:31 2014 +0000
Parent:
9:039a74519b89
Child:
11:88aa683f1c94
Commit message:
sdfh

Changed in this revision

LineFollower.cpp Show annotated file Show diff for this revision Revisions of this file
LineFollower.h Show annotated file Show diff for this revision Revisions of this file
--- a/LineFollower.cpp	Mon Mar 10 00:54:55 2014 +0000
+++ b/LineFollower.cpp	Mon Mar 24 00:44:31 2014 +0000
@@ -19,7 +19,6 @@
                 array(ir1, ir2, ir3, ir4, ir5, ir6, ir7, ir8)
                 {}
                 
-                
     /** Read the value of a LineFollower object
     * 
     * @return The value of the Sensor
@@ -28,7 +27,7 @@
         return array;
     }
     
-    float LineFollower::analogFollow(Motor l, Motor r){
+    float LineFollower::analogFollow(Motor l, Motor r, float maxspeed, float sp_adj_mult){
         float sum = 0;
         int count = 0;
         for(int i = 0; i < 8; i++)
@@ -38,22 +37,21 @@
             }
         if(count == 0) return 0;
         float center = sum/count;
-        
-        float sp_adj_mult = 0.9; //Change this to change how drastic your adjustments are. 0-1
-        float speed_adjust = sp_adj_mult*(center-4.5)/(3.5)*MAXSPEED;
-            //Also, can change MAXSPEED if the thing is too fast overall. 0-1
+        //Change the sp_adj_mult to change how drastic your adjustments are. 0-1
+        float speed_adjust = sp_adj_mult*(center-4.5)/(3.5)*maxspeed;
+        //Also, can change maxspeed if the thing is too fast overall. 0-1
         
         if(center > 4.5){
-            l.speed(MAXSPEED - speed_adjust);
-            r.speed(MAXSPEED);
+            l.speed(maxspeed - speed_adjust);
+            r.speed(maxspeed);
         }
         else if(center < 4.5){
-            l.speed(MAXSPEED);
-            r.speed(MAXSPEED - abs(speed_adjust));
+            l.speed(maxspeed);
+            r.speed(maxspeed + speed_adjust);
         }
         else{
-            l.speed(MAXSPEED);
-            r.speed(MAXSPEED);
+            l.speed(maxspeed);
+            r.speed(maxspeed);
         }
         
         return center;
@@ -63,7 +61,8 @@
     * 
     * @param    l left drive motor
     * @param    r  right drive motor
-    */                    
+    */   
+    /*                 
     int LineFollower::followLine(Motor l, Motor r){
            int count = 0;
            for(int i = 0; i<8; i++){
@@ -73,68 +72,68 @@
             switch(count){
                 
                 case 1: if(this->read() == 0x7F){
-                            l.speed(-(0.75 * MAXSPEED));
-                            r.speed(MAXSPEED);
+                            l.speed(-(0.75 * maxspeed));
+                            r.speed(maxspeed);
                         }
                         else if(this->read() == 0xFE){
-                            l.speed(MAXSPEED);
-                            r.speed(-(0.75 * MAXSPEED));
+                            l.speed(maxspeed);
+                            r.speed(-(0.75 * maxspeed));
                         }
                         break;
                         
                 case 2: if(this->read() == 0xE7){
-                            l.speed(MAXSPEED);
-                            r.speed(MAXSPEED);
+                            l.speed(maxspeed);
+                            r.speed(maxspeed);
                         }
                         else if(this->read() == 0x3F){
-                            l.speed(-(0.5 * MAXSPEED));
-                            r.speed(MAXSPEED);
+                            l.speed(-(0.5 * maxspeed));
+                            r.speed(maxspeed);
                         }
                         else if(this->read() == 0xFC){
-                            l.speed(MAXSPEED);
-                            r.speed(-(0.5 * MAXSPEED));
+                            l.speed(maxspeed);
+                            r.speed(-(0.5 * maxspeed));
                         }
                         else if(this->read() == 0x9F){
                             l.speed(0);
-                            r.speed(MAXSPEED);
+                            r.speed(maxspeed);
                         }
                         else if(this->read() == 0xF9){
-                            l.speed(MAXSPEED);
+                            l.speed(maxspeed);
                             r.speed(0);
                         }
                         else if(this->read() == 0xCF){
-                            l.speed(0.5*MAXSPEED);
-                            r.speed(MAXSPEED);
+                            l.speed(0.5*maxspeed);
+                            r.speed(maxspeed);
                         }
                         else if(this->read() == 0xF3){
-                            l.speed(MAXSPEED);
-                            r.speed(0.5*MAXSPEED);
+                            l.speed(maxspeed);
+                            r.speed(0.5*maxspeed);
                         }
                         break;
                         
                 case 3: if(this->read() == 0x1F){
-                            l.speed(-(0.25*MAXSPEED));
-                            r.speed(MAXSPEED);
+                            l.speed(-(0.25*maxspeed));
+                            r.speed(maxspeed);
                         }
                         else if(this->read() == 0xF8){
-                            l.speed(MAXSPEED);
-                            r.speed(-(0.25*MAXSPEED));
+                            l.speed(maxspeed);
+                            r.speed(-(0.25*maxspeed));
                         }
                         else if(this->read() == 0x8F){
-                            l.speed(0.25*MAXSPEED);
-                            r.speed(MAXSPEED);
+                            l.speed(0.25*maxspeed);
+                            r.speed(maxspeed);
                         }
                         else if(this->read() == 0xF1){
-                            l.speed(MAXSPEED);
-                            r.speed(0.25*MAXSPEED);
+                            l.speed(maxspeed);
+                            r.speed(0.25*maxspeed);
                         }
                         else if(this->read() == 0xC7){
-                            l.speed(0.5*MAXSPEED);
-                            r.speed(MAXSPEED);
+                            l.speed(0.5*maxspeed);
+                            r.speed(maxspeed);
                         }
                         else if(this->read() == 0xE3){
-                            l.speed(MAXSPEED);
-                            r.speed(0.5*MAXSPEED);
+                            l.speed(maxspeed);
+                            r.speed(0.5*maxspeed);
                         }
                         break;
               default:  break;
@@ -144,4 +143,5 @@
             
             
             return count;
-    }
\ No newline at end of file
+    }
+    */
\ No newline at end of file
--- a/LineFollower.h	Mon Mar 10 00:54:55 2014 +0000
+++ b/LineFollower.h	Mon Mar 24 00:44:31 2014 +0000
@@ -36,16 +36,18 @@
     */                    
     int followLine(Motor l, Motor r);
     
-    float analogFollow(Motor l, Motor r);
+    float analogFollow(Motor l, Motor r, float maxspeed, float sp_adj_mult);
         
     protected:
     /* Constants */
     #define ROTATE_SPEED    100
-    #define MAXSPEED        1
     
     /* Attributes */
     BusIn array;
     
+    float prevLeft;
+    float prevRight;
+    
 
 };