Solución de problemas de los sensores VEX EXP

Cuando su robot no se comporta según lo previsto mientras usa la retroalimentación del sensor, puede seguir un procedimiento de solución de problemas paso a paso para encontrar y solucionar sus problemas. Este artículo explicará los pasos en un proceso de solución de problemas y proporcionará consejos sobre cómo usar estos pasos. 

Los pasos de este proceso son:

  1. Identificar el problema
  2. Comprobar hardware
  3. Comprobar software
  4. Analizar y aplicar datos

Identificar el problema

El primer paso para solucionar el problema de su sensor es identificar qué sensor está causando el problema. Compare el comportamiento observado del robot con el comportamiento previsto del robot. ¿El comportamiento problemático es causado por un sensor? Si es así, ¿qué sensor? Si necesita más información para determinar qué sensor puede ser el problema, lea los siguientes artículos relacionados con los sensores de su robot.

Sensores VEX EXP:

Una vez que haya identificado qué sensor está causando el comportamiento no deseado, puede avanzar en el proceso.


Comprobar hardware

El segundo paso es verificar el hardware del robot para asegurarse de que el sensor pueda funcionar según lo previsto. Cada una de las siguientes consideraciones de hardware podría estar afectando la funcionalidad de su sensor.

Comprobar la colocación del sensor

EXP Clawbot construye la conducción en un campo. El robot tiene un sensor óptico conectado que está resaltado y apunta hacia una Buckyball roja frente a él.

Comience mirando dónde se encuentra el sensor en su robot. ¿El sensor está bloqueado por algo, como otra parte de tu robot? Asegúrese de que el sensor tenga el espacio necesario para funcionar según lo previsto.

Como se muestra aquí, el sensor óptico tiene una línea de visión clara hacia el objeto que está destinado a detectar.

Compruebe la conexión del sensor

La pantalla del cerebro se muestra en el menú Dispositivos con un dispositivo de sensor óptico seleccionado.

Pruebe la funcionalidad del sensor observando los datos informados en la pantalla de dispositivos en el cerebro VEX EXP. Esto puede ayudarle a validar que el sensor está enchufado y funcionando. 

Para acceder a la pantalla de dispositivos, siga los pasos de este artículo. Una vez que la pantalla de dispositivos esté abierta, verifique si el sensor está informando datos.

Diagrama de un cerebro EXP conectado a un sensor óptico EXP.

Si el sensor no informa los datos, asegúrese de que los sensores estén enchufados correctamente. Al conectar los sensores a un puerto inteligente, debe escuchar un chasquido cuando la lengüeta de bloqueo del sensor esté completamente acoplada a un puerto.

Al conectar los sensores a un puerto de 3 cables, el cable debe estar completamente insertado en la orientación correcta con el cable blanco más cercano a la pantalla del cerebro. 

También puedes intentar cambiar el sensor que estás usando por otro para ver si eso resuelve tu problema.

Si cambiaste algo con la ubicación del sensor o la conexión del sensor, vuelve a probar tu proyecto para ver si esto resolvió el problema. Si la ubicación y la conexión de su sensor no cambiaron, continúe con el siguiente paso para continuar con el proceso de solución de problemas.


Comprobar software

Una vez que haya identificado que el sensor se ha colocado y conectado al robot con éxito, puede consultar el proyecto VEXcode EXP a continuación. Iterar en un proyecto puede ayudarlo a garantizar que los datos del sensor se utilicen de manera efectiva en su proyecto. Las siguientes estrategias pueden ayudarte a codificar tu sensor.

Si aplica alguna de estas estrategias a su proyecto VEXcode EXP, pruebe su proyecto nuevamente para ver si esto resolvió el problema.

Compruebe el firmware y la configuración

VEXcode EXP Menú de dispositivos con una larga lista de dispositivos conectados que se muestran. Este menú se puede utilizar para asegurarse de que cada sensor esté conectado correctamente y para verificar su puerto específico en el cerebro.

Ahora que está seguro de que todos los dispositivos están conectados correctamente al cerebro, compruebe la configuración del dispositivo en VEXcode EXP.

Compruebe que todos los sensores estén presentes en la configuración. Luego, verifique que cada uno esté conectado al puerto correcto.

Cambie cualquier configuración incorrecta del dispositivo.

Ejecutar un proyecto de ejemplo

VEXcode bloquea el menú de proyectos de ejemplo con una variedad de proyectos en diferentes categorías para elegir. La categoría Detección está resaltada.

Abra un proyecto de ejemplo que utilice el sensor que está solucionando. Puede seleccionar la categoría "Detección" para filtrar proyectos de ejemplo.

Para obtener más información sobre los proyectos y plantillas de ejemplo de EXP Blocks, consulta este artículo.

Para obtener más información sobre los proyectos y plantillas de ejemplo de Python EXP, consulte este artículo.

Para obtener más información sobre los proyectos y plantillas de ejemplo de EXP C++, consulta este artículo.

VEXcode EXP con un proyecto de ejemplo abierto desde la categoría Sensing, que incluye una pila de bloques de código y una nota con una descripción del proyecto. La nota está resaltada.

