Thread: Gamepad help
View Single Post
  #2   Spotlight this post!  
Unread 12-03-2012, 15:52
Jay Meldrum's Avatar
Jay Meldrum Jay Meldrum is offline
Registered User
FRC #0067 (H.O.T.)
Team Role: Engineer
 
Join Date: Jan 2012
Rookie Year: 2003
Location: Michigan
Posts: 42
Jay Meldrum has much to be proud ofJay Meldrum has much to be proud ofJay Meldrum has much to be proud ofJay Meldrum has much to be proud ofJay Meldrum has much to be proud ofJay Meldrum has much to be proud ofJay Meldrum has much to be proud ofJay Meldrum has much to be proud ofJay Meldrum has much to be proud of
Re: Gamepad help

First you have to declare them in the main class
Code:
class BuiltinDefaultCode : public IterativeRobot
{
        //Declare Controllers
        Joystick *m_Gamepad1;
        Joystick *m_Gamepad2;
}
Then initialize them in the main function

Code:
BuiltinDefaultCode(void)
{
                //Initialize Controllers
                m_Gamepad1 = new Joystick(1);
                m_Gamepad2 = new Joystick(2);
}
You then can call the joystick button/axis using various commands. We tend to use the GetRawAxis/Button Function.

WPILib Joystick Doxygen
http://www.virtualroadside.com/WPILi..._joystick.html

Code:
 void TeleopDrive(void)
{
       m_robotDrive->ArcadeDrive((-m_Gamepad1->GetRawAxis(LEFT_Y)), -(m_Gamepad1->GetRawAxis(RIGHT_X)));
}

void TeleopArmPosition(void)
{
         if(m_Gamepad1->GetRawButton(BUTTON_1))
          {
                 ArmPosition(ARM_BRIDGE);
          }
}
Just for ease we #define all the different axis/buttons
Code:
//Define Buttons
#define BUTTON_1 1

//Define Axis
#define LEFT_X 1
For reference, here is a map for using GetRawButton/Axis with the Logitech F310:

-Buttons 1-8 are used. They are not labeled, you can try reading all 8 and seeing what maps to what. I know that 9-12 are not used.
Axis 1 -> Left X
Axis 2 -> Left Y
Axis 3 -> Sum of L2 and R2 analog triggers - One is positive, the other is negative, both or neither is 0.
Axis 4 -> Right X
Axis 5 -> Right y
Axis 6 -> D-Pad X (binary like above - Note that you can't read D-Pad Y)
Reply With Quote