#pragma config(Motor, port2, LeftForward, tmotorServoContinuousRotation, openLoop, reversed) #pragma config(Motor, port3, RightForward, tmotorServoContinuousRotation, openLoop) #pragma config(Motor, port4, LeftBack, tmotorServoContinuousRotation, openLoop, reversed) #pragma config(Motor, port5, RightBack, tmotorServoContinuousRotation, openLoop) //*!!Code automatically generated by 'ROBOTC' configuration wizard !!*//
##function to cause all motors to stop, stopping the vehicle when the button command is pressed void stopMotor() { motor[LeftForward] = 0; motor[RightForward] = 0; motor[LeftBack] = 0; motor[RightBack] = 0; }
##function that causes all wheels to move simultaneously at the same speed, causing it to move forward with a variable passed to it to determine for how long void moveForwardForTime(int howLong) { motor[LeftForward] = 127; motor[RightForward] = 127; motor[LeftBack] = 127; motor[RightBack] = 127; wait1Msec(howLong); ##built in function wait1Msec to receive the howLong variable. This determines how long the vehicle should move forward }
##function that turns left wheels forward at standard forward speed (clockwise), but turns right wheels the negative amount (counter-clockwise). This cause the the vehicle to rotate in place, turning to the right.
void rotateForTime(int howLong)
{ motor[LeftForward] = 127; motor[RightForward] = -127; motor[LeftBack] = 127; motor[RightBack] = -127; wait1Msec(howLong); stopMotor(); ##the stopMotor function is used here to ensure that after each iteration used in doSquare the tumbler stops completely before resuming again }
##this function calls the moveForwardForTime and rotateForTime functions several times to cause the tumbler to move in a square. They are passed the same variables repeatedly to ensure the movements are uniform, creating the square.
void doSquare() { moveForwardForTime(2000); rotateForTime(300); moveForwardForTime(2000); rotateForTime(300); moveForwardForTime(2000); rotateForTime(300); moveForwardForTime(2000); rotateForTime(300); return; }
##this function causes the left wheels to move faster than the right wheels, causing the tumbler to form a circle
void doCircle() { motor[LeftForward] = 127; motor[RightForward] = 20; motor[LeftBack] = 127; motor[RightBack] = 20; wait1Msec(2000); ##no variable is passed in the function definition, so it is instead passed directly to the wait1Msec funstion to determine how long it will rotate }
##main that assigns doSquare function to 7U, doCircle to 8U, and stopMotor to 7D task main() { while(true) { if(vexRT[Btn7U]) doSquare(); if(vexRT[Btn8U]) doCircle(); if(vexRT[Btn7D]) stopMotor(); } }
<meta name="robots" content="noindex" />
-- (c) Fordham University Robotics and Computer Vision