Una vez abierto, lea la Nota para determinar si la funcionalidad en el proyecto de ejemplo se alinea con lo que está tratando de hacer con el sensor.

En el proyecto de ejemplo que se muestra aquí, la nota indica que el interruptor de parachoques se está utilizando para detectar cuándo se presiona el interruptor para que el robot pueda dejar de conducir cuando entra en contacto con un objeto.

Ejecute el proyecto de ejemplo y observe el comportamiento del robot. Luego mire el proyecto para ver cómo se están utilizando los datos del sensor para causar los comportamientos observados. Es posible que desee ejecutar el proyecto de ejemplo varias veces para ayudar con esto.

Es posible que desee intentar crear su propio proyecto simplificado para aplicar lo que ha aprendido del proyecto de ejemplo a su tarea.

Usar otras herramientas EXP de VEXcode

También hay herramientas y estrategias que puede usar para ayudarlo a medida que aprende más sobre la codificación de su sensor en VEXcode EXP. Puede obtener información sobre los bloques o comandos de la Caja de herramientas de forma individual utilizando la Ayuda. También puede ver los datos del sensor mientras se ejecuta un proyecto para obtener más información sobre lo que informa el sensor.

VEXcode EXP con el menú Ayuda abierto y el bloque Pressing Bumper seleccionado. Las descripciones del bloque y cómo se puede usar se muestran junto con imágenes de usos de ejemplo.

La ayuda

Lea la Ayuda para los bloques o comandos en el proyecto de ejemplo o en su proyecto para obtener información sobre los datos que se utilizan, los valores que informará el comando y ejemplos de cómo usar el comando en un proyecto.

Consulta este artículo para obtener más información sobre cómo acceder a la Ayuda en VEXCODE EXP Blocks.

Consulta este artículo para obtener más información sobre cómo acceder a la Ayuda en VEXCODE EXP Python.

Datos de impresión

También puede imprimir datos del sensor mientras se ejecuta el proyecto de ejemplo o su proyecto, para ayudarlo a comprender mejor lo que el sensor informa en tiempo real. Esto puede ayudarte a determinar qué valores informados del sensor se utilizarán como parámetros en tu proyecto. 

Tenga en cuenta que en un proyecto Blocks, se puede usar un bloque {When started} Hat separado para mantener todos los comandos de impresión organizados en su propia pila. Vea a continuación un ejemplo de impresión en el EXP Brain y luego en la Consola de impresión.

Bloques VEXCODE EXP
VEXcode EXP bloquea el proyecto que utiliza un bloque Hat cuando se inicia para imprimir los datos del sensor en vivo mientras el proyecto se está ejecutando. El proyecto tiene un bloque When started seguido de 4 bloques en un bucle Forever. En el bucle, primero hay un bloque de comentarios que dice Imprimir el valor del rodillo del sensor inercial en el cerebro y luego ir a la siguiente fila. A continuación, un bloque de impresión lee imprimir la orientación BrainInertial del rollo en Brain y establecer el cursor en la siguiente fila. A continuación, un bloque de comentarios dice Espere para imprimir el valor y, a continuación, repita el bucle. Por último, un bloque de espera lee espera 0,1 segundos.
VEXcode EXP PYTHON
while True:
# Aumente el tamaño de la fuente para que sea legible en
la pantalla del cerebro. brain.screen.set_font (FontType.MONO40)

# Imprima el valor del rollo del sensor inercial en el cerebro y luego vaya
a la siguiente fila. brain.screen.print (brain_inertial.orientation (ROLL, DEGREES), precision=6 if vexcode_brain_precision is None else vexcode_brain_precision
)) brain.screen.next_row ()

# Espere para imprimir el valor y luego repita el bucle.
espere(0.1, SEGUNDOS)
espere(20, MSEC)
VEXcode EXP C++
int main() {
while(true) {

// Aumente el tamaño de la fuente para que sea más legible en la pantalla del cerebro.
Brain.Screen.setFont(mono40);

// Imprima el valor del rollo del sensor inercial en el cerebro y luego vaya a la siguiente fila.
Brain.Screen.print(BrainInertial.orientation(roll, degrees));
Brain.Screen.newLine();

// Espera para imprimir el valor, luego repite el bucle.
espera(0.1, segundos);
} }

Imprimir en el EXP Brain es útil cuando desea ver que los valores cambian a medida que se ejecuta un proyecto VEXcode EXP. Esto puede ayudarte a determinar qué valores informados del sensor se utilizarán como parámetros en tu proyecto. Estos comandos de impresión se pueden integrar en el proyecto VEXCODE EXP que ya ha creado para que pueda ver que los valores del sensor cambian en momentos específicos mientras el robot se mueve. 

Estos proyectos de ejemplo anteriores muestran cómo imprimir valores desde el sensor inercial al cerebro EXP. Los comentarios en cada proyecto explican el flujo del proyecto y el uso de cada comando.

