Aperçu de Shuffleboard

Shuffleboard is a dashboard for FRC® based on newer technologies such as JavaFX that are available to Java programs. It is designed to be used for creating dashboards for C++, Java, and Python programs. If you’ve used SmartDashboard in the past then you are already familiar with many of the features of Shuffleboard since they fundamentally work the same way. But Shuffleboard has many features that aren’t in SmartDashboard. Here are some of the highlights:

  • Les graphiques sont basés sur JavaFX, la norme des graphiques en Java. Chacune des composantes a une feuille de style associée de telle sorte qu’on peut avoir une variété de « skins » ou « thèmes » pour Shuffleboard. Les thèmes fournis par défaut sont le clair et le foncé.

  • Shuffleboard prend en charge plusieurs feuilles pour la visualisation de vos données. En fait, vous pouvez créer une nouvelle feuille (se présentant sous la forme d’un onglet dans la fenêtre de Shuffleboard) et préciser si et quelles données doivent s’y insérer automatiquement. Par défaut, il y a un onglet Test et un onglet SmartDashboard qui se remplissent automatiquement à mesure que les données sont disponibles. D’autres onglets peuvent être ajoutés pour le débogage du robot et son pilotage.

  • Les éléments graphiques d’affichage (widgets) sont disposés sur une grille pour maintenir l’interface soignée et facile à lire. Vous pouvez modifier la taille de la grille pour obtenir plus ou moins de précision dans vos dispositions et des repères visuels sont fournis pour vous aider à modifier votre disposition à l’aide de glisser-déposer. Vous pouvez également choisir de retirer les lignes de grille et, ce faisant, la disposition de la grille est quand même préservée.

  • Les dispositions sont enregistrées et la version la plus récente est celle qui est activée par défaut lorsque vous ouvrez à nouveau Shuffleboard.

  • Il existe une fonction record and playback qui vous permet d’examiner à postériori les données envoyées par le programme de votre robot. De cette façon, si quelque chose ne n’a pas fonctionné normalement, vous pouvez examiner minutieusement les actions du robot.

  • Des widgets graphiques sont disponibles pour les données numériques et vous pouvez faire glisser ces données sur un graphique pour afficher simultanément plusieurs points et à la même échelle.

  • You can extend Shuffleboard by writing your own widgets that are specific to your team’s requirements. Documentation on extending it can be found in Custom Widgets.

  1. Zone sources: Dans cette zone se trouvent des sources à l’origine des données dont vous pouvez choisir les valeurs à partir de NetworkTables ou d’autres sources à afficher en faisant glisser une valeur dans l’un des onglets

  2. Volets d’onglets: C’est ici que sont affichées les données en provenance du robot ou d’autres sources. Dans cet exemple, ce sont les sous-systèmes en mode Test qui s’affichent sous l’onglet LiveWindow. Dans cette zone, on peut afficher autant d’onglets qu’on le souhaite, et chaque fenêtre possède son propre ensemble de propriétés comme la taille de la grille et la capacité de s’auto-remplir.

  3. Contrôles d’enregistrement/lecture : Ensemble de contrôles de type média qui vous permet de rejouer la session sélectionnée pour voir les données enregistrées

Démarrage de Shuffleboard

Vous pouvez démarrer Shuffleboard de quatre façons :

  1. Vous pouvez le lancer automatiquement lorsque Driver Station démarre en sélectionnant « Shuffleboard » dans « Dashboard Type » de l’onglet Configuration comme indiqué dans l’image ci-dessus.

  2. You can run it by double-clicking the Shuffleboard icon in the YEAR WPILib tools folder on the Windows Desktop.

  3. You can start from with Visual Studio Code by pressing Ctrl+Shift+P and type « WPILib » or click the WPILib logo in the top right to launch the WPILib Command Palette. Select Start Tool, then select Shuffleboard.

  4. Vous pouvez l’exécuter en double-cliquant sur le fichier shuffleboard.XXX (où XXX est .vbs sous Windows et .py sous Linux ou macOS) dans ~/WPILib/YYYY/tools/ (où YYYY est l’année et ~ est C:\Users\Public sous Windows). Ceci est utile sous un système de développement où l’application Driver Station n’est pas installée tel que le système macOS ou Linux.

  5. You can start it from the command line by typing the command: shuffleboard on Windows or python shuffleboard.py on macOS or Linux from ~/WPILib/YYYY/tools directory (where YYYY is the year and ~ is C:\Users\Public on Windows). This is often easiest on a development system that doesn’t have the Driver Station installed.

Note

Les scripts .vbs (Windows) et .py (macOS/Linux) aident à lancer les outilitaires à l’aide de la version JDK appropriée.

Obtenir des données du robot sur le tableau de bord

The easiest way to get data displayed on the dashboard is simply to use methods in the SmartDashboard class. For example to write a number to Shuffleboard write:

SmartDashboard.putNumber("Joystick X value", joystick1.getX());
frc::SmartDashboard::PutNumber("Joystick X value", joystick1.getX());
from wpilib import SmartDashboard

SmartDashboard.putNumber("Joystick X value", joystick1.getX())

pour afficher un champ dont l’étiquette est « Joystick X value » et la valeur actuelle de l’axe X de la manette. À chaque exécution de cette instruction, une nouvelle valeur de l’axe X de la manette est envoyée à Shuffleboard. N’oubliez pas : vous devez écrire la valeur en provenance de la manette à chaque fois que vous souhaitez voir une valeur mise à jour. L’exécution de l’instruction au début du programme n’affiche la valeur qu’une seule fois soit au moment de l’exécution de la ligne de code.