Backlight Adaptif untuk Raspberry Pi TV - Ambilight Analog

gambar

Ini adalah TV 50 ”dengan 37 titik RGB lampu latar adaptif di bagian atas dan samping layar. Cara membuat lampu latar adaptif yang serupa untuk layar atau TV apa pun adalah topik yang sudah usang, tetapi cukup relevan karena sejumlah alasan.

Pertama-tama, semuanya berubah. Beberapa tahun yang lalu tidak ada proyek yang berfungsi tanpa kruk perangkat lunak atau perangkat keras. Bagaimanapun, saya belum melihat publikasi seperti itu. Yang dijelaskan di Internet hilang relevansinya karena usangnya platform perangkat lunak atau perangkat keras, atau menerapkan teknologi ini hanya untuk monitor yang terhubung ke PC.

Kedua, tidak ada dan tidak akan ada Samsung, Sony, Elge dan TV lain yang mendukung teknologi ini di pasar, seperti yang dipatenkan oleh Philips selama bertahun-tahun yang akan datang. Dan akhirnya, semua solusi "out of the box" yang tersedia pada Ali dan lainnya seperti dia memiliki sejumlah keterbatasan dalam fleksibilitas pengaturan dan adaptasi dengan ukuran bingkai konten video, penyesuaian gamut warna, dll., Hanya sebagai penopang perangkat keras yang menganalisis sinyal eksternal dan hanya bekerja pada pembentukan lampu latar.

Opsi penangkapan bingkai "Perangkat Keras"


Jika Anda tidak berbicara tentang opsi teoretis untuk penyempurnaan dan modernisasi receiver televisi itu sendiri, Anda harus setuju dengan fakta bahwa Anda harus memproses sinyal HDMI - yaitu. Ini akan digunakan untuk analisis bingkai dan backlighting. Di sini, hanya dua opsi implementasi yang menunjukkan diri: dengan pemrosesan sinyal dari sumber mana pun (seperti paket cahaya dengan ali) dan dengan implementasi sumber itu sendiri dalam bentuk TV set-top box dengan lampu latar adaptif.

Pada kasus pertama, kami mendapatkan beberapa jenis fleksibilitas - Anda dapat menghubungkan konsol game atau beberapa jenis pemain ke perangkat. Yang kedua - kami mengumpulkan "semacam pemain" yang sama ini dengan fungsi lampu latar bawaan. Saat bereksperimen, saya menerapkan kedua opsi, tetapi di sini saya hanya akan fokus pada yang kedua, dan inilah alasannya:

gambar

Dalam diagram blok yang diberikan dari varian pertama, sinyal HDMI dari sumber mana pun datang ke splitter, di mana ia dibagi menjadi dua output. Dari yang pertama, konten diputar di penerima TV atau monitor apa pun. Dari yang kedua, sinyal secara bersamaan memasuki scaler perangkat keras, di mana ia dikonversi menjadi sinyal analog dengan frame resolusi rendah - 320x480. Sinyal analog dikirim ke perangkat USB grabber, yang mengambil "tangkapan layar" dari setiap frame dan mentransmisikannya melalui port USB ke input PC mini papan tunggal - Raspberry Pi 3 B +. Perangkat lunak pada raspberry menganalisis bingkai menggunakan program Hyperion dan, melalui salah satu output GPIO, memberikan urutan kontrol ke input tape alamat seperti WS2812B atau APA102. Semua ini berfungsi dengan baik, tetapi memiliki beberapa kelemahan dalam bentuk tumpukan besi dengan koneksi dan sedikit keterlambatan dalam mengeluarkan sinyal lampu latar. Penundaan hanya terlihat pada video uji dengan perubahan warna yang tajam di sebagian besar bingkai. Kalau tidak, tidak ada keluhan, kecuali untuk biaya semua besi dalam implementasi ini:

Raspberry Pi 3 B + - sekitar $ 55.
Kotak Radiator - $ 14.
Splitter HDMI 1080P aktif untuk 2 output - $ 15.
HDMI 1080P To AV Scaler - $ 15.
EasyCap USB grabber - $ 18.
Catu daya - sekitar $ 10.
Kartu microSD 32GB - $ 10.
Menghubungkan kabel dan hal-hal kecil lainnya - sekitar $ 10.
Total, tidak termasuk rekaman alamat - hampir $ 150.

Bukan karena opsi seperti itu langsung menuju tungku - mungkin berguna untuk mengatur cahaya latar pada beberapa layar prafabrik besar dalam iklan atau presentasi, dan harganya bukan yang terburuk untuk hasilnya - tetapi untuk penggunaan di rumah saya memilih opsi kedua - di Sebagian besar "perangkat lunak". Itu keluar lebih mudah, lebih murah, lebih kompak dan lebih cepat. Untuk penggunaan komersial, itu juga bisa sangat cocok - Raspberry Pi dengan pemain dapat berhasil digunakan dalam proyek-proyek di mana Anda perlu secara otomatis memutar secara siklikal dan memutar beberapa konten dari saat Anda menyalakannya, mematikan pemain, lagi secara otomatis - sesuai dengan jadwal di akhir hari. Setelah menulis skrip kecil, kita akan mendapatkan perangkat iklan dengan fungsi backlighting adaptif layar apa pun, setidaknya sepuluh meter. Tapi kembali ke rumah ...

Frame pengambilan opsi "Perangkat Lunak"


Fungsi pusat media dan kontrol lampu latar akan tetap berada di belakang Raspberry Pi 3 B + yang sama, dan semua koneksi sekarang akan dikurangi untuk menghubungkan beberapa konektor - daya, Internet, lampu latar, dan HDMI ke TV. Tidak lebih dari kotak dekoder lainnya:

