ROBOTC.net forums
http://www.robotc.net/forums/

[Programming] 4 autonomous in buttons
http://www.robotc.net/forums/viewtopic.php?f=11&t=7656
Page 2 of 2

Author:  Phoenix [ Tue Jan 21, 2014 4:43 pm ]
Post subject:  Re: [Programming] 4 autonomous in buttons

dont work i using a competition file only works the user control

Author:  rcahoon [ Tue Jan 21, 2014 4:56 pm ]
Post subject:  Re: [Programming] 4 autonomous in buttons

How are you selecting between autonomous or user control mode? Like one of the ways described in this document?

Author:  Phoenix [ Tue Jan 21, 2014 5:01 pm ]
Post subject:  Re: [Programming] 4 autonomous in buttons

Using Vex programming kit in the robot c with the debugger window.

Author:  rcahoon [ Tue Jan 21, 2014 5:30 pm ]
Post subject:  Re: [Programming] 4 autonomous in buttons

Make sure you press the Disabled button before you start your program. Also, switch back to
Code:
while(bIfiRobotDisabled)

while(bIfiRobotDisabled || bIfiAutonomousMode) isn't correct.

This works for me when I tested.

Author:  Phoenix [ Tue Jan 21, 2014 9:37 pm ]
Post subject:  Re: [Programming] 4 autonomous in buttons

I think the program is right but in what line put the code you give me ?
Code:
while(bIfiRobotDisabled)

I don't know really where put in.
Here is a video:


:oops:

Author:  rcahoon [ Wed Jan 22, 2014 1:47 pm ]
Post subject:  Re: [Programming] 4 autonomous in buttons

Phoenix wrote:
in what line put the code you give me ?

It replaces the while statement in pre_auton. Here's the code you gave with the line replaced:
Code:
#pragma config(Sensor, dgtl1,  automata1,      sensorTouch)
#pragma config(Sensor, dgtl2,  automata2,      sensorTouch)
#pragma config(Sensor, dgtl3,  automata3,      sensorTouch)
#pragma config(Sensor, dgtl4,  automata4,      sensorTouch)
#pragma config(Motor,  port1,           ruedaizquierda, tmotorVex393, openLoop)
#pragma config(Motor,  port2,           linealizquierdo, tmotorVex393, openLoop)
#pragma config(Motor,  port3,           torreizquierda, tmotorVex393, openLoop)
#pragma config(Motor,  port4,           torrederecha,  tmotorVex393, openLoop)
#pragma config(Motor,  port5,           ruedafrented,  tmotorVex393, openLoop)
#pragma config(Motor,  port6,           dedos,         tmotorVex393, openLoop)
#pragma config(Motor,  port7,           brazo,         tmotorVex393, openLoop)
#pragma config(Motor,  port8,           ruedafrentei,  tmotorVex393, openLoop)
#pragma config(Motor,  port9,           linealderecho, tmotorVex393, openLoop)
#pragma config(Motor,  port10,          ruedaderecha,  tmotorVex393, openLoop)
//*!!Code automatically generated by 'ROBOTC' configuration wizard               !!*//

#pragma platform(VEX)

//Competition Control and Duration Settings
#pragma competitionControl(Competition)
#pragma autonomousDuration(20)
#pragma userControlDuration(120)

#include "Vex_Competition_Includes.c"   //Main competition background code...do not modify!
int selectedAutonomous =0;
/////////////////////////////////////////////////////////////////////////////////////////
//
//                          Pre-Autonomous Functions
//
// You may want to perform some actions before the competition starts. Do them in the
// following function.
//
/////////////////////////////////////////////////////////////////////////////////////////

void pre_auton()
{
 selectedAutonomous = 0;

while(bIfiRobotDisabled)

{
   if(SensorValue[automata1])          //azul_dentro...
   {
      selectedAutonomous = 1; // select autonomous mode 1
   }
   if(SensorValue[automata2])          //azul_fuera...
   {
      selectedAutonomous = 2; // select autonomous mode 1
   }
   if(SensorValue[automata3])          //rojo_dentro...
   {
      selectedAutonomous = 3; // select autonomous mode 1
   }
   if(SensorValue[automata4])          //rojo_fuera...
   {
      selectedAutonomous = 4; // select autonomous mode 1
   }

   // add more if statements if you want to add more autonomous modes
}
}

