Innholdsfortegnelse:
Video: Spill samme musikk i flere rom: 3 trinn
2024 Forfatter: John Day | [email protected]. Sist endret: 2024-01-30 11:24
Hei alle sammen, Jeg vet ikke om deg, men jeg liker å ha den samme musikken over hele leiligheten min uten å slå lyden for høyt. Så etter litt undersøkelser om dette problemet, bestemte jeg meg for å konstruere flere høyttalere som alle var koblet via wifi til den samme musikkserveren for å spille den samme musikken samtidig i flere rom og spesielt på badet.
Systemet er basert på GStreamer -teknologien som er grunnlaget for fantastisk programvare som VLC og høyttaler med wifi -funksjon ved bruk av en Raspberry Pi.
Trinn 1: Bygg en høyttaler for badet
Deleliste:
- en baderomsikker høyttaler
- en 2W forsterker (arbeider på 12v)
- en Raspberry Pi Zero (jobber med 5v)
- en Pimoroni Phat DAC
- et SD -kort
- en PÅ/AV -knapp
- en 12v strømadapter + en kompatibel plugg
- en DC/DC nedtrapping (12v-> 5v)
- en elektrisk boks
- noen kabler
Konstruksjonen er ganske grei.
Følg dette ASCII -diagrammet på den elektroniske siden.
- Forsterker for DC -plugg ON/OFF -knapp
- PÅ/AV-knapp DC/DC nedtrapping av Raspberry Pi
- Raspberry Pi Phat DAC forsterkerhøyttaler
På den mekaniske siden, kutt alle hullene som trengs i den elektriske boksen, legg alt inni og det er alt.
Ved å bruke denne teknikken kan du lage alle slags høyttalere du vil ha.
Trinn 2: Programvaresiden
All programvareside er basert på multimedieramme for åpen kildekode, GStreamer. Jeg brukte bare Linux, men det finnes på forskjellige operativsystemer, så jeg kan tenke meg at alt kan tilpasses andre operativsystemer.
For starteren må du installere Raspbian Lite på Pi, PHAT DAC og GStreamer 1.0 med de "gode" pluginene. På datamaskinen som brukes som musikkserver, trenger du den samme GStreamer. Jeg vil ikke detaljere disse delene fordi andre har gjort dette bedre enn meg. Det siste som trengs er at Pi og musikkserveren må være koblet til det samme nettverket via kabel eller wifi.
For å teste om GStreamer er riktig installert, kan du bruke disse kommandolinjene.
På høyttaleren:
$ 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, kanaler = (int) 1, nyttelast = (int) 96 '! rtpL16betaling! lydkonvertering! autoaudiosink
På PC -en:
$ gst-launch-1.0 audiotestsrc! lydkonvertering! lyd/x-raw, format = "(streng) S16BE", layout = "(streng) sammenflettet", kanaler = 1, rate = 44100! rtpL16pay! udpsink host = RASPBERRYPI_IP port = 5000
Etter at du har lagt den gode IP -adressen i stedet for "RASPBERRYPI_IP", bør du høre en sinusformet lyd på høyttaleren. Det er ikke noe du vil like å høre på lenge, så ikke sett volumet for høyt.
Noen forklaringer: PC-en produserer sinusformet lyd ved hjelp av "audiotestsrc", "audioconvert! Audio/x-raw, format =" (string) S16BE ", layout =" (string) interleaved ", channel = 1, rate = 44100" convert lyden i det gode formatet forstått av "rtpL16pay" som lager lydpakker og til slutt "udpsink" sender pakkene ved hjelp av UDP -protokollen. På høyttaleren er den den samme, men inverterte, "udpsrc" gjenoppretter lydfluksen, "rtpL16depay" de-pakker og "audioconvert! Autoaudiosink" konverterer lyden for å matche formatet til det automatiske lydkortet og spiller selvfølgelig den.
Så nå som de grunnleggende tingene fungerer, er det på tide å gå videre. Målet er å fange opp lyden til et program for å sende det gjennom nettverket.
- Vi lager en falsk utgang
$ pactl load-module module-null-sink sink_name = multiHP
- Vi kobler en inngang til den falske utgangen (taus den valgte applikasjonen (input))
$ pacmd list-sink (utgangsliste)
$ pacmd list-sink-innganger (inngangsliste)
$ pacmd move-sink-input %input %output (erstatt %input og %output med en av de tilsvarende listene)
- Vi setter lydkortet maksimalt
$ pactl set-sink-volume 0 100%
- Vi tester på PCen måten å gjenopprette den falske utgangen (gjenopprette lyden)
$ gst-launch-1.0 pulsesrc device = multiHP.monitor! lydkonvertering! autoaudiosink
Du bør høre lyden til programmet du har valgt igjen.
Flott! Nå er det på tide å gå til de siste kommandolinjene. Her er kommandolinjene for to høyttalere med lyden som spilles av PC -en.
På hver høyttaler:
$ 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, nyttelast = (int) 96 '! rtpL16betaling! lydkonvertering! autoaudiosink
På PC -en:
$ gst-launch-1.0 pulsesrc device = multiHP.monitor! lydkonvertering! lyd/x-raw, format = "(streng) S16BE", layout = "(streng) sammenflettet", kanaler = 2, rate = 44100! rtpL16pay! tee navn = t t. ! kø! udpsink host =%addrpi1 port = 5000 t. ! kø! udpsink host =%addrpi2 port = 5000 t. ! kø! lydkonvertering! autoaudiosink
Trinn 3: Konklusjon
Dette instruerbare er bare det første trinnet til et komplett prosjekt. Det var bare for å forklare prinsippet. Nå kan du automatisere ved å lage et skript på Raspberry Pi -støvelen og på PC -en. Du kan tilpasse GStreamer -kommandoen avhengig av ditt behov. Jeg personlig endret min forrige instruerbare (BRAND NEW OLD RADIO) for å bruke den som høyttaler. Det er uendelig mange ting å gjøre for å forbedre dette lydsystemet med flere rom. Spesielt er ikke alle høyttalerne synkronisert, så du har litt variasjon når du bytter fra et rom til et annet.
Jeg håper at du vil prøve å forbedre dette instruerbare.
Ikke nøl med å stille spørsmål hvis du trenger detaljer.
Bra tinker!
Anbefalt:
Spill Nintendo -spill på Idevice med en Wiimote gratis !: 6 trinn
Spill Nintendo -spill på Idevice med en Wiimote gratis!: Har du noen gang gått til appbutikken for å få et Super Nintendo -spill, men du finner ikke et å spille. Nå kan du spille disse nintendo -spillene med snes -emulatoren fra Cydia. Denne emulatoren lar deg spille Nintendo -spill på din enhet, selv med
Opplæring: Hvordan Arduino styrer flere samme adresseenheter ved å bruke TCA9548A I2C Multiplexer: 3 trinn
Opplæring: Hvordan Arduino styrer flere samme adressenheter ved å bruke TCA9548A I2C Multiplexer: Beskrivelse: TCA9548A I2C Multiplexer -modulen gjør det mulig å koble til enheter med samme I2C -adresse (opptil 8 samme adresse I2C) koblet til en mikrokontroller. Multiplexeren fungerer som en portvakt og sender kommandoene til det valgte settet
Arduino -kontrollerende flere P.I.R -sensorer på samme bord: 3 trinn
Arduino -styring av flere PIR -sensorer på samme bord: I dag vil jeg fortelle deg hvordan du kobler flere PIR -sensorer til en enkelt Arduino Bord > her har jeg også brukt 4 -kanals relemodul for litt ekstra funksjonalitet. (ELLER Du kan bruke så mange som pin din arduin
Spill et PONG -spill med Arduino Uno og OLED 0.96 SSD1306 -skjerm: 6 trinn
Spill et PONG -spill med Arduino Uno og OLED 0.96 SSD1306 Display: Hei folkens i dag skal vi lage et PONG -spill med Arduino. Vi bruker adafruit's 0.96 oled display for å vise spillet & trykknapper for å kontrollere spillet
Spill musikk med Arduino !: 5 trinn (med bilder)
Spill musikk med Arduino !: I denne instruksjonsfilen vil jeg vise deg hvordan jeg spiller musikk ved hjelp av en Arduino UNO og en SD -kortmodul. Vi vil bruke SPI -kommunikasjonen. La oss komme i gang