gambar

Ke depan, saya ingin mencatat bahwa Raspberry Pi 3 B + ternyata menjadi pusat set-top-box TV media yang sepenuhnya universal dengan semua kemampuan yang diperlukan dari perangkat tersebut, ditambah lampu latar adaptif yang dapat disesuaikan secara fleksibel untuk TV modern (dan tidak demikian) yang memiliki input HDMI.

Dasar dari perangkat lunak adalah OS Libreelec terbuka, khusus dipertajam untuk pemain Kodi. Situs proyek berisi semua informasi yang diperlukan.

Tentang kemampuan salah satu platform paling kuat dan fleksibel untuk memutar konten video-audio, IPTV, dll. dapat dibaca dengan mencetak skor di mesin pencari "deskripsi peluang apa pun". Ada banyak informasi dalam bahasa Rusia tentang topik ini. Saya menggunakan, mungkin, 1/10 dari semua fitur platform dan ini sudah cukup bagi saya. Platform ini didukung secara aktif, memiliki komunitas yang responsif. Oleh karena itu, kami membaca, kami belajar - di wiki proyek-proyek ini dan di forum ada hampir semua informasi dan jawaban yang diperlukan untuk pertanyaan. Kami mengambil kit distribusi dan petunjuk pemasangan dan konfigurasi di situs web proyek Libreelec. Karena OS adalah lintas-platform, jangan lupa bahwa proyek kami dibangun di atas Raspberry.

Melanggar tradisi aneh, tetapi mapan untuk memulai publikasi seperti itu dengan deskripsi jenis kaset alamat dan cara menempelnya dengan canggung di dinding belakang TV rumah, saya akan mulai dengan menginstal dan mengkonfigurasi perangkat lunak papan tunggal. Sayangnya, membuat petunjuk langkah demi langkah untuk pengaturan hampir tidak mungkin - dibutuhkan setengah ratus halaman teks tanpa tangkapan layar. Selain itu, platform pemain secara aktif berkembang, versi OS dan Kodi berubah, informasi terkini - segera berhenti seperti itu. Karena itu, berikut ini hanya poin utama plus tautan ke sumber informasi bermanfaat.

Untuk mengonfigurasi bagian perangkat lunak dari lampu latar, mengontrol remote control IR dan pemain itu sendiri, Anda harus memiliki gagasan awal tentang bagaimana direktori Libreelec diatur, bagaimana jaringan lokal bekerja, konsol, apa yang harus dilakukan dengan baris perintah, dll, karena kami akan melakukan beberapa hal dalam proses dengan tangan. Melalui installer pada kartu microSD, hanya Libreelec OS dan add-in untuk highlight - Hyperion, yang akan diinstal.

Karena Raspberry Pi tidak memiliki jam real-time, BIOS, dan daya cadangan bawaan, semua yang diperlukan untuk bekerja terletak pada kartu microSD. Untuk menginstal OS pada kartu, Anda harus mengunduh paket NOOBS dari situs web proyek Raspberry (pada saat instalasi saya menggunakan build versi 3.2.1) atau alat khusus - “LibreELEC USB-SD Creator” .

Kartu memori harus memiliki kecepatan baca dan tulis yang baik - yaitu, setidaknya kelas 10. Dalam hal volume, Libreelec OS membutuhkan sedikit ruang, kartu 16GB akan cukup untuk bekerja, jika tidak ada keinginan untuk membeli jumlah yang lebih besar. Itu dapat digunakan untuk menyimpan konten apa pun.

Dalam kasus NOOBS, isi dari arsip zip diurai ke akar kartu microSD diformat dalam FAT32, kartu dimasukkan ke dalam slot raspberry de-energized, daya dihidupkan, dan kemudian, memilih OS yang diperlukan dalam installer dan mengikuti instruksi, kami menggunakan Libreelec. Namun, pengembang platform merekomendasikan untuk menginstal menggunakan LibreELEC USB-SD Creator, yang dengan sendirinya mengunduh dan menulis distribusi ke kartu, kemudian kartu juga dimasukkan ke dalam slot raspberry, tempat penginstal menyebarkan OS setelah menyalakan daya. Dalam hal ini, bagian-bagian kartu diformat ulang, setelah itu dari Windows Anda tidak akan melihat seluruh volume nyata media. Jika karena alasan apa pun ada kebutuhan untuk mengembalikan partisi ke keadaan awal, Anda harus membersihkan kartu dengan utilitas Windows standar - DiskPart, kemudian di bagian "Manajemen Disk" buat partisi baru di ruang bebas media dan formatlah.

Untuk menyederhanakan instalasi dan konfigurasi OS, untuk sementara saya menyambungkan monitor dan keyboard terpisah dengan mouse ke raspberry.

Selain itu, untuk mengkonfigurasi dan mengkonfigurasi perangkat lunak raspberry, Anda memerlukan koneksinya dengan PC dan akses Internet, lebih disukai kabel. Perangkat lunak yang diinstal pada PC untuk menghubungkan melalui SSH - PutTY dan WinSCP, serta mesin virtual Java (jre-8u231-windows-x64) dan konfigurator daemon Hyperion - HyperCon (HyperCon.jar). Anda dapat menggunakan file manager lain yang nyaman dengan panel, misalnya - Total Commander. Tempat mengunduh dan mengonfigurasi - banyak informasi di situs khusus, cukup mencari informasi dengan kueri penelusuran "bekerja dengan PUttY dan WinSCP". Proyek Hyperion juga memiliki forum dan wiki sendiri.
Dalam tangkapan layar ini, ada tiga cara untuk menghubungkan raspberry ke PC yang menang melalui SSH - melalui konsol Putty, pengelola file WinSCP, dan Total Commander:

