Do Zero ao Autônomo: Dirigindo e Cruzando Linhas Automáticas

Find AI Tools in second

Find AI Tools
No difficulty
No complicated process
Find ai tools

Do Zero ao Autônomo: Dirigindo e Cruzando Linhas Automáticas

Título: Zero a autônomo em FRC Java: Tutorial Completo Passo a Passo 🤖

Sumário

  1. Introdução
  2. Pré-requisitos
  3. Configurando o ambiente de programação
  4. Codificando as funções de movimentação tele-operada
  5. Entendendo o funcionamento dos controladores de motor
  6. Implementando o controle de velocidade dos motores
  7. Utilizando a estratégia de controle arcade drive
  8. Configurando e utilizando o joystick
  9. Calculando a potência de acionamento dos motores
  10. Testando o código tele-operado
  11. Criando a função autônoma de cruzamento da linha automática
  12. Utilizando temporizadores para controle do tempo autônomo
  13. Testando e ajustando o código autônomo
  14. Considerações finais

Introdução

Neste tutorial, iremos explorar o desenvolvimento de um código de robô autônomo em FRC Java. Começaremos com conceitos básicos, como o acionamento de um motor, e chegaremos a algoritmos mais avançados de condução autônoma, como PID, perfil de movimento e perseguição pura. Além disso, discutiremos o controle em espaço de estados.

Pré-requisitos

Antes de começar este tutorial, é necessário ter um conhecimento básico de programação e da linguagem Java. Além disso, você precisará configurar um ambiente de programação FRC, incluindo o VSCode e a estação de controle do robô. Também será necessário ter acesso a um robô de treinamento onde você possa testar o seu código.

Configurando o ambiente de programação

Para começar, criaremos um novo projeto de robô usando o template "Timed Skeleton (Advanced)". Esse template é mais fácil de entender e nos permite ter um ponto de partida sólido. Após criar o projeto, organizaremos os arquivos em uma estrutura de pastas e especificaremos o número da sua equipe.

Codificando as funções de movimentação tele-operada

Antes de mergulharmos no código, é importante entender o que acontece no robô quando controlamos um motor. Para controlar um motor, precisamos utilizar um controlador de motor. Nesse código, utilizaremos a classe "Spark" da biblioteca WPI para enviar um sinal PWM para o controlador de motor. Esse sinal define a velocidade desejada para o motor.

Entendendo o funcionamento dos controladores de motor

Ao enviar o sinal PWM, estamos informando ao controlador de motor a velocidade desejada para o motor. Por sua vez, o controlador de motor traduz esse sinal em uma saída de tensão para o motor. Para cada motor utilizado no robô, precisaremos criar uma instância do controlador correspondente e definir a velocidade desejada.

Implementando o controle de velocidade dos motores

Vamos definir a velocidade dos motores na função periódica "tele-op". Nesse exemplo, utilizaremos a velocidade máxima para frente (1), velocidade máxima para trás (-1) e velocidade de parada (0). Como os motores do lado direito estão posicionados de forma oposta aos do lado esquerdo do chassi, precisaremos definir um valor negativo para que eles girem na mesma direção.

Utilizando a estratégia de controle arcade drive

Aqui utilizaremos a estratégia de controle arcade drive, na qual o eixo vertical do joystick é responsável pelo acionamento direto dos motores e o eixo horizontal é responsável pelo controle do movimento de giro. Para isso, precisaremos conectar o joystick à estação de controle do robô e obter os valores dos eixos correspondentes.

Configurando e utilizando o joystick

No código, criaremos um novo objeto do tipo joystick e o vincularemos à porta 0 do joystick físico. Em seguida, durante a função periódica "tele-op", leremos continuamente os valores dos eixos do joystick por meio do comando "getRawAxis".

Calculando a potência de acionamento dos motores

Com os valores desejados de velocidade e curva, precisamos calcular a potência de acionamento para os motores esquerdo e direito do chassi. Utilizando a estratégia arcade drive, a potência do motor esquerdo é calculada somando a velocidade desejada com a curva de controle, enquanto a potência do motor direito é calculada subtraindo a curva da velocidade.

Testando o código tele-operado

Agora que o código de controle tele-operado está pronto, vamos testá-lo no robô. Certifique-se de que o robô esteja ligado e que o código tenha sido implantado com sucesso. Em seguida, verifique se o controle do joystick está funcionando conforme o esperado.

Criando a função autônoma de cruzamento da linha automática

Agora vamos criar o código para a função autônoma de cruzamento da linha automática. O plano é fazer o robô avançar a 60% da velocidade máxima por 3 segundos. Para isso, utilizaremos um temporizador para controlar o tempo decorrido.

Utilizando temporizadores para controle do tempo autônomo

Na função periódica "autonomous", monitoraremos o tempo decorrido desde o início do modo autônomo. Se o tempo for inferior a 3 segundos, definiremos a velocidade dos motores para 60%. Caso contrário, pararemos os motores.

Testando e ajustando o código autônomo

Após escrever o código autônomo, é importante testá-lo e ajustá-lo para garantir que o robô esteja seguindo o caminho esperado. Faça testes repetidos e revise as configurações de tempo e velocidade conforme necessário.

Considerações finais

Parabéns! Agora você tem um código funcional para controlar um robô FRC em modo tele-operado e autônomo. Fique à vontade para explorar outras funcionalidades e métodos de controle para aprimorar o desempenho do robô. Divirta-se programando e boa sorte nas competições FRC!

Recursos:

Most people like

Are you spending too much time looking for ai tools?
App rating
4.9
AI Tools
100k+
Trusted Users
5000+
WHY YOU SHOULD CHOOSE TOOLIFY

TOOLIFY is the best ai tool source.