Turinys:

Leiskite tą pačią muziką keliuose kambariuose: 3 žingsniai
Leiskite tą pačią muziką keliuose kambariuose: 3 žingsniai

Video: Leiskite tą pačią muziką keliuose kambariuose: 3 žingsniai

Video: Leiskite tą pačią muziką keliuose kambariuose: 3 žingsniai
Video: Винтовая тюрьма ► 3 Прохождение Silent Hill 4: The Room ( PS2 ) 2024, Lapkritis
Anonim
Leiskite tą pačią muziką keliuose kambariuose
Leiskite tą pačią muziką keliuose kambariuose

Sveiki visi, Nežinau, kaip jums, bet man patinka, kad visame bute skamba ta pati muzika, per daug neskambinant. Taigi, šiek tiek ištyręs šią problemą, nusprendžiau pastatyti kelis garsiakalbius, prijungtus prie „Wi -Fi“prie to paties muzikos serverio, kad vienu metu būtų galima leisti tą pačią muziką keliuose kambariuose, ypač vonios kambaryje.

Sistema pagrįsta „GStreamer“technologija, kuri yra nuostabios programinės įrangos, tokios kaip VLC, pagrindas ir garsiakalbis su „Wi -Fi“galimybe naudojant „Raspberry Pi“.

1 žingsnis: pastatykite garsiakalbį vonios kambariui

Garsiakalbio statymas vonios kambariui
Garsiakalbio statymas vonios kambariui
Garsiakalbio statymas vonios kambariui
Garsiakalbio statymas vonios kambariui
Garsiakalbio statymas vonios kambariui
Garsiakalbio statymas vonios kambariui

Dalių sąrašas:

  • vonios kambariui atsparus garsiakalbis
  • 2 W stiprintuvas (veikia 12V)
  • „Raspberry Pi Zero“(veikia 5v)
  • ir Pimoroni Phat DAC
  • SD kortelę
  • mygtuką ON/OFF
  • 12 V maitinimo adapteris + suderinamas kištukas
  • DC/DC mažinimas (12v-> 5v)
  • elektros dėžutė
  • kai kurie kabeliai

Konstrukcija yra gana paprasta.

Elektroninėje pusėje sekite šią ASCII diagramą.

  • DC kištuko įjungimo/išjungimo mygtuko stiprintuvas
  • ĮJUNGIMO/IŠJUNGIMO mygtukas DC/DC žemyn Raspberry Pi
  • Raspberry Pi Phat DAC stiprintuvo garsiakalbis

Iš mechaninės pusės išpjaukite visas reikalingas skyles elektros dėžutėje, padėkite viską į vidų ir viskas.

Naudodami šią techniką galite sukurti visų norimų garsiakalbių.

2 žingsnis: programinės įrangos pusė

Visa programinės įrangos pusė yra pagrįsta atvirojo kodo daugialypės terpės sistema „GStreamer“. Aš naudojau tik „Linux“, tačiau ji egzistuoja skirtingose OS, todėl įsivaizduoju, kad visa tai galima pritaikyti kitai OS.

Norėdami pradėti, turite įdiegti „Raspbian Lite“„Pi“, „PHAT DAC“ir „GStreamer 1.0“su „gerais“papildiniais. Kompiuteryje, naudojamame kaip muzikos serveris, jums reikia to paties „GStreamer“. Aš nedetalizuosiu tų dalių, nes kiti tai padarė geriau nei aš. Paskutinis dalykas, kurio reikia, yra tai, kad „Pi“ir muzikos serveris turi būti prijungti prie to paties tinklo kabeliu arba „Wi -Fi“.

Norėdami patikrinti, ar „GStreamer“yra tinkamai įdiegtas, galite naudoti šias komandų eilutes.

Ant garsiakalbio:

$ 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, kanalai = (int) 1, naudingoji apkrova = (int) 96 '! rtpL16depay! garso konvertavimas! automatinis garsiakalbis

Kompiuteryje:

$ gst-launch-1.0 audiotestsrc! garso konvertavimas! audio/x-raw, format = "(string) S16BE", layout = "(string) interleaved", kanalai = 1, norma = 44100! rtpL16pay! udpsink host = RASPBERRYPI_IP prievadas = 5000