Bloques VEXCODE EXP
VEXcode EXP bloquea el proyecto que utiliza un bloque Hat cuando se inicia para imprimir los datos del sensor en vivo mientras el proyecto se está ejecutando. El proyecto tiene un bloque When started seguido de 4 bloques en un bucle Forever. En el bucle, primero hay un bloque de comentarios que dice Imprimir el valor del sensor de distancia en la Consola y luego ir a la siguiente fila. A continuación, un bloque de impresión lee la distancia de impresión del objeto Distance5 en mm en la consola y establece el cursor en la siguiente fila. A continuación, un bloque de comentarios dice Espere para imprimir el valor y, a continuación, repita el bucle. Por último, un bloque de espera lee espera 0,1 segundos.
VEXcode EXP PYTHON
while True:
# Imprima el valor del sensor de distancia en la consola y luego vaya a la siguiente fila.
print(print_to_console_number_format().format(distance_5.object_distance (MM)))

# Espere para imprimir el valor y luego repita el bucle.
wait(0.1, SECONDS)
wait(20, MSEC)
VEXcode EXP C++
int main() {
while (true) {
// Print the Inertial sensor roll value on the Brain, and then go to the next row.
printf(printToConsole_numberFormat(),(Distance5.objectDistance (mm)));
printf("\n");

// Wait to print the value, then repeat the loop.
wait(0.1, seconds);
} }

Se recomienda imprimir en la consola de impresión en VEXcode EXP cuando se está ejecutando un proyecto VEXcode EXP en el que el robot NO se mueve. El EXP Brain debe permanecer conectado durante la ejecución del proyecto para imprimir en la Consola de impresión. Esto es beneficioso porque puede leer los valores de la ventana VEXcode EXP en lugar de intentar leer los datos de la pantalla Brain.

Estos ejemplos muestran los datos de impresión de un proyecto desde el sensor de distancia a la consola en VEXcode EXP. 

Para obtener más información sobre el uso de la Consola de impresión en VEXCODE EXP Blocks, consulte este artículo.

Para obtener más información sobre el uso de la Consola de impresión en VEXCODE EXP Python, consulte este artículo.


Analizar y aplicar datos

A continuación, usa lo que has aprendido en los pasos anteriores para ajustar tu proyecto original. Puede continuar utilizando herramientas como la Ayuda y los datos de impresión para permitirle utilizar el sensor de manera efectiva para lograr su objetivo.

También puedes hacer preguntas sobre tu proyecto para ayudarte a avanzar. Piensa en cosas como:

  • ¿Estás usando mayor < o menor que > en tu proyecto? ¿El símbolo está orientado en la dirección correcta? Si está usando igual a =, intente reemplazarlo con un mayor o menor que, para usar un rango de valores.
  • ¿Son correctos tus parámetros? ¿Está utilizando los datos del sensor para establecer sus parámetros? ¿Elegiste la opción desplegable que necesitas?
  • ¿Está revisando las condiciones más de una vez? Intente agregar un bucle Forever a su proyecto, de modo que la condición se verifique repetidamente cuando se ejecute el proyecto.
  • ¿Tu proyecto se está atascando? ¿Sus condiciones están establecidas correctamente? Si está utilizando bucles anidados, intente simplificar su proyecto para aislar los comportamientos individuales.
  • ¿Sus condiciones ambientales influyen en el sensor? ¿Es demasiado brillante o demasiado oscuro? ¿Hay objetos o personas en el camino? Intenta ejecutar tu proyecto en una ubicación diferente para ver si eso ayuda.
  • ¿Estás ejecutando la versión más reciente de tu proyecto? ¿Ha descargado su proyecto actualizado en Brain? Asegúrate de volver a descargar el proyecto cada vez que hagas un cambio.
  • ¿Estás detectando el color correcto? ¿El sensor informa un color diferente al que tiene en su proyecto? Intente cambiar el parámetro de color, o usar un rango de valores de tono, para ver si eso ayuda.
  • ¿Está detectando un objeto dentro del campo de visión del sensor? Recuerde que el campo de visión se mueve junto con el movimiento del robot.
  • ¿Está utilizando un bloque de espera mientras verifica una condición? Asegúrese de usar bloques que no esperen en un proyecto al verificar una condición. Consulta este artículo para obtener más información sobre los bloques en espera y los que no en espera en VEXCODE EXP.
  • Si está codificando en bloques, ¿toda su pila está unida al bloque {When started} Hat? Los bloques solo se ejecutarán cuando estén conectados. Puede escuchar un sonido de clic cuando arrastra bloques y los conecta.

A medida que responda estas preguntas, asegúrese de cambiar una cosa en su proyecto a la vez, pruébelo y luego evalúe si ese cambio fue efectivo. Probar tu proyecto con frecuencia puede ayudarte a ver más fácilmente cómo tu código está conectado con el comportamiento del robot.  Es posible que tenga que repetir los pasos en el proceso de solución de problemas varias veces para resolver su problema, y eso está bien. Cada iteración le ayudará a aprender más sobre el sensor que está utilizando y cómo codificarlo en VEXcode EXP.

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

Last Updated: