Daftar Isi:

PAB: Kotak Audio Pribadi: 5 Langkah
PAB: Kotak Audio Pribadi: 5 Langkah

Video: PAB: Kotak Audio Pribadi: 5 Langkah

Video: PAB: Kotak Audio Pribadi: 5 Langkah
Video: Я работаю в Страшном музее для Богатых и Знаменитых. Страшные истории. Ужасы. 2024, November
Anonim
PAB: Kotak Audio Pribadi
PAB: Kotak Audio Pribadi

Ide proyek ini lahir dari kebutuhan untuk mengikis tiga komponen besar sistem HiFi, yang kini telah mencapai akhir masa pakainya. Selain itu, saya membutuhkan lebih banyak ruang di rak untuk benda-benda lain, jadi saya mengambil kesempatan untuk mulai belajar di Personal Audio Box untuk menggantikan semua fungsi dari tiga "raksasa" vintage.

Raspberry Pi3B+ tampaknya menjadi pilihan terbaik karena alasan berikut:

  • Faktor bentuk kecil dan konsumsi daya rendah;
  • Output PCM audio dengan kualitas yang dapat diterima;
  • Ketersediaan mopidy, server musik yang dapat diperluas yang mengimplementasikan protokol mpd;
  • Integrasi sumber yang tinggi: musik lokal, CDROM, aliran radio, Spotify, Tunein, dll.

Mengintegrasikannya dengan beberapa komponen lain, saya dapat membuat sistem yang lengkap dan tanpa kepala, mampu memutar musik dari CD, file lokal, radio online, daftar putar Spotify, podcast. Dan melalui penggunaan frontend, saya sekarang dapat mengelola semua operasinya dari perangkat apa pun yang terhubung ke LAN (smartphone, komputer, tablet).

Perlengkapan

  • Raspberry PI3B+
  • Kotak DVD lama
  • pembaca CDROM
  • Catu daya 5v-5A
  • Superkapasitor
  • Berbagai komponen (transistor, LED, relai, Op-Amp): lihat detail proyek

Langkah 1: Kasus dan Tata Letak Komponen

Kasus dan Tata Letak Komponen
Kasus dan Tata Letak Komponen
Kasus dan Tata Letak Komponen
Kasus dan Tata Letak Komponen
Kasus dan Tata Letak Komponen
Kasus dan Tata Letak Komponen
Kasus dan Tata Letak Komponen
Kasus dan Tata Letak Komponen

Masalah pertama yang saya hadapi adalah memilih dan menemukan kasus yang cocok. Tidak menemukan apa pun di rumah, saya menemukan pemutar DVD murah ini di Amazon dengan harga beberapa dolar, tetapi hal serupa akan cukup baik. Kasing ini memiliki dimensi berikut: 27cm x 20cm x 3,5cm.

Saya benar-benar menghapus semua konten, hanya menyimpan papan kecil untuk mengatur LED depan, tombol daya, dan input USB. Kemudian saya merencanakan tata letak internal untuk komponen baru (lihat gambar).

Langkah 2: Saklar Penginderaan Stereo Audio

Saklar Penginderaan Stereo Audio
Saklar Penginderaan Stereo Audio
Saklar Penginderaan Stereo Audio
Saklar Penginderaan Stereo Audio
Saklar Penginderaan Stereo Audio
Saklar Penginderaan Stereo Audio

Mengapa saklar audio otomatis? Kebutuhan muncul dari kenyataan bahwa saya sering mendengarkan TV melalui amplifier HiFi, tetapi saya tidak ingin memilih sakelar sumber pada amplifier setiap saat. Dengan rangkaian ini, input amplifier selalu sama, dan sumber dipilih secara otomatis oleh Audio Stereo Sensing Switch.

Skemanya lurus ke depan. Saat PAB tidak diputar, sumber audio ke HiFi berasal dari TV. Jika PAB diputar, relai memilih audio dari Raspberry.

Langkah 3: Kotak Super-Kapasitor

Kotak Super-Kapasitor
Kotak Super-Kapasitor
Kotak Super-Kapasitor
Kotak Super-Kapasitor