/////////////////////////////////////////////////////////////////////////////////////////
//
//                                 Autonomous Task
//
// This task is used to control your robot during the autonomous phase of a VEX Competition.
// You must modify the code to add your own robot specific commands here.
//
/////////////////////////////////////////////////////////////////////////////////////////


task autonomous()
{
   //AZUL_DENTRO
if (selectedAutonomous == 1)
   {
    motor[ruedaizquierda]=127;
   motor[ruedaderecha]=127;
   motor[ruedafrented]=127;
   motor[ruedafrentei]=127;
   wait1Msec(1000);

   motor[ruedaizquierda]=0;
   motor[ruedaderecha]=0;
   motor[ruedafrented]=0;
   motor[ruedafrentei]=0;

   motor[ruedaizquierda]=127;
   motor[ruedaderecha]=-127;
   motor[ruedafrented]=-127;
   motor[ruedafrentei]=127;
   wait1Msec(400);
   
   motor[ruedaizquierda]=-127;
   motor[ruedaderecha]=-127;
   motor[ruedafrented]=-127;
   motor[ruedafrentei]=-127;
   wait1Msec(1300);
   
   motor[ruedaizquierda]=127;
   motor[ruedaderecha]=-127;
   motor[ruedafrented]=-127;
   motor[ruedafrentei]=127;
   wait1Msec(700);
   
   motor[ruedaizquierda]=0;
   motor[ruedaderecha]=0;
   motor[ruedafrented]=0;
   motor[ruedafrentei]=0;

   motor[dedos]=127;
   wait1Msec(1300);

   motor[dedos]=0;
   wait1Msec(100);
   
   motor[ruedaizquierda]=-127;
   motor[ruedaderecha]=-127;
   motor[ruedafrented]=-127;
   motor[ruedafrentei]=-127;
   wait1Msec(2100);
   
   motor[ruedaizquierda]=0;
   motor[ruedaderecha]=0;
   motor[ruedafrented]=0;
   motor[ruedafrentei]=0;
   
   motor[ruedaizquierda]=127;
   motor[ruedaderecha]=127;
   motor[ruedafrented]=127;
   motor[ruedafrentei]=127;
   wait1Msec(100);
 
   motor[ruedaizquierda]=127;
   motor[ruedaderecha]=-127;
   motor[ruedafrented]=-127;
   motor[ruedafrentei]=127;
   wait1Msec(700);
   
   motor[ruedaizquierda]=0;
   motor[ruedaderecha]=0;
   motor[ruedafrented]=0;
   motor[ruedafrentei]=0;
   
   motor[ruedaizquierda]=-127;
   motor[ruedaderecha]=-127;
   motor[ruedafrented]=-127;
   motor[ruedafrentei]=-127;
   wait1Msec(1800);
   
   motor[ruedaizquierda]=0;
   motor[ruedaderecha]=0;
   motor[ruedafrented]=0;
   motor[ruedafrentei]=0;
   
   }
 

  //AZUL_FUERA

   else if (selectedAutonomous == 2)
   {
  motor[ruedaizquierda]=127;
   motor[ruedaderecha]=127;
   motor[ruedafrented]=127;
   motor[ruedafrentei]=127;
   wait1Msec(390);

   motor[ruedaizquierda]=0;
   motor[ruedaderecha]=0;
   motor[ruedafrented]=0;
   motor[ruedafrentei]=0;

   motor[torrederecha]=127/2;
   motor[torreizquierda]=127/2;
   wait1Msec(1500);

   motor[torrederecha]=0;
   motor[torreizquierda]=0;

   motor[ruedaizquierda]=127/2;
   motor[ruedaderecha]=127/2;
   motor[ruedafrented]=127/2;
   motor[ruedafrentei]=127/2;
   wait1Msec(900);

   motor[ruedaizquierda]=-127/2;
   motor[ruedaderecha]=-127/2;
   motor[ruedafrented]=-127/2;
   motor[ruedafrentei]=-127/2;
   wait1Msec(600);

   motor[ruedaizquierda]=0;
   motor[ruedaderecha]=0;
   motor[ruedafrented]=0;
   motor[ruedafrentei]=0;

   motor[dedos]=127;
   wait1Msec(1800);

   motor[dedos]=0;
   wait1Msec(100);

   motor[ruedaizquierda]=127;
   motor[ruedaderecha]=-127;
   motor[ruedafrentei]=127;
   motor[ruedafrented]=-127;
   wait1Msec(400);

   motor[ruedaizquierda]=127;
   motor[ruedaderecha]=127;
   motor[ruedafrentei]=127;
   motor[ruedafrented]=127;
   wait1Msec(550);

   motor[ruedaizquierda]=0;
   motor[ruedaderecha]=0;
   motor[ruedafrentei]=0;
   motor[ruedafrented]=0;

   motor[torrederecha]=127/2;
   motor[torreizquierda]=127/2;
   wait1Msec(1000);

   motor[torrederecha]=0;
   motor[torreizquierda]=0;

   motor[ruedaizquierda]=-127;
   motor[ruedaderecha]=127;
   motor[ruedafrentei]=-127;
   motor[ruedafrented]=127;
   wait1Msec(250);

   motor[ruedaizquierda]=0;
   motor[ruedaderecha]=0;
   motor[ruedafrentei]=0;
   motor[ruedafrented]=0;

   motor[ruedaizquierda]=127;
   motor[ruedaderecha]=127;
   motor[ruedafrentei]=127;
   motor[ruedafrented]=127;
   wait1Msec(200);

   motor[ruedaizquierda]=0;
   motor[ruedaderecha]=0;
   motor[ruedafrentei]=0;
   motor[ruedafrented]=0;
   }

   //ROJO_DENTRO
   else if (selectedAutonomous == 3)
   {
     motor[ruedaizquierda]=127;
   motor[ruedaderecha]=127;
   motor[ruedafrented]=127;
   motor[ruedafrentei]=127;
   wait1Msec(700);

   motor[ruedaizquierda]=0;
   motor[ruedaderecha]=0;
   motor[ruedafrented]=0;
   motor[ruedafrentei]=0;

   motor[torrederecha]=127/2;
   motor[torreizquierda]=127/2;
   wait1Msec(600);


   motor[torrederecha]=0;
   motor[torreizquierda]=0;

   motor[ruedaizquierda]=127;
   motor[ruedaderecha]=-127;
   motor[ruedafrented]=-127;
   motor[ruedafrentei]=127;
   wait1Msec(350);

   motor[ruedaizquierda]=127;
   motor[ruedaderecha]=127;
   motor[ruedafrented]=127;
   motor[ruedafrentei]=127;
   wait1Msec(150);

   motor[ruedaizquierda]=0;
   motor[ruedaderecha]=0;
   motor[ruedafrented]=0;
   motor[ruedafrentei]=0;

   motor[dedos]=127;
   wait1Msec(1200);

   motor[dedos]=0;
   wait1Msec(100);
   }

   //ROJO_FUERA
   else if (selectedAutonomous == 4)
   {
  motor[ruedaizquierda]=127;
   motor[ruedaderecha]=127;
   motor[ruedafrented]=127;
   motor[ruedafrentei]=127;
   wait1Msec(390);

   motor[ruedaizquierda]=0;
   motor[ruedaderecha]=0;
   motor[ruedafrented]=0;
   motor[ruedafrentei]=0;

   motor[torrederecha]=127/2;
   motor[torreizquierda]=127/2;
   wait1Msec(1500);

   motor[torrederecha]=0;
   motor[torreizquierda]=0;

   motor[ruedaizquierda]=127/2;
   motor[ruedaderecha]=127/2;
   motor[ruedafrented]=127/2;
   motor[ruedafrentei]=127/2;
   wait1Msec(500);

   motor[ruedaizquierda]=-127/2;
   motor[ruedaderecha]=-127/2;
   motor[ruedafrented]=-127/2;
   motor[ruedafrentei]=-127/2;
   wait1Msec(200);

   motor[ruedaizquierda]=0;
   motor[ruedaderecha]=0;
   motor[ruedafrented]=0;
   motor[ruedafrentei]=0;


   motor[ruedaizquierda]=-127;
   motor[ruedaderecha]=127;
   motor[ruedafrentei]=-127;
   motor[ruedafrented]=127;
   wait1Msec(300);

   motor[ruedaizquierda]=127;
   motor[ruedaderecha]=127;
   motor[ruedafrentei]=127;
   motor[ruedafrented]=127;
   wait1Msec(700);

   motor[ruedaizquierda]=0;
   motor[ruedaderecha]=0;
   motor[ruedafrentei]=0;
   motor[ruedafrented]=0;

   motor[ruedaizquierda]=127;
   motor[ruedaderecha]=-127;
   motor[ruedafrentei]=127;
   motor[ruedafrented]=-127;
   wait1Msec(500);

   motor[ruedaizquierda]=0;
   motor[ruedaderecha]=0;
   motor[ruedafrentei]=0;
   motor[ruedafrented]=0;
   wait1Msec(500);

   motor[dedos]=127;
   wait1Msec(1800);

   motor[dedos]=0;
   wait1Msec(100);
   }
}

