Go to Post That Billfred guy is going to pay for this one. - Bcahn836 [more]
Home
Go Back   Chief Delphi > FIRST > General Forum
CD-Media   CD-Spy  
portal register members calendar search Today's Posts Mark Forums Read FAQ rules

 
Reply
 
Thread Tools Rating: Thread Rating: 6 votes, 5.00 average. Display Modes
  #1   Spotlight this post!  
Unread 18-01-2011, 22:23
JewishDan18's Avatar
JewishDan18 JewishDan18 is offline
Registered User
FRC #1700
Team Role: Engineer
 
Join Date: Feb 2009
Rookie Year: 2007
Location: Sunnyvale, CA
Posts: 185
JewishDan18 is a splendid one to beholdJewishDan18 is a splendid one to beholdJewishDan18 is a splendid one to beholdJewishDan18 is a splendid one to beholdJewishDan18 is a splendid one to beholdJewishDan18 is a splendid one to behold
Re: XBox 360 Controller Programming in LabView

So it would be axis 6? I messed around with it in Java last year, and I dont remember getting anything. I'll try again though, since it would be excellent to get working!
Reply With Quote
  #2   Spotlight this post!  
Unread 18-01-2011, 23:33
imac256 imac256 is offline
Registered User
AKA: Ian McInerney
FRC #2022 (Titan Robotics)
Team Role: Mentor
 
Join Date: Jun 2009
Rookie Year: 2009
Location: Aurora, IL
Posts: 30
imac256 is a glorious beacon of lightimac256 is a glorious beacon of lightimac256 is a glorious beacon of lightimac256 is a glorious beacon of lightimac256 is a glorious beacon of light
Re: XBox 360 Controller Programming in LabView

My team experimented with the Xbox 360 controller last year and found the following mappings (C++ code is available here, some documentation, including the following mappings, can be found here):

The buttons on the controller follow this mapping

1: A
2: B
3: X
4: Y
5: Left Bumper
6: Right Bumper
7: Back
8: Start
9: Left Joystick
10: Right Joystick

The axis on the controller follow this mapping
(all output is between -1 and 1)
  • 1: Left Stick X Axis
    -Left:Negative ; Right: Positive
  • 2: Left Stick Y Axis
    -Up: Negative ; Down: Positive
  • 3: Triggers
    -Left: Positive ; Right: Negative
  • 4: Right Stick X Axis
    -Left: Negative ; Right: Positive
  • 5: Right Stick Y Axis
    -Up: Negative ; Down: Positive
  • 6: Directional Pad (Not recommended, buggy)
__________________
- Ian McInerney
Alumni & Mentor, Team 2022 Titan Robotics
Junior, Iowa State University majoring in Electrical Engineering
Reply With Quote
  #3   Spotlight this post!  
Unread 19-01-2011, 15:21
Austin3324 Austin3324 is offline
Lead Programmer Team 3324
FRC #3324 (Metrobots)
Team Role: Programmer
 
Join Date: Apr 2010
Rookie Year: 2008
Location: Columbus, Ohio
Posts: 10
Austin3324 is an unknown quantity at this point
Re: XBox 360 Controller Programming in LabView

Well, I got everything to work. All buttons, all of the axes (forward, backward, left, and right): Everything.

The only problem that I have is that I have to figure out how to interface the code that I have with the Project code, but that'll be solved in time. As I continue to go, I'll post my VI's here for all to see.

As of now, I hope that I can be of assistance to any team that is using LabView and is also considering using an XBox 360 controller to control their robot.

Thanks for all of your help thus far!

Austin

EDIT:

There was an error in the code that I corrected. I had accidentally set what should have been the X Axis Rotation to the Y Axis Rotation. (NOTE: X Axis Rotation is Left-Right on the right thumbstick and Y Axis Rotation is Up-Down on the right thumbstick.)


Here is the mapping that I have found out as I have listed in the VI:

X Axis: Left Thumbstick Left-Right
X Axis Rotation: Right Thumbstick Left-Right
Y Axis: Left Thumb Stick (Needs to be negated or else up-down controlls are inverted)
Y Axis Rotation: Right Thumb Stick (Needs to be negated or else up-down controlls are inverted)
Z Axis (>0): Left Trigger
Z Axis (<0): Right Trigger

1: A Button
2: B Button
3: X Button
4: Y Button
5: Left Bumper
6: Right Bumper
7: Stop/Back Button
8: Start Button
9: Left Thumbstick Button
10: Right Thumbstick Button

DPAD:
-1: No Thumbpad Button
0: North Thumbpad Button
45: North-East Thumbpad Button
90: East Thumbpad Button
135: South-East Thumbpad Button
180: South Thumbpad Button
225: South-West Thumbpad Button
270: West Thumbpad Button
315: North-West Thumbpad Button
Attached Files
File Type: vi XBox 360 Controller.vi (9.0 KB, 413 views)

Last edited by Austin3324 : 19-01-2011 at 19:45.
Reply With Quote
  #4   Spotlight this post!  
Unread 23-01-2011, 10:36
Austin3324 Austin3324 is offline
Lead Programmer Team 3324
FRC #3324 (Metrobots)
Team Role: Programmer
 
Join Date: Apr 2010
Rookie Year: 2008
Location: Columbus, Ohio
Posts: 10
Austin3324 is an unknown quantity at this point
Re: XBox 360 Controller Programming in LabView

Ok, well, in my attempts to interface my program with the FRC Project, I discovered one very important thing: This code only works on the host computer, not the cRIO.

I have started to muck around with trying to get LabView to read the controller using the WPI Joystick VIs and got some functionality. I was able to get it to read both thumbsticks in both the X and Y Axis, the triggers, and the X Axis on the thumbpad. The only downside is that, at least in my opinion, since all of those were from the six axes already built into the code, I opted to go in and modify the underlying WPI code to allow for a seventh axis (and, if it works, it will soon become more). I have no idea whether or not this will do anything nor whether I could do some serious damage to the program by modifying the VIs at such a base level.

It claims to be fully compatible and able to compiled, but I haven't been able to actually upload it and test my extra axis. I also don't even know if what I'm doing could help since I don't actually know if the controller communicates over more than six axes.

If anyone could help with these modifications, I would be most grateful, and if you just want to know how to actually get LabView to read the XBox 360 controller, then I am glad that I could help you.

Austin

Included as attachments are the version of the Teleop VI that I am using to test the controller, the WPI_JoystickGet VI that I have modified to get a seventh axis, and the WPI_JoystickCache VI that actually is where I created my seventh axis in.
Attached Files
File Type: vi Teleop.vi (16.9 KB, 524 views)
File Type: vi WPI_JoystickCache.vi (12.0 KB, 188 views)
File Type: vi WPI_JoystickGet.vi (16.6 KB, 222 views)
Reply With Quote
  #5   Spotlight this post!  
Unread 27-01-2011, 19:36
Simmers1912 Simmers1912 is offline
Registered User
FRC #1912
 
Join Date: Jan 2011
Location: Slidell
Posts: 1
Simmers1912 is an unknown quantity at this point
Re: XBox 360 Controller Programming in LabView

Hey, our team is also trying to controll our robot with an Xbox controller and we have been following your thread. We however wanted to know if you had found a way to incorporate the rumble pack in the Xbox 360 controller into the labview code. Thank you for your time.
Reply With Quote
Reply


Thread Tools
Display Modes Rate This Thread
Rate This Thread:

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Forum Jump


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

The Chief Delphi Forums are sponsored by Innovation First International, Inc.


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