Daftar Isi:
- Langkah 1: Membangun Pembicara untuk Kamar Mandi
- Langkah 2: Sisi Perangkat Lunak
- Langkah 3: Kesimpulan
Video: Mainkan Musik yang Sama di Beberapa Kamar: 3 Langkah
2024 Pengarang: John Day | [email protected]. Terakhir diubah: 2024-01-30 09:57
Halo semuanya, Saya tidak tahu tentang Anda, tetapi saya suka memiliki musik yang sama di seluruh apartemen saya tanpa mengubah suaranya terlalu keras. Jadi setelah sedikit riset tentang masalah ini, saya memutuskan untuk membuat beberapa speaker yang semuanya terhubung dengan wifi ke server musik yang sama untuk memutar musik yang sama secara bersamaan di beberapa ruangan dan khususnya di kamar mandi.
Sistem ini didasarkan pada teknologi GStreamer yang merupakan dasar dari beberapa perangkat lunak luar biasa seperti VLC dan speaker dengan kemampuan wifi menggunakan Raspberry Pi.
Langkah 1: Membangun Pembicara untuk Kamar Mandi
Daftar Bagian:
- speaker bukti kamar mandi
- penguat 2W (bekerja pada 12v)
- sebuah Raspberry Pi Zero (bekerja pada 5v)
- sebuah Pimoroni Phat DAC
- kartu SD
- tombol ON/OFF
- adaptor daya 12v + steker yang kompatibel
- DC/DC step-down (12v->5v)
- kotak listrik
- beberapa kabel
Konstruksinya cukup sederhana.
Di sisi elektronik, ikuti diagram ASCII ini.
- Penguat tombol ON/OFF colokan DC
- Tombol ON/OFF DC/DC step-down Raspberry Pi
- Speaker amplifier Raspberry Pi Phat DAC
Di sisi mekanis, potong semua lubang yang diperlukan di kotak listrik, masukkan semuanya ke dalam dan itu saja.
Dengan menggunakan teknik ini, Anda dapat membuat semua jenis speaker yang Anda inginkan.
Langkah 2: Sisi Perangkat Lunak
Semua sisi perangkat lunak didasarkan pada kerangka kerja multimedia open source, GStreamer. Saya hanya menggunakan Linux tetapi ada di OS yang berbeda, jadi saya membayangkan semuanya dapat diadaptasi untuk OS lain.
Sebagai permulaan, Anda harus menginstal Raspbian Lite di Pi, PHAT DAC dan GStreamer 1.0 dengan plugin "baik". Di komputer yang digunakan sebagai server musik, Anda memerlukan GStreamer yang sama. Saya tidak akan merinci bagian-bagian itu karena orang lain telah melakukan ini lebih baik dari saya. Hal terakhir yang diperlukan adalah Pi dan server musik harus terhubung ke jaringan yang sama dengan kabel atau wifi.
Untuk menguji apakah GStreamer diinstal dengan benar, Anda dapat menggunakan baris perintah tersebut.
Pada pembicara:
$gst-launch-1.0 udpsrc port=5000 caps='application/x-rtp, media=(string)audio, clock-rate=(int)44100, encoding-name=(string)L16, encoding-params=(string)1, saluran=(int)1, payload=(int)96' ! rtpL16depay! konversi audio! autoaudiosink
Di komputer:
$gst-launch-1.0 audiotestsrc ! konversi audio! audio/x-raw, format="(string)S16BE", layout="(string)interleaved", channels=1, rate=44100 ! rtpL16bayar! udpsink host = port RASPBERRYPI_IP = 5000
Setelah Anda memasukkan alamat IP yang baik alih-alih "RASPBERRYPI_IP", Anda akan mendengar suara sinusoidal di speaker. Itu bukan sesuatu yang ingin Anda dengar untuk waktu yang lama, jadi jangan terlalu keras.
Beberapa penjelasan: PC menghasilkan suara sinusoidal menggunakan "audiotestsrc", "audioconvert ! audio/x-raw, format="(string)S16BE", layout="(string)interleaved", channels=1, rate=44100" convert suara dalam format yang baik dipahami oleh "rtpL16pay" yang membuat paket audio dan akhirnya "udpsink" mengirimkan paket menggunakan protokol UDP. Pada speaker, itu sama tetapi terbalik, "udpsrc" memulihkan fluks audio, de-paket "rtpL16depay" dan "audioconvert ! autoaudiosink" mengubah suara agar sesuai dengan format kartu suara otomatis dan tentu saja, memainkannya.
Jadi sekarang hal-hal dasar berfungsi, sekarang saatnya untuk melangkah lebih jauh. Tujuannya adalah untuk mencegat suara aplikasi untuk mengirimkannya melalui jaringan.
- Kami membuat keluaran palsu
$pactl load-module module-null-sink sink_name=multiHP
- Kami menghubungkan input ke output palsu (membungkam aplikasi yang dipilih (input))
$pacmd list-sinks (daftar keluaran)
$pacmd list-sink-inputs (daftar input)
$pacmd move-sink-input %input %output (ganti %input dan %output dengan salah satu daftar yang sesuai)
- Kami menempatkan kartu suara secara maksimal
$pactl set-sink-volume 0 100%
- Kami menguji di PC cara memulihkan keluaran palsu (memulihkan suara)
$gst-launch-1.0 pulsesrc device=multiHP.monitor ! konversi audio! autoaudiosink
Anda harus mendengar lagi suara aplikasi yang telah Anda pilih.
Besar! Sekarang saatnya untuk pergi ke baris perintah terakhir. Berikut adalah baris perintah dalam kasus 2 speaker dengan suara juga dimainkan oleh PC.
Pada setiap Pembicara:
$gst-launch-1.0 udpsrc port=5000 caps='application/x-rtp, media=(string)audio, clock-rate=(int)44100, encoding-name=(string)L16, encoding-params=(string)2, payload=(int)96' ! rtpL16depay! konversi audio! autoaudiosink
Di komputer:
$gst-launch-1.0 pulsesrc device=multiHP.monitor ! konversi audio! audio/x-raw, format="(string)S16BE", layout="(string)interleaved", channels=2, rate=44100 ! rtpL16bayar! nama kaos = t t. ! antre ! udpsink host=%addrpi1 port=5000 t. ! antre ! udpsink host=% port addrpi2=5000 t. ! antre ! konversi audio! autoaudiosink
Langkah 3: Kesimpulan
Instruksi ini hanyalah langkah pertama untuk menyelesaikan proyek. Itu hanya untuk menjelaskan prinsipnya. Sekarang Anda dapat mengotomatisasi dengan membuat beberapa skrip pada boot Raspberry Pi dan di PC. Anda dapat menyesuaikan perintah GStreamer tergantung pada kebutuhan Anda. Saya pribadi memodifikasi instruksi saya sebelumnya (BRAND NEW OLD RADIO) untuk menggunakannya sebagai pembicara. Ada banyak hal yang harus dilakukan untuk meningkatkan sistem suara multi-ruangan ini. Secara khusus, semua speaker tidak disinkronkan, sehingga Anda memiliki beberapa variasi saat berpindah dari satu ruangan ke ruangan lain.
Saya harap Anda akan mencoba dan meningkatkan instruksi ini.
Jangan ragu untuk bertanya jika Anda membutuhkan detail.
Pengemudi yang baik!
Direkomendasikan:
Mengontrol TV dan Menghubungkan Raspberry Pi Dengan Remote yang Sama: 4 Langkah
Mengontrol TV dan Menghubungkan Raspberry Pi Dengan Remote yang Sama: Untuk mengontrol Raspberry Pi dengan remote Inframerah, kami dulu bisa menggunakan LIRC. Itu dulu berfungsi hingga Kernel 4.19.X ketika menjadi jauh lebih menantang untuk membuat LIRC berfungsi. Dalam proyek ini kami memiliki Raspberry Pi 3 B+ yang terhubung ke TV dan kami
Tutorial: Bagaimana Arduino Mengontrol Beberapa Perangkat Alamat yang Sama dengan Menggunakan Multiplexer TCA9548A I2C: 3 Langkah
Tutorial: Bagaimana Arduino Mengontrol Beberapa Perangkat Alamat yang Sama dengan Menggunakan TCA9548A I2C Multiplexer: Deskripsi:Modul Multiplexer TCA9548A I2C memungkinkan untuk menghubungkan perangkat dengan alamat I2C yang sama (hingga 8 alamat I2C yang sama) yang terhubung ke satu mikrokontroler. Multiplexer bertindak sebagai penjaga gerbang, memindahkan perintah ke set yang dipilih
Arduino Mengontrol Beberapa Sensor P.I.R pada Bord yang Sama: 3 Langkah
Arduino Mengontrol Beberapa Sensor PIR pada Bord yang Sama: Hari ini saya akan memberi tahu Anda cara menghubungkan beberapa Sensor PIR dengan Arduino Bord tunggal >di sini saya juga menggunakan modul relai 4 saluran untuk beberapa fungsi tambahan.ARDUINO + Modul Relai 4 Saluran + 4 Sensor PIR (ATAU Anda dapat menggunakan pin sebanyak-banyaknya pada arduin Anda
Musik Cerdas di Kamar Tidur dan Kamar Mandi Dengan Raspberry Pi – Mengintegrasikan Multiroom, Alarm, Kontrol Tombol, dan Otomatisasi Rumah: 7 Langkah
Musik Cerdas di Kamar Tidur dan Kamar Mandi Dengan Raspberry Pi – Mengintegrasikan Multiroom, Alarm, Kontrol Tombol, dan Otomatisasi Rumah: Hari ini kami ingin memberi Anda dua contoh tentang bagaimana Anda dapat menggunakan Raspberry Pi dengan perangkat lunak Max2Play kami untuk otomatisasi rumah: di kamar mandi dan kamar tidur . Kedua proyek serupa dalam hal musik dengan ketelitian tinggi dari berbagai sumber dapat dialirkan melalui
Mainkan Musik Dengan Arduino!: 5 Langkah (dengan Gambar)
Mainkan Musik Dengan Arduino!: Dalam instruksi ini saya akan menunjukkan kepada Anda bagaimana saya memutar musik menggunakan Arduino UNO dan modul SD Card.Kita akan menggunakan Komunikasi SPI.Mari kita mulai