Seperti diketahui, gangguan tiba-tiba dari catu daya ke Raspberry menyebabkan pemadaman listrik langsung tanpa pelaksanaan prosedur shutdown, berisiko membahayakan sistem operasi dan karena itu fungsionalitas totalnya. Superkapasitor berbeda dari kapasitor tradisional dalam dua karakteristik penting: pelatnya sebenarnya memiliki area yang lebih besar dan jarak di antara mereka jauh lebih kecil, karena isolator yang dipasang bekerja secara berbeda dari dielektrik konvensional. Dengan teknik ini, kapasitor berkapasitas sangat tinggi (dalam urutan beberapa puluh Farad) dapat dibuat dengan tetap mempertahankan dimensi yang kecil. Oleh karena itu, idenya adalah untuk membuat "buffer" 5v melalui superkapasitor dan untuk mengaktifkan shutdown ketika tidak adanya tegangan suplai terdeteksi. Dengan cara ini, tidak perlu lagi campur tangan secara manual untuk meluncurkan shutdown, tetapi cukup cabut steker (atau aktifkan sakelar) untuk memastikan shutdown yang aman.

Mengacu pada skema, catu daya diterapkan ke terminal kiri dan dioda Schottky mencegah kembalinya arus ke catu daya. Dua resistor daya 1,2Ω 5W secara paralel membatasi arus pengisian superkapasitor, untuk melindungi catu daya. Tanpa resistor ini, arus puncak yang dibutuhkan oleh dua superkapasitor yang habis hampir pasti dapat merusak catu daya. Dioda daya harus dari jenis Schottky untuk memasukkan penurunan tegangan minimum secara seri dengan bar 5V.

Kedua superkapasitor dihubungkan secara seri untuk memastikan tegangan maksimum 5,4 volt di ujungnya (setiap superkapasitor adalah 10F, 2,7V) dan dua resistor secara paralel dengan kapasitansi menyeimbangkan arus pengisian dan menjamin pelepasan yang lambat ketika Raspberry diputar mati. Dua resistor 1KΩ yang sejajar dengan input membagi 5V catu daya menjadi dua untuk mengambil sinyal yang diperlukan untuk mendeteksi kegagalan daya (terhubung ke Raspberry GPIO 7). Tidak seperti sel lithium modern, superkapasitor menjamin jumlah siklus pengisian dan pengosongan yang hampir tak terbatas, tanpa kehilangan karakteristik apa pun.

Oleh karena itu, sirkuit akan dapat menjaga agar Raspberry tetap bertenaga dan berfungsi selama waktu yang diperlukan untuk melakukan shutdown reguler. Awal proses shutdown akan dideteksi oleh program yang berjalan di Raspberry yang akan memantau status GPIO 7, yang terhubung dengan level daya. Ketika daya terputus, pin 7 GPIO lewat pada level rendah dan memicu shutdown. Ini kodenya:

#!/usr/bin/env python

impor RPi. GPIO sebagai GPIO subproses impor GPIO.setmode(GPIO. BCM) # gunakan penomoran GPIO GPIO.setwarnings(False) INT = 7 # pin 26 monitor Power Supply # gunakan pull_up yang lemah untuk membuat GPIO.setup(INT, GPIO. IN, pull_up_down=GPIO. PUD_UP) def main(): while True: # atur interupsi pada sisi jatuh dan tunggu sampai terjadi GPIO.wait_for_edge(INT, GPIO. FALLING) # periksa kembali level pin jika GPIO.input(INT) == 0: # masih rendah, matikan Pi subprocess.call(['poweroff'], shell=True, / stdout=subprocess. PIPE, stderr=subprocess. PIPE) if _name_ == '_main_': utama()

Program harus disimpan di /usr/local/bin/.py dan dikonfigurasi untuk dijalankan saat Raspberry dimulai. Dari pengujian yang dilakukan, kapasitas kedua superkapasitor tersebut terbukti cukup untuk memastikan waktu shutdown Raspberry. Jika lebih banyak waktu diperlukan, itu akan cukup untuk memperkenalkan dua superkapasitor lain secara paralel dengan yang sudah ada, atau menggantinya dengan dua kapasitas yang lebih besar.

Langkah 4: Perakitan dan Penggunaan Port USB

Perakitan dan Penggunaan Port USB
Perakitan dan Penggunaan Port USB

Skema Blok menunjukkan bagaimana menghubungkan beberapa perangkat untuk PAB pada 3 bus utama (+5v, USB dan audio stereo).

