Пример #1
0
void liftControl(int range){

	//motor direction is translated from joystick position
	//general motor speed it determined from modifier buttons
	motor[ScissorLeft] = scaleForMotor(joystick.joy2_y1, range); //scale -range to +range
	motor[ScissorRight] = scaleForMotor(joystick.joy2_y2, range);
}
Пример #2
0
void driveControl(int range){

	//motor speed and direction is directly translated from joystick position
	motor[LeftFront] = scaleForMotor(joystick.joy1_y1, range); //scale -range, +range
	motor[LeftRear]  = scaleForMotor(joystick.joy1_y1, range);
	motor[RightFront] = scaleForMotor(joystick.joy1_y2, range);
	motor[RightRear]  = scaleForMotor(joystick.joy1_y2, range);
}
Пример #3
0
task main()
{
// zero all motors and servos-----------------------------------------------------------------------------------
			servo[clawservo1] = 0;								//set servo to zero
			servo[clawservo2] = 0;								//set servo to zero
  		wait1Msec(1000);											//Pause to let servos move
			motor[motorLEFT] = 0;                 // Turn Motor Off
			motor[motorRIGHT] = 0;                // Turn Motor Off
     	motor[motorARM] = 0;                 	// Turn Motor Off
     	int pos = MIN_POS;

// Start the loop ----------------------------------------------------------------------------------------------
 while(true)
  {

// Right and Left Joysticks-------------------------------------------------------------------------------------
	getJoystickSettings(joystick);  					// Update Buttons and Joysticks for other functions
	motor[motorLEFT]  = scaleForMotor(joystick.joy1_y1);// MotorLEFT's powerlevel is set to the y1 stick's current position.
	motor[motorRIGHT] = scaleForMotor(joystick.joy1_y2);// MotorRIGHT's powerlevel is set to the y2 stick's current position.

//--------------------------------------------------------------------------------------------------------------
//	BUTTONS	-	COMMENT OUT UNUSED BUTTONS
			if(joy1Btn (1)== 1)      							// If Joy1-Button (1 blue X) is pressed:
	    		{
						//PlaySound(soundShortBlip);		// play the sound, 'soundshortblip'
	    		}
//--------------------------------------------------------------------------------------------------------------
			else if(joy1Btn (2)== 1)      				// If Joy1-Button (2 green A) is pressed:
					{
						//PlaySound(soundShortBlip);  	// play the sound, 'soundshortblip'
					}
//--------------------------------------------------------------------------------------------------------------
			else if(joy1Btn (3)== 1)      				// If Joy1-Button (3 red B) is pressed:
	    		{
						//PlaySound(soundShortBlip);  	// play the sound, 'soundshortblip'
	    		}
//--------------------------------------------------------------------------------------------------------------
			else if(joy1Btn (4)== 1)      				// If Joy1-Button (4 yellow Y) is pressed:
	    		{
						//PlaySound(soundShortBlip);  	// play the sound, 'soundshortblip'
					}
//--------------------------------------------------------------------------------------------------------------
			else if(joy1Btn (5)== 1)      				// If Joy1- Left Button is pressed:
    			{
    				motor[motorARM] = 50;          // Motor is run at a power level of 100.
    				wait1Msec(10);									// Wait for motor to start
    			}
//--------------------------------------------------------------------------------------------------------------
			else if(joy1Btn (6)== 1)      				// If Joy1- Right Button is pressed:
		//else if (joy1Btn(6))									// this is how it was written in the sample code
				{
						pos -= DELTA_POS;								// move servo -1 step
            if (pos < MIN_POS)							// if servo is at minimum...
            {
                pos = MIN_POS;							// reset minimum position
            }
						servo[servo1] = pos;						// move servo to new position
		        servo[servo2] = pos;						// move servo to new position
    		    wait1Msec(10);									// wait for servo to move
	    		}
//--------------------------------------------------------------------------------------------------------------
			else if(joy1Btn (7)== 1)      				// If Joy1- Left Trigger is pressed:
	    		{
						motor[motorARM] = -50;         // Motor is run at a power level of -100.
  	  			wait1Msec(10);									// Wait for motor to start
	    		}
//--------------------------------------------------------------------------------------------------------------
	    else if(joy1Btn (8)== 1)      				// If Joy1- Right Trigger is pressed:
		//else if (joy1Btn(8))									// this is how it was written in the sample code
	    		{
            pos += DELTA_POS;								// move servo 1 step
            if (pos > MAX_POS)							// if servo is at maximum...
            {
                pos = MAX_POS;							// reset maximum position
            }
            servo[servo1] = pos;						// move servo to new position
		        servo[servo2] = pos;						// move servo to new position
    		    wait1Msec(10);									// wait for servo to move
        	}
//--------------------------------------------------------------------------------------------------------------
	    else if(joystick.joy1_TopHat == 0)    // If 0 button on joy1's D-Pad (up) is pressed:
    			{
    				motor[motorARM] = 50;          // Motor is run at a power level of 100.
    				wait1Msec(10);									// Wait for motor to start
    			}
//--------------------------------------------------------------------------------------------------------------
			else if(joystick.joy1_TopHat == 1)    // If 1 button on joy1's D-Pad (up right) is pressed:
    			{
    				motor[motorARM] = 50;          // Motor is run at a power level of 100.
    				wait1Msec(10);									// Wait for motor to start
    			}
//--------------------------------------------------------------------------------------------------------------
			else if(joystick.joy1_TopHat == 2)    // If 2 button on joy1's D-Pad (right) is pressed:
	    		{
						//PlaySound(soundShortBlip);  	// play the sound, 'soundshortblip'
	    		}
//--------------------------------------------------------------------------------------------------------------
			else if(joystick.joy1_TopHat == 3)    // If 3 button on joy1's D-Pad (right down) is pressed:
    			{
    				motor[motorARM] = -50;         // MotorA is run at a power level of -100.
    				wait1Msec(10);									// Wait for motor to start
    			}
//-------------------------------------------------------------------------------------------------------------
			else if(joystick.joy1_TopHat == 4)    // If 4 button on joy1's D-Pad (down) is pressed:
    			{
  	  			motor[motorARM] = -50;         // MotorA is run at a power level of -100.
  	  			wait1Msec(10);									// Wait for motor to start
  	  		}
//-------------------------------------------------------------------------------------------------------------
			else if(joystick.joy1_TopHat == 5)    // If 5 button on joy1's D-Pad (left down) is pressed:
   				{
   	 				motor[motorARM] = -50;         // MotorA is run at a power level of -100.
    				wait1Msec(10);									// Wait for motor to start
					}
//------------------------------------------------------------------------------------------------------------
			else if(joystick.joy1_TopHat == 6)    // If 6 button on joy1's D-Pad (left) is pressed:
	    		{
						//PlaySound(soundShortBlip); 		// play the sound, 'soundshortblip'
	    		}
//------------------------------------------------------------------------------------------------------------
			else if(joystick.joy1_TopHat == 7)    // If 7 button on joy1's D-Pad (left up) is pressed:
 					{
    				motor[motorARM] = 50;          // Motor is run at a power level of 100.
    				wait1Msec(10);
    			}
//------------------------------------------------------------------------------------------------------------
    	else                            			// If Joy1-Buttons are NOT pressed:
    			{
     				motor[motorARM] = 0;           	// Turn Arm Motor Off
     				nxtDisplayTextLine(2, "angle: %.0f", angleFromAccel(accelerometer));
//						int angle = angleFromAccel(accelerometer);
//						servo[servo1] = (0 + angle);//servo value based on sensor
//						servo[servo2] = (0 + angle);//servo value based on sensor


//     				readAccel(accelerometer);
//     				if(accelerometer.x>0)												// TEMP CODE read sensor
//		      																							// TEMP CODE formula for angle
//         		servo[servo1] = pos + DELTA_POS;						// TEMP CODE move servo to new position
//		        servo[servo2] = pos + DELTA_POS;						// TEMP CODE move servo to new position


    			}
//-----------------------------------------------------------------------------------------------------------------
  }	// End While Loop ---------------------------------------------------------------------------------------------
}   // End Task Main ----------------------------------------------------------------------------------------------
Пример #4
0
//--------------------------------------------------------------------------------------------------------------
task main()
{																																// Start Main Loop
	initializeRobot(); 																						// Get ready! see void initalizerobot() above
	waitForStart();   																						// wait for start of tele-op phase From FCS
	// Start the loop ----------------------------------------------------------------------------------------------
	while(true)
	{																															// Start While loop
		// Right and Left Joysticks-------------------------------------------------------------------------------------
		getJoystickSettings(joystick);  															// Update Buttons and Joysticks
		motor[motorLEFT]  = scaleForMotor(joystick.joy2_y1);
		motor[motorRIGHT] =-scaleForMotor(joystick.joy2_y2);
		// Buttons------------------------------------------------------------------------------------------------------
		if(joy1Btn (1)== 1)  		    																// If Joy1-Button (1 blue X) is pressed:
		{																													//1open bracket
			ENCODER_1_TRGT = ARM_1_COUNT_1 - nMotorEncoder[motorARM1];
			ENCODER_2_TRGT = ARM_2_COUNT_1 - nMotorEncoder[motorARM2];
			ARM_2_STATE = 1;																			// Trigger for Stage 2
			//---------
			if (ENCODER_1_TRGT > DEAD_ARM_1)
			{																											//2open bracket
				PlaySound(soundShortBlip);
				wait1Msec(500);
				nMotorEncoderTarget[motorARM1] = ENCODER_1_TRGT;			// set the  target for Motor Encoder of Motor ARM

				motor[motorARM1] = POWER_1;               						// motor ARM is run at high power level
				while(nMotorRunState[motorARM1] != runStateIdle)  		// while Motor ARM hasn't reached target yet:
				{																										//3open - wait for motor to catch up
					servo[clawservo1] = SERVO_ANGLE_1;									// move servo to new position
					servo[clawservo2] = SERVO_ANGLE_1;									// move servo to new position
					motor[motorLEFT]  = scaleForMotor(joystick.joy1_y1);// allow robot to drive while arm moves
					motor[motorRIGHT] = -scaleForMotor(joystick.joy1_y2);// allow robot to drive while arm moves
				}																										//3close
				ENCODER_1_TRGT = 0;
				motor[motorARM1] = 0;              									// stop motor and hold position
			}
			if (ENCODER_2_TRGT > DEAD_ARM_2)
			{
				nMotorEncoderTarget[motorARM2] = ENCODER_2_TRGT;			// set the  target for Motor Encoder of Motor ARM
				motor[motorARM2] = POWER_2;               						// motor ARM is run at high power level
				while(nMotorRunState[motorARM2] != runStateIdle)  		// while Motor ARM hasn't reached target yet:
				{																										// wait for motor to catch up
					motor[motorLEFT]  = scaleForMotor(joystick.joy1_y1);// allow robot to drive while arm moves
					motor[motorRIGHT] =-scaleForMotor(joystick.joy1_y2);// allow robot to drive while arm moves
				}
				servo[clawservo1] = SERVO_ANGLE_1;									// move servo to new position
				servo[clawservo2] = SERVO_ANGLE_1;									// move servo to new position
				ENCODER_2_TRGT = 0;
			}																											// 2close
			//---------
			if (ENCODER_2_TRGT <  -DEAD_ARM_2)
			{
				nMotorEncoderTarget[motorARM2] = ENCODER_2_TRGT;			// set the  target for Motor Encoder of Motor ARM
				motor[motorARM2] = -POWER_2;               						// motor ARM is run at high power level
				while(nMotorRunState[motorARM2] != runStateIdle)  		// while Motor ARM hasn't reached target yet:
				{																										// wait for motor to catch up
					//						servo[clawservo1] = SERVO_ANGLE_1;									// move servo to new position
					//						servo[clawservo2] = SERVO_ANGLE_1;									// move servo to new position
					motor[motorLEFT]  = scaleForMotor(joystick.joy1_y1);// allow robot to drive while arm moves
					motor[motorRIGHT] =-scaleForMotor(joystick.joy1_y2);// allow robot to drive while arm moves
				}
				servo[clawservo1] = SERVO_ANGLE_1;									// move servo to new position
				servo[clawservo2] = SERVO_ANGLE_1;									// move servo to new position
				ENCODER_2_TRGT = 0;
			}

			else if (ENCODER_1_TRGT <  -DEAD_ARM_1)
			{																											//4open
				nMotorEncoderTarget[motorARM1] = ENCODER_1_TRGT;			// set the  target for Motor Encoder of Motor ARM
				motor[motorARM1] = -POWER_1;               						// motor ARM is run at high power level
				while(nMotorRunState[motorARM1] != runStateIdle)  		// while Motor ARM hasn't reached target yet:
				{																										//5open - wait for motor to catch up
					servo[clawservo1] = SERVO_ANGLE_1;									// move servo to new position
					servo[clawservo2] = SERVO_ANGLE_1;									// move servo to new position
					motor[motorLEFT]  = scaleForMotor(joystick.joy1_y1);// allow robot to drive while arm moves
					motor[motorRIGHT] =-scaleForMotor(joystick.joy1_y2);// allow robot to drive while arm moves
				}																										//5close
				motor[motorARM1] = 0;              									// stop motor and hold position
				ENCODER_1_TRGT = 0;
			}																											//4close
			//---------

			motor[motorARM1] = 0;              									// stop motor and hold position
			motor[motorARM2] = 0;              									// stop motor and hold position
		} 																														//1close
		// Button 2 Stage 1----------------------------------------------------------------------------------------------
		else if(joy1Btn (2)== 1)																				// If Joy1-Button (2 green B) is pressed:
		{																													//1open bracket
			ENCODER_1_TRGT = ARM_1_COUNT_2 - nMotorEncoder[motorARM1];
			ENCODER_2_TRGT = ARM_2_COUNT_2 - nMotorEncoder[motorARM2];
			//---------
			if (ENCODER_1_TRGT > DEAD_ARM_1)
			{while (ENCODER_2_TRGT > DEAD_ARM_2)
				{
					nMotorEncoderTarget[motorARM1] = ENCODER_1_TRGT;			// set the  target for Motor Encoder of Motor ARM
					motor[motorARM1] = POWER_1;               						// motor ARM is run at high power level
					while(nMotorRunState[motorARM1] != runStateIdle)  		// while Motor ARM hasn't reached target yet:
					{																										// wait for motor to catch up
						servo[clawservo1] = SERVO_ANGLE_2;									// move servo to new position
						servo[clawservo2] = SERVO_ANGLE_2;									// move servo to new position
						motor[motorLEFT]  = scaleForMotor(joystick.joy1_y1);// allow robot to drive while arm moves
						motor[motorRIGHT] =-scaleForMotor(joystick.joy1_y2);// allow robot to drive while arm moves
					}

					nMotorEncoderTarget[motorARM2] = ENCODER_2_TRGT;			// set the  target for Motor Encoder of Motor ARM
					motor[motorARM2] = POWER_2;               						// motor ARM is run at high power level
					while(nMotorRunState[motorARM2] != runStateIdle)  		// while Motor ARM hasn't reached target yet:
					{																										// wait for motor to catch up
						servo[clawservo1] = SERVO_ANGLE_2;									// move servo to new position
						servo[clawservo2] = SERVO_ANGLE_2;									// move servo to new position
						motor[motorLEFT]  = scaleForMotor(joystick.joy1_y1);// allow robot to drive while arm moves
						motor[motorRIGHT] =-scaleForMotor(joystick.joy1_y2);// allow robot to drive while arm moves
					}
					ENCODER_1_TRGT = 0;
					ENCODER_2_TRGT = 0;
					motor[motorARM1] = 0;              									// stop motor and hold position
			}}
			//---------
			else if (ENCODER_2_TRGT <  -DEAD_ARM_2)
			{
				while  (ENCODER_1_TRGT <  -DEAD_ARM_1)
				{
					nMotorEncoderTarget[motorARM2] = ENCODER_2_TRGT;			// set the  target for Motor Encoder of Motor ARM
					motor[motorARM2] = -POWER_2;               						// motor ARM is run at high power level
					while(nMotorRunState[motorARM2] != runStateIdle)  		// while Motor ARM hasn't reached target yet:
					{																										// wait for motor to catch up
						servo[clawservo1] = SERVO_ANGLE_2;									// move servo to new position
						servo[clawservo2] = SERVO_ANGLE_2;									// move servo to new position
						motor[motorLEFT]  = scaleForMotor(joystick.joy1_y1);// allow robot to drive while arm moves
						motor[motorRIGHT] =-scaleForMotor(joystick.joy1_y2);// allow robot to drive while arm moves
					}
				}

				nMotorEncoderTarget[motorARM1] = ENCODER_1_TRGT;			// set the  target for Motor Encoder of Motor ARM
				motor[motorARM1] = -POWER_1;               						// motor ARM is run at high power level
				while(nMotorRunState[motorARM1] != runStateIdle)  		// while Motor ARM hasn't reached target yet:
				{																										//5open - wait for motor to catch up
					servo[clawservo1] = SERVO_ANGLE_2;									// move servo to new position
					servo[clawservo2] = SERVO_ANGLE_2;									// move servo to new position
					motor[motorLEFT]  = scaleForMotor(joystick.joy1_y1);// allow robot to drive while arm moves
					motor[motorRIGHT] =-scaleForMotor(joystick.joy1_y2);// allow robot to drive while arm moves
			}}
			//---------
			ENCODER_1_TRGT = 0;
			ENCODER_2_TRGT = 0;

			motor[motorARM1] = 0;              									// stop motor and hold position
			motor[motorARM2] = 0;              									// stop motor and hold position
		}
		//--------------------------------------------------------------------------------------------------------------
		else if(joy1Btn (3)== 1)																	// If Joy1-Button (3 red B) is pressed:
		{																													//1open bracket
			ENCODER_1_TRGT=ARM_1_COUNT_3-nMotorEncoder[motorARM1];
			ARM_2_STATE = 3;																			// Trigger for Stage 2
			//---------
			if (ENCODER_1_TRGT > DEAD_ARM_1)
			{																											//2open bracket
				nMotorEncoderTarget[motorARM1] = ENCODER_1_TRGT;			// set the  target for Motor Encoder of Motor ARM
				motor[motorARM1] = POWER_1;               						// motor ARM is run at high power level
				while(nMotorRunState[motorARM1] != runStateIdle)  		// while Motor ARM hasn't reached target yet:
				{																										//3open - wait for motor to catch up
					servo[clawservo1] = SERVO_ANGLE_3;									// move servo to new position
					servo[clawservo2] = SERVO_ANGLE_3;									// move servo to new position
					motor[motorLEFT]  = scaleForMotor(joystick.joy1_y1);// allow robot to drive while arm moves
					motor[motorRIGHT] =-scaleForMotor(joystick.joy1_y2);// allow robot to drive while arm moves
				}																										//3close
				ENCODER_1_TRGT = 0;
				motor[motorARM1] = 0;              									// stop motor and hold position
			}																											// 2close
			//---------
			else if (ENCODER_1_TRGT <  -DEAD_ARM_1)
			{																											//4open
				nMotorEncoderTarget[motorARM1] = ENCODER_1_TRGT;			// set the  target for Motor Encoder of Motor ARM
				motor[motorARM1] = -POWER_1;               						// motor ARM is run at high power level
				while(nMotorRunState[motorARM1] != runStateIdle)  		// while Motor ARM hasn't reached target yet:
				{																										//5open - wait for motor to catch up
					servo[clawservo1] = SERVO_ANGLE_3;									// move servo to new position
					servo[clawservo2] = SERVO_ANGLE_3;									// move servo to new position
					motor[motorLEFT]  = scaleForMotor(joystick.joy1_y1);// allow robot to drive while arm moves
					motor[motorRIGHT] =-scaleForMotor(joystick.joy1_y2);// allow robot to drive while arm moves
				}																										//5close
				motor[motorARM1] = 0;              									// stop motor and hold position
				ENCODER_1_TRGT = 0;
			}																											//4close
			//---------
			else if	(-DEAD_ARM_1 < ENCODER_1_TRGT < DEAD_ARM_1)
			{
				motor[motorARM1] = 0;              									// stop motor and hold position
			}
			//---------
			if (ARM_2_STATE == 3)      															// If Joy1-Button (1 blue X) is pressed:
			{
				ENCODER_2_TRGT = ARM_2_COUNT_3 - nMotorEncoder[motorARM2];
				if (ENCODER_2_TRGT > DEAD_ARM_2)
				{
					nMotorEncoderTarget[motorARM2] = ENCODER_2_TRGT;			// set the  target for Motor Encoder of Motor ARM
					motor[motorARM2] = POWER_2;               						// motor ARM is run at high power level
					//---------
					while(nMotorRunState[motorARM2] != runStateIdle)  		// while Motor ARM hasn't reached target yet:
					{																										// wait for motor to catch up
						servo[clawservo1] = SERVO_ANGLE_3;									// move servo to new position
						servo[clawservo2] = SERVO_ANGLE_3;									// move servo to new position
						motor[motorLEFT]  = scaleForMotor(joystick.joy1_y1);// allow robot to drive while arm moves
						motor[motorRIGHT] =-scaleForMotor(joystick.joy1_y2);// allow robot to drive while arm moves
					}
					ENCODER_2_TRGT = 0;
				}
				//---------
				else if (ENCODER_2_TRGT <  -DEAD_ARM_2)
				{
					nMotorEncoderTarget[motorARM2] = ENCODER_2_TRGT;			// set the  target for Motor Encoder of Motor ARM
					motor[motorARM2] = -POWER_2;               						// motor ARM is run at high power level
					while(nMotorRunState[motorARM2] != runStateIdle)  		// while Motor ARM hasn't reached target yet:
					{																										// wait for motor to catch up
						servo[clawservo1] = SERVO_ANGLE_3;									// move servo to new position
						servo[clawservo2] = SERVO_ANGLE_3;									// move servo to new position
						motor[motorLEFT]  = scaleForMotor(joystick.joy1_y1);// allow robot to drive while arm moves
						motor[motorRIGHT] =-scaleForMotor(joystick.joy1_y2);// allow robot to drive while arm moves
					}
					ENCODER_2_TRGT = 0;
				}
				//---------
				motor[motorARM2] = 0;              									// stop motor and hold position
				ARM_2_STATE = 0;
			}
		} 																													//1close
		//--------------------------------------------------------------------------------------------------------------
		else if(joy1Btn (4)== 1)																		// If Joy1-Button (4 yellow Y) is pressed:
		{																													//1open bracket
			ENCODER_1_TRGT=ARM_1_COUNT_4-nMotorEncoder[motorARM1];
			ARM_2_STATE = 4;																			// Trigger for Stage 2
			//---------
			if (ENCODER_1_TRGT > DEAD_ARM_1)
			{																											//2open bracket
				nMotorEncoderTarget[motorARM1] = ENCODER_1_TRGT;			// set the  target for Motor Encoder of Motor ARM
				motor[motorARM1] = POWER_1;               						// motor ARM is run at high power level
				while(nMotorRunState[motorARM1] != runStateIdle)  		// while Motor ARM hasn't reached target yet:
				{																										//3open - wait for motor to catch up
					//						servo[clawservo1] = SERVO_ANGLE_1;									// move servo to new position
					//						servo[clawservo2] = SERVO_ANGLE_1;									// move servo to new position
					motor[motorLEFT]  = scaleForMotor(joystick.joy1_y1);// allow robot to drive while arm moves
					motor[motorRIGHT] =-scaleForMotor(joystick.joy1_y2);// allow robot to drive while arm moves
				}																										//3close
				ENCODER_1_TRGT = 0;
				motor[motorARM1] = 0;              									// stop motor and hold position
			}																											// 2close
			//---------
			else if (ENCODER_1_TRGT <  -DEAD_ARM_1)
			{																											//4open
				nMotorEncoderTarget[motorARM1] = ENCODER_1_TRGT;			// set the  target for Motor Encoder of Motor ARM
				motor[motorARM1] = -POWER_1;               						// motor ARM is run at high power level
				while(nMotorRunState[motorARM1] != runStateIdle)  		// while Motor ARM hasn't reached target yet:
				{																										//5open - wait for motor to catch up
					servo[clawservo1] = SERVO_ANGLE_4;									// move servo to new position
					servo[clawservo2] = SERVO_ANGLE_4;									// move servo to new position
					motor[motorLEFT]  = scaleForMotor(joystick.joy1_y1);// allow robot to drive while arm moves
					motor[motorRIGHT] =-scaleForMotor(joystick.joy1_y2);// allow robot to drive while arm moves
				}																										//5close
				motor[motorARM1] = 0;              									// stop motor and hold position
				ENCODER_1_TRGT = 0;
			}																											//4close
			//---------
			else if	(-DEAD_ARM_1 < ENCODER_1_TRGT < DEAD_ARM_1)
			{
				motor[motorARM1] = 0;              									// stop motor and hold position
			}
			//---------
			if (ARM_2_STATE == 4)      															// If Joy1-Button (1 blue X) is pressed:
			{
				ENCODER_2_TRGT = ARM_2_COUNT_4 - nMotorEncoder[motorARM2];
				if (ENCODER_2_TRGT > DEAD_ARM_2)
				{
					nMotorEncoderTarget[motorARM2] = ENCODER_2_TRGT;			// set the  target for Motor Encoder of Motor ARM
					motor[motorARM2] = POWER_2;               						// motor ARM is run at high power level
					//---------
					while(nMotorRunState[motorARM2] != runStateIdle)  		// while Motor ARM hasn't reached target yet:
					{																										// wait for motor to catch up
						servo[clawservo1] = SERVO_ANGLE_4;									// move servo to new position
						servo[clawservo2] = SERVO_ANGLE_4;									// move servo to new position
						motor[motorLEFT]  = scaleForMotor(joystick.joy1_y1);// allow robot to drive while arm moves
						motor[motorRIGHT] =-scaleForMotor(joystick.joy1_y2);// allow robot to drive while arm moves
					}
					ENCODER_2_TRGT = 0;
				}
				//---------
				else if (ENCODER_2_TRGT <  -DEAD_ARM_2)
				{
					nMotorEncoderTarget[motorARM2] = ENCODER_2_TRGT;			// set the  target for Motor Encoder of Motor ARM
					motor[motorARM2] = -POWER_2;               						// motor ARM is run at high power level
					while(nMotorRunState[motorARM2] != runStateIdle)  		// while Motor ARM hasn't reached target yet:
					{																										// wait for motor to catch up
						servo[clawservo1] = SERVO_ANGLE_4;									// move servo to new position
						servo[clawservo2] = SERVO_ANGLE_4;									// move servo to new position
						motor[motorLEFT]  = scaleForMotor(joystick.joy1_y1);// allow robot to drive while arm moves
						motor[motorRIGHT] =-scaleForMotor(joystick.joy1_y2);// allow robot to drive while arm moves
					}
					ENCODER_2_TRGT = 0;
				}
				//---------
				motor[motorARM2] = 0;              									// stop motor and hold position
				ARM_2_STATE = 0;
			}
		} 																													//1close
		//--------------------------------------------------------------------------------------------------------------
		if(joy1Btn (5)== 1)      														// If Joy1-Left Button is pressed:
		{
			motor[motorARM1] = POWER_1;         								// Motor is run at high power level
			wait1Msec(10);																			// Wait for motor to move
		}
		//--------------------------------------------------------------------------------------------------------------
		else if(joy1Btn (6)== 1)      												// If Joy1- Right Button is pressed:
		{
			POS_CLAW -= DELTA_POS;													// move servo -1 step
			if (POS_CLAW < MIN_POS_CLAW)										// if servo is at minimum...
			{
				POS_CLAW = MIN_POS_CLAW;										// reset minimum position
			}
			servo[servo1] = POS_CLAW;												// move servo to new position
			servo[servo2] = POS_CLAW;												// move servo to new position
			wait1Msec(10);																	// wait for servo to move
		}

		//--------------------------------------------------------------------------------------------------------------
		else if(joy1Btn (7)== 1)      												// If Joy1- Left Trigger is pressed:
		{
			motor[motorARM1] = -POWER_1;   									// Motor is run at -high power level
			wait1Msec(10);																	// Wait for motor to start
		}
		//--------------------------------------------------------------------------------------------------------------
		else if(joy1Btn (8)== 1)      												// If Joy1- Right Trigger is pressed:
		{
			POS_CLAW += DELTA_POS;													// move servo 1 step
			if (POS_CLAW > MAX_POS_CLAW)										// if servo is at maximum...
			{
				POS_CLAW = MAX_POS_CLAW;										// reset maximum position
			}
			servo[servo1] = POS_CLAW;												// move servo to new position
			servo[servo2] = POS_CLAW;												// move servo to new position
			wait1Msec(10);																	// wait for servo to move
		}
		//--------------------------------------------------------------------------------------------------------------
		else if(joystick.joy1_TopHat == 0)    								// If 0 button on joy1's D-Pad (up) is pressed:
		{
			motor[motorARM2] = POWER_2;     								// Motor 2 power level.
			wait1Msec(10);																	// Wait for motor 2 to start
		}
		//--------------------------------------------------------------------------------------------------------------
		else if(joystick.joy1_TopHat == 1)    								// If 1 button on joy1's D-Pad (up right) is pressed:
		{
			motor[motorARM2] = POWER_2;     								// Motor 2 power level.
			wait1Msec(10);																	// Wait for motor 2 to start
		}
		//--------------------------------------------------------------------------------------------------------------
		else if(joystick.joy1_TopHat == 2)    								// If 2 button on joy1's D-Pad (right) is pressed:
		{
			PlaySound(soundShortBlip);  											// play the sound, 'soundshortblip'
		}
		//--------------------------------------------------------------------------------------------------------------
		else if(joystick.joy1_TopHat == 3)    								// If 3 button on joy1's D-Pad (rt dn) is pressed:
		{
			motor[motorARM2] = -POWER_2;         						// Motor 2 power level
			wait1Msec(10);																	// Wait for motor to start
		}
		//-------------------------------------------------------------------------------------------------------------
		else if(joystick.joy1_TopHat == 4)    								// If 4 button on joy1's D-Pad (down) is pressed:
		{
			motor[motorARM2] = -POWER_2;    									// Motor 2 power level
			wait1Msec(10);																	// Wait for motor to start
		}
		//-------------------------------------------------------------------------------------------------------------
		else if(joystick.joy1_TopHat == 5)    								// If 5 button on joy1's D-Pad (lt dn) is pressed:
		{
			motor[motorARM2] = -POWER_2;         						// Motor 2 power level
			wait1Msec(10);																	// Wait for motor to start
		}
		//------------------------------------------------------------------------------------------------------------
		else if(joystick.joy1_TopHat == 6)    								// If 6 button on joy1's D-Pad (left) is pressed:
		{																													//1open bracket
			ENCODER_1_TRGT = ARM_1_COUNT_6	-	nMotorEncoder[motorARM1];
			ENCODER_2_TRGT = ARM_2_COUNT_6 	- nMotorEncoder[motorARM2];

			while (ENCODER_2_TRGT <  -DEAD_ARM_2)
			{
				nMotorEncoderTarget[motorARM2] = ENCODER_2_TRGT;			// set the  target for Motor Encoder of Motor ARM
				motor[motorARM2] = -POWER_2;               						// motor ARM is run at high power level
				while(nMotorRunState[motorARM2] != runStateIdle)  		// while Motor ARM hasn't reached target yet:
				{																										// wait for motor to catch up

					motor[motorLEFT]  = scaleForMotor(joystick.joy1_y1);// allow robot to drive while arm moves
					motor[motorRIGHT] =-scaleForMotor(joystick.joy1_y2);// allow robot to drive while arm moves
				}
				ENCODER_2_TRGT = 0;
			}

			while (ENCODER_1_TRGT <  -DEAD_ARM_1)
			{																											//4open
				nMotorEncoderTarget[motorARM1] = ENCODER_1_TRGT;			// set the  target for Motor Encoder of Motor ARM
				motor[motorARM1] = -POWER_1;               						// motor ARM is run at high power level
				while(nMotorRunState[motorARM1] != runStateIdle)  		// while Motor ARM hasn't reached target yet:
				{																										//5open - wait for motor to catch up
					servo[clawservo1] = SERVO_ANGLE_6;									// move servo to new position
					servo[clawservo2] = SERVO_ANGLE_6;									// move servo to new position
					motor[motorLEFT]  = scaleForMotor(joystick.joy1_y1);// allow robot to drive while arm moves
					motor[motorRIGHT] =-scaleForMotor(joystick.joy1_y2);// allow robot to drive while arm moves
				}																										//5close
				ENCODER_1_TRGT = 0;
			}
			motor[motorARM1] = 0;              									// stop motor and hold position
			motor[motorARM2] = 0;              									// stop motor and hold position
		}
		//------------------------------------------------------------------------------------------------------------
		else if(joystick.joy1_TopHat == 7)    								// If 7 button on joy1's D-Pad (lt up) is pressed:
		{
			motor[motorARM2] = POWER_2;          					// Motor 2 power level
			wait1Msec(10);																	// Wait for motor to start
		}
		//------------------------------------------------------------------------------------------------------------
		else                            											// If Joy1-Buttons are NOT pressed:
		{
			motor[motorARM1] = 0;															// Turn Arm Motor 1 Off
			motor[motorARM2] = 0;															// Turn Arm Motor 2 Off
		}
		//------------------------------------------------------------------------------------------------------------
	}//2 End While Loop ----------------------------------------------------------------------------------------
}//1   End Task Main -----------------------------------------------------------------------------------------