Įvedę gerą IP adresą vietoj „RASPBERRYPI_IP“, garsiakalbyje turėtumėte išgirsti sinusinį garsą. Tai nėra kažkas, ko jums patinka girdėti ilgą laiką, todėl nespauskite garsumo per garsiai.

Keletas paaiškinimų: kompiuteris sukuria sinusinį garsą naudodami „audiotestsrc“, „audioconvert! Audio/x-raw, format =" (string) S16BE ", layout =" (string) interleaved ", channels = 1, rate = 44100" convert Garsas tinkamu formatu, suprantamu „rtpL16pay“, sukuriančiu garso paketus ir galiausiai „udpsink“siunčia paketus naudodami UDP protokolą. Garsiakalbyje jis yra tas pats, bet apverstas, „udpsrc“atkuria garso srautą, „rtpL16depay“paketai ir „audioconvert! Autoaudiosink“konvertuoja garsą į automatinės garso plokštės formatą ir, žinoma, jį atkuria.

Taigi dabar, kai pagrindiniai dalykai veikia, atėjo laikas eiti toliau. Tikslas yra perimti programos garsą, kad jis būtų išsiųstas per tinklą.

- Mes sukuriame netikrą produkciją

$ pactl load-module module-null-sink sink_name = multiHP

- Mes prijungiame įvestį prie netikros išvesties (nutildykite pasirinktą programą (įvestį))

$ pacmd list-kriauklės (išvesties sąrašas)

$ pacmd list-sink-inputs (įvesties sąrašas)

$ pacmd move-sink-input %input %output (pakeiskite %įvestį ir %išvestį vienu iš atitinkamų sąrašų)

- Įdėjome garso plokštę maksimaliai

$ pactl set-sink-volume 0 100%

- Mes išbandome kompiuterį, kaip atkurti suklastotą išvestį (atkurti garsą)

$ gst-launch-1.0 impulsinis įrenginys = multiHP.monitor! garso konvertavimas! automatinis garsiakalbis

Turėtumėte vėl išgirsti pasirinktos programos garsą.

Puiku! Dabar atėjo laikas eiti į paskutines komandų eilutes. Čia yra komandų eilutės, jei yra 2 garsiakalbiai, kurių garsas taip pat atkuriamas kompiuteriu.

Ant kiekvieno garsiakalbio:

$ 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, naudingoji apkrova = (int) 96 '! rtpL16depay! garso konvertavimas! automatinis garsiakalbis

Kompiuteryje:

$ gst-launch-1.0 impulsinis įrenginys = multiHP.monitor! garso konvertavimas! audio/x-raw, format = "(string) S16BE", layout = "(string) interleaved", kanalai = 2, norma = 44100! rtpL16pay! tee pavadinimas = t t. ! eilė ! udpsink host =%addrpi1 prievadas = 5000 t. ! eilė ! udpsink host =%addrpi2 prievadas = 5000 t. ! eilė ! garso konvertavimas! automatinis garsiakalbis

3 žingsnis: Išvada

Ši pamoka yra tik pirmas žingsnis į užbaigtą projektą. Tai buvo tik paaiškinti principą. Dabar galite automatizuoti sukurdami scenarijų „Raspberry Pi“įkrovoje ir kompiuteryje. „GStreamer“komandą galite pritaikyti pagal savo poreikius. Aš asmeniškai pakeičiau savo ankstesnį nurodymą (NAUJAS SENAS RADIJAS), kad galėčiau jį naudoti kaip garsiakalbį. Norint pagerinti šią kelių kambarių garso sistemą, reikia padaryti begalę dalykų. Visų pirma, visi garsiakalbiai nėra sinchronizuoti, todėl jūs turite tam tikrų skirtumų, kai keičiate kambarį į kitą.

Tikiuosi, kad pabandysite patobulinti šią pamoką.

Jei reikia išsamesnės informacijos, nedvejodami užduokite klausimus.

Geras meistras!

Rekomenduojamas: