Importante
Se você estiver atualizando da v7 para a v8, leia a seção Uso, pois os comandos de inicialização foram alterados!
Um placar de LED para a Liga Principal de Beisebol. Exibe um placar ao vivo do jogo do seu time naquele dia.
Requer um Raspberry Pi e uma placa de LED conectada por meio dos pinos GPIO.
Placas atualmente suportadas:
Se você quiser ver suporte para outro conjunto de dimensões de placa ou tiver sugestões de design para uma já existente, registre um problema!
Pi com problemas conhecidos
Ele pode exibir jogos ao vivo em ação e, opcionalmente, girar a cada 15 segundos em cada jogo do dia.
O tabuleiro atualiza a lista de jogos a cada 15 minutos.
Se o jogo ainda não começou, uma tela pré-jogo será exibida com os prováveis arremessadores iniciais.
Ele pode exibir a classificação da divisão fornecida. Como o tabuleiro 32x32 é muito pequeno para exibir vitórias e derrotas juntas, as vitórias e derrotas são alternadas no tabuleiro a cada 5 segundos. Você também pode especificar "NL Wild Card" ou "AL Wild Card" como uma 'divisão' para ver as 5 melhores equipes na corrida de wild card de cada liga.
Consulte a página wiki do projeto original para obter um guia passo a passo. Este README é focado principalmente no software MLB, mas para aqueles que vêm do Reddit ou de outro lugar e nunca construíram coisas com um Raspberry Pi, isso deve ajudá-lo a seguir em frente.
Um exemplo de lista de materiais (BOM) está localizado aqui
Você precisa do Git para clonar este repositório e do PIP para instalar o software do placar.
sudo apt-get update
sudo apt-get install git python3-pip
Este processo de instalação levará cerca de 10 a 15 minutos. Raspberry Pis não são os computadores mais rápidos, então seja paciente!
git clone https://github.com/MLB-LED-Scoreboard/mlb-led-scoreboard.git
cd mlb-led-scoreboard/
sudo ./install.sh
Isso criará um ambiente virtual Python e instalará todas as dependências necessárias. O ambiente virtual estará localizado em mlb-led-scoreboard/venv/
.
Isso instalará os binários rgbmatrix, que obtemos de outra biblioteca de código aberto. Ele controla a renderização real do placar nos LEDs. Se estiver curioso, você pode ler a documentação deles sobre como funcionam todas as coisas de nível inferior.
Ele também instalará as seguintes bibliotecas python que são necessárias para o funcionamento de certas partes do placar.
Sinalizadores adicionais estão disponíveis para personalizar sua instalação:
-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
O script de instalação foi projetado para hardware físico. Ao tentar instalá-lo em outras plataformas, você não deve usar sudo
para instalar as dependências. Além disso, você pode passar o argumento --emulator-only
para pular etapas de instalação que não são necessárias.
sh install.sh --emulator-only
git pull
na pasta mlb-led-scoreboard para obter as alterações mais recentes. Na maioria das vezes, isso será suficiente, mas se algo parecer quebrado:sudo ./install.sh
novamente. Quaisquer dependências adicionais adicionadas com a atualização serão instaladas desta forma. Se você estiver migrando para uma nova versão principal, responda "Y" para que ela crie um novo arquivo de configuração.Deveria ser isso! Sua versão mais recente agora deve estar funcionando com quaisquer novos recursos que acabaram de ser adicionados.
Você pode verificar as informações da versão para sua instalação do mlb-led-scoreboard executando python3 version.py
.
A versão mais recente do software está disponível aqui.
Certifique-se de que o fuso horário do Raspberry Pi esteja configurado para o fuso horário local. Freqüentemente, eles terão o horário de Londres por padrão. Você pode alterar o fuso horário do seu Raspberry Pi executando sudo raspi-config
.
O script de instalação adiciona uma linha no topo de main.py
para selecionar automaticamente o ambiente virtual. Isso significa que reativar o ambiente ( source ./venv/bin/activate
) não é um requisito.
sudo ./main.py
Executar como root é 100% uma necessidade absoluta, ou a matriz não será renderizada.
Usuários do Adafruit HAT/Bonnet: você deve fornecer um sinalizador de linha de comando:
sudo ./main.py --led-gpio-mapping="adafruit-hat"
Consulte a seção Sinalizadores abaixo para mais sinalizadores que você pode fornecer opcionalmente.
O placar pode ser executado em outras plataformas por meio de emulação de software via RGBMatrixEmulator
. Ao executar por meio do emulador, você não precisa acrescentar sudo
aos comandos de inicialização:
./main.py
Você também pode forçar o placar para o modo de emulação usando o sinalizador --emulated
:
./main.py --emulated
Ao executar no modo de emulação, você pode continuar a usar os sinalizadores de linha de comando existentes normalmente.
Consulte RGBMatrixEmulator para opções de configuração do emulador.
Um arquivo config.json.example
padrão está incluído para referência. Copie este arquivo para config.json
e modifique os valores conforme necessário.
"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.
Corridas/Acertos/Erros - As corridas são sempre mostradas na tela do jogo, mas você pode ativar ou ajustar o espaçamento de uma exibição de "execuções, acertos, erros". Dê uma olhada no arquivo leia-me de coordenadas para obter detalhes.
Dados de pitch - Os dados de pitch podem ser mostrados na tela do jogo. Consulte o arquivo leia-me de coordenadas para obter detalhes. Além disso, a descrição short
e long
do pitch pode ser alterada em data/pitches.py
Dados de jogo anterior - Os dados do jogo anterior podem ser mostrados na tela do jogo. Consulte o arquivo leia-me de coordenadas para obter detalhes. Descrições longas e curtas das jogadas podem ser alteradas em data/plays.py
Você pode configurar sua matriz de LED com os mesmos sinalizadores usados na biblioteca rpi-rgb-led-matrix. Mais informações sobre esses argumentos podem ser encontradas na documentação da 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)
Se você estiver se sentindo aventureiro (e nós o encorajamos fortemente!), as seções abaixo descrevem como você pode realmente personalizar seu placar e torná-lo seu!
Você tem a capacidade de personalizar a forma como as coisas são colocadas no tabuleiro (talvez você prefira ver o texto de rolagem de um pré-jogo um pouco mais alto ou mais baixo). Veja o diretório coordinates/
para mais informações.
Você tem a capacidade de personalizar as cores de tudo no tabuleiro. Consulte o diretório colors/
para obter mais informações.
Este placar usará uma API meteorológica para coletar informações meteorológicas em vários momentos. Essas informações são exibidas nos dias de folga do seu time na sua área e também durante as informações pré-jogo de cada jogo. A API meteorológica que usamos é do OpenWeatherMaps. A API OpenWeatherMaps requer uma chave de API para buscar esses dados, então você precisará reservar um minuto para se inscrever em uma conta e copiar sua própria chave de API em seu config.json
.
Você pode encontrar a página de inscrição do OpenWeatherMaps em https://home.openweathermap.org/users/sign_up. Uma vez logado, você encontrará uma guia API keys
onde encontrará uma chave padrão já criada para você. Você pode copiar esta chave e colá-la no config.json
em "weather"
, "apikey"
.
Você pode alterar o local usado inserindo o código de sua cidade, estado e país separados por vírgulas. Se desejar usar medidas métricas, defina a opção "metric"
como true
.
Este projeto depende de duas bibliotecas: MLB-StatsAPI é a biblioteca Python usada para recuperar dados de jogos ao vivo. rpi-rgb-led-matrix é a biblioteca usada para fazer tudo funcionar com a placa de LED.
O placar é atualizado com frequência, mas não consegue recuperar informações que a MLB ainda não disponibilizou. Se algo estiver estranho ou parecer atrasado, o primeiro suspeito é a API da web da MLB.
Se você encontrar algum problema e tiver etapas para reproduzi-lo, abra um problema. Se você tiver uma solicitação de recurso, abra um problema. Se você quiser contribuir com uma mudança de pequeno a médio porte, abra uma solicitação pull. Se você quiser contribuir com um novo recurso, abra um problema antes de abrir um PR.
Os requisitos de dependências são gerenciados usando pipreqs
. Se você estiver adicionando ou alterando uma dependência (como atualizar sua versão), certifique-se de atualizar o arquivo de requisitos com pipreqs
:
# If not already installed
pip3 install pipreqs
pipreqs . --force
Este projeto a partir da v1.1.0 usa a Licença Pública GNU. Se você pretende vendê-los, o código deve permanecer de código aberto.
A versão original desta placa
Inspirado neste placar, confira o placar da NHL?