gambar

Akun admin Librelec memiliki nama pengguna dan kata sandi root @ libreelec secara default, yang paling baik diubah untuk alasan keamanan. Setelah instalasi berhasil dalam pengaturan sistem, kami melakukan tindakan sederhana - mengaktifkan SSH, SMB, menetapkan IP statis, menonaktifkan pembaruan:

gambar

Diasumsikan bahwa rasberi terhubung ke jaringan rumah Anda, dan Anda dapat mengetahui alamat IP perangkat yang terhubung dengannya di PC rumah Anda. Saya mematikan pembaruan sehingga sistem lampu latar adaptif yang disetel sekali tidak crash jika pengembang mengubah komponen yang terkait dengannya di Libreelec.

Dalam pengaturan sistem dalam layanan yang Anda butuhkan untuk mengaktifkan SSH dan mengaktifkan otentikasi kata sandi, juga mengatur versi minimum protokol SMB2, maksimum - SMB3. Anda akan membutuhkan SMB untuk melihat direktori Raspberry Pi dan flash drive yang terhubung dari PC:

gambar

Di bawah Windows 10, pada PC dalam pengaturan Anda harus menemukan dan mengaktifkan dukungan SMB, karena dinonaktifkan secara default di dalamnya:

gambar

Kami juga mencari dan menambahkan tata letak keyboard Rusia di pengaturan. Tidak ada yang akan terjadi pada keyboard fisik - hanya akan ada input dalam bahasa Inggris, tetapi pada keyboard virtual pada layar akan dimungkinkan untuk memasukkan teks dalam bahasa Rusia. Untuk akses mudah ke direktori pada kartu microSD dan flash drive yang terhubung ke raspberry, Anda dapat membuat dan menempatkan pintasan dengan alamat direktori jarak jauh pada bilah alat di Total Commander:

gambar

File di jaringan lokal akan ditransfer pada kecepatan yang dibatasi oleh bandwidth router rumah Anda, dan jauh lebih cepat daripada akses melalui SSH. Dalam kasus apa pun, menyalin film atau musik dengan cara ini akan lebih nyaman daripada membawa flash drive USB dari set-top box ke PC. Anda akan melihat struktur direktori internal di / penyimpanan pada kartu raspberry dan drive yang terhubung ke port USB. Dengan koneksi kabel, saya punya 100 Mbps. melalui router, kecepatan unduh maksimum file dari PC ke USB di raspberry adalah sekitar 12 MB / s, yang secara kasar sesuai dengan bandwidth koneksi kabel saya.

Jika perlu, di masa mendatang Anda dapat menggunakan server media rumah (UPnP, DLNA) ke PC Anda untuk mengalirkan konten langsung dari PC Anda.

Setelah menginstal dan mengkonfigurasi akses ke raspberry dari PC melalui SSH menggunakan program PUttY dan WinSCP, Anda dapat melanjutkan untuk menginstal dan mengkonfigurasi daemon Hyperion. Harus ada mesin virtual Java di PC.

Semuanya akan berfungsi seperti ini - di awal Raspberry, program khusus, Hyperion, akan diluncurkan di latar belakang dengan Kodi di latar belakang. Dia akan menganalisis semua frame video, dan tergantung pada pengaturan yang direkam dalam file konfigurasi - kelola rekaman alamat melalui salah satu output GPIO raspberry. Artinya, setelah pengaturan semuanya akan bekerja secara mandiri, tidak ada komunikasi atau interaksi dengan PC yang diperlukan. Tetapi untuk membuat file konfigurasi dengan cepat dan menginstal Hyperion pada raspberry, ada konfigurator yang nyaman yang berjalan pada PC. Program ini akan membantu Anda dengan cepat membuat file konfigurasi agar daemon berfungsi, mengunduh dan menginstalnya di Raspberry dan memeriksa fungsionalitas sistem menggunakan antarmuka grafis yang nyaman.

Hypercon


Configurator disebut HyperCon, tidak memerlukan instalasi, cukup jalankan file executable HyperCon.jar di PC dan lihat jendela ini:

gambar

Di sisi kanan ada layar virtual yang lampu latarnya akan dikonfigurasikan - zona pengambilan warna, penomorannya (mulai dari 0), arah, lokasi, lekukan, tumpang tindih, dan kedalaman. Di bagian kiri ada lima tab dengan pengaturan.

Secara singkat pada tab konfigurator:

Perangkat keras (besi)

  • perangkat -> Nama Konfigurasi - nama yang sesuai untuk konfigurasi saat ini
  • perangkat -> Jenis - jenis chip dari tape alamat, modul, atau yang lainnya
  • perangkat -> Jumlah LED - jumlah piksel yang dapat dialamatkan (berapa banyak LED dalam rekaman itu)
  • perangkat -> urutan Byte RGB - warna berikut dalam protokol yang digunakan

Konstruksi (pengaturan sumber cahaya)

  • kotak centang -> (kiri atas, dll.) - keberadaan sumber cahaya di sudut-sudut struktur
  • LED horizontal -> Jumlah piksel di bagian atas struktur
  • LED Kiri-> Piksel Kiri
  • LED Kanan -> Jumlah piksel di tepi kanan desain
  • Celah bawah -> Jumlah zona yang dilewati di sepanjang bagian bawah struktur (untuk memotong kaki TV atau seluruh zona bawah)
  • 1-st LED offset -> Koreksi untuk piksel offset untuk mengatur yang pertama di sudut yang nyaman.

