Taula de continguts:
Vídeo: Toca la mateixa música en diverses sales: 3 passos
2024 Autora: John Day | [email protected]. Última modificació: 2024-01-30 08:15
Hola a tothom, No sé vosaltres, però m'agrada tenir la mateixa música a tot el meu apartament sense fer que el so sigui massa fort. Per tant, després d’investigar una mica sobre aquest problema, vaig decidir construir diversos altaveus connectats per wifi al mateix servidor de música per reproduir la mateixa música simultàniament a diverses habitacions i en particular al bany.
El sistema es basa en la tecnologia GStreamer, que és la base d’alguns programes increïbles com VLC i en altaveus amb capacitat wifi mitjançant un Raspberry Pi.
Pas 1: construir un altaveu per al bany
Llista de peces:
- un altaveu a prova de bany
- un amplificador de 2W (treballant en 12v)
- un Raspberry Pi Zero (treballant en 5v)
- un Pimoroni Phat DAC
- una targeta SD
- un botó ON / OFF
- un adaptador de corrent de 12v + un endoll compatible
- un pas DC / DC (12v-> 5v)
- una caixa elèctrica
- alguns cables
La construcció és bastant senzilla.
Al costat electrònic, seguiu aquest diagrama ASCII.
- Amplificador de botó d'endoll i desconnexió de corrent continu
- Botó ON / OFF DC / DC reduït Raspberry Pi
- Altaveu amplificador DAC Raspberry Pi Phat
Pel costat mecànic, talleu tots els forats necessaris a la caixa elèctrica, poseu-hi tot dins i això és tot.
Mitjançant aquesta tècnica, podeu crear tot tipus d’altaveus que vulgueu.
Pas 2: el costat del programari
Tot el vessant del programari es basa en el marc multimèdia de codi obert, GStreamer. Només he utilitzat Linux, però existeix en sistemes operatius diferents, així que imagino que tot es pot adaptar a altres sistemes operatius.
Per començar, heu d’instal·lar Raspbian Lite al Pi, al PHAT DAC i al GStreamer 1.0 amb els connectors “bons”. A l'ordinador utilitzat com a servidor de música, necessiteu el mateix GStreamer. No detallaré aquestes parts perquè altres ho han fet millor que jo. L’últim que cal és que el Pi i el servidor de música hagin d’estar connectats a la mateixa xarxa per cable o wifi.
Per provar si GStreamer està instal·lat correctament, podeu utilitzar aquestes línies d'ordres.
A l’altaveu:
$ gst-launch-1.0 udpsrc port = 5000 caps = 'application / x-rtp, media = (string) audio, clock-rate = (int) 44100, encoding-name = (string) L16, coding-params = (string)) 1, canals = (int) 1, càrrega útil = (int) 96 '! rtpL16depay! audioconverteix! autoaudiosink
Al PC:
$ gst-launch-1.0 audiotestsrc! audioconverteix! audio / x-raw, format = "(string) S16BE", layout = "(string) intercalat", canals = 1, taxa = 44100! rtpL16pay! udpsink host = port RASPBERRYPI_IP = 5000
Després de posar la bona adreça IP en lloc de "RASPBERRYPI_IP", hauríeu d'escoltar un so sinusoïdal a l'altaveu. Això no us agradarà escoltar durant molt de temps, així que no poseu el volum massa fort.
Alguna explicació: el PC produeix el so sinusoïdal mitjançant "audiotestsrc", "audioconvert! Audio / x-raw, format =" (string) S16BE ", layout =" (string) intercalat ", channels = 1, rate = 44100" convert el so en el bon format entès per "rtpL16pay" que crea els paquets d'àudio i finalment "udpsink" envia els paquets mitjançant el protocol UDP. A l'altaveu, és el mateix però invertit, "udpsrc" recupera el flux d'àudio, els paquets "rtpL16depay" i "audioconvert! Autoaudiosink" converteixen el so perquè coincideixi amb el format de la targeta de so automàtica i, per descomptat, el reprodueix.
Així que ara que les coses bàsiques funcionen, és hora d’anar més enllà. L’objectiu és interceptar el so d’una aplicació per enviar-la a través de la xarxa.
- Creem una sortida falsa
$ pactl load-module module-null-sink sink_name = multiHP
- Connectem una entrada a la sortida falsa (silenciem l’aplicació seleccionada (entrada))
$ pacmd list-sinks (llista de sortides)
$ pacmd list-sink-inputs (llista d'entrades)
$ pacmd move-sink-input% input% output (substituïu% input i% output per una de les llistes corresponents)
- Posem la targeta de so al màxim
$ pactl set-sink-volume 0 100%
- Provem al PC la manera de recuperar la sortida falsa (recuperem el so)
$ gst-launch-1.0 pulsesrc device = multiHP.monitor! audioconverteix! autoaudiosink
Heu de tornar a sentir el so de l'aplicació que heu seleccionat.
Genial! Ara és hora d’anar a les últimes línies d’ordres. Aquí teniu les línies d’ordres en el cas de 2 altaveus amb el so que també reprodueix el PC.
En cada altaveus:
$ gst-launch-1.0 udpsrc port = 5000 caps = 'application / x-rtp, media = (string) audio, clock-rate = (int) 44100, encoding-name = (string) L16, coding-params = (string)) 2, càrrega útil = (int) 96 '! rtpL16depay! audioconverteix! autoaudiosink
Al PC:
$ gst-launch-1.0 pulsesrc device = multiHP.monitor! audioconverteix! audio / x-raw, format = "(string) S16BE", layout = "(string) intercalat", canals = 2, taxa = 44100! rtpL16pay! nom del tee = t t. ! cua! udpsink host =% addrpi1 port = 5000 t. ! cua! udpsink host =% addrpi2 port = 5000 t. ! cua! audioconverteix! autoaudiosink
Pas 3: Conclusió
Aquesta instrucció és només el primer pas per a un projecte complet. Només era per explicar el principi. Ara podeu automatitzar fent algun script a l’arrencada de Raspberry Pi i al PC. Podeu adaptar l'ordre GStreamer en funció de les vostres necessitats. Personalment, he modificat la meva antiga ràdio instructiva anterior (per fer-la servir com a altaveu). Hi ha un nombre infinit de coses per fer per millorar aquest sistema de so de diverses habitacions. En particular, tots els altaveus no estan sincronitzats, de manera que teniu alguna variació quan canvieu d'una habitació a una altra.
Espero que proveu de millorar aquesta instrucció.
No dubteu a fer preguntes si necessiteu detalls.
Bon retallador!
Recomanat:
Màquina de pinball Arduino que es juga a si mateixa: 13 passos (amb imatges)
Màquina de pinball Arduino que es juga a si mateixa: " Una màquina de pinball que es juga a si mateixa, no li treu tota la diversió? &Quot; T’escolto preguntar. Potser si no us agraden els robots autònoms, sí. Jo, però, em dedico molt a construir robots que puguin fer coses interessants, i aquest
Tutorial: Com Arduino controla diversos dispositius de la mateixa adreça mitjançant el multiplexor TCA9548A I2C: 3 passos
Tutorial: Com Arduino controla diversos dispositius de la mateixa adreça mitjançant el multiplexor TCA9548A I2C: Descripció: El mòdul de multiplexor TCA9548A I2C permet habilitar la connexió de dispositius amb la mateixa adreça I2C (fins a 8 mateixes adreces I2C) connectades a un microcontrolador. El multiplexor actua com un gatekeeper, transferint les ordres al conjunt seleccionat o
The Unpluginator: caixa inútil que es desconnecta de si mateixa: 4 passos (amb imatges)
El desconnectador: caixa inútil que es desconnecta automàticament: aquest és un exemple de màquina inútil. El seu únic propòsit és desconnectar la seva pròpia font d'alimentació. S'imprimeix en gran part en 3D, amb l'electrònica necessària. Tots els dibuixos i simulacions es van fer a Fusion 360, tota la programació es va fer a Arduino
Música intel·ligent al dormitori i al bany amb Raspberry Pi: integració de diverses habitacions, alarmes, control de botons i domòtica: 7 passos
Música intel·ligent al dormitori i al bany amb Raspberry Pi: integració de multi-sala, alarma, control de botons i domòtica: avui us volem donar dos exemples sobre com podeu utilitzar el Raspberry Pi amb el nostre programari Max2Play per a la domòtica: al bany i al dormitori . Tots dos projectes són similars en què es pot reproduir música d'alta fidelitat de diverses fonts a través de
Targeta fotogràfica de vacances feta a mà que és un regal en si mateixa: 8 passos
Targeta fotogràfica de vacances feta a mà que és un regal en si mateixa: aquest manual us mostrarà com fer un conjunt únic de targetes, cadascuna de les quals pot ser emmarcada pels destinataris un cop finalitzada la temporada de vacances, i encara més fàcil si les doneu un marc de fotos de clip IKEA juntament amb la targeta. Aquestes cartes poden ser g