Índice:
Vídeo: Toque a mesma música em várias salas: 3 etapas
2024 Autor: John Day | [email protected]. Última modificação: 2024-01-30 11:38
Olá a todos, Não sei sobre você, mas gosto de ter a mesma música em todo o meu apartamento sem deixar o som muito alto. Então, após um pouco de pesquisa sobre este problema, decidi construir vários alto-falantes todos conectados por wi-fi ao mesmo servidor de música para tocar a mesma música simultaneamente em vários quartos e em particular no banheiro.
O sistema é baseado na tecnologia GStreamer que é a base de alguns softwares incríveis como o VLC e um alto-falante com capacidade wi-fi usando um Raspberry Pi.
Etapa 1: construir um alto-falante para o banheiro
Lista de peças:
- um alto-falante à prova de banheiro
- um amplificador de 2W (funcionando em 12v)
- um Raspberry Pi Zero (trabalhando em 5v)
- um Pimoroni Phat DAC
- um cartão SD
- um botão ON / OFF
- um adaptador de alimentação 12v + um plugue compatível
- uma redução DC / DC (12v-> 5v)
- uma caixa elétrica
- alguns cabos
A construção é bastante direta.
No lado eletrônico, siga este diagrama ASCII.
- Amplificador de botão liga / desliga com plugue DC
- Botão ON / OFF DC / DC step-down Raspberry Pi
- Alto-falante amplificador Raspberry Pi Phat DAC
Do lado mecânico, corte todos os furos necessários na caixa elétrica, coloque tudo dentro e pronto.
Usando essa técnica, você pode criar todos os tipos de alto-falantes que desejar.
Etapa 2: o lado do software
Todo o lado do software é baseado na estrutura de multimídia de código aberto, GStreamer. Usei apenas Linux, mas ele existe em sistemas operacionais diferentes, então imagino que todos possam ser adaptados para outro sistema operacional.
Para começar, você deve instalar o Raspbian Lite no Pi, o PHAT DAC e o GStreamer 1.0 com os "bons" plug-ins. No computador usado como servidor de música, você precisa do mesmo GStreamer. Não vou detalhar essas partes porque outros fizeram isso melhor do que eu. A última coisa necessária é que o Pi e o servidor de música estejam conectados à mesma rede por cabo ou wi-fi.
Para testar se o GStreamer está instalado corretamente, você pode usar essas linhas de comando.
No alto-falante:
$ 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, canais = (int) 1, carga útil = (int) 96 '! rtpL16depay! audioconvert! autoaudiosink
No PC:
$ gst-launch-1.0 audiotestsrc! audioconvert! audio / x-raw, format = "(string) S16BE", layout = "(string) intercalado", canais = 1, taxa = 44100! rtpL16pay! host udpsink = RASPBERRYPI_IP port = 5000
Depois de colocar o endereço IP correto em vez de "RASPBERRYPI_IP", você deve ouvir um som sinusoidal no alto-falante. Isso não é algo que você vai gostar de ouvir por muito tempo, então não coloque o volume muito alto.
Alguma explicação: o PC produz o som sinusoidal usando "audiotestsrc", "audioconvert! Audio / x-raw, format =" (string) S16BE ", layout =" (string) intercalado ", channels = 1, rate = 44100" convert o som em bom formato entendido por "rtpL16pay" que cria os pacotes de áudio e finalmente "udpsink" envia os pacotes usando o protocolo UDP. No alto-falante, é o mesmo, mas invertido, "udpsrc" recupera o fluxo de áudio, "rtpL16depay" de-packets e "audioconvert! Autoaudiosink" converte o som para corresponder ao formato da placa de som automática e, claro, o reproduz.
Agora que o básico funciona, é hora de ir mais longe. O objetivo é interceptar o som de um aplicativo para enviá-lo pela rede.
- Criamos uma saída falsa
$ pactl módulo de carga módulo-nulo-coletor sink_name = multiHP
- Conectamos uma entrada à saída falsa (silenciamos o aplicativo selecionado (entrada))
$ pacmd list-sinks (lista de saídas)
$ pacmd list-sink-inputs (lista de entradas)
$ pacmd move-sink-input% input% output (substitua% input e% output por uma das listas correspondentes)
- Colocamos a placa de som no máximo
$ pactl set-sink-volume 0 100%
- Testamos no PC a forma de recuperar a saída falsa (recuperar o som)
$ gst-launch-1.0 pulsesrc device = multiHP.monitor! audioconvert! autoaudiosink
Você deve ouvir novamente o som do aplicativo que selecionou.
Excelente! Agora é hora de ir para as linhas de comando finais. Aqui estão as linhas de comando no caso de 2 alto-falantes com o som também reproduzido pelo PC.
Em cada alto-falante:
$ 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, carga útil = (int) 96 '! rtpL16depay! audioconvert! autoaudiosink
No PC:
$ gst-launch-1.0 pulsesrc device = multiHP.monitor! audioconvert! audio / x-raw, format = "(string) S16BE", layout = "(string) intercalado", canais = 2, taxa = 44100! rtpL16pay! nome do T = t t. ! fila ! host udpsink =% addrpi1 porta = 5000 t. ! fila ! host udpsink =% addrpi2 port = 5000 t. ! fila ! audioconvert! autoaudiosink
Etapa 3: Conclusão
Este instrutível é apenas o primeiro passo para um projeto completo. Era apenas para explicar o princípio. Agora você pode automatizar fazendo algum script na inicialização do Raspberry Pi e no PC. Você pode adaptar o comando GStreamer de acordo com sua necessidade. Eu pessoalmente modifiquei meu instrutível anterior (BRAND NEW OLD RADIO) para usá-lo como um alto-falante. Há um número infinito de coisas a fazer para melhorar este sistema de som multi-sala. Em particular, todos os alto-falantes não estão sincronizados, então você tem alguma variação quando muda de uma sala para outra.
Espero que você tente melhorar este instrutível.
Não hesite em fazer perguntas se precisar de detalhes.
Bom mexer!
Recomendado:
Montador de música: Instrumento musical virtual integrado com sensor de toque digitado em bloco: 4 etapas
Music Assembler: Instrumento musical virtual integrado com sensor de toque em bloco: Há muitas pessoas que desejam aprender a tocar um instrumento musical. Infelizmente, alguns deles não o iniciam por causa do alto preço dos instrumentos. Com base nisso, decidimos fazer um sistema de instrumento musical virtual integrado para reduzir o orçamento de início de ne
SilverLight: Monitor ambiental baseado em Arduino para salas de servidores: 3 etapas (com imagens)
SilverLight: Monitor de ambiente baseado em Arduino para salas de servidores: Certa vez, recebi a tarefa de procurar uma sonda ambiental para monitorar a temperatura na sala de servidores da minha empresa. Minha primeira ideia foi: por que não usar um Raspberry PI e um sensor DHT, ele pode ser configurado em menos de uma hora incluindo o sistema operacional
Faça você mesmo em várias salas de áudio: 15 etapas
DIY Multi-Room Audio: Ei! todos Meu nome é Steve. Hoje vou mostrar a vocês como fazer um streamer de áudio Wifi usando muito menos partes e é melhor do que o áudio cast cromado e você pode usá-lo como uma configuração de várias salas e pode conectar até 10 alto-falantes Clique aqui para ver
Três circuitos de sensor de toque + circuito de temporizador de toque: 4 etapas
Três circuitos do sensor de toque + circuito do temporizador de toque: o sensor de toque é um circuito que liga quando detecta o toque nos pinos de toque. Ele funciona em uma base transitória, ou seja, a carga estará LIGADA apenas enquanto o toque for feito nos pinos. Aqui, vou mostrar três maneiras diferentes de fazer um toque
Documento microajustável (não) - Câmera para salas de aula "com poucos recursos": 10 etapas
Documento micro-ajustável (não) - Câmera para salas de aula "com poucos recursos": Olá amigos e colegas educadores, Meu nome é Aamir Fidai e sou professor de matemática. Duas coisas para deixar claro antes de prosseguirmos, eu não sou um engenheiro e este é simplesmente um protótipo de uma tentativa de fornecer professores em cl