Ir para o conteúdo principal

3.1 Código em Java

Nesta página será descrito como deve ser feito o código em Java para lermos os dados obtidos pelo sensor infravermelho. Antes de começarmos a programar é importante esclarecer alguns items:

  • Estamos considerando que você já saiba como mexer no VS Code WPILib de maneira geral e tenha sua elétrica montada conforme os capítulos anteriores.
  • O código é o mesmo para qualquer sensor infravermelho retro reflexivo, ou que tenha um input apenas, como nosso caso.

Código

A primeira etapa que devemos fazer é declarar a nossa entrada do roboRIO que estará fazendo a leitura do sensor. Portanto:

DigitalInput sensorInfravermelho = new DigitalInput(0);

Onde temos a o número 0 é o local - parâmetro da função construtora da classe DigitalInput - onde deve ser declarado qual porta DIO do roboRIO estamos utilizando, nesse caso, a 0, mas poderia ser a 1, 2, 3...


A segunda parte é a exibição desses valores em uma dashboard, em nosso caso estaremos utilizando a shuffleboard. Para fazer isso apenas faça - dentro de uma função períodica para leituras contínuas:

@Override
public void robotPeriodic() 
{
SmartDashboard.putBoolean("Estado do sensor IR", sensorInfravermelho.get());
}

Caso sua leitura esteja invertida, ou seja, quando o sensor não está detectando nenhum objeto ele retorna verdadeiro (nesse caso será representado pelo true na shuffleboard), mas se detectar retorna falso. Para resolver isso apenas precisamos inverter a leitura. Para isso faça como o código abaixo:

@Override
public void robotPeriodic() 
{
SmartDashboard.putBoolean("Estado do sensor IR", !sensorInfravermelho.get());
}

Exibição na shuffleboard

Quando colocarmos nossa variável de leitura na shuffleboard, será apenas uma caixa de texto, portanto, ela dirá true ou false. Entretanto é possível alterarmos para uma boolean box, a qual indicará pela cor se nosso sensor esta ou não lendo algo. Para fazer isso, clique com o botão direito no elemento da shuffleboard e faça o seguinte:

Captura de tela 2023-10-17 150637.png

Caso nosso sensor detecte um objeto essa caixa deverá ficar verde.


Lembrando que se ficar invertido é necessário reverter isso na leitura do código, como descrito mais acima nesta página