Perhatikan bahwa catu daya pembaca CD telah terhubung langsung ke Catu Daya utama melalui kabel "Y", sedangkan input audio masuk ke Raspberry. Empat port USB Raspberry telah digunakan untuk:

  • pembaca CD;
  • flashdisk 250GB untuk menyimpan file musik lokal (mp3, m4a, wma, flac, dll.);
  • kartu micro SD 16GB (dengan adaptor USB) untuk menyimpan cadangan penuh dari Raspi SD utama (lihat di bawah);
  • koneksi ke port USB eksternal pada casing.

Port USB eksternal dapat digunakan untuk memutar musik eksternal atau untuk memberi daya pada perangkat eksternal. Dalam kasus saya, saya menyalakan pemancar Bluetooth eksternal karena saya telah membuang internal Raspi karena jangkauan rendah dan ketidakstabilan. Dengan bluetooth eksternal saya mengendarai 2 speaker stereo yang berbeda di rumah.

Kartu micro SD 16GB (dengan adaptor USB) menyimpan cadangan Raspberry penuh. Saya menggunakan rpi-clone, yang telah dinyatakan sebagai proyek yang sangat bagus yang memungkinkan untuk memiliki cadangan Raspberry yang berfungsi penuh tanpa perlu menghapus SD internal. Saya telah berkali-kali menukar SD ini dengan yang internal, tanpa masalah. Jadi saya telah menyiapkan cronjob untuk pengguna root:

#Backup di sda - setiap Rabu malam

15 2 * * 3 /usr/sbin/rpi-clone sda -u | mail -s "Pencadangan PAB di SD - selesai"

Saya kemudian menggunakan kembali tombol daya asli pada kasing untuk mematikan dan memulai kembali Raspberry, mengikuti panduan ini:

Langkah 5: Perangkat Lunak dan Sistem Operasi

Perangkat Lunak dan Sistem Operasi
Perangkat Lunak dan Sistem Operasi
Perangkat Lunak dan Sistem Operasi
Perangkat Lunak dan Sistem Operasi
Perangkat Lunak dan Sistem Operasi
Perangkat Lunak dan Sistem Operasi

Sistem operasi utama PAB adalah minimal Raspbian polos (Debian Buster) dengan beberapa tambahan khusus:

  • rpi-clone untuk cadangan utama;
  • ssmtp, MTA sederhana untuk mengeluarkan email dari sistem;
  • udevil, untuk mengizinkan automount drive USB;
  • abcde, untuk mengambil koleksi CD saya dan mengompresnya ke format audio apa pun;
  • mopidy, Daemon Pemutar Musik lengkap dengan banyak plugin.

Saya kemudian menulis aplikasi server Penjadwal PAB lengkap menggunakan python3 dan tornado, yang kodenya di luar cakupan artikel ini, tetapi saya dapat memberikan instruksi berdasarkan permintaan. Dengan Penjadwal Anda dapat mengatur daftar putar untuk setiap saat sepanjang hari, membedakan hari kerja dari akhir pekan.

Perangkat lunak utama yang menjalankan PAB adalah mopidy. Untuk instalasi dan konfigurasi mopidy (cukup luas) silakan lihat dokumentasinya di sini:

Ini adalah plugin yang diinstal:

  • Mopidy-Alsamixer
  • Mopidy-Internetarchive
  • Mopidy-Lokal-Sqlite
  • Mopidy-Podcast
  • Mopidy-Scrobbler
  • Mopidy-Soundcloud
  • Mopidy-Spotify
  • Mopidy-Spotify-Tunigo
  • Mopidy-Cd
  • Mopidy-Iris
  • Mopidy-Lokal-Gambar
  • Mopidy-TuneIn

Untuk mendapatkan kontrol penuh dari PAB, saya telah memilih ekstensi frontend Iris (lihat gambar). Ini adalah aplikasi web yang sangat kuat dengan fitur-fitur berikut:

  • Kontrol antarmuka berbasis web lengkap untuk Mopidy
  • Peningkatan dukungan untuk perpustakaan lokal (didukung oleh Mopidy-Local-Sqlite)
  • Jelajahi dan kelola daftar putar dan trek
  • Temukan musik baru, populer, dan terkait (diberdayakan oleh Spotify)
  • Dihosting secara gratis
  • Integrasi dengan:

    • Spotify
    • FM terakhir
    • jenius
    • Snapcast
    • Icecast

Dengan cara ini, saya bebas mengontrol musik saya hampir dari mana saja (komputer, tablet, smartphone).

Direkomendasikan: