Importante
Si está actualizando de v7 a v8, asegúrese de leer la sección Uso, ya que los comandos de inicio han cambiado.
Un marcador LED para las Grandes Ligas de Béisbol. Muestra un marcador en vivo para el juego de tu equipo ese día.
Requiere una Raspberry Pi y una placa LED conectada mediante los pines GPIO.
Placas soportadas actualmente:
Si desea ver compatibilidad con otro conjunto de dimensiones de tablero o tiene sugerencias de diseño para uno existente, ¡presente un problema!
Pi con problemas conocidos
Puede mostrar juegos en vivo en acción y, opcionalmente, rotar cada 15 segundos a través de cada juego del día.
El tablero actualiza la lista de juegos cada 15 minutos.
Si un juego aún no ha comenzado, se mostrará una pantalla previa al juego con los probables lanzadores abridores.
Puede mostrar la clasificación de la división proporcionada. Dado que el tablero de 32x32 es demasiado pequeño para mostrar victorias y derrotas juntas, las victorias y derrotas se alternan en el tablero cada 5 segundos. También puede especificar "NL Wild Card" o "AL Wild Card" como una 'división' para ver los 5 mejores equipos en la carrera por el comodín de cada liga.
Consulte la página wiki del proyecto original para obtener una guía paso a paso. Este README se centra principalmente en el software MLB, pero para aquellos que vienen aquí desde Reddit o desde otro lugar y nunca han construido cosas con una Raspberry Pi, esto debería ayudarlos a comenzar.
Aquí encontrará un ejemplo de lista de materiales (BOM)
Necesita Git para clonar este repositorio y PIP para instalar el software del marcador.
sudo apt-get update
sudo apt-get install git python3-pip
Este proceso de instalación tardará entre 10 y 15 minutos. Raspberry Pis no es la computadora más rápida, ¡así que tenga paciencia!
git clone https://github.com/MLB-LED-Scoreboard/mlb-led-scoreboard.git
cd mlb-led-scoreboard/
sudo ./install.sh
Esto creará un entorno virtual Python e instalará todas las dependencias necesarias. El entorno virtual estará ubicado en mlb-led-scoreboard/venv/
.
Esto instalará los binarios de rgbmatrix, que obtenemos de otra biblioteca de código abierto. Controla la representación real del marcador en los LED. Si tiene curiosidad, puede leer su documentación sobre cómo funcionan todas las cosas de nivel inferior.
También instalará las siguientes bibliotecas de Python que son necesarias para que funcionen ciertas partes del marcador.
Hay indicadores adicionales disponibles para personalizar su instalación:
-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
El script de instalación está diseñado para hardware físico. Al intentar instalarlo en otras plataformas, no debes usar sudo
para instalar las dependencias. Además, puede pasar el argumento --emulator-only
para omitir los pasos de instalación que no son necesarios.
sh install.sh --emulator-only
git pull
en su carpeta mlb-led-scoreboard para obtener los últimos cambios. Muchas veces esto será suficiente, pero si algo parece roto:sudo ./install.sh
nuevamente. Cualquier dependencia adicional que se haya agregado con la actualización se instalará de esta manera. Si va a pasar a una nueva versión principal, responda "Y" para que le genere un nuevo archivo de configuración.¡Eso debería ser! Su última versión ahora debería funcionar con las nuevas funciones que se acaban de agregar.
Puede verificar la información de la versión para su instalación de mlb-led-scoreboard ejecutando python3 version.py
.
La última versión del software está disponible aquí.
Asegúrese de que la zona horaria de su Raspberry Pi esté configurada según su zona horaria local. A menudo tendrán la hora de Londres de forma predeterminada. Puede cambiar la zona horaria de su raspberry pi ejecutando sudo raspi-config
.
El script de instalación agrega una línea en la parte superior de main.py
para seleccionar automáticamente el entorno virtual. Esto significa que reactivar el entorno ( source ./venv/bin/activate
) no es un requisito.
sudo ./main.py
Ejecutar como root es 100% absolutamente imprescindible, o la matriz no se procesará.
Usuarios de Adafruit HAT/Bonnet: deben proporcionar un indicador de línea de comando:
sudo ./main.py --led-gpio-mapping="adafruit-hat"
Consulte la sección Banderas a continuación para ver más banderas que puede proporcionar opcionalmente.
El marcador puede ejecutarse en otras plataformas mediante emulación de software mediante RGBMatrixEmulator
. Cuando se ejecuta a través del emulador, no es necesario anteponer los comandos de inicio con sudo
:
./main.py
También puedes forzar el marcador al modo de emulación usando la bandera --emulated
:
./main.py --emulated
Cuando se ejecuta en modo de emulación, puede continuar usando los indicadores de línea de comando existentes con normalidad.
Consulte RGBMatrixEmulator para conocer las opciones de configuración del emulador.
Se incluye un archivo config.json.example
predeterminado como referencia. Copie este archivo en config.json
y modifique los valores según sea necesario.
"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.
Ejecuciones/Aciertos/Errores: las ejecuciones siempre se muestran en la pantalla del juego, pero puedes habilitar o ajustar el espaciado de una visualización de "ejecuciones, aciertos, errores". Eche un vistazo al archivo Léame de coordenadas para obtener más detalles.
Datos de lanzamiento: los datos de lanzamiento se pueden mostrar en la pantalla del juego. Consulte el archivo Léame de coordenadas para obtener más detalles. Además, la descripción short
y long
del tono se puede cambiar en data/pitches.py
Datos de jugada anterior: los datos de la jugada anterior se pueden mostrar en la pantalla del juego. Consulte el archivo Léame de coordenadas para obtener más detalles. Las descripciones de las jugadas largas y cortas se pueden cambiar en data/plays.py
Puede configurar su matriz de LED con los mismos indicadores utilizados en la biblioteca rpi-rgb-led-matrix. Puede encontrar más información sobre estos argumentos en la documentación de la biblioteca.
--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 se siente aventurero (¡y lo recomendamos encarecidamente!), las secciones siguientes describen cómo puede personalizar realmente su marcador y hacerlo suyo.
Tienes la posibilidad de personalizar la forma en que se colocan las cosas en el tablero (tal vez prefieras ver el texto desplazable para un prejuego un poco más arriba o más abajo). Consulte las coordinates/
directorio para obtener más información.
Tienes la posibilidad de personalizar los colores de todo lo que hay en el tablero. Consulte el directorio colors/
para obtener más información.
Este marcador utilizará una API meteorológica para recopilar información meteorológica en distintos momentos. Esta información se muestra en los días libres de sus equipos en su área y también se muestra durante la información previa al juego de cada juego. La API meteorológica que utilizamos es de OpenWeatherMaps. La API de OpenWeatherMaps requiere una clave API para obtener estos datos, por lo que deberá tomarse un minuto para registrarse para obtener una cuenta y copiar su propia clave API en su config.json
.
Puede encontrar la página de registro de OpenWeatherMaps en https://home.openweathermap.org/users/sign_up. Una vez que haya iniciado sesión, encontrará una pestaña de API keys
donde verá que ya se creó una clave predeterminada para usted. Puede copiar esta clave y pegarla en config.json
en "weather"
, "apikey"
.
Puede cambiar la ubicación utilizada ingresando el código de su ciudad, estado y país separados por comas. Si desea utilizar medidas métricas, establezca la opción "metric"
en true
.
Este proyecto se basa en dos bibliotecas: MLB-StatsAPI es la biblioteca de Python utilizada para recuperar datos de juegos en vivo. rpi-rgb-led-matrix es la biblioteca utilizada para que todo funcione con la placa LED.
El marcador se actualiza con frecuencia, pero no puede recuperar información que MLB aún no haya puesto a disposición. Si algo es extraño o parece estar detrás, el primer sospechoso es la API web de la MLB.
Si tiene algún problema y tiene pasos para reproducirlo, abra un problema. Si tiene una solicitud de función, abra una incidencia. Si desea contribuir con un cambio pequeño o mediano, abra una solicitud de extracción. Si desea contribuir con una nueva función, primero abra una incidencia antes de abrir un PR.
Los requisitos de dependencias se gestionan mediante pipreqs
. Si está agregando o realizando un cambio en una dependencia (como actualizar su versión), asegúrese de actualizar el archivo de requisitos con pipreqs
:
# If not already installed
pip3 install pipreqs
pipreqs . --force
Este proyecto a partir de la v1.1.0 utiliza la Licencia Pública GNU. Si tiene la intención de venderlos, el código debe seguir siendo de código abierto.
La versión original de este tablero.
Inspirándote en este tablero, consulta el marcador de la NHL.