Proses gambar

  • Proses gambar -> Kedalaman horisontal - kedalaman zona horizontal,%
  • Proses gambar -> Kedalaman vertikal - Kedalaman zona vertikal,%
  • Proses gambar -> Celah horizontal - zona indentasi dari tepi secara horizontal,%
  • Proses gambar -> Celah vertikal - zona inden dari tepi secara vertikal,%
  • Proses gambar -> Tumpang tindih - tumpang tindih zona tetangga,%

Deteksi Blackborder - Mode sensitivitas dan pemrosesan. Ia bekerja dalam teori seperti ini - setan menganalisis tepi layar pada tingkat yang ditentukan dan menghitung lebar tepi gelap untuk mengecualikan dari zona yang diproses. Ini untuk kasus-kasus ketika gambar layar lebar dimainkan.

Proses (pemrosesan bingkai)

  • Smoothing -> Enabled (kotak centang untuk mengaktifkan anti-aliasing)
  • Smoothing -> Type
  • Menghaluskan -> Waktu
  • Smoothing -> Perbarui freq (refresh rate)
  • Smoothing -> Update delay (tunda sebelum memperbarui bingkai)
  • Kalibrasi warna - item intuitif yang memungkinkan Anda untuk mengatur level cahaya minimum dan maksimum, saturasi, suhu, level cahaya latar belakang tanpa sinyal, secara terpisah untuk masing-masing dari 3 warna primer.

Kotak centang bertanda Kirim Berkelanjutan memungkinkan Anda melihat perubahan dalam proses konfigurasi yang sudah ada pada struktur yang dirakit.

Grabber (Grabber - grabber bingkai, tab paling menarik)

  • Internal Frame grabber (Software grabber)
  • Rebutan Bingkai Internal-> Diaktifkan
  • Rebutan Bingkai Internal-> Lebar
  • Rebutan Bingkai Internal-> Heigth (ketinggian zona)
  • Internal Frame grabber-> Interval
  • Internal Frame grabber-> Priority Channel (prioritas saluran ini)

Beberapa klarifikasi diperlukan di sini. Kuncinya adalah kita membuat media player yang berbasis pada Raspberry Pi, yang akan memutar konten dari jaringan lokal, flash drive, atau IP TV pada platform LibreElec. Karena konten sudah berputar dengan pemain raspberry, penangkapan akan terjadi secara terprogram, tanpa grabber EasyCap eksternal, dan daemon akan berurusan dengan frame itu sendiri, karena dalam hal ini sumber sinyal akan menjadi output HDMI dari Raspberry Pi itu sendiri. Dimungkinkan untuk menggunakan grabber eksternal yang sama untuk sumber lain tanpa memutuskan prioritas satu saluran internal disediakan untuk ini, ini adalah item terakhir untuk mengkonfigurasi grabber perangkat lunak. Semakin tinggi angkanya, semakin rendah prioritas saluran.

Tepat, tidak ada kesalahan.

  • Grabber V4L2 (Pengaturan Driver Grabber Hardware))
  • Grabber V4L -> Device (Perangkat USB dari mana penangkapan dibuat - / dev / video0 secara default)
  • Grabber V4L -> Input (Input yang digunakan adalah 0 secara default)
  • Grabber V4L -> Lebar (lebar zona - -1 secara default)
  • Grabber V4L -> Heigth (ketinggian zona - -1 secara default)
  • Grabber V4L -> Decimation bingkai
  • Grabber V4L -> Ukuran penipisan (rasio kompresi)
  • Grabber V4L -> Saluran Prioritas (prioritas saluran ini)
  • Grabber V4L -> mode 3D (pemilihan mode 2D / 3D)
  • Grabber V4L -> Krop Kiri (krop kiri)
  • Grabber V4L -> Krop Kanan (krop ke kanan)
  • Grabber V4L -> Crop Top (potong atas)
  • Grabber V4L -> Pangkas Bawah (pangkas bingkai bawah)
  • Grabber V4L -> tiga poin terakhir (ambang batas untuk beralih saluran berdasarkan warna)

Eksternal

  • Eksternal -> Kodi Checker (Pengaturan untuk pemain Kodi, jika digunakan sebagai pemain. Kotak centang yang ditandai akan mematikan lampu latar saat menjalankan fungsi pemain yang ditentukan. Anda dapat mengonfigurasi cahaya latar hanya berfungsi saat memutar konten, dan matikan dalam semua kasus lain )
  • Eksternal -> Json / Proto / Boblight Server (Pengaturan port server, biarkan seperti di layar)
  • Eksternal -> Booteffect / Static color (Pengaturan efek demo saat memulai daemon)
  • Eksternal -> Json / Proto Forvard (Pengaturan port output, biarkan seperti di layar)

