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.

Menú de dispositivos VEXcode IQ con una lista de dispositivos conectados mostrados. Se resalta un motor inteligente, lo que indica que se puede configurar después de seleccionarlo.

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.

Proyecto de bloques VEXcode IQ que utiliza comandos de espera para mover el motor de la garra, luego el robot y luego el motor del brazo, uno tras otro. El proyecto dice: Cuando se inicia, gira ClawMotor 90 grados para cerrarlo. A continuación, conduzca hacia atrás durante 200 mm y luego gire el ArmMotor hasta la posición 180 grados.

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.

Proyecto de bloques VEXcode IQ que utiliza comandos sin espera para girar el motor de admisión durante exactamente 2 segundos. El proyecto dice Cuando se inicia, gira IntakeMotor, espera 2 segundos y luego detén IntakeMotor.

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.

Proyecto de bloques VEXcode IQ que utiliza un bloque de tiempo de espera del motor para girar el motor de la garra cerrado durante 90 grados o hasta que hayan pasado 2 segundos antes de mover el robot. El proyecto dice: Cuando se inicia, configure el tiempo de espera de ClawMotor en 2 segundos y gire ClawMotor para cerrarlo 90 grados. Por último, conduzca hacia atrás durante 200 mm.

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á.

La pantalla del cerebro se muestra con el Panel del sensor de motor abierto desde el menú Dispositivos. Se muestra información sobre el motor, como su comando, velocidad, posición, corriente y el puerto inteligente del motor.

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.

Proyecto de bloques VEXcode IQ que utiliza comandos de espera para impulsar al robot hacia adelante y luego girar a la derecha uno tras otro. El proyecto dice: Al iniciar, avance 200 mm y luego gire a la derecha 90 grados.

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.

Proyecto de bloques VEXcode IQ que utiliza un comando sin espera para impulsar al robot hacia adelante hasta que se presione el parachoques y luego gire hacia la derecha. El proyecto dice: Al iniciar, conduzca hacia adelante, espere hasta que se presione Bumper3 y luego gire a la derecha 90 grados.

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: