Xbox 360 controllers

I am relatively new to java and i was wondering if anyone has gotten a xbox360 controller was using one. If so how do you hook it up? Can you just use the Joystick class in java? and How do you distinguish between axises in java? any answers would be greatly appreciated and I do have a wireless and a wired controller if that makes it easier.

We are using a wired Xbox 360 controller in Java with no problems. Just install the drivers on the Classmate, plug it in, and access it using the Joystick class.

For more information, and a mapping of controller axes to Joystick class axes, see: http://www.chiefdelphi.com/forums/showthread.php?threadid=82825

I can get the Xbox360 controller hooked up but actually using it to drive in java with multiple joysticks on the controller and if someone could tell me what buttons are what in java?
But the thing I really don’t understand is how you get multiple joysticks on the controller working and pick one to use?

Read the link in my reply.

Axis indexes:
1 - LeftX
2 - LeftY
3 - Triggers (Each trigger = 0 to 1, axis value = right - left)
4 - RightX
5 - RightY
6 - DPad Left/Right

Button mapping matches Windows Control Panel>Game Pads display

So you define the Joystick like:


Joystick mXboxController = new Joystick(1); // Where "1" is the index of the joystick (you can set this in the Driver Station software).

To read an axis (like the left stick Y axis), simply do:


double axisValue = mXboxController.getRawAxis(2); // Where "2" is the index of the Y axis on the left stick (see above)

To read a button, simply do:


boolean buttonPressed = mXboxController.getRawButton(1); // Where "1" is the index of the button reported by the Windows Control Panel "Game Controllers" display

Thank you so much this has been a huge help the only thing i need now is the button layout and i can get that

just remember to set a buffer b/c the sticks are waay too sensitive

Specifically, the sticks don’t return to the same position when you let go, so you’ll want to program in a small (10 in each direction) deadband so that you don’t have crawling robots.

and how exactly do you set that in the code

I’m not sure on the FRC specifics, but assuming a range of 0-255 with 127 being the middle (I dunno if that’s how Xbox joysticks are defined so adjust accordingly)… just if (xBox < 140 || xBox > 110) { return 127;} or something like that.

How can you use the left stick on the xbox controller to program an arcade drive on Java? Furthermore, how can you take input from the bumpers and the X,Y,B, and A buttons? Any sample code would be appreciated.

Do you understand how to program an acrade drive with a joystick? Do you understand how to read a button from a joystick?

This post with code may help.

I am familiar with programming a tank drive, but I am unsure of how to program an arcade drive with a joystick. I know how to read joystick input from the xbox controller, but I am still slightly confused about how to read input from the letter buttons on an xbox controller.

Also, there are some example code posts here on CD. I’ll link to one post where there is some example Java code to get you pointed in the right direction on how to program your Arcade drive. Great thread

In Java, you would need some kind of control loop.


if(Math.abs(xboxControler.getRawAxis(2)) > .1)
{
    //do something
}

In the above example, the loop checks and makes sure that the value of the stick is above the “dead band” whether it is positive or negative.

thanks for all the help!