Solução de problemas de sensores VEX V5

Quando seu robô não se comporta conforme planejado ao usar o feedback do sensor, você pode seguir um procedimento de solução de problemas passo a passo para encontrar e corrigir seus problemas. Este artigo explicará as etapas de um processo de solução de problemas e fornecerá dicas sobre como usar essas etapas.

As etapas deste processo são:

  1. Identifique o problema
  2. Verifique o hardware
  3. Verifique o software
  4. Analise e aplique dados

Identifique o problema

A primeira etapa para solucionar problemas do seu sensor é identificar qual sensor está causando o problema. Compare o comportamento observado do robô com o comportamento pretendido do robô. O comportamento problemático é causado por um sensor? Se sim, qual sensor? Se precisar de mais informações para determinar qual sensor pode ser o problema, leia os artigos abaixo relacionados aos sensores do seu robô.

Sensores VEX V5:

Depois de identificar qual sensor está causando o comportamento indesejado, você poderá avançar no processo.


Verifique o hardware

A segunda etapa é verificar o hardware do robô para ter certeza de que o sensor pode funcionar conforme planejado. Cada uma das seguintes considerações de hardware pode estar afetando a funcionalidade do seu sensor.

Verifique o posicionamento do sensor.

Robô Clawbot V5 em movimento num campo. O robô possui um sensor ótico acoplado, que está destacado e a apontar para uma bucha de tungsténio vermelha à sua frente.

Comece observando onde o sensor está localizado em seu robô. O sensor está bloqueado por alguma coisa, como outra parte do seu robô? Certifique-se de que o sensor tenha o espaço necessário para funcionar conforme pretendido.

Conforme mostrado aqui, o Sensor Óptico tem uma linha de visão clara para o objeto que deve detectar.

Verifique a conexão do sensor

O ecrã do Brain é apresentado no menu Informações do dispositivo, que contém uma lista de todas as portas inteligentes do Brain e dispositivos ligados. O ícone do Sensor Óptico no menu Informação do Dispositivo está destacado para indicar que pode ser seleccionado para abrir o menu de informação.

Teste a funcionalidade do sensor observando os dados relatados na tela de dispositivos no VEX V5 Brain. Isso pode ajudá-lo a validar se o sensor está conectado e funcionando. 

Para aceder ao ecrã Dispositivos, os passos descritos neste artigo. Assim que a tela Dispositivos estiver aberta, veja se o sensor está visível na localização correta da porta e reportando dados. Aqui o Sensor Óptico é detectado na Porta Inteligente 11.

A imagem mostra o V5 Brain ligado a uma bateria V5 e a um dispositivo V5 Smart Motor. O cabo do Smart Motor está ligado a uma das portas Smart Ports do Brain.Módulo V5 com um dispositivo de 3 fios ligado a uma das suas portas de 3 fios.

Se o sensor não estiver reportando dados, certifique-se de que seus sensores estejam conectados corretamente. Ao conectar sensores a uma porta inteligente, você deverá ouvir um estalo quando a guia de travamento do sensor estiver totalmente encaixada em uma porta.

Ao conectar sensores em uma porta de 3 fios, o cabo deve ser totalmente inserido na orientação correta, com o fio branco mais próximo da tela do Brain. 

Você também pode tentar trocar o sensor que está usando por outro para ver se isso resolve o seu problema.

Se você alterou algo no posicionamento ou na conexão do sensor, teste seu projeto novamente para ver se isso resolveu o problema. Se o posicionamento e a conexão do sensor não foram alterados, passe para a próxima etapa para continuar o processo de solução de problemas.


Verifique o software

Após confirmar que o sensor foi posicionado e ligado corretamente ao robô, pode avançar para o projeto VEXcode V5. A iteração em um projeto pode ajudá-lo a garantir que os dados do sensor estejam sendo usados ​​de forma eficaz em seu projeto. As estratégias a seguir podem ajudá-lo a codificar seu sensor.

