Inhoudsopgave:
2025 Auteur: John Day | [email protected]. Laatst gewijzigd: 2025-01-23 15:01
Hallo iedereen, Ik weet niet hoe het met jullie zit, maar ik vind het leuk om overal in mijn appartement dezelfde muziek te hebben zonder het geluid te hard te zetten. Dus na een beetje onderzoek naar dit probleem, besloot ik om verschillende luidsprekers te bouwen die allemaal via wifi zijn verbonden met dezelfde muziekserver om dezelfde muziek tegelijkertijd af te spelen in verschillende kamers en met name in de badkamer.
Het systeem is gebaseerd op de GStreamer-technologie die de basis is van geweldige software zoals VLC en op een luidspreker met wifi-mogelijkheid met behulp van een Raspberry Pi.
Stap 1: Een luidspreker bouwen voor de badkamer
Onderdelen lijst:
- een badkamerbestendige luidspreker
- een 2W versterker (werkend op 12v)
- een Raspberry Pi Zero (werkend op 5v)
- een Pimoroni Phat DAC
- een SD-kaart
- een AAN/UIT-knop
- een 12v voedingsadapter + een compatibele stekker
- een DC/DC step-down (12v->5v)
- een elektriciteitskast
- sommige kabels
De constructie is vrij eenvoudig.
Volg aan de elektronische kant dit ASCII-diagram.
- DC-stekker AAN/UIT-knop versterker
- AAN/UIT-knop DC/DC step-down Raspberry Pi
- Raspberry Pi Phat DAC-versterkerluidspreker
Aan de mechanische kant, snijd alle benodigde gaten in de elektriciteitskast, stop alles erin en dat is alles.
Met deze techniek kunt u alle soorten luidsprekers maken die u maar wilt.
Stap 2: De softwarekant
Alle software is gebaseerd op het open source multimedia framework, GStreamer. Ik heb alleen Linux gebruikt, maar het bestaat op verschillende besturingssystemen, dus ik kan me voorstellen dat alles kan worden aangepast voor andere besturingssystemen.
Om te beginnen moet je Raspbian Lite installeren op de Pi, de PHAT DAC en de GStreamer 1.0 met de "goede" plug-ins. Op de computer die als muziekserver wordt gebruikt, heb je dezelfde GStreamer nodig. Ik zal die onderdelen niet in detail beschrijven omdat anderen dit beter hebben gedaan dan ik. Het laatste dat nodig is, is dat de Pi en de muziekserver via kabel of wifi met hetzelfde netwerk verbonden moeten zijn.
Om te testen of GStreamer correct is geïnstalleerd, kunt u deze opdrachtregels gebruiken.
Op de luidspreker:
$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, kanalen=(int)1, lading=(int)96' ! rtpL16depay ! audio converteren! autoaudiosink
Op de pc:
$gst-launch-1.0 audiotestsrc ! audio converteren! audio/x-raw, format="(string)S16BE", layout="(string)interleaved", channels=1, rate=44100 ! rtpL16betalen ! udpsink host=RASPBERRYPI_IP-poort=5000
Nadat je het goede IP-adres hebt ingevoerd in plaats van "RASPBERRYPI_IP", zou je een sinusvormig geluid op de luidspreker moeten horen. Dat is niet iets wat je lang wilt horen, dus zet het volume niet te hard.
Enige uitleg: de pc produceert het sinusoïdale geluid met behulp van "audiotestsrc", "audioconvert ! audio/x-raw, format="(string)S16BE", layout="(string)interleaved", channels=1, rate=44100" convert het geluid in het goede formaat dat wordt begrepen door "rtpL16pay" dat de audiopakketten maakt en tenslotte "udpsink" verzendt de pakketten met behulp van het UDP-protocol. Op de luidspreker is het hetzelfde, maar omgekeerd, "udpsrc" herstelt de audiostroom, "rtpL16depay" de-packets en "audioconvert ! autoaudiosink" converteert het geluid naar het formaat van de automatische geluidskaart en speelt het natuurlijk af.
Dus nu de basisdingen werken, is het tijd om verder te gaan. Het doel is om het geluid van een applicatie te onderscheppen om deze door het netwerk te sturen.
- We maken een nep-output
$pactl load-module module-null-sink sink_name=multiHP
- We verbinden een ingang met de nep-uitgang (stil de geselecteerde applicatie (ingang))
$pacmd list-sinks (outputlijst)
$pacmd list-sink-inputs (inputs lijst)
$pacmd move-sink-input %input %output (vervang %input en %output door een van de overeenkomstige lijsten)
- We zetten de geluidskaart op maximum
$pactl set-sink-volume 0 100%
- We testen op de pc de manier om de nep-uitvoer te herstellen (herstel het geluid)
$gst-launch-1.0 pulsesrc device=multiHP.monitor ! audio converteren! autoaudiosink
U zou opnieuw het geluid moeten horen van de toepassing die u hebt geselecteerd.
Super goed! Nu is het tijd om voor de laatste opdrachtregels te gaan. Hier zijn de opdrachtregels in het geval van 2 luidsprekers waarbij het geluid ook door de pc wordt afgespeeld.
Op elke luidspreker:
$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, laadvermogen=(int)96' ! rtpL16depay ! audio converteren! autoaudiosink
Op de pc:
$gst-launch-1.0 pulsesrc device=multiHP.monitor ! audio converteren! audio/x-raw, format="(string)S16BE", layout="(string)interleaved", channels=2, rate=44100 ! rtpL16betalen ! tee naam=t t. ! rij ! udpsink host=%addrpi1 poort=5000 t. ! rij ! udpsink host=%addrpi2 poort=5000 t. ! rij ! audio converteren! autoaudiosink
Stap 3: Conclusie
Dit instructable is slechts de eerste stap naar een compleet project. Het was alleen om het principe uit te leggen. Nu kun je automatiseren door een script te maken op de Raspberry Pi-boot en op de pc. U kunt het GStreamer-commando aanpassen aan uw behoefte. Ik heb persoonlijk mijn vorige instructable (GLOEDNIEUWE OUDE RADIO) aangepast om het als luidspreker te gebruiken. Er is oneindig veel te doen om dit multiroom geluidssysteem te verbeteren. Met name zijn niet alle luidsprekers gesynchroniseerd, dus je hebt wat variatie als je van de ene kamer naar de andere gaat.
Ik hoop dat je dit instructable zult proberen en verbeteren.
Aarzel niet om vragen te stellen als u details nodig heeft.
Goede knutselaar!
Aanbevolen:
Doe-het-zelf audio in meerdere kamers: 15 stappen
DIY Multi-Room Audio: Hey! iedereen Mijn naam is Steve.Vandaag laat ik je zien hoe je een wifi-audiostreamer maakt met heel weinig onderdelen en het is beter dan chrome cast audio en je kunt het gebruiken als opstelling voor meerdere kamers en het kan tot 10 luidsprekers aansluiten Klik hier om te zien
Pratende Arduino - Een MP3 afspelen met Arduino zonder enige module - Mp3-bestand afspelen vanaf Arduino met PCM: 6 stappen
Pratende Arduino | Een MP3 afspelen met Arduino zonder enige module | Mp3-bestand van Arduino afspelen met PCM: in deze instructie leren we hoe we een mp3-bestand met arduino kunnen spelen zonder een audiomodule te gebruiken, hier gaan we de PCM-bibliotheek voor Arduino gebruiken die 16 bit PCM van 8 kHz-frequentie speelt, dus laten we dit doen
Muziek afspelen met Arduino!: 5 stappen (met afbeeldingen)
Muziek afspelen met Arduino!: In deze instructable laat ik je zien hoe ik muziek speel met een Arduino UNO en een SD-kaartmodule. We zullen de SPI-communicatie gebruiken. Laten we beginnen
Muziek reactief licht--Hoe maak je super eenvoudig muziek reactief licht voor het maken van Desktop Awsome.: 5 stappen (met afbeeldingen)
Muziek reactief licht||Hoe maak je super eenvoudig muziek reactief licht voor het maken van een desktop geweldig .: Hey whats up jongens, vandaag zullen we een zeer interessant project bouwen. Vandaag gaan we muziek reactief licht bouwen. De led zal de helderheid veranderen volgens de bas die eigenlijk een laagfrequent audiosignaal is. Het is heel eenvoudig te bouwen. We zullen
Muziek afspelen via een gitaarversterker: 4 stappen
Muziek afspelen via een gitaarversterker: dit is een instructie die u laat zien hoe u muziek kunt afspelen via een gitaarversterker