/////////////////////////////////////////////////////////////////////////////////////////
//
//                                 User Control Task
//
// This task is used to control your robot during the user control phase of a VEX Competition.
// You must modify the code to add your own robot specific commands here.
//
/////////////////////////////////////////////////////////////////////////////////////////

task usercontrol()
{
   // User control code here, inside the loop

   while (1==1)
   {
    // ruedas
   motor[ruedaizquierda]=+vexRT[Ch3]+vexRT[Ch1];
   motor[ruedaderecha]=+vexRT[Ch3]-vexRT[Ch1];
   motor[ruedafrentei]=+vexRT[Ch3]+vexRT[Ch1];
   motor[ruedafrented]=+vexRT[Ch3]-vexRT[Ch1];

// torres
if(vexRT[Btn6U]==1)
{
   motor[torreizquierda]=127;
   motor[torrederecha]=127;
}

   else if(vexRT[Btn6D]==1)
{
   motor[torreizquierda]=-127;
   motor[torrederecha]=-127;
}
   else
{
   motor[torrederecha]=0;
   motor[torreizquierda]=0;
}
// dedos
   if(vexRT[Btn5U]==1)
{
   motor[dedos]=127;
}

   else if(vexRT[Btn5D]==1)
{
   motor[dedos]=-127;
}

   else
{
   motor[dedos]=0;
}
//LINEARES

if(vexRT[Btn8U]==1)
{
   motor[linealderecho]=127;
   motor[linealizquierdo]=127;
}
else if(vexRT[Btn8D]==1)
{
   motor[linealderecho]=-127;
   motor[linealizquierdo]=-127;
}
else
{
motor[linealderecho]=0;
motor[linealizquierdo]=0;
}

//BRAZO

if(vexRT[Btn8L]==1)
{
   motor[brazo]=-127;
}
else if(vexRT[Btn8R]==1)
{
   motor[brazo]=127;
}
else
{
   motor[brazo]=0;
}
}
}


Also, make sure you follow this procedure:
  1. Press Disabled
  2. Press Start
  3. Press one of the touch sensors to select autonomous
  4. Press Autonomous
  5. Wait for autonomous routine to complete
  6. Press User Control
  7. Use joysticks to drive the robot

In the video, you press Autonomous before starting your program. This will skip the code that selects the autonomous mode.

Author:  Phoenix [ Wed Jan 22, 2014 2:35 pm ]
Post subject:  Re: [Programming] 4 autonomous in buttons

Thanks Very much :bigthumb: its work im so fool thanks for all you can closed the threat :lol: :lol:

Page 2 of 2 All times are UTC - 5 hours [ DST ]
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/