Spisu treści:
Wideo: Odtwarzaj tę samą muzykę w wielu pokojach: 3 kroki
2024 Autor: John Day | [email protected]. Ostatnio zmodyfikowany: 2024-01-30 11:31
Cześć wszystkim, Nie wiem jak wy, ale lubię mieć tę samą muzykę w całym moim mieszkaniu bez zbytniego zwiększania głośności. Po krótkich badaniach nad tym problemem zdecydowałem się skonstruować kilka głośników połączonych przez Wi-Fi z tym samym serwerem muzycznym, aby odtwarzać tę samą muzykę jednocześnie w kilku pokojach, a zwłaszcza w łazience.
System oparty jest na technologii GStreamer, która jest podstawą niesamowitego oprogramowania, takiego jak VLC i głośnika z funkcją Wi-Fi za pomocą Raspberry Pi.
Krok 1: Budowanie głośnika do łazienki
Lista części:
- głośnik odporny na łazienkę
- wzmacniacz 2W (działający na 12v)
- Raspberry Pi Zero (działający na 5v)
- przetwornik cyfrowo-analogowy Pimoroni Phat
- karta SD
- przycisk ON/OFF
- zasilacz 12v + kompatybilna wtyczka
- obniżanie napięcia DC/DC (12 V-> 5 V)
- skrzynka elektryczna
- trochę kabli
Konstrukcja jest dość prosta.
Po stronie elektronicznej postępuj zgodnie z tym schematem ASCII.
- Wzmacniacz z wtyczką DC ON/OFF
- Przycisk ON/OFF obniżający napięcie DC/DC Raspberry Pi
- Głośnik wzmacniacza Raspberry Pi Phat DAC
Od strony mechanicznej wytnij wszystkie potrzebne otwory w skrzynce elektrycznej, włóż wszystko do środka i to wszystko.
Korzystając z tej techniki, możesz stworzyć dowolny rodzaj głośników.
Krok 2: Strona oprogramowania
Cała strona oprogramowania jest oparta na frameworku multimedialnym o otwartym kodzie źródłowym, GStreamer. Użyłem tylko Linuksa, ale istnieje na innym systemie operacyjnym, więc wyobrażam sobie, że wszystko można dostosować do innego systemu operacyjnego.
Na początek musisz zainstalować Raspbian Lite na Pi, PHAT DAC i GStreamer 1.0 z "dobrymi" wtyczkami. Na komputerze używanym jako serwer muzyczny potrzebujesz tego samego GStreamera. Nie będę szczegółowo omawiał tych części, ponieważ inni zrobili to lepiej ode mnie. Ostatnią potrzebną rzeczą jest to, że Pi i serwer muzyczny muszą być połączone z tą samą siecią za pomocą kabla lub Wi-Fi.
Aby sprawdzić, czy GStreamer jest poprawnie zainstalowany, możesz użyć tych wierszy poleceń.
Na głośniku:
$gst-launch-1.0 port udpsrc=5000 caps='aplikacja/x-rtp, media=(ciąg)audio, częstotliwość zegara=(int)44100, nazwa-kodowania=(ciąg)L16, parametry-kodowania=(ciąg)1, kanały=(int)1, payload=(int)96' ! rtpL16 opłać ! audiokonwersja ! autoaudiosink
Na komputerze:
$gst-launch-1.0 audiotestsrc ! audiokonwersja ! audio/x-raw, format="(ciąg)S16BE", layout="(ciąg)przeplatany", kanały=1, szybkość=44100 ! rtpL16zapłać! host udpsink=RASPBERRYPI_IP port=5000
Po umieszczeniu dobrego adresu IP zamiast „RASPBERRYPI_IP” z głośnika powinien słyszeć się sinusoidalny dźwięk. To nie jest coś, co chciałbyś słyszeć przez długi czas, więc nie ustawiaj głośności zbyt głośno.
Wyjaśnienie: komputer generuje dźwięk sinusoidalny za pomocą "audiotestsrc", "audioconvert ! audio/x-raw, format="(string)S16BE", layout="(string)interleaved", channel=1, rate=44100" convert dźwięk w dobrym formacie rozumianym przez „rtpL16pay”, który tworzy pakiety audio i wreszcie „udpsink” wysyła pakiety za pomocą protokołu UDP. Na głośniku jest to samo, ale odwrócone, „udpsrc” odzyskuje strumień audio, de-pakiety „rtpL16depay”, a „audioconvert! autoaudiosink” konwertuje dźwięk do formatu automatycznej karty dźwiękowej i oczywiście go odtwarza.
Więc teraz, gdy podstawowe rzeczy działają, nadszedł czas, aby pójść dalej. Celem jest przechwycenie dźwięku aplikacji w celu przesłania go przez sieć.
- Tworzymy fałszywe wyjście
$pactl load-module moduł-null-sink nazwa_zlewu=multiHP
- Podłączamy wejście do fałszywego wyjścia (wycisza wybraną aplikację (wejście))
$pacmd list-sinks (lista wyjść)
$pacmd list-sink-inputs (lista wejść)
$pacmd move-sink-input %input %output (zastąp %input i %output jedną z odpowiednich list)
- Maksymalnie kładziemy kartę dźwiękową
$pactl zestaw-objętość-zlewu 0 100%
- Testujemy na PC sposób na odzyskanie fałszywego wyjścia (odzyskanie dźwięku)
$gst-launch-1.0 pulsesrc device=multiHP.monitor ! audiokonwersja ! autoaudiosink
Powinieneś ponownie usłyszeć dźwięk wybranej aplikacji.
Świetny! Teraz nadszedł czas na ostatnie wiersze poleceń. Oto wiersze poleceń w przypadku 2 głośników z dźwiękiem odtwarzanym również przez PC.
Na każdym głośniku:
$gst-launch-1.0 port udpsrc=5000 caps='aplikacja/x-rtp, media=(ciąg)audio, częstotliwość zegara=(int)44100, nazwa-kodowania=(ciąg)L16, parametry-kodowania=(ciąg)2, ładowność=(int)96' ! rtpL16 opłać ! audiokonwersja ! autoaudiosink
Na komputerze:
$gst-launch-1.0 pulsesrc device=multiHP.monitor ! audiokonwersja ! audio/x-raw, format="(ciąg)S16BE", layout="(ciąg)przeplatany", kanały=2, szybkość=44100 ! rtpL16zapłać! nazwa trójnika=t t. ! kolejka ! host udpsink=%addrpi1 port=5000 ton. ! kolejka ! host udpsink=%addrpi2 port=5000 ton. ! kolejka ! audiokonwersja ! autoaudiosink
Krok 3: Wniosek
Ta instrukcja to tylko pierwszy krok do pełnego projektu. Miałem tylko wyjaśnić zasadę. Teraz możesz zautomatyzować, tworząc skrypt na rozruchu Raspberry Pi i na komputerze. Możesz dostosować polecenie GStreamer w zależności od potrzeb. Osobiście zmodyfikowałem mój poprzedni instruktaż (BRAND NEW OLD RADIO), aby używać go jako głośnika. Istnieje nieskończona liczba rzeczy do zrobienia, aby ulepszyć ten system nagłośnienia multiroom. W szczególności wszystkie głośniki nie są zsynchronizowane, więc zmiana z jednego pokoju na inny jest nieco zróżnicowana.
Mam nadzieję, że spróbujesz ulepszyć tę instrukcję.
Nie wahaj się zadawać pytań, jeśli potrzebujesz szczegółów.
Dobry majsterkowicz!
Zalecana:
Korzystanie z więcej niż 4 silników - układanie wielu osłon silnika: 3 kroki
Korzystanie z więcej niż 4 silników - układanie wielu osłon silnikowych: instruktażowe urządzenie do wibrodotykowej substytucji i wzmacniania sensorycznego wkład w bodźce wibracyjne. Te bodźce wibracyjne są p
PODŁĄCZENIE WIELU CZUJNIKÓW DO JEDNEGO PORTU SZEREGOWEGO ARDUINO UNO: 4 kroki
PODŁĄCZANIE WIELU CZUJNIKÓW DO JEDNEGO PORTU SZEREGOWEGO ARDUINO UNO: W tym samouczku rozszerzymy pojedynczy port szeregowy Arduino UNO UART (Rx/Tx), aby można było podłączyć wiele czujników Atlas. Rozszerzenie odbywa się za pomocą karty ekspandera portów szeregowych 8:1. Port Arduino jest połączony z ekspanderem po kilku
Odtwarzaj utwory za pomocą Arduino za pomocą ADC do PWM na transformatorze Flyback lub głośniku: 4 kroki
Odtwarzaj utwory z Arduino za pomocą ADC do PWM na transformatorze Flyback lub głośniku: Cześć chłopaki, to druga część mojej kolejnej instrukcji (która była bardzo trudna), Zasadniczo w tym projekcie użyłem ADC i TIMER na moim Arduino do konwertuj sygnał audio na sygnał PWM. Jest to znacznie łatwiejsze niż moja poprzednia Instructa
Odtwarzaj muzykę z Arduino!: 5 kroków (ze zdjęciami)
Odtwarzaj muzykę z Arduino !: W tej instrukcji pokażę, jak odtwarzam muzykę za pomocą Arduino UNO i modułu karty SD. Użyjemy komunikacji SPI. Zaczynajmy
Odtwarzaj pliki MP3 na 70-letnim gramofonie - bez stałych zmian: 3 kroki
Odtwarzaj pliki MP3 na 70-letnim gramofonie - bez trwałych zmian: Zasadniczo ustawiłem połączenie mono między wybranym przez ciebie źródłem plików MP3 lub multimediów, komputerem, kasetą, krótkofalówką i bezpośrednio podłączonym przewodem. do głośnika za pomocą zacisków krokodylkowych.Jak zawsze film instruktażowy/demonstracyjny: PLEASEif