Difference between revisions of "ARDUINO MEGA Functions Joysticks"

From ROBOTC API Guide
Jump to: navigation, search
(Controller 1)
Line 6: Line 6:
 
   <syntaxhighlight lang="ROBOTC">
 
   <syntaxhighlight lang="ROBOTC">
 
   TPCJoystick joystick;
 
   TPCJoystick joystick;
   getPCJoystickSettings(joystick);
+
    
 
+
 
   while(true)
 
   while(true)
 
   {
 
   {
 +
    getPCJoystickSettings(joystick);
 +
 
     motor[servo_2] = joystick.joy1_y1;
 
     motor[servo_2] = joystick.joy1_y1;
 
     motor[servo_3] = joystick.joy1_y2;
 
     motor[servo_3] = joystick.joy1_y2;

Revision as of 01:47, 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.

Example Code:

  TPCJoystick joystick;
 
  while(true)
  {
    getPCJoystickSettings(joystick);
 
    motor[servo_2] = joystick.joy1_y1;
    motor[servo_3] = joystick.joy1_y2;
 
    if(joystick.joy1_Buttons & 0x01)
      writeDebugStream("Button 1 Pressed");
 
    if(joystick.joy1_TopHat == 0)
      writeDebugStream("Top of TopHat Pressed");
  }
Color Key
Function:
Variable:


Controller 1

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:
{
  getJoystickSettings(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:
{
  getJoystickSettings(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:
{
  getJoystickSettings(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:
{
  getJoystickSettings(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:
{
  getJoystickSettings(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:
{
  getJoystickSettings(joystick);     // update buttons and joysticks
  motor[servo_2] = joystick.joy1_y2;  // servo_2's powerlevel is set the right stick's current y-value
}