Media player dari lemari
Penulis: Nikolai KhabarovSuatu Jumat malam yang baik, saya memutuskan untuk menonton film di rumah: Saya menyalakan laptop, menghubungkan kabel HDMI melalui adaptor DisplayPort, mengambil remote control, menyalakan TV, dan mulai bermain di laptop. Dan saya menyadari bahwa volume di TV tidak cukup - saya harus mencari remote control lagi untuk meningkatkannya ... Lalu saya berpikir, "Bisakah proses ini disederhanakan entah bagaimana?"Sabtu pagi itu sangat bermanfaat. Saya memutuskan untuk membuat pemutar multimedia jaringan saya sendiri, seperti yang saya bayangkan. Hampir semua detail diambil dari pantry, hati pemain adalah Raspberry Pi. Untuk detail lebih lanjut, apa yang ada di dalamnya dan cara merakit perangkat yang serupa, lihat di bawah potongan.
Seperti yang dapat Anda lihat dari deskripsi, persyaratan saya untuk pemain sangat sederhana: kemampuan untuk memutar konten dari jaringan, penyimpanan beberapa ratus gigabyte, kemampuan untuk mengendalikan remote yang sama dengan TV; port USB diinginkan, tetapi tidak perlu. Pemain Android yang dibeli langsung menghilang, karena perangkat seperti itu kebanyakan murni China, dalam arti terburuk, dan saya tidak punya keinginan untuk bertarung dengan bug di dalamnya. Selain itu, tidak jelas bagaimana menerapkan kontrol perangkat semacam itu dari remote control televisi, apalagi antarmuka grafis Android jelas tidak dimaksudkan untuk remote control pada prinsipnya. Oleh karena itu, pencarian dimulai untuk sampah dari mana seseorang dapat membuat sesuatu.Kami memilih detailnya
Pertama-tama, saya hanya ingin mencoba dan memahami kelayakan pembuatan perangkat akhir. Oleh karena itu, untuk memulainya, kami akan mengambil detail minimum dan mencoba media player potensial yang sedang beroperasi. Kami pergi ke pantry dan menggali rincian yang kami butuhkan:1. Komputer dengan output HDMI. Raspberry Pi 1 lama sangat cocok untuk keperluan kami, Anda juga dapat menggunakan Raspberry Pi 2.2. Catu daya untuk papan - microUSB yang mengisi dari telepon lama cocok. Anda dapat mengambil "mencoba" apa pun, tetapi disarankan untuk mengambil sumber yang menyediakan arus keluaran 1A (satu ampere untuk mata cukup untuk Pi 2, lihat persyaratan );3. kartu microSD dengan 4 GB atau lebih.4. Mouse USB dan / atau keyboard (nirkabel dapat digunakan) dan, secara opsional, penerima sinyal inframerah TSOP4836 atau serupa.5. Adaptor Wi-Fi USB atau kemampuan untuk menghubungkan kabel Ethernet dengan Internet ke board.Kami menempatkan OpenElec, kami mencoba
Pada titik ini kita akan menjalankan OpenElec dengan cara sekecil mungkin. Segera setelah saya berpikir tentang perangkat lunak untuk pemutar multimedia saya, saya ingat XBMC, yang kemudian diganti namanya menjadi Kodi . Tetapi tidak ada keinginan untuk menginstal OS apa pun, dan kemudian mengkonfigurasi Kodi. Jadi saya memutuskan untuk mencari di google dan menemukan rakitan sistem operasi GNU / Linux ini, di atasnya Kodi sudah diinstal. Majelis ini disebut OpenElec, ini adalah proyek open source. Situs resminya adalah openelec.tv.Jadi, kami mengunduh gambar instalasi dari situs resminya . Kami memilih versi yang diinginkan dan platform tempat kami menjalankannya (dalam kasus saya, rilis stabil untuk Rasberry Pi), dan mengunduh 'Diskimage' (file dengan ekstensi .img.gz).Buka kemasan gambar: Dan tulis ke kartu memori:$ gunzip -d < >.img.gz
$ sudo dd if= < >.img of=/dev/mmblck0 bs=4M
Benar / dev / mmblck0 - jika ada lebih dari satu kartu memori di sistem Anda.Perhatian! Isi kartu memori akan terhapus sepenuhnya.Pengguna Windows dapat menggunakan utilitas Disk Imager Win32 gratis . Utilitas ini memiliki antarmuka grafis - pilih file, kartu memori dan tekan 'Tulis'.Sekarang pastikan semuanya ditulis ke kartu dengan perintah$ sync
Atau cukup keluarkan kartu melalui pelepasan aman perangkat di antarmuka grafis OS. Kami mendapatkannya secara fisik dan memasukkannya ke dalam Raspberry Pi. Selanjutnya, sambungkan kabel Ethernet dengan Internet atau masukkan adaptor Wi-Fi USB, sambungkan mouse, kabel HDMI ke TV. Jika Anda ingin menggunakan remote control inframerah, Anda harus menghubungkan penerima IR ke GPIO18 dan daya prosesor (3.3V). Diagram koneksi terakhir adalah sebagai berikut:
Jika Anda memutuskan untuk menggunakan penerima inframerah, berhati-hatilah dengan itu- pastikan tata letak pin untuk penerima Anda sudah benar.Segalanya, sekarang Anda bisa melihat lingkungan itu sendiri. Kami memberi daya pada papan dari sumber daya. Setelah memuat, wisaya pengaturan awal muncul di layar:
Selama pengaturan, saya sarankan segera mengaktifkan akses SSH. Semua pertanyaan lainnya sepele.Sekarang Anda dapat bermain dengan lingkungan pemain masa depan menggunakan mouse dan / atau keyboard. Anda dapat mencoba memutar video dalam berbagai format (Anda dapat menghubungkan USB flash drive ke porta bebas) dan umumnya mengerti apa itu. Ada berbagai kasing untuk papan Raspberry Pi itu sendiri, mungkin seseorang akan senang dengan semuanya dengan cara yang minimalis, misalnya, Anda dapat menghubungkan mouse USB nirkabel dan menggunakan perangkat. Kami akan terus meningkatkannya.Hubungkan remote IR
Jika Anda memutuskan untuk tidak menghubungkan penerima IR, Anda dapat melewati bagian ini.Untuk menggunakan remote, kita perlu mengkonfigurasi LIRC . Pertama, mari kita hidupkan modul, yang bekerja langsung dengan penerima melalui port GPIO. Untuk melakukan ini, tambahkan baris ke file konfigurasi DeviceTree. Kami masuk melalui SSH ke perangkat Anda (apakah Anda mengaktifkan SSH selama pengaturan awal? Jika tidak, Anda dapat melakukan ini di antarmuka grafis sistem itu sendiri). Kata sandi default adalah openelec. Tambahkan baris yang kita perlukan ke file: di bagian paling akhir kita tambahkan baris dan kemudian muat ulang: Sekarang kita perlu memastikan bahwa semuanya berfungsi dan LIRC dapat menerima perintah dari jarak jauh, untuk ini kita menghentikan LIRC dan mencoba mendapatkan data dari jarak jauh:$ ssh root@ip_address
# mount -o remount,rw /flash
# nano /flash/config.txt
dtoverlay=lirc-rpi
# killall lircd
# mode2 -d /dev/lirc0
Kami mengklik tombol apa saja pada kendali jarak jauh dan menyinari receiver - teks yang menggambarkan pulsa masuk harus dijalankan di konsol. Sekarang kami yakin bahwa semuanya berfungsi dan kami dapat melatih LIRC untuk menggunakan remote control Anda. Harap dicatat bahwa lircd harus dihentikan selama proses konfigurasi, kami melakukan ini sebelumnya menggunakan perintah kill. Ada utilitas khusus yang tidak direkam untuk pelatihan, kami menjalankan perintah berikut untuk meluncurkannya: Selanjutnya, ikuti instruksi di layar. Pada awalnya, utilitas akan meminta Anda untuk menekan berbagai tombol pada kendali jarak jauh sampai titik-titik pada layar terisi untuk mempelajari pola kendali jarak jauh Anda. Maka Anda perlu menunjukkan dengan teks tombol mana yang ingin Anda ajarkan LIRC untuk digunakan, dan bersinar pada penerima. Saya sarankan Anda mengajar setidaknya tombol berikut: KEY_UP KEY_DOWN# cd /storage/.config
# irrecord -d /dev/lirc0 lircd.conf
KEY_LEFTKEY_RIGHTKEY_OKKEY_PLAYKEY_EXITKEY_STOPKEY_INFOKEY_ING KEY_EPGSeluruh daftar tombol yang tersedia dalam sistem dapat diperoleh dengan perintah: Pada kendali jarak jauh, Anda dapat memilih tombol apa saja yang nyaman untuk Anda. Sebagian besar TV dalam mode HDMI, sebagian besar tombol tidak melakukan apa-apa, yang tentu saja sudah dekat. Sebagai hasilnya, kita harus mendapatkan file lircd.conf dengan parameter dari remote Anda - kami me-reboot papan dan mencoba menggunakan remote. Anda juga dapat menghidupkan / mematikan pemain. Untuk melakukan ini, hubungkan penerima ke pin kedua dari Raspberry PI GPIO1 untuk Raspberry PI 1 atau GPIO3 untuk Raspberry PI 2 - pada kedua papan pin ini terletak di tempat yang sama pada konektor papan:# irrecord -list namespace
Dengan menghubungkan pin ini ke tanah, Anda dapat membangunkan papan dalam kondisi mati. Dengan koneksi ini, Anda dapat memprogram tombol KEY_POWER, dan pemain akan mati ketika Anda mengkliknya, dan itu akan dihidupkan oleh sinyal apa pun dari remote control apa pun.Kami mengumpulkan perangkat lebih seriusSaya ingin membuat perangkat yang lebih menyeluruh dengan tampilan perangkat pabrik dan menambahkan hard drive ke dalamnya. Saya melihat ke dapur dan menemukan penerima satelit tua. Di dalam, sudah ada catu daya yang cukup untuk semua komponen daya, ada penerima sinyal IR, saklar power off di dinding belakang. Ada juga peluang untuk membuat arloji di panel depan karena indikator tujuh-segmen yang sudah terpasang. Dan tentu saja, kasus itu sendiri sangat bagus untuk tujuan kita. Penerima satelit dapat diganti dengan pemutar DVD atau VHS lama meskipun tidak berfungsi., — , . / — , 220 .Kami membuka kasing receiver / VCR. Untuk memulainya, kita perlu memastikan bahwa catu daya memiliki output 5V, yang dapat memberikan daya yang diperlukan. Untuk melakukan ini, dengan menggunakan multimeter, kami memeriksa keberadaan daya 5V dan kemudian melacak komponen mana yang diperoleh 5V ini. Jika dasar elemen penyearah dan diameter trafo lilitan unit catu daya dapat menahan 2-3 ampere, kami beruntung - ada sumber, jika tidak, Anda harus mengubah sumber dalam kasing menjadi yang lebih kuat. Kemudian kita mengeluarkan papan utama / drive tape / drive optik dan mengirimkannya kembali ke dapur - itu akan berguna. Di dalam, kami hanya menyisakan papan PSU dan papan dengan panel depan di mana ada penerima IR.Sekarang pilih tempat untuk menginstal Raspberry Pi itu sendiri. Pilihan di sini cukup sederhana: sisi papan dengan HDMI harus berada di luar kasing, sisi dengan port USB harus dipasang di dalam untuk menghubungkan komponen internal, di samping itu, kita memerlukan setidaknya beberapa akses ke kartu microSD jika firmware diganti. Ada bukaan untuk konektor RCA pada kasing penerima, kami akan meletakkan papan sehingga konektor HDMI dapat diakses semaksimal mungkin dari luar. Di sisi yang sama ada output kartu suara dan microUSB yang beroperasi dalam mode periferal. Kami tidak tertarik dengan konektor ini, kami akan memasok daya dari luar melalui konektor GPIO utama papan.Kami menandai di mana Anda perlu memotong sedikit sehingga konektor HDMI secara bebas dimasukkan ke papan dari luar kasing dan menguraikan empat lubang untuk memasang papan. Saya menggunakan rak berikut:
Rak-rak motherboard mengganggu, dan saya menghapusnya dengan bantuan tang. Manipulasi harus dilakukan dengan hati-hati, dengan gerakan canggung Anda dapat dengan mudah menekuk kasing itu sendiri. Kami mengebor, melihat, mengencangkan rak dengan baut yang sesuai dan papan itu sendiri untuk mereka.
Sekarang Anda perlu menemukan tempat untuk HDD. Di sini persyaratannya cukup sederhana - Anda harus meninggalkan beberapa sentimeter gratis di dalam kasing dari sisi konektor SATA, karena adaptor akan dimasukkan di sana. Hard drive memiliki ulir di permukaan bagian bawah dan sisi HDD. Winchester perlu sedikit dinaikkan agar tidak terletak pada logam. Saya memecahkan masalah dengan sangat sederhana - saya mengambil baut yang cocok untuk utas yang lebih rendah, tetapi sedikit lebih lama dari yang diperlukan, dan meletakkan jarak antara kasing dan HDD dengan mur yang lebih besar.Sekarang kita perlu menemukan konverter USB SATA atau wadah lama untuk HDD, dari mana konverter tersebut dapat ditarik. Saya memiliki sebuah wadah, tetapi sayangnya itu ternyata tidak berfungsi. Saya harus lari ke toko untuk konverter USB SATA. Kami akan memasukkan konektor USB ke dalam Raspberry PI, tetapi agar tidak memuat papan dengan arus yang cukup serius yang dibutuhkan HDD, terutama saat memutar spindle, Anda perlu melakukan daya tambahan langsung dari PSU. Dalam kasus saya, adaptor memiliki kabel dengan dua konektor USB, saya menghubungkan salah satunya langsung ke unit catu daya dengan menyolder konektor respon USB di dekat PSU.
Dua hal lagi untuk dipikirkan segera. Yang pertama adalah di mana dan bagaimana port USB eksternal akan berada. Yang kedua adalah tempat meletakkan adaptor Wi-Fi, atau jika Anda berencana untuk menerapkan hanya koneksi Ethernet, cara menempatkan konektor Ethernet di dinding case (jika Anda menempatkan papan dengan tepi konektor ini pada case, Anda tidak dapat menghubungkan perangkat USB dari dalam). Ethernet dapat diperpanjang dengan menempatkan stopkontak konvensional di dalam case dan menghubungkan kawat pendek dengan konektor.Dongle Wi-Fi USB yang sangat kecil dijual sekarang, tetapi Anda tidak perlu memasukkannya ke dalam case logam - sinyalnya bisa buruk. Anda dapat mengambil kabel ekstensi USB pendek, meletakkan konektor USB di bagian belakang kasing dan memasukkannya ke sana. Ada juga adaptor USB dengan antena yang dapat dilepas, Anda dapat memperpanjang konektor RMA ke bagian belakang kasing dan memasang antena di sana. Saya memiliki yang agak lama dan, sebagai hasilnya, adaptor Wi-Fi USB yang agak besar dengan antena sampul dan input miniUSB. Saya tidak punya tempat untuk meletakkannya karena ukurannya, dan saya memutuskan untuk menggunakannya dalam bisnis. Dia melepas case - bentuknya tidak memungkinkan untuk memasang antena dari luar. Biayanya cukup besar, dan saya harus berpikir hati-hati tentang penempatannya. Untungnya, ternyata sangat tipis, dan saya memutuskan untuk meletakkannya di konektor USB dari Raspberry Pi. Konektor RMA keluarmemutar mur dan di dalam kasing meletakkan satu rak tinggi untuk papan. Akses ke USB tetap ada, dan antena diangkat di atas kasing. Hebat!
Sekarang Anda harus memperbaiki kabel ekstensi USB ke panel depan, memastikan tidak mengganggu apa pun di dalam case. Dalam kasus saya, penerima memiliki pintu untuk kartu akses, dan saya memutuskan untuk meletakkan konektor di belakangnya - agar tidak menjadi debu! Karena itu, saya tidak memotongnya terlalu hati-hati, dan mengisinya dengan lem panas di belakang.
Situasi dengan papan panel depan lebih menarik - ada banyak pilihan untuk apa itu terdiri. Saya harus menerapkan indikasi dinamis tujuh-segmen indikator menggunakan DMA (Akses Memori Langsung, implementasi langsung indikasi dinamis melalui port GPIO akan mengkonsumsi terlalu banyak sumber daya CPU, dan kecerahan segmen akan tidak merata karena aktivitas sistem operasi). Tapi ini sudah menjadi topik untuk artikel yang terpisah, dan selain itu, papan seperti itu bisa sangat berbeda, oleh karena itu, di sini kami akan memberikan hak untuk menunjukkan potensi kreatif kami kepada pembaca. Anda dapat mempelajari kode sumber implementasi untuk papan saya. Dalam kasus yang paling sederhana, Anda cukup memotong trek menuju ke penerima IR dan solder langsung ke sana dengan tiga kabel. Saya hanya mencatat bahwa saya menggunakan kabel IDE untuk menghubungkan ke konektor GPIO papan, sangat cocok pada konektor Raspberry Pi, dan kabel dapat dengan mudah disolder dengan komponen lain.Pada akhirnya, saya mendapat perangkat seperti itu:
Sesuaikan
Jika ketika Anda menghidupkan Anda melihat kotak berwarna di sudut kanan atas layar, ini berarti bahwa daya untuk Raspberry Pi tidak cukup - baik catu daya yang lemah, kabel terlalu tipis, atau periferal USB terlalu banyak. Dalam kasus pertama, hanya mengganti PSU dengan yang lebih kuat akan membantu. Pada yang kedua - masalahnya dapat dengan mudah diselesaikan dengan mengganti kabel dengan yang lebih tebal atau dengan menggunakan beberapa core secara paralel, pada yang ketiga - masalahnya diselesaikan dengan memberi makan perangkat USB langsung dari catu daya, atau, misalnya, dengan memasang hub USB dengan kemampuan untuk menghubungkan sumber daya eksternal.Anda juga mungkin akan melihat bahwa HDD Anda terhubung ke sistem sebagai drive flash eksternal. Mari kita menjadikannya penyimpanan utama dalam sistem operasi. Pada awal pertama, OpenElec secara otomatis mulai menggunakan semua ruang kosong pada kartu microSD untuk bagian data, yang kemudian dipasang sebagai / penyimpanan. Keputusan yang paling berhasil bagi saya tampaknya menggunakan seluruh hard drive sebagai / penyimpanan. Untuk melakukan ini, format hard drive dan buat partisi di atasnya dengan sistem file ext3 / 4. Ini dapat dilakukan langsung pada pemain menggunakan utilitas parted dan mkfs, perintah di bawah ini akan menghapus seluruh isi disk dan membuat satu partisi ext4: Untuk ini, Anda harus masuk ke pemain melalui SSH. Kemudian pasang partisi baru di suatu tempat:# umount /dev/sda1
# parted /dev/sda
GNU Parted 3.2
Using /dev/sda
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted) mklabel GPT
mklabel GPT
Warning: The existing disk label on /dev/sda will be destroyed and all data on
this disk will be lost. Do you want to continue?
Yes/No? yes
yes
(parted) mkpart primary 2048s 100%
mkpart primary 2048s 100%
(parted) q
q
Information: You may need to update /etc/fstab.
# mkfs.ext4 /dev/sda1
# mkdir /tmp/hdd
# mount /dev/sda1 /tmp/hdd
Salin seluruh isi / penyimpanan ke partisi baru untuk mempertahankan kondisi saat ini: Lepaskan partisi dan, jika diinginkan, hapus folder: Sekarang Anda perlu menentukan drive mana yang perlu kita pasang pada saat boot. Anda dapat melakukan ini dengan menyesuaikan baris perintah dari parameter kernel, tetapi pertama-tama kita mengetahui UUID partisi hard drive kami: Salin UUID partisi ke clipboard. Sekarang remount sistem file dengan konfigurasi kernel untuk menulis dan memperbaikinya: Dalam file tersebut, ganti parameter disk dengan UUID disk kami. Isi file akan terlihat seperti ini: Setelah reboot, pemain akan menggunakan hard drive sebagai / penyimpanan, dan bagian pada kartu memori dapat dihapus sehingga tidak me-mount secara otomatis ketika boot:# cp -rf /storage/. /tmp/hdd
# umount /dev/sda1
# rmdir /tmp/hdd
# blkid /dev/sda1
# mount -o rw,remount /flash
# nano /flash/cmdline.txt
boot=/dev/mmcblk0p1 disk=UUID=95013338-89b1-43af-8471-9b30efc85d98 quiet
# parted -s /dev/mmcblk0 rm 2
Inilah akhir pekan yang menyenangkan yang saya alami. Jangan lupa bahwa sistem operasi GNU / Linux ada pada pemutar media ini, dan Anda dapat memodifikasi / menambahnya sendiri sesuai keinginan Anda. Anda juga dapat menyelesaikan beberapa tugas otomatisasi rumah, menggunakan perangkat yang sama.Dan akhirnya, video pidato pengarang dari sebuah artikel yang menceritakan tentang perangkat tersebut.Selamat menikmati!Source: https://habr.com/ru/post/id396967/
All Articles