Penting
Jika Anda mengupgrade dari v7 ke v8, pastikan untuk membaca bagian Penggunaan, karena perintah startup telah berubah!
Papan skor LED untuk Major League Baseball. Menampilkan papan skor langsung pertandingan tim Anda pada hari itu.
Memerlukan Raspberry Pi dan papan LED yang dihubungkan melalui pin GPIO.
Papan yang saat ini didukung:
Jika Anda ingin melihat dukungan untuk kumpulan dimensi papan lainnya, atau memiliki saran desain untuk yang sudah ada, ajukan masalah!
Pi memiliki masalah umum
Ini dapat menampilkan aksi pertandingan langsung, dan secara opsional diputar setiap 15 detik melalui setiap pertandingan hari itu.
Dewan menyegarkan daftar permainan setiap 15 menit.
Jika permainan belum dimulai, layar pra-pertandingan akan ditampilkan dengan kemungkinan pelempar awal.
Itu dapat menampilkan klasemen untuk divisi yang disediakan. Karena papan 32x32 terlalu kecil untuk menampilkan kemenangan dan kekalahan secara bersamaan, kemenangan dan kekalahan bergantian di papan setiap 5 detik. Anda juga dapat menentukan "NL Wild Card" atau "AL Wild Card" sebagai 'divisi' untuk melihat 5 tim teratas dalam perlombaan wild card setiap liga.
Lihat halaman wiki untuk proyek asli untuk panduan langkah demi langkah. README ini terutama berfokus pada perangkat lunak MLB, tetapi bagi mereka yang datang ke sini dari Reddit atau di tempat lain yang belum pernah membuat sesuatu dengan Raspberry Pi, ini akan membantu Anda memulai.
Contoh bill of material (BOM) terletak di sini
Anda memerlukan Git untuk mengkloning repo ini dan PIP untuk menginstal perangkat lunak papan skor.
sudo apt-get update
sudo apt-get install git python3-pip
Proses instalasi ini akan memakan waktu sekitar 10-15 menit. Raspberry Pis bukan komputer tercepat, jadi bersabarlah!
git clone https://github.com/MLB-LED-Scoreboard/mlb-led-scoreboard.git
cd mlb-led-scoreboard/
sudo ./install.sh
Ini akan membuat Lingkungan Virtual Python dan menginstal semua dependensi yang diperlukan. Lingkungan virtual akan berlokasi di mlb-led-scoreboard/venv/
.
Ini akan menginstal binari rgbmatrix, yang kita dapatkan dari perpustakaan sumber terbuka lain. Ini mengontrol rendering sebenarnya dari papan skor ke LED. Jika Anda penasaran, Anda dapat membaca dokumentasi mereka tentang cara kerja semua hal tingkat rendah.
Ini juga akan menginstal pustaka python berikut yang diperlukan agar bagian tertentu dari papan skor dapat berfungsi.
Flag tambahan tersedia untuk menyesuaikan instalasi Anda:
-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
Skrip instalasi dirancang untuk perangkat keras fisik. Saat mencoba menginstalnya di platform lain, Anda sebaiknya tidak menggunakan sudo
untuk menginstal dependensi. Selain itu, Anda dapat meneruskan argumen --emulator-only
untuk melewati langkah-langkah instalasi yang tidak diperlukan.
sh install.sh --emulator-only
git pull
di folder mlb-led-scoreboard Anda untuk mengambil perubahan terbaru. Seringkali, ini sudah cukup, tetapi jika ada yang rusak:sudo ./install.sh
lagi. Ketergantungan tambahan apa pun yang ditambahkan dengan pembaruan akan diinstal dengan cara ini. Jika Anda berpindah ke versi rilis besar yang baru, jawab "Y" agar versi tersebut menjadikan Anda file konfigurasi baru.Seharusnya itu saja! Versi terbaru Anda sekarang seharusnya dapat berfungsi dengan fitur ketinggalan jaman apa pun yang baru saja ditambahkan.
Anda dapat memeriksa informasi versi untuk instalasi mlb-led-scoreboard Anda dengan menjalankan python3 version.py
.
Versi terbaru perangkat lunak tersedia di sini.
Pastikan zona waktu Raspberry Pi Anda dikonfigurasikan ke zona waktu lokal Anda. Mereka sering kali memiliki waktu London secara default. Anda dapat mengubah zona waktu raspberry pi Anda dengan menjalankan sudo raspi-config
.
Skrip instalasi menambahkan baris ke atas main.py
untuk secara otomatis mengambil lingkungan virtual. Ini berarti mengaktifkan kembali lingkungan ( source ./venv/bin/activate
) bukan suatu keharusan.
sudo ./main.py
Berjalan sebagai root adalah 100% suatu keharusan, atau matriks tidak akan dirender.
Pengguna Adafruit HAT/Bonnet: Anda harus menyediakan tanda baris perintah:
sudo ./main.py --led-gpio-mapping="adafruit-hat"
Lihat bagian Bendera di bawah untuk bendera lainnya yang dapat Anda berikan secara opsional.
Papan skor dapat berjalan di platform lain melalui emulasi perangkat lunak melalui RGBMatrixEmulator
. Saat menjalankan melalui emulator, Anda tidak perlu menambahkan perintah startup dengan sudo
:
./main.py
Anda juga dapat memaksa papan skor ke mode emulasi dengan menggunakan tanda --emulated
:
./main.py --emulated
Saat menjalankan mode emulasi, Anda dapat terus menggunakan tanda baris perintah yang ada seperti biasa.
Lihat RGBMatrixEmulator untuk opsi konfigurasi emulator.
File config.json.example
default disertakan untuk referensi. Salin file ini ke config.json
dan ubah nilainya sesuai kebutuhan.
"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.
Lari/Tembakan/Kesalahan - Lari selalu ditampilkan di layar permainan, namun Anda dapat mengaktifkan atau menyesuaikan jarak tampilan "berjalan, berhasil, kesalahan". Lihatlah file readme koordinat untuk detailnya.
Data Pitch - Data pitch dapat ditampilkan di layar permainan, Lihat file readme koordinat untuk detailnya. Selain itu, deskripsi nada short
dan long
dapat diubah di data/pitches.py
Data Putar Sebelumnya - Data untuk permainan sebelumnya dapat ditampilkan di layar game. Lihat file readme koordinat untuk detailnya. Deskripsi permainan panjang dan pendek dapat diubah di data/plays.py
Anda dapat mengonfigurasi matriks LED Anda dengan tanda yang sama dengan yang digunakan di pustaka rpi-rgb-led-matrix. Informasi lebih lanjut tentang argumen ini dapat ditemukan di dokumentasi perpustakaan.
--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)
Jika Anda suka bertualang (dan kami sangat menganjurkannya!), bagian di bawah ini menjelaskan bagaimana Anda benar-benar dapat mempersonalisasi papan skor dan menjadikannya milik Anda!
Anda memiliki kemampuan untuk menyesuaikan cara penempatan sesuatu di papan (mungkin Anda lebih suka melihat teks bergulir untuk pra-permainan sedikit lebih tinggi atau lebih rendah). Lihat coordinates/
direktori untuk informasi lebih lanjut.
Anda memiliki kemampuan untuk menyesuaikan warna semua yang ada di papan. Lihat colors/
direktori untuk informasi lebih lanjut.
Papan skor ini akan menggunakan API cuaca untuk mengumpulkan informasi cuaca di berbagai waktu. Informasi ini ditampilkan pada hari libur tim Anda untuk wilayah Anda dan juga ditampilkan selama informasi sebelum pertandingan setiap pertandingan. API cuaca yang kami gunakan berasal dari OpenWeatherMaps. OpenWeatherMaps API memerlukan kunci API untuk mengambil data ini sehingga Anda perlu meluangkan waktu sebentar untuk mendaftar akun dan menyalin kunci API Anda sendiri ke config.json
Anda.
Anda dapat menemukan halaman pendaftaran OpenWeatherMaps di https://home.openweathermap.org/users/sign_up. Setelah masuk, Anda akan menemukan tab API keys
tempat Anda akan menemukan kunci default telah dibuat untuk Anda. Anda dapat menyalin kunci ini dan menempelkannya ke config.json
di bawah "weather"
, "apikey"
.
Anda dapat mengubah lokasi yang digunakan dengan memasukkan kode kota, negara bagian, dan negara Anda dipisahkan dengan koma. Jika Anda ingin menggunakan pengukuran metrik, setel opsi "metric"
ke true
.
Proyek ini bergantung pada dua perpustakaan: MLB-StatsAPI adalah perpustakaan Python yang digunakan untuk mengambil data game langsung. rpi-rgb-led-matrix adalah perpustakaan yang digunakan untuk membuat semuanya berfungsi dengan papan LED.
Papan skor sering diperbarui, tetapi tidak dapat mengambil informasi yang belum tersedia di MLB. Jika ada yang janggal atau terkesan ketinggalan, tersangka pertama adalah web API MLB.
Jika Anda mengalami masalah apa pun dan memiliki langkah-langkah untuk mereproduksi, bukalah masalah. Jika Anda memiliki permintaan fitur, buka masalah. Jika Anda ingin memberikan kontribusi perubahan kecil hingga menengah, buka permintaan tarik. Jika Anda ingin menyumbangkan fitur baru, buka terbitan terlebih dahulu sebelum membuka PR.
Persyaratan dependensi dikelola menggunakan pipreqs
. Jika Anda menambahkan atau membuat perubahan pada ketergantungan (seperti memperbarui versinya), pastikan untuk memperbarui file persyaratan dengan pipreqs
:
# If not already installed
pip3 install pipreqs
pipreqs . --force
Proyek ini pada v1.1.0 menggunakan Lisensi Publik GNU. Jika Anda berniat menjualnya, kodenya harus tetap open source.
Versi asli papan ini
Terinspirasi oleh papan ini, lihat papan skor NHL?