Difference between revisions of "ARDUINO MEGA Functions Joysticks"

From ROBOTC API Guide
Jump to: navigation, search
(Joystick Structure Members)
Line 27: Line 27:
 
<br />
 
<br />
  
== Joystick Structure Members ==
+
== TPCJoystick Structure Members ==
 
=== joy1_Buttons ===
 
=== joy1_Buttons ===
 
{| style="color:black;" width="100%" cellpadding="5%" cellspacing="0" border="0"
 
{| style="color:black;" width="100%" cellpadding="5%" cellspacing="0" border="0"

Revision as of 20:42, 10 May 2012

ARDUINOFunctions and Variables → ARDUINO MEGA Functions Joysticks


The Arduino supports a USB based joystick to send data from the PC over the USB link to the controller. You can access the joysticks by opening the "Joystick Control - Basic" joystick debugger window. For more information, see the different variables the joystick data will populate to below.

JoystickDebugger.png

Example Code:

  TPCJoystick joystick;                         //Create the 'joystick' structure to store joystick data.
 
  while(true)
  {
    getPCJoystickSettings(joystick);            //Get the latest data from the joysticks and update the structure.
 
    motor[servo_2] = joystick.joy1_y1;          //Assign a motor the value of a joystick axis
    motor[servo_3] = joystick.joy1_y2;          //Assign a motor the value of a joystick axis
 
    if(joystick.joy1_Buttons & 0x01)            //Check if button 1 from the button bit-mask is pressed.
      writeDebugStream("Button 1 Pressed");
 
    if(joystick.joy1_TopHat == 0)               //Check if the tophat is pressed in the up direction.
      writeDebugStream("Top of TopHat Pressed");
  }
Color Key
Function:
Variable:


TPCJoystick Structure Members

joy1_Buttons

TPCJoystick joy1_Buttons
(TPCJoystick) Returns a "Bit Map" for the 12 buttons on Controller #1. For more information on how to use buttons to control actions, See the "Using Buttons" help section.
while(true)                        // infinite loop:
{
  getPCJoystickSettings(joystick);     // update buttons and joysticks
 
  if(joystick.joy1_Buttons & 0x20)    // if Button 6 is pressed on joy1:
  {
    motor[servo_2] = 50;                // servo_2 is run at a power level of 50
  }
}


joy1_TopHat

TPCJoystick joy1_TopHat
(TPCJoystick) Returns the value of the direction pad (or "Top Hat") on Controller #1. A value of -1 is returned when nothing is pressed, and a value of 0 to 7 for selected "octant" when pressed.
while(true)                        // infinite loop:
{
  getPCJoystickSettings(joystick);     // update buttons and joysticks
 
  if(joystick.joy1_TopHat == 0)      // if the topmost button on joy1's D-Pad ('TopHat') is pressed:
  {
    motor[servo_2] = 50;                // servo_2 is run at a power level of 50
  }
}


joy1_x1

TPCJoystick joy1_x1
(TPCJoystick) Value of the X Axis on the Left Joystick on Controller #1. Ranges in values between -128 to +127.
while(true)                        // infinite loop:
{
  getPCJoystickSettings(joystick);     // update buttons and joysticks
  motor[servo_2] = joystick.joy1_x1;  // servo_2's powerlevel is set to the left stick's current x-value
}


joy1_y1

TPCJoystick joy1_y1
(TPCJoystick) Value of the Y Axis on the Left Joystick on Controller #1. Ranges in values between -128 to +127.
while(true)                        // infinite loop:
{
  getPCJoystickSettings(joystick);     // update buttons and joysticks
  motor[servo_2] = joystick.joy1_y1;  // servo_2's powerlevel is set to the left stick's current y-value
}


joy1_x2

TPCJoystick joy1_x2
(TPCJoystick) Value of the X Axis on the Right Joystick on Controller #1. Ranges in values between -128 to +127.
while(true)                        // infinite loop:
{
  getPCJoystickSettings(joystick);     // update buttons and joysticks
  motor[servo_2] = joystick.joy1_x2;  // servo_2's powerlevel is set to the right stick's current x-value
}


joy1_y2

TPCJoystick joy1_y2
(TPCJoystick) Value of the Y Axis on the Right Joystick on Controller #1. Ranges in values between -128 to +127.
while(true)                        // infinite loop:
{
  getPCJoystickSettings(joystick);     // update buttons and joysticks
  motor[servo_2] = joystick.joy1_y2;  // servo_2's powerlevel is set the right stick's current y-value
}