Índice:
- Passo 1:
- Etapa 2: Criar um novo projeto de robô
- Etapa 3: Criar / preencher o RobotMap
- Etapa 4: Excluir Comando de Exemplo e Subsistema de Exemplo
- Etapa 5: Criar DriveTrainSubSystem
- Etapa 6: Crie o DriveTrainCommand
- Etapa 7: pule para o robô
- Etapa 8: volte para DriveTrainCommand
- Etapa 9: Vá para DriveTrainSub
- Etapa 10: Em seguida, criaremos o código OI
- Etapa 11: Vá para DriveTrainCommand
- Etapa 12: finalmente compilar e enviar o código para o robô
2025 Autor: John Day | [email protected]. Última modificação: 2025-01-13 06:58
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:
Eclipse aberto
Etapa 2: Criar um novo projeto de robô
- Clique com o botão direito no explorador de pacotes, clique em novo e em outro.
- Role para baixo até ver WPILib Robot Java Development (se não o vir, não tem os recursos wpilib instalados).
- Clique em Robot Java Project
- 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
Crie variáveis finais que contenham o número de portas talon diferentes
Etapa 4: Excluir Comando de Exemplo e Subsistema de Exemplo
Etapa 5: Criar DriveTrainSubSystem
- 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.
- Crie um RobotDrive chamado Drive
- 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))
- 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
- Em seguida, altere initDefaultCommand () para conter a linha setDefaultCommand (new DriveTrainCommand ());.
- Não se preocupe com todos os erros ainda.
Etapa 6: Crie o DriveTrainCommand
- 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).
- 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).
- 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ô
- Em seguida, vamos pular para a classe de robôs
- 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).
- Em seguida, importe nosso DriveTrainSubSystem.
- Em seguida, removeremos a linha (chooser.addDefault ("Default Auto", new ExampleCommand ());)
- Em seguida, remova as importações não utilizadas.
- Em seguida, salve.
Etapa 8: volte para DriveTrainCommand
- import Robot (o segundo na imagem)
- Então salve
Etapa 9: Vá para DriveTrainSub
- Importar DriveTrainCommand
- Em seguida, salve.
Etapa 10: Em seguida, criaremos o código OI
- Vá para OI.
- Crie um novo objeto de joystick público com a porta 0.
- E remova as importações não utilizadas.
- Salve .
Etapa 11: Vá para DriveTrainCommand
- Vá para DriveTrainCommand.
- 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.)
- Em seguida, remova todas as importações não utilizadas de todo o projeto.