Se você aplicar alguma dessas estratégias ao seu projeto VEXcode V5, teste seu projeto novamente para ver se isso resolveu o problema.

Verifique o firmware e a configuração

O VEXcode V5 com um Brain ligado e o menu suspenso do Brain aberto indica que pode ser utilizado para verificar o firmware do Brain. A versão do VEXos está listada, sendo apenas apresentado o botão "Forçar atualização".

Comece por garantir que o firmware do seu V5 Brain está atualizado.

Consulte este artigo para saber mais sobre como atualizar o firmware no V5 Brain.

Menu de dispositivos do VEXcode V5 que apresenta uma longa lista de dispositivos ligados. Este menu pode ser utilizado para garantir que cada sensor está ligado corretamente e para verificar a sua porta específica no Brain.

Agora que você tem certeza de que todos os dispositivos estão conectados corretamente ao Brain, verifique a configuração do dispositivo no VEXcode V5.

Verifique se todos os sensores estão presentes na configuração. Em seguida, verifique se cada um está conectado à porta correta.

Altere quaisquer configurações incorretas do dispositivo.

Execute um projeto de exemplo

O menu de projetos de exemplo do VEXcode Blocks oferece uma variedade de projetos em diferentes categorias à sua escolha. A categoria Sensorial está destacada.

Abra um projeto de exemplo que usa o sensor que você está solucionando. Você pode selecionar a categoria 'Sensing' para filtrar projetos de exemplo.

Para mais informações sobre os projetos de exemplo e os modelos do V5 Blocks consulte este artigo.

Para mais informações sobre projetos e modelos de exemplo do V5 Python consulte este artigo.

Para mais informações sobre projetos e modelos de exemplo V5 C++ consulte este artigo.

VEXcode V5 com um projeto de exemplo aberto na categoria Sensoriamento, incluindo uma pilha de blocos de código e uma nota com a descrição do projeto. A nota está destacada.

Depois de aberto, leia a Nota para determinar se a funcionalidade no projeto de exemplo está alinhada com o que você está tentando fazer com o sensor.

No projeto de exemplo mostrado aqui, a nota indica que o estado do interruptor de pára-choque ou interruptor de limite pressionado será impresso na tela do Brain. Neste caso, True indica pressionado e False indica não pressionado. 

Execute o projeto de exemplo e observe o comportamento do robô. Em seguida, observe o projeto para ver como os dados do sensor estão sendo usados ​​para causar os comportamentos observados. Você pode querer executar o projeto de exemplo várias vezes para ajudar com isso.

Você pode tentar criar seu próprio projeto simplificado para aplicar o que aprendeu no projeto de exemplo à sua tarefa.

Use outras ferramentas VEXcode V5

Existem também ferramentas e estratégias que você pode usar para ajudá-lo enquanto aprende mais sobre a codificação do seu sensor no VEXcode V5. Você pode aprender sobre os blocos ou comandos da Caixa de Ferramentas individualmente usando a Ajuda. Você também pode visualizar os dados do sensor enquanto um projeto está em execução para saber mais sobre o que o sensor está relatando.

VEXcode V5 com o menu Ajuda aberto e o bloco Pressionar o botão selecionado. São apresentadas descrições do bloco e de como pode ser utilizado, juntamente com imagens de exemplos de utilização.

A ajuda

Leia a Ajuda dos blocos ou comandos no projeto de exemplo ou em seu projeto para saber mais sobre os dados usados, quais valores o comando reportará e exemplos de como usar o comando em um projeto.

Consulte este artigo para saber mais sobre como acessar a Ajuda nos blocos VEXcode V5.

Consulte este artigo para saber mais sobre como acessar a Ajuda no VEXcode V5 Python.

Consulte este artigo para saber mais sobre como acessar a Ajuda no VEXcode V5 C++.

Imprimir dados

Você também pode imprimir dados do sensor enquanto o projeto de exemplo ou seu projeto está em execução, para ajudá-lo a entender melhor o que o sensor está relatando em tempo real. Isso pode ajudá-lo a determinar quais valores relatados pelo sensor serão usados ​​como parâmetros em seu projeto. 

Observe que em um projeto Blocks, um bloco {When started} hat separado pode ser usado para manter todos os comandos de impressão organizados em sua própria pilha.

Blocos VEXcode V5
Projeto VEXcode V5 Blocks que utiliza um loop infinito para imprimir dados de sensores no Brain enquanto o projeto está a ser executado. A primeira parte do projeto diz: Ao iniciar, defina a fonte para Mono Extra Large no Brain. Em seguida, existe um bloco de loop infinito com 5 blocos dentro dele. Os blocos no ciclo lêem: limpar todas as linhas em Brain, posicionar o cursor na linha 1, coluna 1 em Brain e, em seguida, imprimir Distância (mm): em Brain. De seguida, imprima a distância do objeto Distance19 em mm no Brain, posicione o cursor na linha seguinte e aguarde 0,5 segundos.
VEXcode V5 Python
# Início do código do projeto

# Aumentar o tamanho da letra para facilitar a leitura no ecrã do Brain
brain.screen.set_font(FontType.MONO40)

while True:
  # Cada iteração do ciclo irá limpar o ecrã
  brain.screen.clear_screen()
    
  # Após limpar o ecrã, voltar a posicionar o cursor de impressão no canto superior esquerdo
  brain.screen.set_cursor(1, 1)
  
  # Imprimir um rótulo e o valor da distância do objecto na mesma linha
  brain.screen.print("Distância (mm): ")
  brain.screen.print(distance_19.object_distance(MM))
  brain.screen.next_row()
  wait(0.5, SECONDS)
Código VEX V5 C++
int main() {

  // Aumenta o tamanho da letra para facilitar a leitura no ecrã do Brain
  Brain.Screen.setFont(mono40);
  
  while (true) {
  
    // Cada iteração do ciclo limpa o ecrã
    Brain.Screen.clearScreen();
    
    // Após limpar o ecrã, posiciona o cursor de impressão de volta no canto superior esquerdo
    Brain.Screen.setCursor(1, 1);
    
    // Imprime um rótulo e o valor da distância do objeto na mesma linha
    Brain.Screen.print("Distância (mm): %.2f", Distance19.objectDistance(mm));
    Brain.Screen.newLine();
    espera(0.5, segundos);
    
  }
  
}

A opção Imprimir no V5 Brain é útil quando pretende visualizar as alterações dos valores durante a execução de um projeto VEXcode V5. Isso pode ajudá-lo a determinar quais valores relatados pelo sensor serão usados ​​como parâmetros em seu projeto. Esses comandos de impressão podem ser integrados ao projeto VEXcode V5 que você já criou para que você possa ver os valores do sensor mudarem em momentos específicos enquanto o robô está em movimento. 

Os projetos de exemplo acima mostram como imprimir valores do sensor de distância para o cérebro V5. Os comentários em cada projeto explicam o fluxo do projeto e o uso de cada comando.

Blocos VEXcode V5
Projeto VEXcode V5 Blocks que utiliza um ciclo infinito para imprimir dados do sensor na consola enquanto o projeto está a ser executado. A primeira parte do projeto diz: Ao iniciar, defina a posição Rotation15 para 0 graus. Em seguida, existe um bloco de loop infinito com 3 blocos dentro dele. Os blocos no ciclo lêem, imprimem "Posição (graus):" na consola, imprimem "Posição de Rotação 15 em graus" na consola e posicionam o cursor na linha seguinte e, por fim, aguardam 0,5 segundos.
VEXcode V5 Python
# Início do código do projeto

# Repõe o sensor de rotação a 0 no início do projeto
rotation_15.set_position(0, DEGREES)

while True:
  # Imprime um rótulo e o valor da distância do objeto na mesma linha
  print("Posição (graus): ", end="")
  print(rotation_15.position(DEGREES))
  
  # Aguarda para imprimir o valor e, em seguida, repete o ciclo
  wait(0.5, SECONDS)
