First team commit
Fork of LineFollower by
Revision 10:a9233fa6240d, committed 2014-03-24
- 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; + };