SSH (Pengaturan Koneksi PC dengan Raspberry Pi)
  • SSH - Connection -> System (Memilih OS yang diinstal pada Raspberry Pi)
  • SSH - Koneksi -> Target IP (Alamat Raspberry Pi IP)
  • SSH - Connection -> Port (seperti pada tangkapan layar - (22))
  • SSH - Koneksi -> Nama pengguna / kata sandi (nama - kata sandi yang ditetapkan pada Raspberry Pi)
  • SSH - Connection -> Connect / Disconnect (tombol connect-disconnect dengan Raspberry Pi)
  • SSH - Connection -> Show Traffic (Tombol untuk memanggil konsol dengan output informasi)
  • SSH - Kelola Hyperion dari HyperCon -> Inst / Upd. Hyperion (Tombol untuk menginstal daemon pada Raspberry Pi atau memperbarui daemon melalui jaringan. Tanpa sudo get-install, sambungkan ke Raspberry Pi, colek dan tunggu output ke konsol HyperCon)
  • SSH - Kelola Hyperion dari HyperCon -> Hapus Hyperion (tombol uninstall Daemon)
  • SSH - Kelola Hyperion dari HyperCon -> Start / Stop (Tombol berhenti-start Daemon)
  • SSH - Kelola Hyperion dari HyperCon -> Dapatkan Log (Output ke log konsol daemon, nyaman untuk
  • tidak mencari kode galat dan membaca
  • SSH - Send Hyperion Configuration -> Local Config Path (Kirim file konfigurasi ke lokasi lokal yang ditentukan pada PC)
  • SSH - Send Hyperion Configuration -> Send Config (Kirim file konfigurasi melalui SSH ke Raspberry Pi)
  • SSH - Colorpicker (tester palet intuitif - Anda dapat memeriksa output dari semua warna.
  • Tombol-tombol di bawah tab save-load pengaturan HyperCon (bukan file konfigurasi daemon itu sendiri !!)
  • BANTUAN dapat dimengerti, dan Buat Konfigurasi Hyperion memungkinkan Anda untuk menyimpan file konfigurasi daemon untuk Raspberry Pi itu sendiri secara lokal - hyperion.config.json

Seperti yang dapat Anda lihat dari daftar di atas, ada cukup banyak opsi penyesuaian, dan ini membuat alat ini sangat fleksibel untuk setiap Daftar Keinginan dan tugas.

Sebagai contoh, konfigurasi tab saya:

gambar

gambar

Pada tab pertama, kami mengatur zona dengan cara yang sama bahwa piksel lampu latar di bagian belakang TV akan berada secara fisik. Anda dapat mengisi seluruh perimeter atau bagiannya, mengatur arah, awal, dll. Jenis kaset yang saya gunakan adalah WS2812B, jadi pada tangkapan layar bidang yang sesuai dipilih sebagai WS281x. Jumlah piksel saya menentukan kerapatan LED pada kaset yang tersedia dan diagonal layar. Tab yang tersisa seperti dijelaskan di atas, dan yang terbaru, kami memilih OS kami di Raspberry Pi, mengonfigurasi komunikasi melalui SSH dan menginstal daemon Hyperion pada satu papan. Kemudian kita menyimpan konfigurasi HyperCon, membuat file konfigurasi Hyperion baru, mengirim konfigurasi yang dibuat ke Raspberry Pi, mulai dan coba ColorPicker untuk memeriksa apakah warnanya cocok dengan palet. Jika semuanya cocok,konten apa pun yang dimainkan oleh pemain Kodi akan mengontrol cahaya latar. Output sinyal GPIO - 18 (pin fisik sisir - 12).

Detail semua koneksi akan dijelaskan di bawah ini, setelah deskripsi semua pengaturan program.
Saya tidak mengkonfigurasi startup sama sekali, daemon dimulai pada saat yang sama ketika pemain mulai. Namun, itu agar lampu latar tetap tidak menyala. Kemudian kami mencoba memeriksa apakah autostart daemon terdaftar di "/storage/.config/ autostart.sh" dan mencoba menginstal ulang daemon untuk mengirim konfigurasinya lagi ke Raspberry Pi. Program itu sendiri mengirimkan konfigurasi ke direktori

Raspberry Pi -
“/storage/.config/ hyperion.config.json”.
Anda juga dapat memverifikasi operasi daemon dengan mengirimkan warna pada tab HyperHon SSH, mencentang kotak "Autoupdate" dan menekan tombol stop-start untuk memulai kembali.
Jika daemon tidak dimulai setelah mem-boot ulang Raspberry Pi, coba ubah auto start dalam file

/storage/.config/autostart.sh //--------------------------------------------------------------------------------------------------------------- #!/bin/sh sleep 5 /storage/hyperion/bin/hyperiond.sh /storage/.config/hyperion.config.json > /storage/logfiles/hyperion.log 2>&1 //--------------------------------------------------------------------------------------------------------------- 

dengan demikian menunda eksekusi daemon.

Remote control dengan remote control IR apa pun


Karena selain lampu latar, awalan akan menjadi pusat media yang lengkap - Anda perlu mengencangkan dan mengonfigurasi remote control untuk itu. Jika TV Anda mendukung teknologi CEC (Consumer Electronics Control, mis. HDMI control protocol), Kodi dapat mengonfigurasi dan menggunakan remote control TV yang sudah tersedia dengan TV untuk mengontrol set-top box. Karena semua pabrikan menyebut protokol ini secara berbeda di TV mereka. , (misalnya, LG - SimpLink, Samsung - Anynet, Sony - BRAVIA Sync), cari dukungan untuk fungsi ini di pengaturan TV Anda. Saya tidak memiliki remote control yang sangat baik untuk TV, jadi saya pergi ke arah lain - saya mengambil yang sebelumnya dengan yang lama. TV set-top box di android (sementara remote yang dipesan lain untuk proyek ini berasal dari China):

gambar

Pada sisir Raspberry, Anda memerlukan pin + 5V, arde dan sinyal pada GPIO23 (pin fisik - 16), karena GPIO18 (pin fisik - 12), yang dikonfigurasi untuk perangkat IR secara default - sudah sibuk mengeluarkan paket ke lampu latar.

Proses:

Untuk menghubungkan driver penerima IR, edit file /flash/config.txt, di bagian paling akhir kita menulis baris (di sini dan di bawah tanpa tanda kutip):
"Dtoverlay = gpio-ir, gpio_pin = 23"

Setelah menghubungkan penerima IR ke raspberry, Anda perlu mendapatkan kode pindai untuk tombol-tombol pada kendali jarak jauh yang kami butuhkan dan ikatkan perintah kepada mereka. Setelah menentukan jenis protokol di konsol dengan perintah ir-keytable, kami melampirkan kode pindaian ke perintah yang diterima di konsol menggunakan
«Irrecord -l | grep ^ KEY ", lakukan pemetaan secara manual dan buat tabel semacam ini:
tabel ireltex, ketik: NEC

 0x8f64d KEY_0 0x8f642 KEY_1 0x8f641 KEY_2 0x8f640 KEY_3 0x8f646 KEY_4 

Jadi - semua tombol dan perintah yang kita butuhkan. Saya mendapat 34 baris pertandingan. Baris pertama adalah nama tabel dan protokol kendali jarak jauh. Baris berikut adalah kode pemindaian tombol di sebelah kiri. Di sebelah kanan, dipisahkan oleh spasi, adalah perintah kontrol Kodi. Dan seterusnya, secara berurutan.

Meja itu harus disimpan. Untuk melakukan ini, sebuah file dibuat (saya menyebutnya ireltex) dari mana binding ini akan dibaca. File harus ditempatkan di folder "/storage/.config/rc_keymaps/ireltex", lalu buat file
"/Storage/.config/rc_maps.cfg", kami menulis baris di dalamnya:
"* * Ireltex" (ess-tapi semua tanpa tanda kutip).

Melalui konsol Putty, muat tabel yang dihasilkan ke driver:
"Ir-keytable -c -w /storage/.config/rc_keymaps/ireltex", reboot Raspberry Pi dan ubah baris terakhir dalam file
"/Flash/config.txt"
Sekarang terlihat seperti ini:
"Dtoverlay = gpio-ir, gpio_pin = 23, rc-map-name = ireltex"
Untuk mengajukan
“/Storage/.config/autostart.sh” Anda perlu menambahkan autoload dari protokol kendali jarak jauh sehingga catatan terlihat seperti ini (untuk kendali jarak jauh dan protokolnya):

 #!/bin/sh ( sleep 5 ir-keytable -p nec )& sleep 5 /storage/hyperion/bin/hyperiond.sh /storage/.config/hyperion.config.json > /storage/logfiles/hyperion.log 2>&1 & 

Saya reboot Raspberry Pi lagi dan sekarang Kodi merespons perintah dari jarak jauh.
Seluruh proses pengaturan dengan contoh-contoh dalam aslinya dijelaskan secara lebih rinci di sini .

Anda juga dapat mengetikkan permintaan di mesin pencari "LibreElec + IR Remote" dan mendapatkan beberapa artikel tentang topik ini dalam bahasa Rusia.

Jika Anda menggantung output penerima IR kecuali GPIO 23 juga pada input GPIO3 - Raspberry Pi akan dihidupkan dengan perintah dari remote control. Kerugian dari metode kontrol ini adalah bahwa sinyal sakelar-on akan diterima oleh siapa saja dari remote control IR, tetapi saya belum menemukan cara lain untuk menyalakan raspberry dari jarak jauh. Jadi, Anda perlu membuat detektor tambahan yang mengambil satu perintah dan hanya mentransmisikan sinyal ini ke input GPIO3 Raspberry Pi.

Untuk menghindari mukjizat dengan kerlap-kerlip piksel spontan, dasar pita, selain pin GND GPIO, harus dihubungkan langsung ke terminal negatif dari sumber daya eksternal dengan kabel yang sesuai dengan penampang saat ini, dan kabel sinyal D-IN harus memiliki panjang minimum.

Harus diingat bahwa penerima IR yang berbeda mungkin memiliki voltase pasokan yang berbeda (3,3 atau 5V) dan penetapan pin. Agar tidak merusak penerima atau port Raspberry Pi, koneksi harus dilakukan sesuai dengan dokumentasi untuk penerima yang digunakan!
Akibatnya, sejauh ini semua koneksi pada pin GPIO Raspberry Pi terlihat seperti ini:

gambar

Inklusi yang benar dari Raspberry Pi dengan remote control IR


Sekarang Anda perlu melakukan pemasukan yang benar dari Raspberry Pi dari tombol yang ditetapkan pada remote control IR. Sekarang perangkat melakukan boot ketika sinyal datang pada pin GPIO3 (pin fisik kelima), dan karena penerima tidak peduli apa yang akan diterima dalam rentang IR ini, unduhan berasal dari sinyal dari remote control apa pun, kadang-kadang bahkan ketika lampu dinyalakan di ruangan, yang tidak nyaman . Untuk mengatasi masalah ini, antara GPIO3 dan pin sinyal dari penerima IR, Anda memerlukan perantara yang akan men-decode sinyal, dan hanya jika perintah cocok dengan yang sebelumnya ditetapkan, nyalakan Raspberry Pi. Selain itu, Anda harus dapat menggunakan remote yang berbeda atau tombol dari satu remote. Tentu saja, Anda dapat menulis firmware untuk ATIN apa pun senilai setengah dolar rubel dan semuanya akan berfungsi dengan baik, tetapi karena kita berbicara tentang konstruktor yang dapat diulang dan sederhana, jauh lebih mudah untuk menggunakan pengontrol yang relatif murah dan ringkas - Arduino Nano. Papan akan terus bekerja dalam mode siaga, memonitor semua sinyal yang masuk dari sumber IR apa pun. Dan hanya ketika decoding salah satu sinyal yang telah ditentukan - berikan perintah untuk menyalakan Raspberry Pi. Kontroler juga akan memberikan flashing sederhana jika Anda perlu mengubah remote control untuk Raspberry Pi.

Arduino Nano akan didukung tidak cukup standar - dari pin + 5V GPIO RPi - hingga pin + 5V Arduino. Tidak ada yang salah dengan pengaktifan seperti itu - di sisi USB, papan Arduino akan memiliki input stabilizer internal, di sisi pin Vin, katoda dioda Schottky. Tidak ada beban selain penerima IR tidak akan terhubung ke pin Arduino nano.

Tabel koneksi Arduino-Raspberry akan seperti ini - Raspberri Pi 3 B + output fisik / output fisik Arduino Nano
4 (+ 5v) / + 5V
6 (GND) / GND
5 (GPIO3) / D8
Selain itu, penerima IR akan terhubung ke pin daya pada papan Arduino - (GND, + 5V atau 3.3V), dan sinyal output melalui resistor 100R ke pin Arduino D7 dan melalui 510R ke pin 16 (GPIO23) Raspberry Pi. Dengan demikian, penerima IR akan secara langsung mentransmisikan semua perintah ke input GPIO23, dan satu atau dua pulsa pendek akan muncul pada GPIO3 hanya setelah menerima perintah yang telah ditentukan dalam sketsa.

Diagram koneksi penerima IR, Arduino nano dan tape alamat ke Raspberry Pi:

gambar

Pelompat atas "5V Eksternal" memungkinkan Arduino dan Raspberry untuk ditenagai oleh sumber daya eksternal, bersama dengan lampu latar dari konektor "Power" XS1, jika, misalnya, jumlah piksel kecil dan tidak membuat beban besar. Dengan jumper yang lebih rendah sesuai dengan skema, tegangan dari penerima IR dapat dipilih - 3.3 atau 5V. Perangkat akan dirancang sebagai perisai eksternal yang terhubung ke konektor GPIO, di mana papan Arduino nano, penerima IR dan semua konektor terhubung.

Untuk memeriksanya, cukup membaca dulu dan masuk ke dalam sketsa kode tombol apa saja, misalnya "OK" atau "ENTER", dari kendali jarak jauh mana pun. Anda juga dapat membuat berbagai perintah untuk meluncurkan konsol dengan menekan salah satu kelompok tombol tertentu atau urutan penekanan tombol. Sketsa menggunakan perpustakaan iarduino_IR-master, arsip yang dapat dengan mudah ditemukan di Internet. Ada contoh sketsa di arsip perpustakaan, menggunakan salah satunya, misalnya receiver_GetProtokolAll, Anda bisa mendapatkan kode perintah untuk tombol apa saja pada kendali jarak jauh. Selanjutnya, kode-kode ini perlu ditulis ke dalam sketsa yang dituangkan ke Arduino Nano:

 //******************************************************************************* #include <iarduino_IR_RX.h> //      - iarduino_IR_RX IR(7); //   IR,       - const int Out_GPOI_3 = 8; //     GPIO RPi uint32_t Code_001 = 0xFF708F; // RX code    uint32_t Code_002 = 0x106FA857; void setup() { pinMode(Out_GPOI_3, OUTPUT); //        9600 / Serial.begin(9600); IR.begin(); //    - } void loop() { if(IR.check()) //         { //     ,   if(IR.data == Code_001 or IR.data == Code_002) { digitalWrite(Out_GPOI_3, HIGH); //    RPi delay(5); digitalWrite(Out_GPOI_3, LOW); //      delay(5); digitalWrite(Out_GPOI_3, HIGH); //    RPi delay(5); digitalWrite(Out_GPOI_3, LOW); //      delay(5); } } } //******************************************************************************* 

Karena pustaka iarduino_IR-master menggunakan penghitung waktu yang sama dengan beberapa fungsi "kabel" standar dari lingkungan Arduino, Anda tidak dapat menggunakan micros (), millis (), tone (), dan mungkin beberapa yang lain dalam sketsa ini, jika tidak upaya mengkompilasi akan menyebabkan kesalahan yang tidak jelas. Meskipun pendekatan ini penulis untuk menulis kode, perpustakaan secara teratur melakukan fungsinya dan jelas mendefinisikan pesan IR, timing, struktur dan protokol yang digunakan, dan kemampuan untuk dengan cepat membaca kode perintah dari konsol mana pun mengurangi konfigurasinya menjadi penggantian sederhana variabel dalam sketsa.

Seluruh superstruktur dirancang sebagai tameng, yang papan dan pabriknya berikut ini diambil dan dipesan di Cina:

gambar

Pelindung ini menghubungkan papan Arduino nano, konektor untuk satu catu daya umum 5V, konektor lampu latar TV, dan pelindung itu sendiri termasuk dalam sisir GPIO Raspberry Pi. Setelah menginstal semua komponen, sepertinya ini:

gambar

gambar

Dia berencana untuk mengatur penutup tembus sudut akrilik pada lubang yang disediakan untuk mengikat rak - tetapi tangannya entah bagaimana tidak mencapai, dan kotak dekoder masih tidak terlihat ...

Banyak yang telah ditulis di mana-mana tentang pemilihan dan penempelan pita alamat, namun, saya juga memiliki beberapa komentar tentang topik dan pemasangan ini.

Pertama tentang mitos.

"WS2812 tidak cocok untuk penerangan latar adaptif, Anda perlu menggunakan SK9822 atau bahkan APA102"

Mereka membenarkan hal ini dengan fakta bahwa frekuensi transfer data analog APA102 jauh lebih tinggi karena adanya garis jam, dan LED sendiri memiliki gamut warna yang lebih luas dan lebih dapat diandalkan.

Semua ini benar, tetapi jika kami membagi frekuensi operasi WS2812B dengan jumlah piksel dan 32 bit informasi untuk masing-masingnya, kami mendapatkan frekuensi pembaruan hampir 300 Hz untuk 91 LED saya. Ini beberapa kali lebih tinggi dari ambang yang dibutuhkan. Dan semua kasus "flicker" dan "idle" adalah 146% karena kurva kabel bumi dan kabel sinyal.

Skema warna serupa - Hyperion menghasilkan paket 8-bit untuk setiap warna dalam setiap piksel. Bagaimanapun, ini hanya 256 gradasi kecerahan dari masing-masing tiga warna pada pita apa pun. Perbedaan warna hanya akan terlihat dalam kalkulator di layar monitor yang bagus, tetapi perbedaan dalam cahaya nyata dengan ± satu atau bahkan beberapa gradasi yang tidak akan dilihat mata kita - ini adalah anatomi penglihatan kita dan tidak ada yang dapat kita lakukan mengenai hal itu. Selain itu, konfigurator memiliki alat untuk menyesuaikan gamut warna - jika Anda mau, Anda dapat mencapai warna putih yang hampir sempurna dengan mendekati kecerahan maksimum. Tetapi bahkan gerakan ini kemungkinan besar tidak akan diperlukan - lampu latar hanya menciptakan latar belakang di dinding di belakang TV, dan bukan gambar di layar ... Saat menganalisis zona tangkap, baik Hyperion dan Philips mengambil lebih dari satu titik tertentu, namun warna rata-rata seluruh area yang ditentukan, oleh karena itu nuansa akan selalu menjadi sesuatu yang berbeda dari yang direproduksi dalam dinamika di tepi layar. Mengingat semua ini, tidak ada gunanya memotret dari meriam di burung pipit, yang sebenarnya mengkonfirmasi desain lampu latar di TV Phillips asli, di mana hanya 37 titik ditampilkan pada diagonal 50 "dan lebar zona 5-6 cm

Mitos lain - "WS2812B berumur pendek, sebulan kemudian pikselnya mulai gagal."

Secara alami, mereka akan mulai. Dan pada rekaman apa pun. Setiap warna di setiap LED 2812B dengan kecerahan penuh menghabiskan 18-20 mA. Sebagai contoh, saya memiliki 91 LED. 91X3X20 = ​​5.5A. Efisiensi sekitar 30-40%, yang berarti lebih dari tiga ampere mengalami panas. Satu-satunya cara efektif untuk menghilangkan panas dari substrat kristal adalah jalur tembaga dari pita, yang direkatkan ke permukaan tertentu. Terhubung ke daya, tetapi pita non-bercahaya juga terasa hangat - chip itu sendiri statis memiliki beberapa konsumsi saat ini. Penutup plastik belakang TV bukan heat sink terbaik untuk operasi jangka panjang dari kaset, jadi lebih baik dan lebih tepat untuk menggunakan profil logam khusus. Selain itu, ia hadir dengan diffuser dari berbagai kedalaman, lebar dan bentuk. Anda tidak akan melihat pantulan dalam bentuk titik-titik berwarna pada permukaan bagian dalam ruangan yang mengkilap, yang terkadang juga penting.

gambar

gambar

Ketika semuanya sudah terpasang, terhubung dan dicentang - tetap untuk mengkonfigurasi pemutar KODI sesuai selera dan warna Anda - instal semua add-on yang diperlukan, IPTV dengan program program dan bagikan konten dari PC di rumah Anda.

Jika kita membandingkan lampu latar dengan versi perangkat keras - reaksi terhadap pemrosesan bingkai tampak lebih jelas - tidak ada sensasi sedikit keterlambatan dalam sepersekian detik. Implementasinya sendiri menurut saya cukup layak - ternyata merupakan konstruktor berulang sederhana yang dirakit berdasarkan plug-in. Jika Anda berhati-hati memasang perisai switching dan menyimpan sistem yang dikonfigurasikan sebagai gambar, tidak akan ada waktu lagi untuk meluncurkan set-top box seperti itu daripada untuk kotak TV "kotak" di android. Jika Anda membuat penerima IR jarak jauh - perangkat dapat disembunyikan di belakang TV dengan opsi pemasangan di dinding. Jika Anda memiliki OS atau gambar yang dikonfigurasi, sistem akan bekerja dalam mode penuh saat pertama kali Anda menyalakannya.

Bagi mereka yang menonton saluran TV, Anda harus bermain-main dengan daftar putar IPTV berbayar dan berkualitas tinggi atau gratis dan tidak berfungsi, program TV untuk saluran, add-on dan pengaturan pemutar, yang, pada gilirannya, memiliki kemampuan untuk mengubah kulit, yang saat ini ada banyak sekali untuk setiap rasanya. Semuanya didukung - menampilkan cuaca, waktu, screensaver, ratusan add-on dan aplikasi yang berbeda. Sebagai contoh, saya ingin menyingkirkan menu non-ditarik OSD, dipanggil untuk mundur atau jeda. Untuk ini, addon - Sembunyikan Video OSD - sangat bagus. Unduh arsip zip, letakkan di tempat yang nyaman untuk raspberry, pilih instalasi dari arsip di antarmuka addon, atur, aktifkan addon di pengaturan, atur waktu dalam detik, setelah itu OSD akan secara otomatis dihapus dari layar.

Selain chip lainnya, Kodi memiliki antarmuka web lengkap yang dapat digunakan untuk mengonfigurasi pengaturan, mengontrol pemutar, dan perpustakaan media dari PC di rumah Anda.

Publikasi tentang semua fitur pemain, dan bagaimana, misalnya, untuk meningkatkan server media pada PC untuk Kodi, mudah ditemukan di RuNet. Untuk kenyamanan, parameter omnivora dan lainnya, saya akan menempatkan pemain ini setara dengan proyek-proyek seperti WinAmp dan MPC-HC.

Demo kecil di atas sandal:

Source: https://habr.com/ru/post/id486106/


All Articles