Mostrando los datos de su robot

El robot puede mostrar datos en los modos de funcionamiento regulares como el Teleop y los modos autónomos, pero también puede mostrar el estado y operar todos los subsistemas del robot cuando éste se cambia al modo de prueba. De forma predeterminada, al iniciar Shuffleboard, verá dos pestañas, una para Teleop/Autónomo y otra para el modo Test. La pestaña actualmente seleccionada está subrayada, como se puede ver en la imagen siguiente.

A menudo la depuración o la supervisión del estado de un robot implica escribir una serie de valores en la consola y verlos pasar. Con Shuffleboard puedes poner valores a un GUI que se construye automáticamente basado en tu programa. A medida que los valores se actualizan, el elemento correspondiente de la GUI cambia de valor - no hay necesidad de tratar de captar los números que pasan por la pantalla.

Visualización de los valores en el modo de funcionamiento normal (autónomo o teleoperado)

protected void execute() {
   SmartDashboard.putBoolean("Bridge Limit", bridgeTipper.atBridge());
   SmartDashboard.putNumber("Bridge Angle", bridgeTipper.getPosition());
   SmartDashboard.putNumber("Swerve Angle", drivetrain.getSwerveAngle());
   SmartDashboard.putNumber("Left Drive Encoder", drivetrain.getLeftEncoder());
   SmartDashboard.putNumber("Right Drive Encoder", drivetrain.getRightEncoder());
   SmartDashboard.putNumber("Turret Pot", turret.getCurrentAngle());
   SmartDashboard.putNumber("Turret Pot Voltage", turret.getAverageVoltage());
   SmartDashboard.putNumber("RPM", shooter.getRPM());
}
frc::SmartDashboard::PutBoolean("Bridge Limit", bridgeTipper.AtBridge());
frc::SmartDashboard::PutNumber("Bridge Angle", bridgeTipper.GetPosition());
frc::SmartDashboard::PutNumber("Swerve Angle", drivetrain.GetSwerveAngle());
frc::SmartDashboard::PutNumber("Left Drive Encoder", drivetrain.GetLeftEncoder());
frc::SmartDashboard::PutNumber("Right Drive Encoder", drivetrain.GetRightEncoder());
frc::SmartDashboard::PutNumber("Turret Pot", turret.GetCurrentAngle());
frc::SmartDashboard::PutNumber("Turret Pot Voltage", turret.GetAverageVoltage());
frc::SmartDashboard::PutNumber("RPM", shooter.GetRPM());
from wpilib import SmartDashboard

SmartDashboard.putBoolean("Bridge Limit", bridgeTipper.atBridge())
SmartDashboard.putNumber("Bridge Angle", bridgeTipper.getPosition())
SmartDashboard.putNumber("Swerve Angle", drivetrain.getSwerveAngle())
SmartDashboard.putNumber("Left Drive Encoder", drivetrain.getLeftEncoder())
SmartDashboard.putNumber("Right Drive Encoder", drivetrain.getRightEncoder())
SmartDashboard.putNumber("Turret Pot", turret.getCurrentAngle())
SmartDashboard.putNumber("Turret Pot Voltage", turret.getAverageVoltage())
SmartDashboard.putNumber("RPM", shooter.getRPM())

Se pueden escribir valores booleanos, numéricos o de cadena en el Shuffleboard simplemente llamando al método correcto para el tipo e incluyendo el nombre y el valor de los datos, no se requiere ningún código adicional.

  • Tipos numéricos como char, int, long, float o doble llama SmartDashboard.putNumber(«nombre de Dashboard», valor).

  • Tipos de cadenas llama a SmartDashboard.putString(«nombre de Dashboard», valor)

  • Tipos booleanos llama a SmartDashboard.putBoolean(«nombre de Dashboard», valor)

Cambiar el tipo de datos de la pantalla

Dependiendo del tipo de datos de los valores que se envían a la Shuffleboard, a menudo se puede cambiar el formato de visualización. En el ejemplo anterior se puede ver que los valores numéricos se mostraron como números decimales, una manera para representar mejor los ángulos y como una vista de voltaje para el potenciómetro de la torreta. Para establecer el tipo de visualización, haga clic con el botón derecho del ratón en la ficha y seleccione «Mostrar como…». Puede elegir los tipos de visualización de la lista del menú emergente.

Visualización de datos en el modo de prueba

Puede añadir código a su programa para mostrar los valores de sus sensores y actuadores mientras el robot está en modo de prueba. Esto puede seleccionarse desde la estación del conductor siempre que el robot no esté en el campo. El código para mostrar estos valores es generado automáticamente por RobotBuilder o añadido manualmente a su programa y se describe en el siguiente artículo. El modo de prueba está diseñado para verificar el correcto funcionamiento de los sensores y actuadores de un robot. Además, puede utilizarse para obtener puntos de ajuste de los sensores, como los potenciómetros, y para ajustar los bucles PID en su código.

Ajustar el modo de prueba

Habilite el modo de prueba en la estación del conductor haciendo clic en el botón «Test» y configurando «Habilitar» en el robot. Al hacer esto, Shuffleboard mostrará el estado de los actuadores y sensores utilizados por su programa organizado por subsistema.

Obtención de datos de la vista de Fuentes

Normalmente los datos de NetworkTables aparecen automáticamente en una de las pestañas y usted sólo tiene que reorganizar y utilizar esos datos. A veces puede querer recuperar un valor que se ha borrado accidentalmente de la pestaña o mostrar un valor que no forma parte de la clave SmartDashboard / NetworkTables. Para estos casos los valores pueden ser arrastrados a un panel de la vista de NetworkTables bajo Fuentes en el lado izquierdo de la ventana. Elija el valor que desea mostrar y simplemente arrástrelo al panel y se creará automáticamente con el tipo de widget por defecto para el tipo de datos.

Nota

A veces la vista de las Fuentes no es visible a la izquierda - es posible arrastrar el divisor entre los paneles con pestañas y las Fuentes para que las fuentes no sean visibles. Si esto sucede, mueva el cursor sobre el borde izquierdo y busque un cursor de cambio de tamaño del divisor, luego haga clic con el botón izquierdo y arrastre la vista. En las dos imágenes siguientes puede ver dónde hacer clic y arrastrar, y cuando termine el divisor es como se muestra en la segunda imagen.