Codificação com motores inteligentes VEX IQ

O VEX IQ Smart Motor tem muitas funções para usar ao codificar no VEXcode IQ. Isso pode ser útil ao codificar braços, garras e entradas, bem como transmissões e outros mecanismos criados usando o VEX IQ. Compreender como os motores podem ser codificados ajudará a aliviar problemas como projetos paralisados ​​ou motores que não funcionam conforme planejado.

Codificador de motor

O VEX IQ Smart Motor não apenas transforma energia elétrica em energia mecânica, como a maioria dos motores faz, mas também possui recursos que a maioria dos motores não possui, o que o torna “inteligente”. Uma de suas principais características é o codificador de quadratura. Este encoder é montado no interior do motor para rastrear a velocidade e/ou a posição do eixo do motor.

Os relatórios do encoder do VEX IQ Smart Motor permitem saber:

  • A direção de rotação do motor (para frente/para trás ou aberto/fechado)
  • A posição do motor e a quantidade de rotação e posição do motor (em voltas ou graus)
  • A velocidade de rotação do motor (com base na posição do codificador ao longo do tempo)

Como o codificador relata os estados do motor, eles podem ser usados ​​em cálculos de bastidores para fazer com que muitos dos comandos de movimento e detecção funcionem no VEXcode IQ.

Codificação de motores individuais

Antes de começar a codificar motores inteligentes individuais no VEXcode IQ, você precisa configurar o motor. Motores individuais são frequentemente usados ​​para mecanismos adicionais, como entradas, braços e garras. No entanto, todas as informações ainda se aplicam a outros mecanismos que utilizam motores individuais.

imagem7.png

Siga as etapas deste artigo para configurar seu motor individual no VEXcode IQ.

Com um único motor configurado, os comandos para controlar esse motor aparecerão na Caixa de Ferramentas. Você notará que existem diferentes tipos de comandos: espera e não espera.

Comandos de espera versus comandos de não espera

Observe que todas as imagens aqui mostram blocos. Todos esses projetos podem ser reconstruídos em Python ou C++ e contêm a mesma funcionalidade dos blocos.

imagem3.png

Os comandos de espera impedem que o projeto continue até que o comportamento seja concluído. Isso inclui comandos como [Girar para] e [Girar para posicionar].

O projeto mostrado aqui usa um modelo Clawbot (2 motores) e todos os comandos estão aguardando. Então, em série, o motor da garra fechava 90 graus, o robô andava em marcha à ré e o braço girava para cima até atingir a posição 180 graus.

imagem6.png

Em contraste, existem comandos sem espera. Um comando sem espera executará o comportamento indefinidamente ou até que seja solicitado a mudar para outro comportamento. Isso inclui comandos como [Spin].

O projeto mostrado aqui usa um BaseBot com entrada adicionada. Aqui o motor de admissão começaria a girar. O comando [Wait] é um comando de espera, então a entrada continuaria girando até que os 2 segundos terminassem e depois passaria para o próximo comando no projeto, que é um comando [Stop]. Então o motor pararia de girar.

Tempos limite do motor

Ao codificar um motor como parte de um braço ou garra, é importante lembrar a diferença entre blocos de espera e de não espera e como eles afetarão o movimento do seu robô. Os tempos limite do motor permitem definir um limite de tempo para o motor atingir a posição alvo pretendida. Caso não atinja essa posição quando o tempo expirar, o motor irá parar de tentar girar e o projeto passará para o próximo comando.

imagem2.png

Neste exemplo, o tempo limite do motor está definido para 2 segundos. Se a garra não se aproximar de 90 graus em 2 segundos, o motor irá parar de girar na marca de 2 segundos e então passará para o próximo comando e avançará.

imagem4.png

Se você não tiver certeza de até onde mover um motor, use o painel do sensor. O painel informa a posição do motor em graus e rotações, portanto, conforme você move um motor (como abrir e fechar uma garra), os números mudam. Use este teste para determinar quantos graus ou rotações são necessários para fechar uma garra, levantar um braço, girar uma entrada, etc.

Consulte estes artigos para saber como usar o painel do sensor.

Codificando motores inteligentes como parte de um sistema de transmissão

Antes de começar a codificar um trem de força no VEXcode IQ, você precisa configurar o trem de força incluindo os motores usados. Os motores são configurados dentro do sistema de transmissão para garantir que sejam controlados com os mesmos comandos como [Drive] e [Drive for].

Comandos de espera e não espera

Ao codificar um trem de força, comandos de espera e de não espera estão disponíveis para controlar o movimento do robô.

imagem1.png

Os comandos de espera impedem que o projeto continue até que o comportamento seja concluído. Isso inclui comandos como [Dirigir para], [Virar para] e [Virar para rumo].

O projeto mostrado aqui usa um modelo Clawbot (2 motores) e todos os comandos estão aguardando. Assim, em série, o robô avançaria 200 milímetros e depois viraria à direita usando o sistema de transmissão.

imagem8.png

Em contraste, existem comandos sem espera. Um comando sem espera executará o comportamento indefinidamente ou até que seja solicitado a mudar para outro comportamento. Isso inclui comandos como [Drive].

O projeto mostrado aqui usa um BaseBot. Aqui o robô avançaria indefinidamente até que o interruptor do pára-choque fosse pressionado. Então o projeto passaria para o próximo comando e o robô pararia de dirigir e viraria 90 graus à direita.

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

Last Updated: