Wichtig
Wenn Sie ein Upgrade von v7 auf v8 durchführen, lesen Sie bitte unbedingt den Abschnitt „Nutzung“, da sich die Startbefehle geändert haben!
Eine LED-Anzeigetafel für Major League Baseball. Zeigt eine Live-Ergebnistafel für das Spiel Ihrer Mannschaft an diesem Tag an.
Erfordert einen Raspberry Pi und eine über die GPIO-Pins angeschlossene LED-Platine.
Derzeit unterstützte Boards:
Wenn Sie Unterstützung für einen anderen Satz von Platinenabmessungen sehen möchten oder Designvorschläge für einen bestehenden haben, reichen Sie ein Problem ein!
Pi's mit bekannten Problemen
Es kann Live-Spiele in Aktion anzeigen und optional alle 15 Sekunden durch jedes Spiel des Tages rotieren.
Das Board aktualisiert die Liste der Spiele alle 15 Minuten.
Wenn ein Spiel noch nicht begonnen hat, wird ein Vorspielbildschirm mit den voraussichtlichen Startspielern angezeigt.
Es kann die Platzierungen für die angegebene Division anzeigen. Da das 32x32-Brett zu klein ist, um Gewinne und Verluste zusammen anzuzeigen, wechseln sich Gewinne und Verluste alle 5 Sekunden auf dem Spielbrett ab. Sie können auch „NL Wild Card“ oder „AL Wild Card“ als „Division“ angeben, um die fünf besten Teams im Wild Card-Rennen jeder Liga anzuzeigen.
Eine Schritt-für-Schritt-Anleitung finden Sie auf der Wiki-Seite des Originalprojekts. Diese README-Datei konzentriert sich hauptsächlich auf die MLB-Software, aber für diejenigen, die von Reddit oder anderswo hierher kommen und noch nie etwas mit einem Raspberry Pi gebaut haben, sollte dies den Einstieg erleichtern.
Eine Musterstückliste (BOM) finden Sie hier
Sie benötigen Git zum Klonen dieses Repos und PIP zum Installieren der Scoreboard-Software.
sudo apt-get update
sudo apt-get install git python3-pip
Dieser Installationsvorgang dauert etwa 10–15 Minuten. Raspberry Pis sind nicht die schnellsten Computer, also haben Sie etwas Geduld!
git clone https://github.com/MLB-LED-Scoreboard/mlb-led-scoreboard.git
cd mlb-led-scoreboard/
sudo ./install.sh
Dadurch wird eine virtuelle Python-Umgebung erstellt und alle erforderlichen Abhängigkeiten installiert. Die virtuelle Umgebung befindet sich unter mlb-led-scoreboard/venv/
.
Dadurch werden die rgbmatrix-Binärdateien installiert, die wir von einer anderen Open-Source-Bibliothek erhalten. Es steuert die tatsächliche Wiedergabe der Anzeigetafel auf den LEDs. Wenn Sie neugierig sind, können Sie in der Dokumentation nachlesen, wie alle Dinge auf niedrigerer Ebene funktionieren.
Außerdem werden die folgenden Python-Bibliotheken installiert, die für die Funktion bestimmter Teile des Scoreboards erforderlich sind.
Zum Anpassen Ihrer Installation stehen zusätzliche Flags zur Verfügung:
-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
Das Installationsskript ist für physische Hardware konzipiert. Wenn Sie versuchen, es auf anderen Plattformen zu installieren, sollten Sie sudo
nicht zum Installieren der Abhängigkeiten verwenden. Darüber hinaus können Sie das Argument --emulator-only
übergeben, um nicht erforderliche Installationsschritte zu überspringen.
sh install.sh --emulator-only
git pull
in Ihrem mlb-led-scoreboard-Ordner aus, um die neuesten Änderungen abzurufen. In den meisten Fällen wird dies ausreichen, aber wenn etwas kaputt zu sein scheint:sudo ./install.sh
erneut aus. Alle zusätzlichen Abhängigkeiten, die mit dem Update hinzugefügt wurden, werden auf diese Weise installiert. Wenn Sie auf eine neue Hauptversion wechseln, antworten Sie mit „Y“, damit eine neue Konfigurationsdatei erstellt wird.Das sollte es sein! Ihre neueste Version sollte jetzt mit den neuen, neu hinzugefügten Funktionen funktionieren.
Sie können die Versionsinformationen für Ihre Installation von mlb-led-scoreboard überprüfen, indem Sie python3 version.py
ausführen.
Die neueste Version der Software finden Sie hier.
Stellen Sie sicher, dass die Zeitzone Ihres Raspberry Pi auf Ihre lokale Zeitzone eingestellt ist. Sie haben oft standardmäßig die Londoner Zeit im Blick. Sie können die Zeitzone Ihres Raspberry Pi ändern, indem Sie sudo raspi-config
ausführen.
Das Installationsskript fügt am Anfang von main.py
eine Zeile hinzu, um die virtuelle Umgebung automatisch zu übernehmen. Dies bedeutet, dass eine erneute Aktivierung der Umgebung ( source ./venv/bin/activate
) nicht erforderlich ist.
sudo ./main.py
Das Ausführen als Root ist zu 100 % ein absolutes Muss, sonst wird die Matrix nicht gerendert.
Adafruit HAT/Bonnet-Benutzer: Sie müssen ein Befehlszeilen-Flag angeben:
sudo ./main.py --led-gpio-mapping="adafruit-hat"
Weitere Flags, die Sie optional bereitstellen können, finden Sie im Abschnitt „Flags“ weiter unten.
Mittels Software-Emulation über RGBMatrixEmulator
ist die Anzeigetafel auf anderen Plattformen lauffähig. Bei der Ausführung über den Emulator müssen Sie Ihren Startbefehlen nicht sudo
voranstellen:
./main.py
Sie können die Anzeigetafel auch in den Emulationsmodus versetzen, indem Sie das Flag --emulated
verwenden:
./main.py --emulated
Bei der Ausführung im Emulationsmodus können Sie Ihre vorhandenen Befehlszeilen-Flags weiterhin wie gewohnt verwenden.
Informationen zu Emulatorkonfigurationsoptionen finden Sie unter RGBMatrixEmulator.
Als Referenz ist eine Standarddatei config.json.example
enthalten. Kopieren Sie diese Datei nach config.json
und ändern Sie die Werte nach Bedarf.
"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.
Läufe/Treffer/Fehler – Läufe werden immer auf dem Spielbildschirm angezeigt, Sie können jedoch den Abstand der Anzeige „Läufe, Treffer, Fehler“ aktivieren oder anpassen. Weitere Informationen finden Sie in der Koordinaten-Readme-Datei.
Pitch-Daten – Pitch-Daten können auf dem Spielbildschirm angezeigt werden. Weitere Informationen finden Sie in der Koordinaten-Readme-Datei. Darüber hinaus kann die short
und long
Pitch-Beschreibung in data/pitches.py geändert werden
Vorherige Spieldaten – Daten für das vorherige Spiel können auf dem Spielbildschirm angezeigt werden. Weitere Informationen finden Sie in der Koordinaten-Readme-Datei. Lange und kurze Spielbeschreibungen können in data/plays.py geändert werden
Sie können Ihre LED-Matrix mit denselben Flags konfigurieren, die in der rpi-rgb-led-matrix-Bibliothek verwendet werden. Weitere Informationen zu diesen Argumenten finden Sie in der Bibliotheksdokumentation.
--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)
Wenn Sie abenteuerlustig sind (und wir ermutigen Sie sehr dazu!), erfahren Sie in den folgenden Abschnitten, wie Sie Ihre Anzeigetafel wirklich personalisieren und zu Ihrer eigenen machen können!
Sie haben die Möglichkeit, die Art und Weise, wie Dinge auf dem Brett platziert werden, anzupassen (vielleicht möchten Sie den Lauftext für ein Vorspiel lieber etwas höher oder niedriger sehen). Weitere Informationen finden Sie im Verzeichnis coordinates/
.
Sie haben die Möglichkeit, die Farben aller Elemente auf der Tafel anzupassen. Weitere Informationen finden Sie im Verzeichnis colors/
“.
Diese Anzeigetafel verwendet eine Wetter-API, um Wetterinformationen zu verschiedenen Zeiten zu sammeln. Diese Informationen werden an den Ruhetagen Ihrer Teams für Ihre Region und auch während der Vorspielinformationen jedes Spiels angezeigt. Die von uns verwendete Wetter-API stammt von OpenWeatherMaps. Die OpenWeatherMaps-API erfordert einen API-Schlüssel zum Abrufen dieser Daten. Sie müssen sich also kurz Zeit nehmen, um ein Konto zu eröffnen und Ihren eigenen API-Schlüssel in Ihre config.json
zu kopieren.
Die Anmeldeseite für OpenWeatherMaps finden Sie unter https://home.openweathermap.org/users/sign_up. Sobald Sie angemeldet sind, finden Sie eine Registerkarte API keys
, auf der Sie sehen, dass bereits ein Standardschlüssel für Sie erstellt wurde. Sie können diesen Schlüssel kopieren und in die config.json
unter "weather"
, "apikey"
einfügen.
Sie können den verwendeten Standort ändern, indem Sie Ihre Stadt, Ihr Bundesland und Ihren Ländercode durch Kommas getrennt eingeben. Wenn Sie metrische Messungen verwenden möchten, setzen Sie die Option "metric"
auf true
.
Dieses Projekt basiert auf zwei Bibliotheken: MLB-StatsAPI ist die Python-Bibliothek, die zum Abrufen von Live-Spieldaten verwendet wird. rpi-rgb-led-matrix ist die Bibliothek, die dafür sorgt, dass alles mit der LED-Platine funktioniert.
Die Anzeigetafel wird häufig aktualisiert, es können jedoch keine Informationen abgerufen werden, die MLB noch nicht zur Verfügung gestellt hat. Wenn etwas merkwürdig ist oder im Rückstand zu sein scheint, ist der erste Verdächtige die MLB-Web-API.
Wenn Sie auf Probleme stoßen und Schritte zum Reproduzieren haben, öffnen Sie ein Problem. Wenn Sie eine Funktionsanfrage haben, öffnen Sie ein Problem. Wenn Sie eine kleine bis mittelgroße Änderung beisteuern möchten, öffnen Sie eine Pull-Anfrage. Wenn Sie eine neue Funktion beisteuern möchten, öffnen Sie zuerst ein Problem, bevor Sie eine PR eröffnen.
Abhängigkeitsanforderungen werden mit pipreqs
verwaltet. Wenn Sie eine Abhängigkeit hinzufügen oder eine Änderung daran vornehmen (z. B. ihre Version aktualisieren), stellen Sie sicher, dass Sie die Anforderungsdatei mit pipreqs
aktualisieren:
# If not already installed
pip3 install pipreqs
pipreqs . --force
Dieses Projekt ab Version 1.1.0 verwendet die GNU Public License. Wenn Sie beabsichtigen, diese zu verkaufen, muss der Code Open Source bleiben.
Die Originalversion dieses Boards
Schauen Sie sich inspiriert von diesem Board die NHL-Anzeigetafel an?