Lição 4: Codificação do sensor de objeto
Na última lição, aprendeu sobre o sensor de objetos e recolheu as percentagens de refletividade dos discos e dos cubos. Agora, irá utilizar estes valores para criar um projeto no VEXcode para parar o Exit Conveyor quando um disco for detetado pelo Object Sensor.
Nesta lição, irá:
- Configure o sensor de objetos no VEXcode.
- Aprenda a utilizar operadores de comparação no VEXcode.
- Crie um projeto para mover um disco do transportador de entrada para o transportador de saída utilizando o feedback do sensor de objetos.
No final desta lição, terá desenvolvido o seu projeto da lição anterior para parar o transportador de saída quando o disco for detetado pelo sensor de objetos.

Editando o Projeto
Começará por editar o seu projeto da Atividade da Lição 2 da Unidade 4 para se preparar para adicionar os comandos relacionados com o Sensor de Objetos.
Abra o seu projetoUnidade 4 Lição 2 Atividadeno VEXcode EXP ou recrie o projeto aqui apresentado.
Renomeie o projetoUnidade 4 Lição 4.

Configure o sensor de objetos no VEXcode abrindo a janela Dispositivos e selecionandoAdicionar um dispositivo.

Selecione 3 fiospara abrir a lista de dispositivos de 3 fios.

De seguida, selecione o Sensor de Objetos.

Selecione a porta A, depoisConcluídopara concluir a configuração.
Nota:Certifique-se de que o sensor de objetos está ligado à porta A do Brain.

Remova os dois últimos blocos do projeto. Isto inclui o blocoWaite o blocoStoppara o Exit Conveyor, como mostrado neste vídeo.
Adicione um blocoWait untilao projeto.
O blocoWait untilé um bloco que aguarda que uma condição booleana seja reportada como verdadeira antes de passar para o bloco seguinte da pilha.

Operadores de comparação
Agora que o blocoWait untilfoi adicionado ao projeto, a condição a ser verificada pelo bloco necessita de ser adicionada.
Anteriormente, aprendeu sobre a percentagem de refletividade reportada pelo Sensor de Objetos e registou esses valores no seu caderno de engenharia. Neste projeto, necessita que o Exit Conveyor seja executadoaté, quando este valor está acima de um determinado limite . Um limite é algo utilizado para determinar se um valor está acima, abaixo ou dentro de um intervalo aceitável. Os operadores de comparação podem ser utilizados para verificar se a refletividade está acima de um determinado valor ou acima desse limite.
Adicione um bloco Maior queao espaço hexagonal doAguarde até.

Adicione um bloco de Reflectividade na primeira abertura do blocoSuperior a.

O blocoMaior quecompara o primeiro valor com o segundo. O bloco Maior queatualmente no projeto está a comparar a percentagem de refletividade reportada pelo Sensor de Objetos com o parâmetro '50' antes de declarar o Booleano comoVerdadeiroouFalso.

Pense nos objetivos deste projeto. O transportador de saída precisa de rodar até que o sensor de objetos detete um objeto e, em seguida, o transportador precisa de parar. Os valores recolhidos na lição anterior podem ser utilizados com este blocoMaior quepara determinar o limite que necessita de ser excedido antes de o projeto passar para o bloco seguinte da pilha.
Altere o segundo parâmetro do blocoMaior quepara '9'.
Este número baseia-se nos valores recolhidos na atividade da lição anterior. A refletividade foi reportada como 10% quando o disco verde estava sob o sensor do objeto, pelo que qualquer valor superior a9% deve ser reportado comoVerdadeiro.

Adicione um blocoStopno final do projeto. Certifique-se de que o parâmetro está definido como 'ExitConveyor4'.

Certifique-se de que o Brain está ligado ao VEXcode e descarregue o projeto.

Leia o código e preveja o que os transportadores farão quando o projeto for executado.
Registe a sua previsão no seu caderno de engenharia.

Certifique-se de que está colocado um Disco verde no Transportador de Entrada. Prima o botão Check no Brain para executar o projeto e testá-lo.
Observe o comportamento dos transportadores à medida que o projeto é executado.

Prima o botão X no Cérebro para interromper o projeto quando os transportadores terminarem de se mover. Registe as suas observações no seu caderno de engenharia.
As correias transportadoras moveram-se conforme previu? O Disco verde foi movido para o Transportador de Saída como esperado? Porquê ou por que não?

Revendo o Projeto
Vamos rever o fluxo do projeto neste projeto que parou o Exit Conveyor quando o disco verde foi detetado pelo sensor de objetos. O blocoWait untilinterrompeu o progresso do projeto até que a condição nele contida fosse reportada como TRUE.

Como o blocoSpiné um bloco sem espera, permite que a célula de trabalho CTE continue a rodar o motor do transportador enquanto verifica os valores do sensor de objectos e a condição da reflectividade ser superior a 9%. Após a condição no blocoWait untilser reportada comoTRUE, o projeto passa para o bloco seguinte da pilha, parando o motor do Exit Conveyor.
Para sua informação
Outra combinação de blocos pode ser utilizada num projeto para parar o Exit Conveyor quando um objeto está sob o Object Sensor. O blocoSet Detection Thresholdpode ser utilizado no início de um projeto para definir o limite, tal como o blocoGreater thanfez no projeto criado acima.

Uma vez definido o limite, o bloco BooleanDetects objectpode ser utilizado em qualquer bloco com espaços hexagonais. Este bloco reportará VERDADEIRO quando o limite de deteção definido pelo blocoSet detection thresholdfor atingido, ou FALSO quando a percentagem de refletividade estiver abaixo desse limite.

Como o blocoDetectsobjecté um bloco booleano, pode ser encaixado directamente no blocoWait until.

Verifique a sua compreensão
Antes de passar para a lição seguinte, certifique-se de que compreende os conceitos desta lição respondendo às seguintes questões no seu caderno de engenharia.
Verifique suas perguntas de compreensão > (Google Doc / .docx / .pdf )
Selecione Seguinte > para avançar para a atividade Juntar tudo.