Sommario:
- Passaggio 1: costruire un altoparlante per il bagno
- Passaggio 2: il lato software
- Passaggio 3: conclusione
Video: Riproduci la stessa musica in più stanze: 3 passaggi
2024 Autore: John Day | [email protected]. Ultima modifica: 2024-01-30 10:03
Ciao a tutti, Non so voi, ma a me piace avere la stessa musica in tutto il mio appartamento senza alzare troppo il volume. Quindi, dopo un po' di ricerche su questo problema, ho deciso di costruire più altoparlanti tutti collegati via wifi allo stesso server musicale in modo da riprodurre la stessa musica contemporaneamente in più stanze e in particolare nel bagno.
Il sistema è basato sulla tecnologia GStreamer che è la base di alcuni fantastici software come VLC e su altoparlanti con funzionalità Wi-Fi utilizzando un Raspberry Pi.
Passaggio 1: costruire un altoparlante per il bagno
Elenco delle parti:
- un altoparlante a prova di bagno
- un amplificatore da 2W (funzionante a 12v)
- un Raspberry Pi Zero (funzionando su 5v)
- un Pimoroni Phat DAC
- una scheda SD
- un pulsante ON/OFF
- un alimentatore da 12 V + una spina compatibile
- un DC/DC step-down (12v->5v)
- una scatola elettrica
- alcuni cavi
La costruzione è piuttosto semplice.
Sul lato elettronico, segui questo diagramma ASCII.
- Spina CC Pulsante ON/OFF amplificatore
- Pulsante ON/OFF DC/DC step-down Raspberry Pi
- Altoparlante amplificatore DAC Raspberry Pi Phat
Dal lato meccanico, fai tutti i fori necessari nella scatola elettrica, metti tutto dentro e basta.
Usando questa tecnica, puoi creare tutti i tipi di altoparlanti che desideri.
Passaggio 2: il lato software
Tutto il lato software è basato sul framework multimediale open source, GStreamer. Ho usato solo Linux ma esiste su diversi OS, quindi immagino che tutto possa essere adattato per altri OS.
Per cominciare, devi installare Raspbian Lite sul Pi, il PHAT DAC e il GStreamer 1.0 con i plugin "buoni". Sul computer utilizzato come server musicale, è necessario lo stesso GStreamer. Non descriverò in dettaglio quelle parti perché altri l'hanno fatto meglio di me. L'ultima cosa necessaria è che il Pi e il server musicale devono essere collegati alla stessa rete via cavo o Wi-Fi.
Per verificare se GStreamer è installato correttamente, puoi usare quelle righe di comando.
Sull'altoparlante:
$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, canali=(int)1, payload=(int)96' ! rtpL16depay! audioconvertitore! autoaudiosink
Sul PC:
$gst-launch-1.0 audiotestsrc ! audioconvertitore! audio/x-raw, format="(string)S16BE", layout="(string)interleaved", channel=1, rate=44100 ! rtpL16pay! udpsink host=porta RASPBERRYPI_IP=5000
Dopo aver inserito l'indirizzo IP corretto invece di "RASPBERRYPI_IP", dovresti sentire un suono sinusoidale sull'altoparlante. Non è qualcosa che ti piacerebbe sentire per molto tempo, quindi non alzare troppo il volume.
Qualche spiegazione: il PC produce il suono sinusoidale usando "audiotestsrc", "audioconvert ! audio/x-raw, format="(string)S16BE", layout="(string)interleaved", channel=1, rate=44100" convert il suono nel buon formato compreso da "rtpL16pay" che crea i pacchetti audio e infine "udpsink" invia i pacchetti utilizzando il protocollo UDP. Sull'altoparlante, è lo stesso ma invertito, "udpsrc" recupera il flusso audio, "rtpL16depay" de-packet e "audioconvert! autoaudiosink" converte il suono in modo che corrisponda al formato della scheda audio automatica e, naturalmente, lo riproduce.
Quindi, ora che le cose di base funzionano, è tempo di andare oltre. L'obiettivo è intercettare il suono di un'applicazione per inviarlo attraverso la rete.
- Creiamo un output falso
$pactl load-module module-null-sink sink_name=multiHP
- Colleghiamo un input all'output falso (silenzia l'applicazione selezionata (input))
$pacmd list-sink (elenco degli output)
$pacmd list-sink-inputs (lista degli input)
$pacmd move-sink-input %input %output (sostituisci %input e %output con uno degli elenchi corrispondenti)
- Mettiamo la scheda audio al massimo
$pactl imposta-sink-volume 0 100%
- Testiamo sul PC il modo per recuperare l'output falso (recuperare il suono)
$gst-launch-1.0 pulsesrc device=multiHP.monitor ! audioconvertitore! autoaudiosink
Dovresti sentire di nuovo il suono dell'applicazione che hai selezionato.
Grande! Ora è il momento di passare alle righe di comando finali. Ecco le righe di comando nel caso di 2 altoparlanti con l'audio riprodotto anche dal PC.
Su ogni Altoparlante:
$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, carico utile=(int)96' ! rtpL16depay! audioconvertitore! autoaudiosink
Sul PC:
$gst-launch-1.0 pulsesrc device=multiHP.monitor ! audioconvertitore! audio/x-raw, format="(string)S16BE", layout="(string)interleaved", channel=2, rate=44100 ! rtpL16pay! nome della maglietta = t t. ! fare la coda ! udpsink host=%addrpi1 porta=5000 t. ! fare la coda ! udpsink host=%addrpi2 port=5000 t. ! fare la coda ! audioconvertitore! autoaudiosink
Passaggio 3: conclusione
Questo istruibile è solo il primo passo per un progetto completo. Era solo per spiegare il principio. Ora puoi automatizzare creando alcuni script all'avvio di Raspberry Pi e sul PC. Puoi adattare il comando GStreamer a seconda delle tue necessità. Ho personalmente modificato il mio precedente istruttore (BRAND NEW OLD RADIO) per poterlo utilizzare come speaker. C'è un numero infinito di cose da fare per migliorare questo sistema audio multi-room. In particolare, tutti gli altoparlanti non sono sincronizzati, quindi si ha qualche variazione quando si passa da una stanza all'altra.
Spero che proverai a migliorare questo istruibile.
Non esitare a fare domande se hai bisogno di dettagli.
Bravo armeggiare!
Consigliato:
Stanze generiche in spago con cubetti di zucchero: 11 passaggi
Stanze generiche in Twine With Sugarcube: Ciao ciao e benvenuto nel mio tutorial sulla creazione di Wumpus Hunt in Twine con Sugarcube!Twine è uno strumento molto semplice, progettato per creare giochi di avventura testuali! La mia cuginetta preferita ha scelto di fare un gioco con Twine per il suo progetto senior, un
Coltivare più lattuga in meno spazio o Coltivare lattuga nello spazio, (più o meno).: 10 Passaggi
Coltivare più lattuga in meno spazio o… Coltivare lattuga nello spazio, (più o meno): questa è una presentazione professionale al concorso Growing Beyond Earth, Maker, presentata tramite Instructables. Non potrei essere più entusiasta di progettare per la produzione di colture spaziali e di pubblicare il mio primo Instructable. Per iniziare, il concorso ci ha chiesto di
Utilizzo di più di 4 motori - Sovrapposizione di più paramotori: 3 passaggi
Utilizzo di più di 4 motori - Accatastamento di più schermi motore: dispositivo di sostituzione e potenziamento sensoriale vibrotattile instructable (https://www.instructables.com/id/Vibrotactile-Sens…) mostra un modo per costruire un dispositivo che traduce un sensoriale input in stimoli vibratori. Quegli stimoli vibratori sono p
Arduino che controlla più sensori P.I.R sulla stessa scheda: 3 passaggi
Arduino che controlla più sensori PIR sulla stessa scheda: oggi ti dirò come collegare più sensori PIR con un singolo Arduino Bord >qui ho anche usato un modulo relè a 4 canali per alcune funzionalità extra.ARDUINO + modulo relè a 4 canali + sensore 4 PIR (OPPURE puoi usare tanti pin del tuo arduin
Riproduci musica con Arduino!: 5 passaggi (con immagini)
Riproduci musica con Arduino!: In questo tutorial ti mostrerò come suono la musica usando un Arduino UNO e un modulo SD Card. Useremo la comunicazione SPI. Cominciamo