Lab 1
// Run motor from start to 15% power in 2.5 seconds
celerate(1,0,15,2.5);
//Keeps motor one running at 15% for 1 second and stops it
motorspeed(1,15);
goFor(1);
brake(1);
//accelerate motor 2 to 27% in 4 seconds
//then run at constant spd for 2.7 seconds
celerate(2,0,27,4);
motorspeed(2,27);
goFor(2.7);
celerate(2,27,15,1);
brake(2);
reverse(2);
celerate(4,0,31,2);
motorspeed(4,35);
goFor(1);
brake(2);
motorspeed(1,35);
brake(4);
goFor(1);
reverse(1);
celerate(1,0,19,2);
motorspeed(2,35);
motorspeed(1,19);
goFor(2);
motorspeed(2,19);
goFor(2);
celerate(4,19,0,3);
brake(4);
Lab 2
// Program to fulfill task requirements
motorSpeed(4,25);
goFor(2);
motorSpeed(4,20);
goFor(2);
goToAbsolutePosition(295.2);
reverse(4);
motorSpeed(4,30);
goFor(1.5);
brake(4);
}
Lab 4
motorSpeed(4,25);
goFor(2);
motorSpeed(4,20);
goFor(2);
goToAbsolutePosition(295.2);
reverse(4);
motorSpeed(4,30);
goFor(1.5);
brake(4);
Advanced R&D 1
// Tests operation of current AEV
//Motor 1, black propeller
//motorSpeed(1,25);
//goFor(5);
//brake(1);
//Motor 2, gray propeller, reverse first to go in direction of black propeller
reverse(2);
//motorSpeed(2,25);
//goFor(5);
//brake(2);
motorSpeed(4,35);
goFor(6);
brake(4);
}
Performance Test 1
//Reverse gray motor so both motors rotate in same direction
reverse(1);
motorSpeed(4,30);
goToAbsolutePosition(123);
goFor(.4);
rotateServo(30);
motorSpeed(4,0);
goFor(4);
rotateServo(0);
goFor(3.5);
motorSpeed(4,30);
goFor(3);
}
Performance Test 2
//Reverse gray motor so both motors rotate in same direction
reverse(1);
motorSpeed(4,30);
goToAbsolutePosition(125);
goFor(.4);
rotateServo(30);
motorSpeed(4,0);
goFor(4);
rotateServo(0);
goFor(3.5);
//First Gate Passage End – Servo
motorSpeed(4,30);
goToAbsolutePosition(294);
rotateServo(30);
motorSpeed(4,0);
goFor(3);
rotateServo(0);
rotateServo(30);
motorSpeed(4,0);
goFor(.5);
rotateServo(0);
brake(4);
goFor(5);
reverse(4);
motorSpeed(4,50);
goToAbsolutePosition(182);
rotateServo(30);
brake(4);
goFor(4);
rotateServo(0);
goFor(3.5);
motorSpeed(4,30);
goToAbsolutePosition(20);
goFor(.5);
brake(4);
rotateServo(30);
}
Final Code
//2018-03-28 3rd Floor
//Battery Voltage: 8.08
//2018-03-30 2nd Floor
//Battery Voltage: 8.13
//2018-04-02 3rd Floor
//Battery Voltage: 7.96
//2018-04-09 3rd Floor
//Battery Voltage: 8.16
//2018-04-11 3rd Floor
//Battery Voltage: 8.01
//2018-04-13 2nd Floor
//Battery Voltage: 8.12
//Gray motor 2
//Black motor 1
/*
* The approach we developed for coding the whole track was to divide the track into four different legs.
*
* 1st Leg: Reach gate, trigger gate
* 2nd Leg: Move past gate and connect with the load at end of track
* 3rd Leg: Return to gate with load, trigger gate
* 4th Leg: Move past gate and return to starting position with load
*/
//First Leg
//Reverse gray motor so both motors rotate in same direction
reverse(1);
motorSpeed(4,30);
goToAbsolutePosition(277);
brake(4);
rotateServo(40);
goFor(4);
rotateServo(0);
goFor(3.5);
//END First Leg
//Second Leg
motorSpeed(4,30);
goToAbsolutePosition(580);
brake(4);
rotateServo(40);
goFor(4);
rotateServo(0);
goFor(5);
//END Second Leg
//Third Leg
//Change orientation of motors to go in reverse
reverse(4);
//Was short about a wheel revolution at 320 marks
motorSpeed(4,60);
goToAbsolutePosition(387);
brake(4);
rotateServo(40);
goFor(4);
rotateServo(0);
goFor(3.5);
//END Third Leg
//Fourth leg
motorSpeed(4,60);
goToAbsolutePosition(175);
brake(4);
goToAbsolutePosition(50);
rotateServo(40);
//END Fourth leg
}
Basic Function Calls
celerate(m,p1,p2,t);
Accelerates or decelerates the motors (m) from a start speed (p1) to an end speed (p2) over (t) seconds.
m = motor id (motor 1 = 1, motor 2 = 2, all motors = 3)
p1 = start speed (%)
p2 = end speed (%)
t = duration of speed change (seconds)
motorSpeed(m,p);
Sets the speed of motor (m) to a power percentage (p).
m = motor id (motor 1 = 1, motor 2 = 2, all motors = 3)
p = power (%)
goFor(t);
Run motors (m) at their power settings for (t) seconds.
m = motor id (motor 1 = 1, motor 2 = 2, all motors = 3)
t = duration (seconds)
brake(m);
Halts motors (m)
m = motor id (motor 1 = 1, motor 2 = 2, all motors = 3)
reverse(m);
Reverse the polarity of motors (m).
m = motor id (motor 1 = 1, motor 2 = 2, all motors = 3)
goToRelativePosition(m);
Moves the vehicle a certain amount of marks (m) either forward or backward depending on the sign of (m).
m = amount of marks to move
goToAbsolutePosition(c);
Moves the vehicle to the specific offset of marks from the origin (m).
c = mark number to move to
Resources