Código VEX V5 C++
int main() {

  // Reinicializa o sensor de rotação a 0 no início do projeto
  Rotation15.setPosition(0.0, degrees);
  
  while(true) {
  
    // Imprime um rótulo e o valor da distância do objeto na mesma linha
    printf("Posição (graus): %.2f\n", Rotação15. posição(graus));
    
    // Aguarda para imprimir o valor e, de seguida, repete o ciclo
    espera(0.5, segundos);
    
  }
  
}

impressão na Consola de Impressão do VEXcode V5 é recomendada para projetos em que o robô NÃO se move. O V5 Brain deve permanecer conectado durante a execução do projeto para poder imprimir no Print Console. Isso é benéfico porque você pode ler os valores da janela VEXcode V5 em vez de tentar ler os dados da tela do Brain.

Estes exemplos mostram um projeto imprimindo dados do Sensor de Rotação para o Console no VEXcode V5. 

Para obter mais informações sobre como usar o Print Console em blocos VEXcode V5, consulte este artigo.


Analisar e aplicar dados

A seguir, use o que você aprendeu nas etapas anteriores para ajustar seu projeto original. Você pode continuar a usar ferramentas como a Ajuda e a impressão de dados para permitir o uso eficaz do sensor para atingir seu objetivo.

Você também pode fazer perguntas sobre seu projeto para ajudá-lo a seguir em frente. Pense em coisas como:

  • Você está usando mais que < ou menos que > em seu projeto? O símbolo está voltado na direção certa? Se você estiver usando igual a = tente substituí-lo por maior ou menor que, para usar um intervalo de valores.
  • Seus parâmetros estão corretos? Você está usando os dados do sensor para definir seus parâmetros? Você escolheu a opção suspensa que precisa?
  • Você está verificando as condições mais de uma vez? Tente adicionar um loop Forever ao seu projeto, para que a condição seja verificada repetidamente quando o projeto for executado.
  • Seu projeto está travando? Suas condições estão definidas corretamente? Se você estiver usando loops aninhados, tente simplificar seu projeto para isolar comportamentos individuais.
  • Suas condições ambientais estão influenciando o sensor? Está muito claro ou muito escuro? Existem objetos ou pessoas no caminho? Tente executar seu projeto em um local diferente para ver se isso ajuda.
  • Você está executando a versão mais recente do seu projeto? Você baixou seu projeto atualizado para o Brain? Certifique-se de baixar novamente o projeto sempre que fizer uma alteração.
  • Você está detectando a cor correta? O sensor está reportando uma cor diferente daquela que você tem em seu projeto? Tente alterar o parâmetro de cor ou usar uma faixa de valores de matiz para ver se isso ajuda.
  • Você está detectando um objeto dentro do campo de visão do sensor? Lembre-se de que o campo de visão se move em conjunto com o movimento do robô.
  • Você está usando um bloco de espera enquanto verifica uma condição? Certifique-se de usar blocos sem espera em um projeto ao verificar uma condição. Consulte este artigo para saber mais sobre blocos de espera versus blocos sem espera no VEXcode V5.
  • Se você estiver codificando em blocos, toda a sua pilha está anexada ao bloco {When started} hat? Os blocos só funcionarão quando estiverem conectados. Você pode ouvir um som de clique ao arrastar blocos e conectá-los.

Ao responder a essas perguntas, certifique-se de mudar uma coisa de cada vez em seu projeto, testá-lo e avaliar se essa mudança foi eficaz. Testar seu projeto com frequência pode ajudá-lo a ver mais facilmente como seu código está conectado aos comportamentos do robô.  Pode ser necessário repetir as etapas do processo de solução de problemas várias vezes para resolver o problema, e tudo bem. Cada iteração ajudará você a aprender mais sobre o sensor que está usando e como codificá-lo no VEXcode V5.

For more information, help, and tips, check out the many resources at VEX Professional Development Plus

Last Updated: