Tabla de contenido:
- Paso 1:
- Paso 2: cree un nuevo proyecto de robot
- Paso 3: Crear / completar RobotMap
- Paso 4: Eliminar comando de ejemplo y subsistema de ejemplo
- Paso 5: crear DriveTrainSubSystem
- Paso 6: Cree el DriveTrainCommand
- Paso 7: saltar al robot
- Paso 8: Regrese a DriveTrainCommand
- Paso 9: Vaya a DriveTrainSub
- Paso 10: A continuación, crearemos el código OI
- Paso 11: Vaya a DriveTrainCommand
- Paso 12: finalmente compile y cargue el código en el robot
Video: Cómo escribir una transmisión simple para FRC (Java): 12 pasos (con imágenes)
2024 Autor: John Day | [email protected]. Última modificación: 2024-01-30 08:44
Este es un tutorial sobre cómo hacer una transmisión simple para un robot FRC. Este tutorial asume que conoce los conceptos básicos de java, eclipse y que ya tiene wpilib instalado, así como las bibliotecas CTRE.
Paso 1:
Eclipse abierto
Paso 2: cree un nuevo proyecto de robot
- Haga clic con el botón derecho en el explorador de paquetes, haga clic en nuevo y luego en otro.
- Desplácese hacia abajo hasta que vea WPILib Robot Java Development (si no lo ve, no tiene los recursos de wpilib instalados).
- Haga clic en Robot Java Project
- Luego, complete el nombre del proyecto y haga clic en el tipo de proyecto de robot basado en comandos (el paquete ya debería estar completo y lo mismo con el mundo de simulación).
Paso 3: Crear / completar RobotMap
Cree variables finales que contengan el número de los diferentes puertos de garra
Paso 4: Eliminar comando de ejemplo y subsistema de ejemplo
Paso 5: crear DriveTrainSubSystem
- Cree un nuevo constructor en el subsistema de transmisión recién creado. Luego crea objetos CANTalon que correspondan a las garras del tren motriz.
- Cree un RobotDrive llamado Drive
- Cree una instancia de estos objetos en el constructor (asegúrese de utilizar los valores de las garras que creamos en el mapa del robot). Para el Robot Drive usaremos el constructor que usa 4 controladores de motor (RobotDrive (SpeedController frontLeftMotor, SpeedController rearLeftMotor, SpeedController frontRightMotor, SpeedController rearRightMotor))
- Luego cree un método arcadeDrive () con dos variables de entrada donde x es hacia adelante y hacia atrás e y es derecha e izquierda. En el interior, llamará a drive.arcade con los valores de avance y rotación
- Luego cambie initDefaultCommand () para que contenga la línea setDefaultCommand (new DriveTrainCommand ());.
- No se preocupe por todos los errores todavía.
Paso 6: Cree el DriveTrainCommand
- Primero comience yendo al menú que hemos usado para crear el subsistema y el robot se proyecta a sí mismo (esta es la última vez que mostraré este paso real en los pasos futuros que diré solo para hacer un comando o para hacer un subsistema y asumirá que está en este menú.) Haga clic en el comando y complete el nombre de la clase con DriveTrainCommand (si cambia los nombres de estos archivos, no puede hacer que sean iguales).
- En el nuevo DriveTrainCommand, verá que hay 6 métodos, uno es el constructor y los otros 5 son partes del código que el robot llamará cuando se ejecute el comando. Sabemos lo que hace el constructor, así que expliquemos Initialize, execute, isFinished, end e interrumpido. Initialize se llama una vez cada vez que se llama al comando, el método de ejecución se llama continuamente hasta que el comando finaliza, lo que se debe a que finaliza cuando el método isFinished devuelve verdadero, el comando dejará de ejecutarse, el método end se llama una vez después de isFinished se llama al método, y el interrumpido se llama cuando los recursos de los comandos están siendo utilizados por otro comando y el comando finalizará (sin llamar al método end).
- Primero, en DriveTrainCommand en el constructor, debe agregar la línea require (requiere (Robot. DriveTrainSub)) y observe que DriveTrainSub no es el mismo que el nombre del subsistema y que es a propósito.
Paso 7: saltar al robot
- A continuación, vamos a saltar a la clase de robots.
- luego vamos a cambiar la línea (public static final ExampleSubsystem exampleSubsystem = new ExampleSubsystem ();) a (public static final DriveTrainSubsystem DriveTrainSub = new DriveTrainSubsystem ();) observe que el primer nombre después de final es el mismo que el nombre del subsistema y el nombre después de nuevo también observe que DriveTrainSub es el mismo que el nombre que pusimos en nuestro último paso y que no es el mismo que el nombre del subsistema (DEBE tener un nombre de objeto (DriveTrainSub) que no sea el mismo que el del subsistema nombre).
- Luego importe nuestro DriveTrainSubSystem.
- A continuación, eliminaremos la línea (chooser.addDefault ("Default Auto", new ExampleCommand ());)
- Luego elimine las importaciones no utilizadas.
- Entonces guarda.
Paso 8: Regrese a DriveTrainCommand
- import Robot (el segundo en la imagen)
- Luego guardar
Paso 9: Vaya a DriveTrainSub
- Importar DriveTrainCommand
- Entonces guarda.
Paso 10: A continuación, crearemos el código OI
- Vaya a OI.
- Cree un nuevo objeto de joystick público con el puerto 0.
- Y elimine las importaciones no utilizadas.
- Ahorrar.
Paso 11: Vaya a DriveTrainCommand
- Vaya a DriveTrainCommand.
- Ahora haremos la parte que tomamos los joysticks y los aplicamos para mover el robot. Dentro de la ejecución (porque se ejecuta constantemente) agregue la línea (Robot. DriveTrainSub.arcadeDrive (Robot.oi. Driver.getRawAxis (1), Robot.oi. Driver.getRawAxis (4));) donde llamamos arcadeDrive en nuestro subsistema con los valores de Robot.io. Driver.getRawAxis (1) que devuelve el valor del joystick y donde 1 es el eje del eje y izquierdo y lo mismo para el segundo valor excepto que 4 es el eje x derecho. por lo que esto significaría que el joystick izquierdo iría hacia adelante y hacia atrás y el joystick derecho iría hacia la derecha y la izquierda. (si lo desea, puede volver al RobotMap y crear nuevos valores para el eje del joystick, luego llamarlos con RobotMap. (nombre del eje) y no olvide hacerlos definitivos si lo hace de esta manera).
- A continuación, elimine las importaciones no utilizadas de todo el proyecto.
Paso 12: finalmente compile y cargue el código en el robot
Recomendado:
2019 FRC escribiendo un tren de transmisión simple (Java): 5 pasos
2019 FRC Escribiendo un Simple Drive Train (Java): ¡ESTE INSTRUCTABLE NO ESTÁ ACTUALIZADO! Esté atento a mi próximo instructivo sobre la programación actual de 2019. Aunque está desactualizado, todavía hay cosas que puedes aprender al respecto, como cómo hacer las clases y escribir el código
Kit de transmisión web Raspberry Pi - Parte 2 (transmisión de video Pi): 6 pasos
Kit de transmisión web de Raspberry Pi - Parte 2 (transmisión de video de Pi): De acuerdo, no pensé que esto necesitara fotos, pero al sitio web le gustan las imágenes. En su mayoría, se trata de una serie de comandos y pasos para usted. Hay una serie de otros sitios que pueden abordar cualquier peculiaridad. Esto es lo que funcionó para mí. Esto combina otros
Cómo cambiar la cinta de una máquina de escribir: 8 pasos (con imágenes)
Cómo cambiar la cinta de una máquina de escribir: He estado usando una máquina de escribir durante un poco más de un año, sin embargo, todavía puedo recordar la dificultad de tener que cambiar la cinta de mi máquina de escribir por primera vez. Cuando vi que este sitio web no tenía un tutorial que pudiera ayudar a alguien chan
Transmisión de audio y transmisión de video con Raspberry Pi 3: 6 pasos
Transmisión de audio y transmisión de video usando Raspberry Pi 3 .: La principal utilidad de este proyecto es transmitir audio a Raspberry Pi 3 desde cualquier dispositivo conectado a la red WiFi común y adquirir video de Raspberry Pi 3 a cualquier dispositivo conectado a una red WiFi común
Cómo escribir una fuerza bruta para números (Visual BASIC 2008 Express): 5 pasos
Cómo escribir una fuerza bruta para números (Visual BASIC 2008 Express): En este Instructable, le mostraré cómo escribir una llamada " Fuerza bruta " en Visual BASIC 2008 Express que puede descargar aquí - > http://www.microsoft.com/eXPress/download/Una fuerza bruta es un " craqueo " programa que crac