Programming A Robot!
Vamos a aprender a programar un robot programando un mecanismo del robot. El mecanismo que vamos a programar es una parte del robot que utilizamos para coger y sacar las piezas del juego. En la foto de abajo, hay una foto del mecanismo (lo que señalan las flechas amarillas) recogiendo una bola roja.
Ahora que ya conoces el mecanismo y su aspecto, ¡empecemos a programarlo!
Nota: Si no has leído sobre Programación Basada en Comandos y no estás muy familiarizado con los fundamentos de Java, deberías volver atrás y aprender esas dos cosas antes de seguir adelante. Una vez que te sientas cómodo con los conceptos básicos de Java y tengas una comprensión de la Programación Basada en Comandos, entonces puedes seguir adelante y aprender a programar el mecanismo .
Obtener el código
El código se encuentra aquí. Para meter el código en tu VSCode, puedes descargarlo, abrir VS Code, ir a seleccionar carpeta y abrir la carpeta que has descargado como se muestra en la foto.
Programación del subsistema
Ahora vamos a programar el mecanismo. El mecanismo tiene un motor que gira en el sentido de las agujas del reloj para coger la pieza de juego y gira en el sentido contrario para sacarla si es necesario.
En el subsistema, tenemos que hacer lo siguiente:
Definir nuestros controladores de motor
Crear métodos para cada acción que el mecanismo necesite hacer.
Para empezar a programar el subsistema, haz clic en la carpeta del subsistema y haz clic en el archivo llamado "intake.java".
El robot utiliza un controlador de motor que se llama TalonSRX. Ahora mismo el robot no lo sabe. Así que tenemos que decirle al robot que tiene un controlador de motor TalonSRX. Hacemos esto mediante la adición de la siguiente línea de código en la línea 14:
public WPI_TalonSRX intakearm = new WPI_TalonSRX(Constants.INTAKEARM);
Tu código debería ser similar al de la foto de abajo.
para explicar el significado del código:
public significa que puede utilizarse en cualquier parte del código
WPI_TalonSRX es el nombre de la biblioteca, puede ver que importamos la biblioteca en la línea 7
Intakearm es el nombre que damos a la variable
= significa que se está igualando a algo
new un operador Java que crea el objeto
WPI_TalonSRX es el nombre de la biblioteca
(Constants.INTAKEARM); significa que el ID del controlador del motor se puede encontrar en el archivo Constants.java bajo la variable INTAKEARM.
Usted tendrá una línea roja debajo de la palabra INTAKEARM porque no hemos hecho esa variable todavía. Volveremos a eso más tarde, así que puedes dejarlo así por ahora.
Note: Adding libraries
Cuando escribes código para tu robot, tienes que importar las librerías y otros archivos que estés utilizando. No tienes que hacerlo aquí porque ya los hemos importado por ti. Pero para futuras referencias, hay dos formas de importar tus librerías y archivos
#1: Mientras teclea el nombre, puede hacer clic (o pulsar enter) cuando el nombre de la biblioteca aparezca resaltado en azul
#2: Una vez que haya escrito la línea de código, puede volver atrás e importar la biblioteca. Para ello, coloque el cursor sobre la línea de código, seleccione Quick Fix… (Ctrl+.) y, a continuación, haga clic en Import ‘WPI_TalonSRX’ (com.ctre.phoenix.motorcontrol.can). .
Adding the subsystem: Continued
A continuación tenemos que crear métodos para cada acción que el mecanismo tiene que hacer.
El mecanismo tiene que girar en sentido antihorario para tomar en la pieza de juego. Así que vamos a crear un método que establece el controlador del motor para girar en sentido horario.
Haremos esto escribiendo el siguiente código en la línea 18
public void intakeIn(){
intakearm.set(-1);
}
Debería parecerse a la foto siguiente
para explicar el significado del código:
public significa que el método puede utilizarse en cualquier parte del código.
void significa que no utiliza la palabra clave "return", por lo que no devuelve nada.
intakeIn es el nombre que le damos al método.
intakearm.set(-1) significa que estamos tomando el controlador del motor intakearm y ajustando la velocidad del motor a -1. Esto hace que gire en sentido antihorario a toda velocidad.
Por último, tenemos que escribir código para que el mecanismo se detenga. Sin este código, el motor seguirá girando sin parar. Llamaremos a este método intakeStop. También estableceremos la velocidad a 0 porque 0 significa que el motor no está girando.
El siguiente código irá debajo de tu método intakeOut() en la línea 26.
public void intakeStop(){
intakearm.set(0);
}
Debería parecerse a la foto siguiente
Ahora tenemos que añadir el ID del controlador del motor en Constants.java. Para ello vamos al archivo Constant.java.
Una vez abierto el archivo. Podemos añadir el ID del controlador del motor. Vamos a añadir el ID utilizando la siguiente línea de código:
public static final int INTAKE= 12;
El código debe parecerse a la imagen siguiente
Para explicar lo que hace el código, se crea una variable que no se puede cambiar y se establece igual a 12. Tampoco se puede volver atrás y tratar de definir INTAKE a un valor diferente en un archivo diferente, ya que es definitiva.
Lo estamos configurando igual a 12 porque configuramos el controlador del motor a 12 cuando lo configuramos. ¡Ahora podemos pasar a programar los comandos!