Chief Delphi

Chief Delphi (http://www.chiefdelphi.com/forums/index.php)
-   Java (http://www.chiefdelphi.com/forums/forumdisplay.php?f=184)
-   -   Help !!!! (http://www.chiefdelphi.com/forums/showthread.php?t=104936)

Team1605 22-03-2012 10:32

Help !!!!
 
i need serious help how can i get the buttons to work on my joystick how do i program it ??? here is my code is it correct ??

Code:

/*----------------------------------------------------------------------------*/
/* Copyright (c) FIRST 2008. All Rights Reserved.                            */
/* Open Source Software - may be modified and shared by FRC teams. The code  */
/* must be accompanied by the FIRST BSD license file in the root directory of */
/* the project.                                                              */
/*----------------------------------------------------------------------------*/

package edu.wpi.first.wpilibj.templates;


import edu.wpi.first.wpilibj.Joystick.AxisType;
import edu.wpi.first.wpilibj.*;

/**
 * The VM is configured to automatically run this class, and to call the
 * functions corresponding to each mode, as described in the SimpleRobot
 * documentation. If you change the name of this class or the package after
 * creating this project, you must also update the manifest file in the resource
 * directory.
 */
public class Team1605 extends SimpleRobot {
   
   
    Joystick stickDriverLeft = new Joystick(1);
    Joystick stickDriverRight = new Joystick(2);
   
   
    Jaguar leftMotor = new Jaguar(2);
    Jaguar rightMotor = new Jaguar(1);
    Jaguar shooterMotor1 = new Jaguar(3);
    Jaguar shooterMotor2 = new Jaguar(4);
    Jaguar gatherMotor1 = new Jaguar(5);
    Jaguar gatherMotor2 = new Jaguar (6);
   
    RobotDrive robotDrive = new RobotDrive(leftMotor,rightMotor);
    Shooter shooter = new Shooter(shooterMotor1,shooterMotor2);
    Gatherer gatherer = new Gatherer(gatherMotor1, gatherMotor2);
   
    final int TRIGGER_NUMBER = 1;
    final int GATHER_START_BUTTON = 2;
    final int GATHER_STOP_BUTTON = 3;
   
   
    /**
    * This function is called once each time the robot enters autonomous mode.
    */
    public void autonomous() {
       
    }

    /**
    * This function is called once each time the robot enters operator control.
    */
    public void OperatorControl() {
        while(isOperatorControl() && isEnabled())
    {
       
        robotDrive.tankDrive(stickDriverLeft.getAxis(AxisType.kY), stickDriverRight.getAxis(AxisType.kY));
       
       
        if(stickDriverRight.getRawButton(TRIGGER_NUMBER)) {
          shooter.set(1);
        }
        else {
            shooter.set(0);
        }
       
       
        if(stickDriverRight.getRawButton(GATHER_START_BUTTON)) {
            gatherer.set(1);
        }
        else if(stickDriverRight.getRawButton(GATHER_STOP_BUTTON)) {
            gatherer.set(0);
        }
        Timer.delay(.01);
    }

    }
}


2869Robotics 22-03-2012 13:02

Re: Help !!!!
 
The way that you have your trigger set up. As long as you hold the trigger down the shooter will be set at 1 but if you let go of the trigger it will be set back at 0. Do you want the trigger to toggle the shooter on and off?

NS_Radication 28-03-2012 13:37

Re: Help !!!!
 
Can someone posta code for a toggle button or for an array of buttons that can change speeds with a press, not held down? This would be very help!

Thank you and Happy Competition!

Ginto8 28-03-2012 15:23

Re: Help !!!!
 
Both toggle and cycle buttons are based on a button "press" instead of just being held down. To detect when a button is pressed:
Code:

// outside the "checking" loop
boolean prevState = false;

// inside checking loop; can be within continuous or periodic
boolean currentState = joy.getRawButton(DESIRED_BUTTON);
if(currentState && !prevState) {
    // Button DESIRED_BUTTON is newly pressed
    // Do stuff here
}
prevState = currentState;

To do a toggle, have an extra boolean (e.g. tracking), then when the button is pressed:
Code:

tracking = !tracking;
To do a cycle, have an int (e.g. basketChoice) and do this on button pressed:
Code:

basketChoice = (basketChoice+1)%NUM_CHOICES;

Team1605 28-03-2012 15:52

Re: Help !!!!
 
i need help. in tank drive one of my wheels keep spinning and the other responds properly with one joystick.MY SHOOTER GATHERER AND BRIDGE HAND WORK. how can i fix this. this is my code :

Code:

/*----------------------------------------------------------------------------*/
/* Copyright (c) FIRST 2008. All Rights Reserved.                            */
/* Open Source Software - may be modified and shared by FRC teams. The code  */
/* must be accompanied by the FIRST BSD license file in the root directory of */
/* the project.                                                              */
/*----------------------------------------------------------------------------*/

package edu.wpi.first.wpilibj.templates;


import edu.wpi.first.wpilibj.Joystick.AxisType;
import edu.wpi.first.wpilibj.*;

/**
 * The VM is configured to automatically run this class, and to call the
 * functions corresponding to each mode, as described in the SimpleRobot
 * documentation. If you change the name of this class or the package after
 * creating this project, you must also update the manifest file in the resource
 * directory.
 */
public class Team1605 extends SimpleRobot {
   
   
    Joystick stickDriverLeft = new Joystick(1);
    Joystick stickDriverRight = new Joystick(2);
   
   
    Jaguar leftMotor = new Jaguar(2);
    Jaguar rightMotor = new Jaguar(1);
    Jaguar shooterMotor1 = new Jaguar(3);
    Jaguar shooterMotor2 = new Jaguar(4);
    Jaguar gatherMotor1 = new Jaguar(5);
    Jaguar gatherMotor2 = new Jaguar (6);
    Victor bridgeHandMotor = new Victor(7);
    RobotDrive robotDrive = new RobotDrive(leftMotor,rightMotor);
    Shooter shooter = new Shooter(shooterMotor1,shooterMotor2);
    Gatherer gatherer = new Gatherer(gatherMotor1, gatherMotor2);
    BridgeHand bridgeHand = newBridgHand(bridgeHandMotor);
   
   
   
    /**
    * This function is called once each time the robot enters autonomous mode.
    */
    public void autonomous() {
       
    }

    /**
    * This function is called once each time the robot enters operator control.
    */
    public void OperatorControl() {
        while(isOperatorControl() && isEnabled())
    {
       
        robotDrive.tankDrive(stickDriverLeft.getAxis(Joystick.AxisType.kY), stickDriverRight.getAxis(Joystick.AxisType.kY));
       
       
        if(stickDriverRight.getButton(Joystick.AxisType.kTrigger)) {
          shooter.set(1);
        }
        else {
            shooter.set(0);
        }
       
       
        if(stickDriverLeft.getButton(Joystick.ButtonType.kTrigger)) {
            gatherer.set(1);
        }
        else {
            gatherer.set(0);
        }
            bridgeHand.set(stickDriverRight.getAxis(Joystick.AxisType.kX));
       
Timer.delay(.01);
    }

    }
}


NS_Radication 28-03-2012 23:59

Re: Help !!!!
 
Quote:

Originally Posted by Ginto8 (Post 1150800)
To do a cycle, have an int (e.g. basketChoice) and do this on button pressed:
Code:

basketChoice = (basketChoice+1)%NUM_CHOICES;

What can this do? Could this be used to add a ball count to the robot.

Ginto8 29-03-2012 10:20

Re: Help !!!!
 
Quote:

Originally Posted by NS_Radication (Post 1150998)
What can this do? Could this be used to add a ball count to the robot.

This is called modular arithmetic. You probably don't want to use that particular method for counting balls, because if, for example, your NUM_CHOICES were 3, then as balls enter the count would go 0,1,2,0,1,2, instead of 0,1,2,3,4 as they entered and 4,3,2,1,0 as they left.


All times are GMT -5. The time now is 10:05.

Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Copyright © Chief Delphi