Índice:

Como escrever um sistema de transmissão simples para FRC (Java): 12 etapas (com imagens)
Como escrever um sistema de transmissão simples para FRC (Java): 12 etapas (com imagens)

Vídeo: Como escrever um sistema de transmissão simples para FRC (Java): 12 etapas (com imagens)

Vídeo: Como escrever um sistema de transmissão simples para FRC (Java): 12 etapas (com imagens)
Vídeo: FRC Java Tutorial - WPILib 2022 Command Based Programming Ep 2:Drivetrain & Tele-op Joystick Control 2024, Julho
Anonim
Como escrever um sistema de transmissão simples para FRC (Java)
Como escrever um sistema de transmissão simples para FRC (Java)

Este é um tutorial sobre como fazer um trem de força simples para um robô FRC. Este tutorial assume que você conhece os fundamentos de java, eclipse e já tem wpilib instalado, bem como as bibliotecas CTRE.

Passo 1:

Imagem
Imagem

Eclipse aberto

Etapa 2: Criar um novo projeto de robô

Criar um novo projeto de robô
Criar um novo projeto de robô
Criar um novo projeto de robô
Criar um novo projeto de robô
Criar um novo projeto de robô
Criar um novo projeto de robô
Criar um novo projeto de robô
Criar um novo projeto de robô
  1. Clique com o botão direito no explorador de pacotes, clique em novo e em outro.
  2. Role para baixo até ver WPILib Robot Java Development (se não o vir, não tem os recursos wpilib instalados).
  3. Clique em Robot Java Project
  4. Em seguida, preencha o nome do projeto e clique no tipo de projeto do robô baseado em comando. (O pacote já deve estar preenchido e o mesmo com o mundo de simulação.)

Etapa 3: Criar / preencher o RobotMap

Criar / preencher RobotMap
Criar / preencher RobotMap
Criar / preencher RobotMap
Criar / preencher RobotMap

Crie variáveis finais que contenham o número de portas talon diferentes

Etapa 4: Excluir Comando de Exemplo e Subsistema de Exemplo

Excluir comando de exemplo e subsistema de exemplo
Excluir comando de exemplo e subsistema de exemplo
Excluir comando de exemplo e subsistema de exemplo
Excluir comando de exemplo e subsistema de exemplo

Etapa 5: Criar DriveTrainSubSystem

Criar DriveTrainSubSystem
Criar DriveTrainSubSystem
Criar DriveTrainSubSystem
Criar DriveTrainSubSystem
Criar DriveTrainSubSystem
Criar DriveTrainSubSystem
  1. Crie um novo construtor no subsistema de transmissão recém-criado. Em seguida, crie objetos CANTalon que correspondam às garras no trem de força.
  2. Crie um RobotDrive chamado Drive
  3. Instancie esses objetos no construtor (certifique-se de usar os valores para as garras que criamos no mapa do robô). Para o Robot Drive, usaremos o construtor que usa 4 controladores de motor (RobotDrive (SpeedController frontLeftMotor, SpeedController rearLeftMotor, SpeedController frontRightMotor, SpeedController rearRightMotor))
  4. Em seguida, crie um método arcadeDrive () com duas variáveis de entrada onde x é para frente e para trás ey é para a direita e para a esquerda. Dentro, você chamará o drive.arcade com os valores de avanço e rotação
  5. Em seguida, altere initDefaultCommand () para conter a linha setDefaultCommand (new DriveTrainCommand ());.
  6. Não se preocupe com todos os erros ainda.

Etapa 6: Crie o DriveTrainCommand

