Important
Si vous effectuez une mise à niveau de la v7 vers la v8, assurez-vous de lire la section Utilisation, car les commandes de démarrage ont changé !
Un tableau d'affichage LED pour la Major League Baseball. Affiche un tableau de bord en direct pour le match de votre équipe ce jour-là.
Nécessite un Raspberry Pi et une carte LED branchée via les broches GPIO.
Cartes actuellement prises en charge :
Si vous souhaitez bénéficier de la prise en charge d'un autre ensemble de dimensions de cartes ou si vous avez des suggestions de conception pour une carte existante, déposez un problème !
Pi avec des problèmes connus
Il peut afficher des jeux en direct en action et éventuellement effectuer une rotation toutes les 15 secondes pour chaque match de la journée.
Le tableau actualise la liste des jeux toutes les 15 minutes.
Si une partie n'a pas encore commencé, un écran d'avant-match s'affichera avec les lanceurs partants probables.
Il peut afficher le classement de la division fournie. Le plateau 32x32 étant trop petit pour afficher ensemble les gains et les pertes, les gains et les pertes sont alternés sur le plateau toutes les 5 secondes. Vous pouvez également spécifier « NL Wild Card » ou « AL Wild Card » comme « division » pour voir les 5 meilleures équipes dans la course aux wild card de chaque ligue.
Consultez la page wiki du projet original pour un guide étape par étape. Ce README est principalement axé sur le logiciel MLB, mais pour ceux qui viennent de Reddit ou d'ailleurs n'ayant jamais construit de choses avec un Raspberry Pi, cela devrait vous aider à démarrer.
Un exemple de nomenclature (BOM) se trouve ici
Vous avez besoin de Git pour cloner ce dépôt et de PIP pour installer le logiciel de tableau de bord.
sudo apt-get update
sudo apt-get install git python3-pip
Ce processus d'installation prendra environ 10 à 15 minutes. Les Raspberry Pi ne sont pas les ordinateurs les plus rapides, alors soyez patient !
git clone https://github.com/MLB-LED-Scoreboard/mlb-led-scoreboard.git
cd mlb-led-scoreboard/
sudo ./install.sh
Cela créera un environnement virtuel Python et installera toutes les dépendances requises. L'environnement virtuel sera situé à mlb-led-scoreboard/venv/
.
Cela installera les binaires rgbmatrix, que nous obtenons d'une autre bibliothèque open source. Il contrôle le rendu réel du tableau de bord sur les LED. Si vous êtes curieux, vous pouvez lire leur documentation sur le fonctionnement de tous les éléments de niveau inférieur.
Il installera également les bibliothèques Python suivantes, nécessaires au fonctionnement de certaines parties du tableau de bord.
Des indicateurs supplémentaires sont disponibles pour personnaliser votre installation :
-a, --skip-all Skip all dependencies and config installation (equivalent to -c -p -m).
-c, --skip-config Skip updating JSON configuration files.
-m, --skip-matrix Skip building matrix driver dependency. Video display will default to emulator mode.
-p, --skip-python Skip Python 3 installation. Requires manual Python 3 setup if not already installed.
-v, --no-venv Do not create a virtual environment for the dependencies.
-e, --emulator-only Do not install dependencies under sudo. Skips building matrix dependencies (equivalent to -m)
-d, --driver Specify a branch name or commit SHA for the rpi-rgb-led-matrix library. (Optional. Defaults may change.)
-h, --help Display this help message
Le script d'installation est conçu pour le matériel physique. Lorsque vous essayez de l'installer sur d'autres plates-formes, vous ne devez pas utiliser sudo
pour installer les dépendances. De plus, vous pouvez transmettre l'argument --emulator-only
pour ignorer les étapes d'installation qui ne sont pas obligatoires.
sh install.sh --emulator-only
git pull
dans votre dossier mlb-led-scoreboard pour récupérer les dernières modifications. La plupart du temps, cela suffit, mais si quelque chose semble cassé :sudo ./install.sh
. Toutes les dépendances supplémentaires ajoutées avec la mise à jour seront installées de cette façon. Si vous passez à une nouvelle version majeure, répondez « Y » pour qu'elle vous crée un nouveau fichier de configuration.Ça devrait être ça ! Votre dernière version devrait maintenant fonctionner avec les nouvelles fonctionnalités qui viennent d'être ajoutées.
Vous pouvez vérifier les informations de version de votre installation de mlb-led-scoreboard en exécutant python3 version.py
.
La dernière version du logiciel est disponible ici.
Assurez-vous que le fuseau horaire de votre Raspberry Pi est configuré sur votre fuseau horaire local. Ils auront souvent l'heure de Londres par défaut. Vous pouvez modifier le fuseau horaire de votre Raspberry Pi en exécutant sudo raspi-config
.
Le script d'installation ajoute une ligne en haut de main.py
pour récupérer automatiquement l'environnement virtuel. Cela signifie que la réactivation de l'environnement ( source ./venv/bin/activate
) n'est pas une obligation.
sudo ./main.py
L'exécution en tant que root est un must absolu à 100 %, sinon la matrice ne sera pas rendue.
Utilisateurs d'Adafruit HAT/Bonnet : vous devez fournir un indicateur de ligne de commande :
sudo ./main.py --led-gpio-mapping="adafruit-hat"
Consultez la section Indicateurs ci-dessous pour plus d’indicateurs que vous pouvez éventuellement fournir.
Le tableau de bord peut fonctionner sur d'autres plates-formes au moyen d'une émulation logicielle via RGBMatrixEmulator
. Lors de l'exécution via l'émulateur, vous n'avez pas besoin de faire précéder vos commandes de démarrage de sudo
:
./main.py
Vous pouvez également forcer le tableau de bord en mode émulation en utilisant l'indicateur --emulated
:
./main.py --emulated
Lors de l'exécution en mode émulation, vous pouvez continuer à utiliser vos indicateurs de ligne de commande existants comme d'habitude.
Voir RGBMatrixEmulator pour les options de configuration de l'émulateur.
Un fichier config.json.example
par défaut est inclus à titre de référence. Copiez ce fichier dans config.json
et modifiez les valeurs si nécessaire.
"preferred": Options for team and division preference
"teams" Array An array of preferred teams. The first team in the list will be used as your 'favorite' team. Example: ["Cubs", "Brewers"]
"divisions" Array An array of preferred divisions that will be rotated through in the order they are entered. Example: ["NL Central", "AL Central"]
"news_ticker": Options for displaying a nice clock/weather/news ticker screen
"always_display" Bool Display the news ticker screen at all times. Supercedes the standings setting.
"team_offday" Bool Display the news ticker when your prefered team is on an offday.
"preferred_teams" Bool Include headlines from your list of preferred teams. Will only use the first 3 teams listed in your preferred teams.
"display_no_games_live" Bool Display news and weather when none of your games are currently live.
"traderumors" Bool Include headlines from mlbtraderumors.com for your list of preferred teams. Will only use the first 3 teams listed in your preferred teams.
"mlb_news" Bool Include MLB's frontpage news.
"countdowns" Bool Include various countdowns in the ticker.
"date" Bool Display today's date to start the ticker. This will always be enabled if no other ticker options are.
"date_format" String Display the date with a given format. You can check all of the date formatting options at https://strftime.org
"standings": Options for displaying standings for a division
"always_display" Bool Display standings for your preferred divisions.
"mlb_offday" Bool Display standings for your preferred divisions when there are no games on the current day.
"team_offday" Bool Display standings for your preferred divisions when the one of your preferred teams is not playing on the current day.
"display_no_games_live" Bool Display standings when none of your games are currently live.
"rotation": Options for rotation through the day's games
"enabled" Bool Rotate through each game of the day according to the configured `rates`.
"scroll_until_finished" Bool If scrolling text takes longer than the rotation rate, wait to rotate until scrolling is done.
"only_preferred" Bool Only rotate through games in your preferred teams.
"only_live" Bool Only rotate through games which are currently playing. Can be composed with `only_preferred`.
"rates" Dict Dictionary of Floats. Each type of screen can use a different rotation rate. Valid types: "live", "pregame", "final".
Float (DEPRECATED) A Float can be used to set all screen types to the same rotate rate.
"while_preferred_team_live": Options for rotating between screens while one of your preferred teams is live
"enabled" Bool Enable rotation while a preferred team is live.
"during_inning_breaks" Bool Enable rotation while a preferred team is live during an inning break.
"weather": Options for retrieving the weather
"apikey" String An API key is required to use the weather service.
You can get one for free at Open Weather Map (https://home.openweathermap.org/users/sign_up).
"location" String The `{city name},{state code},{country code}` according to ISO-3166 standards (https://www.iso.org/obp/ui/#search).
Check out the OpenWeather documentation (https://openweathermap.org/current#name) for more info.
Ex: `"Chicago,il,us"`
"metric_units" Bool Change the weather display to metric units (Celsius, m/s) instead of imperial (Fahrenheit, MPH).
"time_format" String Sets the preferred hour format for displaying time. Accepted values are "12h" or "24h" depending on which you prefer.
"end_of_day" String A 24-hour time you wish to consider the end of the previous day before starting to display the current day's games. Uses local time from your Pi.
"full_team_names" Bool If enabled on a board width >= 64, displays the full team name on the scoreboard instead of their abbreviation. This config option is ignored on 32-wide boards.
"short_team_names_for_runs_hits" Bool If full_team_names is enabled, will use abreviated team names when runs or hits > 9 to prevent overflow of long names into RHE.
"scrolling_speed" Integer Sets how fast the scrolling text scrolls. Supports an integer between 0 and 6.
"preferred_game_update_delay_in_10s_of_seconds" Integer Sets how long to wait before updating the preferred game. Must be positive.
"pregame_weather" Bool If enabled, will display the weather for the game's location on the pregame screen.
"debug" Bool Game and other debug data is written to your console.
"demo_date" String A date in the format YYYY-MM-DD from which to pull data to demonstrate the scoreboard. A value of `false` will disable demo mode.
Courses/Hits/Erreurs - Les courses sont toujours affichées sur l'écran de jeu, mais vous pouvez activer ou ajuster l'espacement d'un affichage « courses, coups sûrs, erreurs ». Jetez un œil au fichier Lisez-moi des coordonnées pour plus de détails.
Données de pitch - Les données de pitch peuvent être affichées sur l'écran de jeu. Consultez le fichier Lisez-moi des coordonnées pour plus de détails. De plus, la description short
et long
du pitch peut être modifiée dans data/pitchs.py
Données de jeu précédent - Les données du jeu précédent peuvent être affichées sur l'écran de jeu. Voir le fichier Lisez-moi des coordonnées pour plus de détails. Les descriptions de jeu longues et courtes peuvent être modifiées dans data/plays.py
Vous pouvez configurer votre matrice LED avec les mêmes indicateurs que ceux utilisés dans la bibliothèque rpi-rgb-led-matrix. Plus d'informations sur ces arguments peuvent être trouvées dans la documentation de la bibliothèque.
--led-rows Display rows. 16 for 16x32, 32 for 32x32. (Default: 32)
--led-cols Panel columns. Typically 32 or 64. (Default: 32)
--led-chain Daisy-chained boards. (Default: 1)
--led-parallel For Plus-models or RPi2: parallel chains. 1..3. (Default: 1)
--led-pwm-bits Bits used for PWM. Range 1..11. (Default: 11)
--led-brightness Sets brightness level. Range: 1..100. (Default: 100)
--led-gpio-mapping Hardware Mapping: regular, adafruit-hat, adafruit-hat-pwm
--led-scan-mode Progressive or interlaced scan. 0 = Progressive, 1 = Interlaced. (Default: 1)
--led-pwm-lsb-nanosecond Base time-unit for the on-time in the lowest significant bit in nanoseconds. (Default: 130)
--led-show-refresh Shows the current refresh rate of the LED panel.
--led-slowdown-gpio Slow down writing to GPIO. Range: 0..4. (Default: 1)
--led-no-hardware-pulse Don't use hardware pin-pulse generation.
--led-rgb-sequence Switch if your matrix has led colors swapped. (Default: RGB)
--led-pixel-mapper Apply pixel mappers. e.g Rotate:90, U-mapper
--led-row-addr-type 0 = default; 1 = AB-addressed panels. (Default: 0)
--led-multiplexing Multiplexing type: 0 = direct; 1 = strip; 2 = checker; 3 = spiral; 4 = Z-strip; 5 = ZnMirrorZStripe; 6 = coreman; 7 = Kaler2Scan; 8 = ZStripeUneven. (Default: 0)
--led-limit-refresh Limit refresh rate to this frequency in Hz. Useful to keep a constant refresh rate on loaded system. 0=no limit. Default: 0
--led-pwm-dither-bits Time dithering of lower bits (Default: 0)
--config Specify a configuration file name other, omitting json xtn (Default: config)
--emulated Force the scoreboard to run in software emulation mode.
--drop-privileges Force the matrix driver to drop root privileges after setup. (Default: true)
Si vous vous sentez aventureux (et nous l'encourageons vivement !), les sections ci-dessous expliquent comment vous pouvez véritablement personnaliser votre tableau de bord et vous l'approprier !
Vous avez la possibilité de personnaliser la façon dont les choses sont placées sur le plateau (peut-être préféreriez-vous voir le texte défilant pour un avant-match un peu plus haut ou plus bas). Voir le répertoire coordinates/
pour plus d'informations.
Vous avez la possibilité de personnaliser les couleurs de tout ce qui se trouve sur le tableau. Voir le répertoire colors/
pour plus d'informations.
Ce tableau de bord utilisera une API météo pour recueillir des informations météorologiques à différents moments. Ces informations sont affichées pendant les jours de repos de vos équipes dans votre région et également lors des informations d'avant-match de chaque match. L'API météo que nous utilisons provient d'OpenWeatherMaps. L'API OpenWeatherMaps nécessite une clé API pour récupérer ces données, vous devrez donc prendre une minute pour créer un compte et copier votre propre clé API dans votre config.json
.
Vous pouvez trouver la page d'inscription à OpenWeatherMaps sur https://home.openweathermap.org/users/sign_up. Une fois connecté, vous trouverez un onglet API keys
dans lequel vous trouverez qu'une clé par défaut a déjà été créée pour vous. Vous pouvez copier cette clé et la coller dans le config.json
sous "weather"
, "apikey"
.
Vous pouvez modifier l'emplacement utilisé en saisissant le code de votre ville, de votre état et de votre pays séparés par des virgules. Si vous souhaitez utiliser des mesures métriques, définissez l'option "metric"
sur true
.
Ce projet s'appuie sur deux bibliothèques : MLB-StatsAPI est la bibliothèque Python utilisée pour récupérer les données des jeux en direct. rpi-rgb-led-matrix est la bibliothèque utilisée pour que tout fonctionne avec la carte LED.
Le tableau de bord est mis à jour fréquemment, mais il ne peut pas récupérer les informations que la MLB n'a pas encore mises à disposition. Si quelque chose est étrange ou semble derrière, le premier suspect est l'API Web de la MLB.
Si vous rencontrez des problèmes et que vous avez des étapes à suivre, ouvrez un problème. Si vous avez une demande de fonctionnalité, ouvrez un problème. Si vous souhaitez apporter une modification de petite à moyenne taille, ouvrez une pull request. Si vous souhaitez contribuer à une nouvelle fonctionnalité, ouvrez d'abord un ticket avant d'ouvrir un PR.
Les exigences de dépendances sont gérées à l'aide pipreqs
. Si vous ajoutez ou modifiez une dépendance (comme mettre à jour sa version), assurez-vous de mettre à jour le fichier d'exigences avec pipreqs
:
# If not already installed
pip3 install pipreqs
pipreqs . --force
Ce projet à partir de la v1.1.0 utilise la licence publique GNU. Si vous avez l'intention de les vendre, le code doit rester open source.
La version originale de ce forum
Inspiré par ce tableau, consultez le tableau de bord de la LNH ?