task main() { initializeRobot(); waitForStart(); // Wait for the beginning of autonomous phase. liftMove(50, 1000); moveDist(115, 100, SPEED);//Moves forward turnDeg(45, TURN_RIGHT, 100, SPEED);//Turns right moveDist(47, 100, SPEED);//Moves forward }
task main() { //wait servo[topServo] = 235; initializeRobot(); StartTask(getHeading); wait1Msec(400); forwardInc(48, 30); //Calculates the positioning of the center goal after 10 position tics at 200msec intervals float a = 0; float b = 0; float c = 0; wait1Msec(400); StartTask(infared); wait1Msec(200); int ir2 = acS1a+ acS2a+acS3a+acS4a+acS5a; int ir1 = acS1b+acS2b+acS3b+acS4b+acS5b; for(float i = 0; i <= 10; i++){ if(ir1 < ir2-10){ PlayImmediateTone(440, 10); a += 1; }else if(abs(ir1-ir2) <= 18){ //ir1-4 > ir2 && ir1+4 < ir2 PlayImmediateTone(1024, 10); b += 1; }else if(ir1 > ir2+10){ PlayImmediateTone(2024, 10); c += 1; }else{ PlayImmediateTone(1024, 10); //b += 1; } wait1Msec(200); } ClearSounds(); //code for each of the three center positions a=1 b=2 c=3 StopTask(getHeading); wait10Msec(50); StartTask(getHeading); wait1Msec(200); if(a > (b+c)/2){ //PlayImmediateTone(440, 10); currHeading = 0; turnDeg(-20, 25); wait10Msec(50); forwardInc(74, 30); wait10Msec(50); StopTask(getHeading); currHeading = 0; wait1Msec(200); StartTask(getHeading); wait1Msec(100); turnDeg(-52, 20);//sdfhjkjhgftrhjkl;kjrtykl;kjgfdsghj.,mhfdsfghjkfdsgtgr5gtgr wait10Msec(25); forwardInc(-22, 25); liftPos(3); servo[topServo] = 210;//original 150 wait10Msec(25); servo[topServo] = 235; wait10Msec(500); liftPos(0); wait10Msec(500); }else if(b > (a+c)/2){ PlayImmediateTone(1024, 10); StopTask(getHeading); currHeading = 0; wait1Msec(200); StartTask(getHeading); wait1Msec(100); turnDeg(180, 25); //do a one 80 StopTask(getHeading); currHeading = 0; wait1Msec(200); StartTask(getHeading); wait10Msec(70); forwardInc(-36, 30);//go back __ inches //StartTask(getHeading); //wait1Msec(100); //turnDeg(20, 25); wait10Msec(200); liftPos(3); servo[topServo] = 210;//original 150 wait10Msec(25); servo[topServo] = 235; wait10Msec(100); liftPos(0); wait10Msec(500); }else if(c > (a+b)/2){ PlayImmediateTone(2024, 10); StopTask(getHeading); currHeading = 0; wait1Msec(200); StartTask(getHeading); wait1Msec(100); turnDeg(-120, 25); StopTask(getHeading); currHeading = 0; wait1Msec(200); StartTask(getHeading); wait10Msec(70); forwardInc(-35, 30); StartTask(getHeading); wait1Msec(100); turnDeg(-32, 25); forwardInc(-4, 25); wait10Msec(50); liftPos(3); servo[topServo] = 210;//original 150 wait10Msec(25); servo[topServo] = 235; wait10Msec(100); liftPos(0); wait10Msec(500); } }
void moveTowardAlignedWithObject(int channel, float turnMultiplier, int speed){ //with turnMultiplier set to 0.75, if it expects to need to turn 10 degrees, it will turn 7.5 degrees toward the object. turnDeg((offsetFromObject(channel, 0)*PIXELS_TO_DEGREES*turnMultiplier), speed); //check for bugs with float multiplication. //turn to be aligned. }