Crie o DriveTrainCommand
Crie o DriveTrainCommand
Crie o DriveTrainCommand
Crie o DriveTrainCommand
Crie o DriveTrainCommand
Crie o DriveTrainCommand
Crie o DriveTrainCommand
Crie o DriveTrainCommand
  1. Comece indo para o menu que usamos para criar o subsistema e o robô se projeta (esta é a última vez que mostrarei esta etapa real nas etapas futuras que direi apenas para fazer um comando ou para fazer um subsystem e você assumirá que ele está neste menu.) Clique no comando e preencha o nome da classe com DriveTrainCommand (se você alterar os nomes desses arquivos, você não pode fazer com que sejam iguais).
  2. No novo DriveTrainCommand, você verá que existem 6 métodos, um é o construtor e os outros 5 são partes do código que o robô chamará quando o comando estiver em execução. Sabemos o que o construtor faz, então vamos explicar Initialize, execute, isFinished, end e interrupted. Initialize é chamado uma vez cada vez que o comando é chamado, o método execute é chamado continuamente até que o comando termine, o que é causado por terminar quando o método isFinished retorna true, o comando irá parar de ser executado, O método end é chamado uma vez após o isFinished o método é chamado, e o interrompido é chamado quando os recursos do comando estão sendo usados por outro comando e o comando será encerrado (sem chamar o método end).
  3. Primeiro, no DriveTrainCommand no construtor, você precisa adicionar a linha require (requires (Robot. DriveTrainSub)) observe que o DriveTrainSub não é o mesmo que o nome do subsistema e isso é proposital.

Etapa 7: pule para o robô

Saltar para o Robô
Saltar para o Robô
Saltar para o Robô
Saltar para o Robô
Saltar para o Robô
Saltar para o Robô
Saltar para o Robô
Saltar para o Robô
  1. Em seguida, vamos pular para a classe de robôs
  2. então vamos mudar a linha (public static final ExampleSubsystem exampleSubsystem = new ExampleSubsystem ();) para (public static final DriveTrainSubsystem DriveTrainSub = new DriveTrainSubsystem ();) observe que o primeiro nome após final é o mesmo que o nome do subsistema e o nome após novo também observe que o DriveTrainSub é igual ao nome que colocamos em nossa última etapa e que não é o mesmo que o nome do subsistema (Você DEVE ter um nome de objeto (DriveTrainSub) que não seja o mesmo do subsistema nome).
  3. Em seguida, importe nosso DriveTrainSubSystem.
  4. Em seguida, removeremos a linha (chooser.addDefault ("Default Auto", new ExampleCommand ());)
  5. Em seguida, remova as importações não utilizadas.
  6. Em seguida, salve.

Etapa 8: volte para DriveTrainCommand

Voltar para DriveTrainCommand
Voltar para DriveTrainCommand
  1. import Robot (o segundo na imagem)
  2. Então salve

Etapa 9: Vá para DriveTrainSub

Vá para DriveTrainSub
Vá para DriveTrainSub
  1. Importar DriveTrainCommand
  2. Em seguida, salve.

Etapa 10: Em seguida, criaremos o código OI

Em seguida, criaremos o código OI
Em seguida, criaremos o código OI
  1. Vá para OI.
  2. Crie um novo objeto de joystick público com a porta 0.
  3. E remova as importações não utilizadas.
  4. Salve .

Etapa 11: Vá para DriveTrainCommand

Vá para DriveTrainCommand
Vá para DriveTrainCommand
  1. Vá para DriveTrainCommand.
  2. Agora faremos a parte que pega os joysticks e os aplica para mover o robô. Dentro do execute (porque é executado constantemente) adicione a linha (Robot. DriveTrainSub.arcadeDrive (Robot.oi. Driver.getRawAxis (1), Robot.oi. Driver.getRawAxis (4));) onde chamamos o arcadeDrive em nosso subsistema com os valores de Robot.io. Driver.getRawAxis (1) que retorna o valor do joystick e onde 1 é o eixo do eixo y esquerdo e o mesmo para o segundo valor, exceto 4 é o eixo x direito. então isso significaria que o controle esquerdo iria para frente e para trás e o controle direito iria para a direita e para a esquerda. (se você quiser, pode voltar ao RobotMap e criar novos valores para o eixo do joystick e, em seguida, chamá-los com RobotMap. (nome do eixo) e não se esqueça de torná-los finais se fizer isso desta forma.)
  3. Em seguida, remova todas as importações não utilizadas de todo o projeto.

Etapa 12: finalmente compilar e enviar o código para o robô

Recomendado: