Programming The Commands
Los comandos son los que dan acciones u órdenes a las diferentes partes del robot. En este ejemplo, daremos acciones o comandos al mecanismo. Las acciones o comandos que le daremos al mecanismo son:
IntakeIn
IntakeOut
IntakeStop
Puedes encontrar estos archivos en la carpeta command.
Hay tres archivos diferentes para cada comando porque cada comando necesita su propio archivo.Esto será útil una vez que empecemos a programar el controlador del robot. Una vez que encuentre los archivos, haga clic en IntakeInCMD.java.
IntakeInCMD
Aunque cada comando hace algo diferente, el paso a seguir para cada comando es muy similar. Por lo tanto, se dividirán en pasos y se hará referencia a cada uno de ellos más adelante.
Primero, vamos al archivo IntakeInCMD.java. Debido a que los métodos que hicimos en el código del subsistema están en un archivo diferente, necesitamos crear una variable que nos permita acceder a los métodos. Para ello, añadimos el siguiente código en la línea 12:
public final intake m_intake;
Debería parecerse a la foto de abajo.
Tendrá una línea roja debajo de IntakeInCMD() pero lo arreglaremos en el próximo paso.
para explicar el significado del código:
public significa que puede utilizarse en cualquier parte del código
final significa que la variable sólo puede definirse una vez
intake es el nombre del subsistema
m_intake es la variable que utilizaremos para acceder a los métodos del subsistema intake.java
A continuación tenemos que arreglar la línea roja debajo de IntakeInCMD(). Para ello añadiremos
intake intake_subsystem
entre los dos paréntesis de la línea 13. Esto nos está permitiendo pasar información sobre el subsistema al código. A continuación escribiremos el siguiente código dentro del método en la línea 14
m_intake = intake_subsystem;
addRequirements(m_intake);
La primera parte es establecer la información igual a la variable que definimos en la línea 12. La segunda parte es decirle al código que necesita el subsistema para ejecutarse.
Su código debe parecerse a la foto de abajo
A continuación tenemos que decirle al robot qué hacer cuando se ejecute el comando. Hacemos esto escribiendo código en el método execute(). Dentro del método execute(), vamos a ejecutar el método intakeIn() que escribimos en el subsistema intake. Para ello ponemos el siguiente código dentro del método execute() en la línea 26
m_intake.intakeIn();
Debería parecerse a la foto siguiente
Lo que hace este código es que busca dentro del subsistema intake.java, y utiliza el método intakeIn() para ejecutar el código que está dentro de intakeIn()
Ahora tenemos que asegurarnos de que el mecanismo del robot se detiene cuando debe hacerlo. Para ello utilizaremos el método stopintake() que creamos en el subsistema, pondremos el código
m_intake.intakestop();
en la línea 32 dentro del método end.
Debería verse como la foto de abajo
Ahora programaremos el comando para hacer girar el motor en la otra dirección.Primero, abre el archivo intakeOutCMD.java. Está en la carpeta "Commands" debajo de IntakeInCMD.java. La configuración también es la misma que escribiste para intakeInCMD. La única diferencia es qué método se llama en el método execute(). Por lo tanto, puede volver a intakeInCMD y mirar el paso 1 y seguirlo de nuevo. Cuando haya terminado, debe parecerse a la foto de abajo
A continuación tenemos que decirle al robot qué hacer cuando se ejecute el comando. Al igual que hicimos con intakeInCMD(), iremos al método execute y ejecutaremos el método intakeOut() que escribimos en el subsistema intake.java. Puedes volver al paso 2 y seguirlo de nuevo. Cuando haya terminado, debe parecerse a la foto de abajo
Después pondremos el código para que el motor deje de girar cuando termine el código. Para hacer esto, puedes volver atrás y seguir el paso 3 de nuevo. Cuando termines, debería verse como en la foto
Ahora programaremos el comando para que deje de girar cuando el mecanismo no sea necesario. De nuevo, la configuración es también la misma que escribiste para intakeInCMD y intakeOutCMD. La única diferencia es a qué método llamas en el método execute(). Por lo tanto, puede volver a intakeInCMD y mirar el paso 1 y seguirlo de nuevo. Cuando haya terminado, debe parecerse a la foto de abajo
A continuación tenemos que decirle al robot qué hacer cuando se ejecute el comando.Iremos al método execute y ejecutaremos el método intakeStop() que escribimos en el subsistema intake.java. Puedes volver al paso 2 y seguirlo de nuevo. Cuando hayas terminado, debería parecerse a la foto de abajo.
Después pondremos el código para que el motor deje de girar cuando termine el código. Para hacer esto, puedes volver atrás y seguir el paso 3 de nuevo. Cuando hayas terminado, debería parecerse a la foto de abajo
¡Ya has terminado! Has programado el mecanismo del robot para que pueda recoger la pieza del juego.