Sensores Quick IRs
Aqui detalhamos como deve ser executada a conexão dos sensores infravermelhos da linha Quick!
1. 12V Compact
Neste capítulo é mostrado a documentação necessária para conectar seu sensor infravermelho E3ZD62
1.1 Materiais necessários
Nesta página será passado um panorama de quais serão os materiais utilizados na conexão elétrica do sensor infravermelho. Estamos considerando que você já tenha um suporte com a elétrica inicial de todo robô montada, a qual inclui: roboRIO, módulos de distribuição, breaker de 120A, entre outros...
Lista de Materiais
- 1 x Sensor infravermelho retroreflexivo - E3ZD62
-
1 x RoboRIO - Estamos considerando que ele já está conectado eletricamente ao resto do robô
1.2 Conexão elétrica
Nesta página será mostrado como deverá ser realizada a conexão elétrica do sensor IR.
Diagramas
Antes de mais nada é importante esclarecermos o que cada cor de cabo indica. Então:
- Marrom - Vcc+
- Preto - Output
- Azul - GND
Neste diagrama inicial, estamos considerando o uso de uma VRM - Voltage Regulator Module
Já no segundo estamos apenas considerando o uso de uma PDH - Power Distribution Hub
Importante notar que como o sensor utilizado é **PNP**, a carga - **optoacoplador** - deve ser conectada ao **GND** junto do sensor IR, como mostram os dois diagramas acima.
1.3 Calibração do sensor
Nessa página será mostrado quais ajustes são possíveis fazer no sensor para melhorar sua precisão na hora de lermos um objeto.
Distância
Com este sensor é possível ajustarmos a distância útil que queremos que ele leia, dessa forma, podemos regular nosso sensor de acordo com nosso mecanismo para maior compatibilidade. Para calibrarmos a distância útil de leitura primeiro é preciso notar o seguinte:
Nessa imagem podemos observar que temos dois ajustes, o primeiro deles é referente a distância, caso você queira diminuir a distância útil que o sensor detecta é preciso girar essa chave para a direção de min. Se quiser aumentar gire-a para a direção de max.
Leitura invertida
Pode acontecer de quando ligarmos nosso sensor e formos detectar um objeto nossa leitura esteja invertida, de forma que quando detectar o objeto o sensor nos retorne false, e quando não detectar true. Para resolver isso, temos o segundo ajuste. Quando colocamos a segunda chave em L, o sensor indica true para quando detectarmos o objeto, e false quando não o fizer. Agora se colocarmos em D, o sensor indicará false quando detectarmos o objeto, ou seja, agora está invertido da configuração anterior. Escolha a de sua preferência.
Interessante notar que é possível realizar leituras sem necessariamente rodarmos um código, isso pode ser feito utilizando o LED que vem acoplado no sensor infravermelho, caso ele ligue quer dizer que o retorno é *true*, se ficar desligado é *false*.
2. 5V
Este capítulo será usado para explicar as conexões elétricas do sensor infravermelho E18-d80NK.
2.1 Materiais necessários
Nesta página será passado um panorama de quais serão os materiais utilizados na conexão elétrica do sensor infravermelho. Estamos considerando que você já tenha um suporte com a elétrica inicial de todo robô montada, a qual inclui: roboRIO, módulos de distribuição, breaker de 120A, entre outros...
Lista de Materiais
- 1 x Sensor infravermelho retroreflexivo - E18-d80NK
- 1 x RoboRIO - Estamos considerando que ele já está conectado eletricamente ao resto do robô
- Serão utilizados alguns cabos de 24 AWG (Cabos jumper)
2.2 Conexão elétrica
Nesta página será mostrado como deverá ser realizada a conexão elétrica do sensor IR.
Diagramas
Antes de mais nada é importante esclarecermos o que cada cor de cabo indica. Então:
- Marrom - Vcc+
- Preto - Output
- Azul - GND
A vantagem deste sensor é que é possível conecta-lo diretamente ao roboRIO sem optoacopladores ou outros componentes.
2.3 Calibração do sensor
Nessa página será mostrado quais ajustes são possíveis fazer no sensor para melhorar sua precisão na hora de lermos um objeto.
Distância
Com este sensor é possível ajustarmos a distância útil que queremos que ele leia, dessa forma, podemos regula-lo de acordo com nosso mecanismo para maior compatibilidade. Para calibrarmos a distância útil de leitura primeira é preciso notar o seguinte:
A parte de trás do sensor possui um parafuso, caso esse seja rotacionado no sentido horário a distância útil do sensor aumenta, agora, se o girarmos para o sentido anti-horário a distância de detecção diminui.
Interessante notar que o sensor possui um LED acoplado, dessa forma ele liga quando indicar true e desliga quando indicar false.
3. Leitura dos sensores infravermelhos
Neste capítulo será abordado a parte do código para obter os dados dos sensores IR
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 o número 0 é o local - parâmetro da função construtora da classe DigitalInput - que 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());
}
Se estiver utilizando o sensor ED30-D80B4 é possível reverter a leitura na própria calibração do sensor, para isso de uma olhada na página 1.3 Calibração do sensor
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:
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
3.2 Código em LabView
Antes de começarmos a realizar a leitura dos nosso sensores infravermelhos em LabVIEW é preciso esclarecer dois items:
- Estamos considerando que você já saiba como instalar e mexer no programa LabVIEW para FRC.
- A segunda parte é que estamos considerando que você já tenha o resto da sua elétrica montada, e a única coisa que precisaremos fazer é construir o código no roboRIO.
Código
A primeira etapa que devemos realizar é configurar uma referência para nossa porta de entrada digital, isso é feito em nosso Begin.vi, portanto vamos utilizar um VI de Open para informar a porta DIO que o sensor está conectado, e depois vamos fazer o registro da referência:
Caso queira alterar a porta digital, apenas edite a constante DIO 0.
Para realizarmos a leitura do sensor infravermelho é preciso acessar a referência do sensor declarada anteriormente e obter seu valor por meio de um VI que retorna o valor da porta. Nesse caso estamos colocando seu valor em um indicador. Faremos isso utilizando o seguinte diagrama:
As vezes pode ser necessário reverter a leitura do sensor, pois ele pode detectar um objeto e retornar false, e isso atrapalha na hora da visualização. Portanto, para inverter a leitura faça o seguinte, adicione um not na função get, como segue:
Se estiver utilizando um sensor ED30-D80B4 é possível inverter a leitura no próprio sensor, para isso de uma olhada na página 1.3 Calibração do sensor
Visualização no Painel Frontal
Quando criamos o indicador que armazena o estado do nosso sensor, automáticamente no front panel do LabVIEW é criado um elemento que indica o estado da variável. Da seguinte forma: