Codificación con motores inteligentes VEX IQ

El motor inteligente VEX IQ tiene muchas funciones para usar al codificar en VEXcode IQ. Esto puede resultar útil a la hora de codificar brazos, garras y tomas, así como transmisiones y otros mecanismos creados con VEX IQ. Comprender cómo se pueden codificar los motores ayudará a aliviar problemas como proyectos que se estancan o motores que no funcionan según lo previsto.

Codificador de motor

El motor inteligente VEX IQ no solo convierte la energía eléctrica en energía mecánica, como lo hacen la mayoría de los motores, sino que también tiene características que la mayoría de los motores no tienen, lo que lo hace "inteligente". Una de sus principales características es el codificador de cuadratura. Este codificador está montado en el interior del motor para rastrear la velocidad y/o la posición del eje del motor.

Los informes del codificador del VEX IQ Smart Motor permiten conocer:

  • La dirección de giro del motor (adelante/atrás o abierto/cerrado)
  • La posición del motor y la cantidad de giro y posición del motor (ya sea en vueltas o grados)
  • La velocidad de giro del motor (basada en la posición del codificador a lo largo del tiempo)

Debido a que el codificador informa los estados del motor, se pueden usar en cálculos detrás de escena para hacer que muchos de los comandos de movimiento y detección funcionen dentro de VEXcode IQ.

Codificación de motores individuales

Antes de comenzar a codificar motores inteligentes individuales en VEXcode IQ, debe configurar el motor. Los motores individuales se utilizan con frecuencia para mecanismos adicionales como tomas, brazos y garras. Sin embargo, toda la información sigue siendo válida para otros mecanismos que utilizan motores individuales.

imagen7.png

Siga los pasos de este artículo para configurar su motor individual en VEXcode IQ.

Con un solo motor configurado, los comandos para controlar ese motor aparecerán en la Caja de herramientas. Notarás que hay diferentes tipos de comandos: en espera y sin espera.

Comandos en espera versus sin espera

Tenga en cuenta que todas las imágenes aquí muestran bloques. Todos estos proyectos se pueden reconstruir en Python o C++ y contienen la misma funcionalidad que los bloques.

imagen3.png

Los comandos de espera impiden que el proyecto continúe hasta que se complete el comportamiento. Estos incluyen comandos como [Girar para] y [Girar a posición].

El proyecto que se muestra aquí utiliza una plantilla Clawbot (2 motores) y todos los comandos están en espera. Entonces, en serie, el motor de la garra se cerraría 90 grados, el robot avanzaría en reversa y luego el brazo giraría hasta alcanzar la posición 180 grados.

imagen6.png

Por el contrario, existen comandos que no esperan. Un comando que no espera ejecutará el comportamiento indefinidamente o hasta que se le indique que cambie a otro comportamiento. Estos incluyen comandos como [Girar].

El proyecto que se muestra aquí utiliza un BaseBot con una entrada agregada. Aquí el motor de admisión comenzaría a girar. El comando [Esperar] es un comando de espera, por lo que la entrada continuaría girando hasta que transcurrieran los 2 segundos, luego pasaría al siguiente comando en el proyecto, que es un comando [Detener]. Entonces el motor dejaría de girar.

Tiempos de espera del motor

Al codificar un motor como parte de un brazo o garra, es importante recordar la diferencia entre bloques en espera y sin espera y cómo estos afectarán el movimiento de su robot. Los tiempos de espera del motor le permiten establecer un límite de tiempo para que el motor alcance la posición objetivo prevista. Si no ha alcanzado esa posición cuando expire el tiempo, el motor dejará de intentar girar y el proyecto pasará al siguiente comando.

imagen2.png

En este ejemplo, el tiempo de espera del motor se establece en 2 segundos. Si la garra no se cierra a 90 grados en 2 segundos, el motor dejará de girar en la marca de 2 segundos y luego pasará al siguiente comando y avanzará.

imagen4.png

Si no está seguro de hasta dónde mover un motor, utilice el panel de sensores. El tablero informa la posición del motor en grados y revoluciones, por lo que a medida que mueve un motor (como abrir y cerrar una garra) los números cambiarán. Utilice esta prueba para determinar cuántos grados o rotaciones se necesitan para cerrar una garra, levantar un brazo, girar una entrada, etc.

Consulte estos artículos para aprender a utilizar el panel de sensores.

Codificación de motores inteligentes como parte de una transmisión

Antes de comenzar a codificar una transmisión en VEXcode IQ, debe configurar la transmisión, incluidos los motores utilizados. Los motores están configurados dentro del tren motriz para garantizar que se controlen con los mismos comandos como [Drive] y [Drive for].

Comandos de espera y no espera

Al codificar una transmisión, hay disponibles comandos de espera y no espera para controlar el movimiento del robot.

imagen1.png

Los comandos de espera impiden que el proyecto continúe hasta que se complete el comportamiento. Estos incluyen comandos como [Conducir hacia] [Girar hacia] y [Girar hacia rumbo].

El proyecto que se muestra aquí utiliza una plantilla Clawbot (2 motores) y todos los comandos están en espera. Entonces, en serie, el robot avanzaría 200 milímetros y luego giraría a la derecha utilizando la transmisión.

imagen8.png

Por el contrario, existen comandos que no esperan. Un comando que no espera ejecutará el comportamiento indefinidamente o hasta que se le indique que cambie a otro comportamiento. Estos incluyen comandos como [Conducir].

El proyecto que se muestra aquí utiliza un BaseBot. Aquí el robot avanzaría indefinidamente hasta que se presionara el interruptor del parachoques. Luego, el proyecto pasaría al siguiente comando y el robot dejaría de conducir y giraría a la derecha 90 grados.

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

Last Updated: