Mündəricat:
Video: Eyni Musiqini Çox Otaqda Çalın: 3 Addım
2024 Müəllif: John Day | [email protected]. Son dəyişdirildi: 2024-01-30 07:47
Hər kəsə salam, Səni bilmirəm, amma səsini çox yüksək səsə çevirmədən bütün mənzildə eyni musiqini dinləməyi sevirəm. Bu problemlə əlaqədar bir az araşdırma apardıqdan sonra eyni musiqini eyni anda bir neçə otaqda və xüsusən hamamda çalmaq üçün hamısı wifi ilə eyni musiqi serverinə qoşulmuş bir neçə dinamik qurmağa qərar verdim.
Sistem, VLC kimi möhtəşəm bir proqramın əsasını təşkil edən GStreamer texnologiyasına və bir Raspberry Pi istifadə edərək wifi qabiliyyətinə malik dinamikə əsaslanır.
Addım 1: Hamam üçün Dinamik qurmaq
Parça siyahısı:
- hamama davamlı dinamik
- 2W gücləndirici (12v üzərində işləyir)
- a Raspberry Pi Zero (5v üzərində işləyir)
- bir Pimoroni Phat DAC
- bir SD kart
- ON/OFF düyməsi
- 12v güc adapteri + uyğun bir fiş
- DC/DC aşağı salınması (12v-> 5v)
- elektrik qutusu
- bəzi kabellər
Tikinti olduqca sadədir.
Elektron tərəfdən, bu ASCII diaqramını izləyin.
- DC fişinin ON/OFF düyməsini gücləndirici
- ON/OFF düyməsi DC/DC aşağı salınan Raspberry Pi
- Raspberry Pi Phat DAC gücləndirici dinamik
Mexanik tərəfdən, elektrik qutusunda lazım olan bütün delikləri kəsin, hər şeyi içəriyə qoyun və hamısı budur.
Bu texnikadan istifadə edərək istədiyiniz hər cür dinamiklər yarada bilərsiniz.
Addım 2: Proqram tərəfi
Proqramın bütün tərəfi açıq mənbəli multimedia çərçivəsi GStreamer -ə əsaslanır. Yalnız Linux istifadə etdim, amma fərqli bir OS -də var, buna görə də hamısının digər OS üçün uyğunlaşdırıla biləcəyini düşünürəm.
Başlamaq üçün "yaxşı" plaginləri olan Pi, PHAT DAC və GStreamer 1.0 üzərində Raspbian Lite quraşdırmalısınız. Musiqi serveri olaraq istifadə olunan kompüterdə eyni GStreamerə ehtiyacınız var. Bu hissələri ətraflı izah etməyəcəyəm, çünki başqaları bunu məndən yaxşı etdi. Lazım olan son şey Pi və musiqi serverinin eyni şəbəkəyə kabel və ya wifi ilə bağlanmasıdır.
GStreamer -in düzgün qurulduğunu yoxlamaq üçün bu əmr satırlarından istifadə edə bilərsiniz.
Dinamik üzərində:
$ 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, kanallar = (int) 1, faydalı yük = (int) 96 '! rtpL16depay! audio konvertasiya! avtomatik səs -küy
PC -də:
$ gst-launch-1.0 audiotestsrc! audio konvertasiya! audio/x-raw, format = "(string) S16BE", layout = "(string) interleaved", kanallar = 1, dərəcəsi = 44100! rtpL16pay! udpsink host = RASPBERRYPI_IP port = 5000
"RASPBERRYPI_IP" yerinə yaxşı bir IP ünvanı qoyduqdan sonra dinamikdə sinusoidal bir səs eşitməlisiniz. Uzun müddət eşitmək istədiyiniz bir şey deyil, buna görə də səsi çox yüksək qoymayın.
Bəzi izahatlar: kompüter "audiotestsrc", "audioconvert! Audio/x-raw, format =" (string) S16BE ", layout =" (string) interleaved ", kanallar = 1, rate = 44100" çevirməklə sinusoidal səs çıxarır. səs paketlərini yaradan və nəhayət "udpsink" paketləri UDP protokolundan istifadə edərək göndərən "rtpL16pay" tərəfindən yaxşı başa düşülən səs. Dinamikdə eyni, lakin tərsdir, "udpsrc" səs axınını bərpa edir, "rtpL16depay" paketlərini çıxarır və "audioconvert! Autoaudiosink" səsi avtomatik səs kartının formatına uyğun olaraq çevirir və təbii ki, çalır.
İndi əsas şeylər işlədiyinə görə daha da irəli getmək vaxtıdır. Məqsəd, bir tətbiqin şəbəkə vasitəsilə göndərilməsi üçün onun səsini kəsməkdir.
- Biz saxta çıxış yaradırıq
$ pactl load-module module-null-sink sink_name = multiHP
- Bir girişi saxta çıxışa bağlayırıq (seçilmiş tətbiqi susdurun (giriş))
$ pacmd list-lavabolar (çıxış siyahısı)
$ pacmd siyahısı-sink-girişləri (giriş siyahısı)
$ pacmd Move-sink-input %input %output (%girişini və %çıxışını müvafiq siyahılardan biri ilə əvəz edin)
- Səs kartını maksimum qoyduq
$ pactl set-sink-volume 0 100%
- PC -də saxta çıxışı bərpa etməyin yolunu sınayırıq (səsi bərpa edin)
$ gst-launch-1.0 pulsesrc cihazı = multiHP.monitor! audio konvertasiya! avtomatik səs -küy
Seçdiyiniz tətbiqin səsini yenidən eşitməlisiniz.
Əla! İndi son əmr satırlarına keçməyin vaxtıdır. İşdə PC tərəfindən də səslənən 2 dinamikin vəziyyətindəki əmr satırları.
Hər Dinamikdə:
$ 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, faydalı yük = (int) 96 '! rtpL16depay! audio konvertasiya! avtomatik səs -küy
PC -də:
$ gst-launch-1.0 pulsesrc cihazı = multiHP.monitor! audio konvertasiya! audio/x-raw, format = "(string) S16BE", layout = "(string) interleaved", kanallar = 2, dərəcəsi = 44100! rtpL16pay! tee adı = t t. ! növbə! udpsink host =%addrpi1 port = 5000 t. ! növbə! udpsink host =%addrpi2 port = 5000 t. ! növbə! audio konvertasiya! avtomatik səs -küy
Addım 3: Nəticə
Bu təlimatlı bir layihə üçün ilk addımdır. Yalnız prinsipi izah etmək lazım idi. İndi Raspberry Pi açılışında və PC -də bir az skript hazırlayaraq avtomatlaşdıra bilərsiniz. Ehtiyacınızdan asılı olaraq GStreamer əmrini uyğunlaşdıra bilərsiniz. Dinləyici olaraq istifadə etmək üçün əvvəlki təlimatımı (YENİ OLDUĞU RADİO) şəxsən dəyişdirdim. Bu çox otaqlı səs sistemini təkmilləşdirmək üçün sonsuz sayda işlər var. Xüsusilə, bütün dinamiklər sinxronizasiya edilmir, buna görə bir otaqdan digərinə keçərkən bəzi dəyişikliklər olur.
Ümidvaram ki, bu təlimatı daha da yaxşılaşdırmağa çalışacaqsınız.
Detallara ehtiyacınız varsa sual verməkdən çəkinməyin.
Yaxşı tinker!
Tövsiyə:
Çox rəngli gözlərlə Attiny85 eyni vaxtda proqramlaşdırma və ya balqabaq: 7 addım
Attiny85 Eşzamanlı Proqramlaşdırma və ya Çox Rəngli Gözlərlə Balqabaq: Bu layihə Attiny85 çipi ilə iki ədəd 10 mm üç rəngli ümumi anod LED-lərin (Balqabaq Halloween Parıltısının çox rəngli gözləri) necə idarə olunacağını göstərir. Layihənin məqsədi oxucunu eyni vaxtda proqramlaşdırma sənəti və Adam D -nin istifadəsi ilə tanış etməkdir
Təlimat: Arduino, TCA9548A I2C Multiplexer istifadə edərək birdən çox Eyni Ünvan Cihazına Necə Nəzarət Edir: 3 Addım
Təlimat: Arduino, TCA9548A I2C Multiplexer istifadə edərək Birdən çox Eyni Ünvan Cihazına Necə Nəzarət Edir: Təsvir: TCA9548A I2C Multiplexer Modulu eyni I2C ünvanlı (8 eyni ünvana qədər I2C) cihazları bir mikro nəzarətçiyə bağlamağı təmin etməkdir. Multiplexer, əmrləri seçilmiş dəstə bağlayaraq qapıçı kimi çıxış edir
Arduino eyni bordda birdən çox PI sensoru idarə edir: 3 addım
Arduino eyni bordda birdən çox PIR sensoru idarə edir: Bu gün sizə bir neçə PIR sensoru tək Arduino Bord ilə necə bağlayacağınızı söyləyəcəyəm; burada əlavə funksionallıq üçün 4 kanallı röle modulundan da istifadə etdim. (Yoxsa arduininizi bir çox pin istifadə edə bilərsiniz
Çox nümunə ilə musiqini reaktiv WS2812B LEDləri necə etmək olar: 4 addım
Çox nümunə ilə musiqini reaktiv WS2812B LED-lərini necə etmək olar: WS2812, WS2812B ağıllı idarə olunan bir LED işıq mənbəyidir. quraşdırılmış idarəetmə çipinə və 4 sancağa malikdir. V+, V-, Din & Bu LEDləri idarə etmək üçün Arduino, PIC və ya Rasberry pastası kimi MCU istifadə etmək istəyirik. Bu layihə üçün Arduino UNO istifadə etdim
Ən Sadə Avtomatik ON OFF Otaqda Təcili Led İşıq: 3 Addım
Sadə Avtomatik AÇIQ Otaqda Təcili Led İşıq: Salam! Bu təlimatda sizə işıq kəsilməsi halları üçün Şarj edilə bilən avtomatik AÇMA otaq təcili işığı necə qurmağı öyrədəcəyəm. Bir keçid ilə söndürün.Elektrik kəsiləcəyi təqdirdə, sensor avtomatik