Përmbajtje:
Video: Luani të njëjtën muzikë në dhoma të shumta: 3 hapa
2024 Autor: John Day | [email protected]. E modifikuara e fundit: 2024-01-30 12:24
Pershendetje te gjitheve, Unë nuk di për ju, por më pëlqen të kem të njëjtën muzikë në të gjithë banesën time pa e bërë zhurmën shumë të lartë. Kështu që pas pak kërkimesh në lidhje me këtë problem, vendosa të ndërtoj disa altoparlantë të lidhur të gjithë me wifi në të njëjtin server muzikor në mënyrë që të luaj të njëjtën muzikë njëkohësisht në disa dhoma dhe veçanërisht në banjë.
Sistemi bazohet në teknologjinë GStreamer e cila është baza e disa programeve të mrekullueshëm si VLC dhe në altoparlantët me aftësi wifi duke përdorur Raspberry Pi.
Hapi 1: Ndërtimi i një altoparlanti për banjën
Lista e pjesëve:
- një altoparlant provë në banjë
- një përforcues 2W (punon në 12v)
- Raspberry Pi Zero (punon në 5v)
- një Pimoroni Phat DAC
- një kartë SD
- një buton ON/OFF
- një përshtatës energjie 12v + një prizë e pajtueshme
- një hap DC/DC poshtë (12v-> 5v)
- një kuti elektrike
- disa kabllo
Ndërtimi është mjaft i drejtpërdrejtë.
Nga ana elektronike, ndiqni këtë diagram ASCII.
- Përforcuesi i butonit ON/OFF i prizës DC
- Butoni ON/OFF Hapi poshtë Raspberry Pi DC/DC
- Altoparlanti i amplifikatorit Raspberry Pi Phat DAC
Nga ana mekanike, prerë të gjitha vrimat e nevojshme në kutinë elektrike, vendosni gjithçka brenda dhe kjo është e gjitha.
Duke përdorur këtë teknikë, ju mund të krijoni të gjitha llojet e folësve që dëshironi.
Hapi 2: Ana e Softuerit
E gjithë ana e softuerit bazohet në kornizën multimediale me burim të hapur, GStreamer. Kam përdorur vetëm Linux por ai ekziston në OS të ndryshëm, kështu që unë imagjinoj që të gjithë mund të përshtaten për OS të tjerë.
Për të filluar, duhet të instaloni Raspbian Lite në Pi, PHAT DAC dhe GStreamer 1.0 me shtojcat "e mira". Në kompjuterin e përdorur si server i muzikës, keni nevojë për të njëjtin GStreamer. Unë nuk do t'i detajoj ato pjesë sepse të tjerët e kanë bërë këtë më mirë se unë. Gjëja e fundit e nevojshme është që Pi dhe serveri i muzikës duhet të lidhen me të njëjtin rrjet me kabllo ose wifi.
Për të provuar nëse GStreamer është instaluar saktë, mund t'i përdorni ato rreshta komande.
Në altoparlant:
$ gst-launch-1.0 port udpsrc = 5000 caps = 'application/x-rtp, media = (string) audio, ora-rate = (int) 44100, encoding-name = (string) L16, encoding-params = (string) 1, kanalet = (int) 1, ngarkesa = (int) 96 '! rtpL16pagim! audiokonvert! autoaudiosink
Në PC:
$ gst-launch-1.0 audiotestsrc! audiokonvert! audio/x-raw, format = "(string) S16BE", paraqitja = "(string) e ndërlidhur", kanale = 1, norma = 44100! rtpL16paguaj! udpsink host = porti RASPBERRYPI_IP = 5000
Pasi të vendosni adresën IP të mirë në vend të "RASPBERRYPI_IP", duhet të dëgjoni një tingull sinusoidal në altoparlant. Kjo nuk është diçka që do të dëshironi të dëgjoni për një kohë të gjatë, kështu që mos e vendosni volumin shumë të lartë.
Disa shpjegime: kompjuteri prodhon tingull sinusoidal duke përdorur "audiotestsrc", "audioconvert! Audio/x-raw, format =" (string) S16BE ", layout =" (string) interleaved ", kanale = 1, norma = 44100" konverto tingulli në formatin e mirë të kuptuar nga "rtpL16pay" që krijon paketat audio dhe në fund "udpsink" dërgon paketat duke përdorur protokollin UDP. Në altoparlant, është i njëjtë, por i përmbysur, "udpsrc" rikuperon fluksin audio, de-paketat "rtpL16depay" dhe "audioconvert! Autoaudiosink" shndërron tingullin në përputhje me formatin e kartës automatike të zërit dhe natyrisht, e luan atë.
Pra, tani që gjërat themelore funksionojnë, është koha për të shkuar më tej. Qëllimi është të përgjoni tingullin e një aplikacioni në mënyrë që ta dërgoni atë përmes rrjetit.
- Ne krijojmë një dalje të rreme
$ pactl load-module module-null-lavaman sink_name = multiHP
- Ne lidhim një hyrje me daljen e rreme (hesht aplikacionin e zgjedhur (hyrja))
$ pacmd lista-lavamanët (lista e rezultateve)
$ pacmd lista-lavaman-hyrje (lista e hyrjeve)
$ pacmd move-lavaman-input %input %output (zëvendësoni %input dhe %output me një nga listat përkatëse)
- Ne e vendosim kartën e zërit në maksimum
$ pactl set-lavaman-volumi 0 100%
- Ne testojmë në PC mënyrën e rikuperimit të prodhimit të rremë (rikuperimin e zërit)
$ gst-launch-1.0 pajisje pulsesrc = multiHP.monitor! audiokonvert! autoaudiosink
Ju duhet të dëgjoni përsëri tingullin e aplikacionit që keni zgjedhur.
Shkëlqyeshëm! Tani është koha për të shkuar në linjat përfundimtare të komandës. Këtu janë linjat e komandës në rastin e 2 altoparlantëve me tingullin e luajtur edhe nga kompjuteri.
Për secilin folës:
$ gst-launch-1.0 port udpsrc = 5000 caps = 'application/x-rtp, media = (string) audio, ora-rate = (int) 44100, encoding-name = (string) L16, encoding-params = (string) 2, ngarkesa = (int) 96 '! rtpL16pagim! audiokonvert! autoaudiosink
Në PC:
$ gst-launch-1.0 pajisje pulsesrc = multiHP.monitor! audiokonvert! audio/x-raw, format = "(string) S16BE", paraqitja = "(string) e ndërlidhur", kanale = 2, norma = 44100! rtpL16paguaj! emri i tees = t t. ! radhe ! hosti udpsink =%porti addrpi1 = 5000 t. ! radhe ! hosti udpsink =%porti addrpi2 = 5000 t. ! radhe ! audiokonvert! autoaudiosink
Hapi 3: Përfundimi
Ky udhëzues është vetëm hapi i parë drejt një projekti të plotë. Ishte vetëm për të shpjeguar parimin. Tani mund të automatizoheni duke bërë ndonjë skenar në boot Raspberry Pi dhe në PC. Ju mund të përshtatni komandën GStreamer në varësi të nevojës tuaj. Unë personalisht ndryshova udhëzimet e mia të mëparshme udhëzuese (RADIO BRAND NEW OLD) për ta përdorur atë si folës. Ka një numër të pafund gjërash për të bërë për të përmirësuar këtë sistem tingulli me shumë dhoma. Në veçanti, të gjithë altoparlantët nuk janë të sinkronizuar, kështu që ju keni disa ndryshime kur ndryshoni nga një dhomë në tjetrën.
Shpresoj se do të përpiqeni dhe do ta përmirësoni këtë të udhëzueshme.
Mos hezitoni të bëni pyetje nëse keni nevojë për detaje.
Kallajxhi i mirë!
Recommended:
Arduino Lidhni pajisje të shumta I2C: 6 hapa
Arduino Connect Multiple I2C Pajisjet: Në këtë tutorial ne do të mësojmë se si të lidhim disa module me një lidhje I2C me arduino. Shikoni videon! Në rastin tonë ne do të përdorim 4 Ekrane OLED si shembull, por ju mund të përdorni çdo modul tjetër I2C/ sensorë nëse dëshironi. Shënim: 4 OLED Shfaq bashkë
Si të lexoni vlera të shumta analoge duke përdorur një kunj analog: 6 hapa (me fotografi)
Si të lexoni vlera të shumëfishta analoge duke përdorur një kunj analoge: Në këtë tutorial, unë do t'ju tregoj se si të lexoni vlera të shumëfishta analoge duke përdorur vetëm një pin analog të hyrjes
Kontrolli i një televizori dhe Raspberry Pi i lidhur me të njëjtën telekomandë: 4 hapa
Kontrolli i një televizori dhe Raspberry Pi i lidhur me të njëjtën telekomandë: Për të kontrolluar një Raspberry Pi me telekomandë Infrared, ne ishim në gjendje të përdorim LIRC. Kjo funksiononte deri në Kernel 4.19.X kur u bë shumë më sfiduese të vinte LIRC në punë. Në këtë projekt ne kemi një Raspberry Pi 3 B+ të lidhur me një televizor dhe ne
Arduino Kontrollimi i Sensorit të Shumëfishtë P.I.R në të njëjtën Kufi: 3 Hapa
Arduino Kontrolli i Sensorit të Shumëfishtë PIR në të njëjtën Kufi: Sot do t'ju tregoj se si të lidhni Sensorë të shumtë PIR me Arduino Bord të vetëm > këtu kam përdorur gjithashtu modul stafetë me 4 kanale për disa funksione shtesë. (OSE Ju mund të përdorni sa më shumë arduin tuaj
Si të luani muzikë përmes një amatori të kitarës: 4 hapa
Si të luani muzikë përmes një amplituesi të kitarës: Ky është një udhëzues që do t'ju tregojë se si të luani muzikë përmes një amatori të kitarës Shijoni