Важный
Если вы обновляетесь с версии 7 до версии 8, обязательно прочтите раздел «Использование», так как команды запуска изменились!
Светодиодное табло Высшей бейсбольной лиги. Отображает живое табло игры вашей команды в этот день.
Требуется Raspberry Pi и плата светодиодов, подключенная через контакты GPIO.
В настоящее время поддерживаются платы:
Если вы хотите увидеть поддержку другого набора размеров платы или иметь предложения по дизайну для существующего, сообщите о проблеме!
Пи с известными проблемами
Он может отображать живые игры в действии и, при необходимости, вращаться каждые 15 секунд в каждой игре дня.
Доска обновляет список игр каждые 15 минут.
Если игра еще не началась, перед игрой будет отображен экран с вероятными стартовыми питчерами.
Он может отображать турнирную таблицу указанного дивизиона. Поскольку доска 32х32 слишком мала, чтобы одновременно отображать выигрыши и проигрыши, выигрыши и проигрыши чередуются на доске каждые 5 секунд. Вы также можете указать «NL Wild Card» или «AL Wild Card» в качестве «дивизиона», чтобы увидеть 5 лучших команд в гонке wild card каждой лиги.
Посетите вики-страницу исходного проекта для получения пошагового руководства. Этот README в первую очередь ориентирован на программное обеспечение MLB, но для тех, кто приходит сюда из Reddit или откуда-либо еще, никогда не создавая ничего с помощью Raspberry Pi, это должно помочь вам приступить к работе.
Образец спецификации материалов (BOM) находится здесь.
Вам понадобится Git для клонирования этого репозитория и PIP для установки программного обеспечения табло.
sudo apt-get update
sudo apt-get install git python3-pip
Процесс установки займет около 10-15 минут. Raspberry Pi — не самый быстрый компьютер, так что наберитесь терпения!
git clone https://github.com/MLB-LED-Scoreboard/mlb-led-scoreboard.git
cd mlb-led-scoreboard/
sudo ./install.sh
Это создаст виртуальную среду Python и установит все необходимые зависимости. Виртуальная среда будет расположена по адресу mlb-led-scoreboard/venv/
.
При этом будут установлены двоичные файлы rgbmatrix, которые мы получаем из другой библиотеки с открытым исходным кодом. Он контролирует фактическое отображение табло на светодиодах. Если вам интересно, вы можете прочитать их документацию о том, как работают все элементы нижнего уровня.
Он также установит следующие библиотеки Python, которые необходимы для работы определенных частей табло.
Для настройки вашей установки доступны дополнительные флаги:
-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
Скрипт установки предназначен для физического оборудования. При попытке установить его на другие платформы не следует использовать sudo
для установки зависимостей. Кроме того, вы можете передать аргумент --emulator-only
, чтобы пропустить ненужные шаги установки.
sh install.sh --emulator-only
git pull
в папке mlb-led-scoreboard, чтобы получить последние изменения. В большинстве случаев этого будет достаточно, но если что-то кажется сломанным:sudo ./install.sh
еще раз. Любые дополнительные зависимости, добавленные вместе с обновлением, будут установлены таким образом. Если вы переходите на новую основную версию, ответьте «Y», чтобы она создала новый файл конфигурации.Вот и все! Ваша последняя версия теперь должна работать со всеми новыми необычными функциями, которые были только что добавлены.
Вы можете проверить информацию о версии вашей установки mlb-led-scoreboard, запустив python3 version.py
.
Последняя версия программного обеспечения доступна здесь.
Убедитесь, что часовой пояс вашего Raspberry Pi настроен на ваш местный часовой пояс. По умолчанию на них часто указано лондонское время. Вы можете изменить часовой пояс вашего Raspberry Pi, запустив sudo raspi-config
.
Сценарий установки добавляет строку в начало main.py
для автоматического выбора виртуальной среды. Это означает, что повторная активация среды ( source ./venv/bin/activate
) не является обязательным требованием.
sudo ./main.py
Запуск от имени пользователя root абсолютно необходим, иначе матрица не будет отображаться.
Пользователи Adafruit HAT/Bonnet: необходимо указать флаг командной строки:
sudo ./main.py --led-gpio-mapping="adafruit-hat"
См. раздел «Флаги» ниже, чтобы узнать больше флагов, которые вы можете предоставить по желанию.
Табло может работать на других платформах посредством программной эмуляции через RGBMatrixEmulator
. При запуске через эмулятор вам не нужно добавлять к командам запуска sudo
:
./main.py
Вы также можете перевести табло в режим эмуляции, используя флаг --emulated
:
./main.py --emulated
При работе в режиме эмуляции вы можете продолжать использовать существующие флаги командной строки как обычно.
См. RGBMatrixEmulator для опций конфигурации эмулятора.
Для справки включен файл config.json.example
по умолчанию. Скопируйте этот файл в config.json
и измените значения по мере необходимости.
"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.
Пробежки/попадания/ошибки: пробежки всегда отображаются на экране игры, но вы можете включить или настроить интервал отображения «пробегов, попаданий, ошибок». Подробности смотрите в файле readme с координатами.
Данные поля — данные поля можно отобразить на игровом экране. Подробную информацию см. в файле readme с координатами. Кроме того, short
и long
описание шага можно изменить в data/pitches.py.
Данные предыдущей игры. Данные предыдущей игры можно отобразить на экране игры. Подробности смотрите в файле readme координат. Длинные и короткие описания игр можно изменить в data/plays.py.
Вы можете настроить свою светодиодную матрицу с теми же флагами, которые используются в библиотеке rpi-rgb-led-matrix. Более подробную информацию об этих аргументах можно найти в документации библиотеки.
--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)
Если вы любите приключения (и мы очень поощряем это!), в разделах ниже описано, как вы можете по-настоящему персонализировать свое табло и сделать его своим собственным!
У вас есть возможность настроить способ размещения предметов на доске (возможно, вы предпочитаете, чтобы прокручиваемый текст перед игрой был немного выше или ниже). Дополнительную информацию смотрите в каталоге coordinates/
.
У вас есть возможность настроить цвета всего на доске. Дополнительную информацию смотрите в каталоге colors/
.
Это табло будет использовать API погоды для сбора информации о погоде в разное время. Эта информация отображается в выходные дни ваших команд в вашем регионе, а также отображается во время предматчевой информации о каждой игре. Используемый нами API погоды взят из OpenWeatherMaps. API OpenWeatherMaps требует ключ API для получения этих данных, поэтому вам понадобится минутка, чтобы зарегистрировать учетную запись и скопировать собственный ключ API в свой config.json
.
Страницу регистрации OpenWeatherMaps можно найти по адресу https://home.openweathermap.org/users/sign_up. После входа в систему вы увидите вкладку API keys
, где вы обнаружите, что для вас уже создан ключ по умолчанию. Вы можете скопировать этот ключ и вставить его в config.json
в разделы "weather"
, "apikey"
.
Вы можете изменить используемое местоположение, введя код города, штата и страны через запятую. Если вы хотите использовать метрические измерения, установите для параметра "metric"
значение true
.
Этот проект опирается на две библиотеки: MLB-StatsAPI — это библиотека Python, используемая для получения данных игры в реальном времени. rpi-rgb-led-matrix — это библиотека, используемая для обеспечения работы светодиодной платы.
Табло часто обновляется, но оно не может получить информацию, которую MLB еще не предоставила. Если что-то странное или кажется отстающим, первым подозреваемым является веб-API MLB.
Если у вас возникли какие-либо проблемы и есть способы их воспроизведения, откройте проблему. Если у вас есть запрос на функцию, откройте проблему. Если вы хотите внести небольшие или средние изменения, откройте запрос на включение. Если вы хотите внести новую функцию, сначала откройте проблему, прежде чем открывать PR.
Требования к зависимостям управляются с помощью pipreqs
. Если вы добавляете или вносите изменения в зависимость (например, обновляете ее версию), обязательно обновите файл требований с помощью pipreqs
:
# If not already installed
pip3 install pipreqs
pipreqs . --force
Начиная с версии 1.1.0, этот проект использует общественную лицензию GNU. Если вы намерены продавать их, код должен оставаться с открытым исходным кодом.
Оригинальная версия этой доски
Вдохновленный этой доской, взгляните на табло НХЛ?