Spis treści:
Możliwość odtwarzania muzyki w całym domu, w idealnej synchronizacji i z możliwością sterowania za pomocą telefonu, istnieje już od kilku lat – żaden to hit. Często jednak cena czegoś o większych możliwościach niż zwykły głośnik Bluetooth może być zniechęcająca, a znane są też kontrowersje dotyczące zamkniętej natury tych systemów.
Czy możemy zbudować system audio w całym domu używając tylko technologii open-source i naszego ulubionego małego komputera Raspberry Pi? Jasne, że tak! Oto stacja do odtwarzania muzyki, która zapewnia kontrolę opartą na sieci.
Lista zakupów
JustBoom DAC (przetwornik cyfrowo-analogowy) HAT zapewni wysokiej jakości wyjście audio dla projektu. Podkrada on jednak złącze GPIO, które jest potrzebne do zasilania ekranu dotykowego. Na szczęście HAT ma wyprowadzenie GPIO, więc można przylutować dwupinowy header do 5V i GND dla ekranu dotykowego, dzięki czemu cały system może być zasilany przez jedno złącze. Ewentualnie można użyć dwóch zasilaczy. Montujemy DAC HAT na pinach GPIO i zabezpieczamy. Potrzeba śrub 20mm 2.5M do przymocowania HAT do podstawek komputera i kontrolera ekranu. Podłączamy piny 5V i GND ekranu dotykowego do ich odpowiedników na DAC HAT.
Przygotowanie Raspberry Pi OS
Obudowa uniemożliwia dostęp do karty microSD, więc upewniamy się, że mamy za sobą podstawową konfigurację systemu Raspberry Pi OS przed złożeniem. W projekcie będziemy używać Chromium, potrzebujemy więc “standardowego” obrazu systemu operacyjnego z pulpitem (ale nie potrzebujemy zalecanej wersji oprogramowania Recommended Software). Wypalamy obraz za pomocą wybranej metody i łaczymy się z malinką poprzez SSH albo podłączamy mysz i klawiaturę – wybór wedle uznania.
Na koniec, jak zawsze, upewniamy się, że mamy najnowszą wersję wszystkiego za pomocą && sudo apt upgrade.
Umieszczanie w obudowie
Używana obudowa Raspberry Pi 4B nie obsługuje montażu z DAC HAT. Jeśli nie używacie HAT, to możecie pominąć ten krok. W przeciwnym razie ostrożnie usuwamy dwa otwory na śruby mocujące do ściany, a następnie ustawiamy HAT w linii z górnymi otworami wentylacyjnymi i usuwamy wszystkie, które blokują dwa gniazda RCA i gniazdo 3,5 mm przed umieszczeniem ich równo w obudowie. Prosta reguła: mierz dwa razy, ale tnij raz! Plastik jest miękki, więc dość łatwo to zrobić. Gdy wszystko jest już usadowione wygodnie w obudowie, możemy przykręcić ekran dotykowy tak, aby trzymał się stabilnie.
Wyjście DAC
Domyślnie z DAC HAT nie będzie wydobywał się żaden dźwięk. Na szczęście wymagane sterowniki są już zainstalowane i czekają na włączenie. Z wiersza poleceń wykonujemy następujące polecenie:
sudo nano /boot/config.txt
Znajdujemy linię:
dtparam=audio=on
Usuwamy tę linię (lub dodajemy # z przodu), a następnie dodajemy te linie:
dtparam=audio=off
dtoverlay=justboom-dac
lcd_rotate=2
Ta ostatnia linia odwraca wyświetlaną treść w pionie.
Uruchamiamy ponownie Raspberry Pi i z wiersza poleceń testujemy wyjście audio:
aplay /usr/share/sounds/alsa/Front_Center.wav
Powinien uruchomić się spokojny głos mówiący “front center”.
Instalacja Mopidy
Mopidy to serwer muzyczny napisany w języku Python. Jest headless – bezobsługowy, a oznacza to, że nie posiada własnego interfejsu użytkownika, który dodamy później. Jeszcze lepiej, że interfejs Mopidy jest także po polsku. Aby zainstalować Mopidy musimy dodać jego repozytorium do APT. Wykonujemy następujące polecenia, jedno po drugim:
wget -q -O - https://apt.mopidy.com/mopidy.gpg | sudo apt-key add-
sudo wget -q -O /etc/apt/sources.list.d/mopidy.list https://apt.mopidy.com/buster.list
sudo apt update
Teraz zainstalujemy Mopidy i ustawimy jego uprawnienia:
sudo apt install mopidy
sudo adduser mopidy video
Na koniec ustawiamy Mopidy tak, aby uruchamiał się jako usługa w tle przy starcie systemu:
sudo systemctl enable mopidy
Konfiguracja i test Mopidy
Zanim Mopidy będzie mógł być uruchomiony, musimy skonfigurować kilka rzeczy. Domyślne ustawienia są okej, ale jeśli chcemy uzyskać dostęp do interfejsu sieciowego (po zainstalowaniu) z innego urządzenia, będziemy musieli na to zezwolić.
sudo nano /etc/mopidy/mopidy.conf
Plik będzie pusty z wyjątkiem kilku komentarzy. Po bloku z komentarzami dodajemy:
[http]
hostname = 0.0.0.0
[_audio]
output = alsasink
Kasujemy podkreślnik przed “audio”, zapisujemy plik za pomocą CTRL+X, a następnie uruchamiamy Mopidy:
sudo systemctl enable mopidy
W przeglądarce przechodzimy do http://<hostname>:6680/ (zastępujemy <hostname> nazwą naszego Raspberry Pi – domyślnie jest to “raspberrypi.local”). Jeśli wyświetlana jest raczej nudna strona powitalna, wszystko działa dobrze.
Instalacja interfejsu użytkownika i obsługi plików
Mopidy składa się z modułów. Po wyjęciu z pudełka nie potrafi zbyt wiele, ale z kilkoma dodatkami nabiera kolorów. Zainstalujemy Iris, interfejs użytkownika oraz wsparcie dla odtwarzania muzyki przechowywanej w lokalnym systemie. Uruchamiamy komendy:
sudo pip3 install Mopidy-Iris
sudo pip3 install Mopidy-Local
sudo sh -c 'echo "mopidy ALL=NOPASSWD: /usr/local/lib/python3.7/dist-packages/mopidy_iris/system.sh" >> /etc/sudoers’
sudo systemctl restart mopidy
Zostaną zainstalowane moduły Iris i Local, a następnie Iris otrzyma uprawnienia do uruchamiania poleceń Mopidy. Na koniec, restartujemy Mopidy, aby zachować zmiany. W przeglądarce internetowej wchodzimy na adres http://<hostname>:6680/iris/ i podziwiamy nasz nowy interfejs.
Dodawanie muzyki
Nareszcie! Cała instalacja jest teraz gotowa do odtwarzania muzyki, więc pozostaje odpalać. Mopidy obsługuje szeroką gamę formatów, w tym MP3 i FLAC. Folder Music już istnieje w katalogu. Musimy powiedzieć Mopidy, gdzie ma szukać naszych plików. Edytujemy plik konfiguracyjny Mopidy:
sudo nano /etc/mopidy/mopidy.conf
Wprowadzamy:
[local]
media_dir = /home/pi/Music
Restartujemy Mopidy, aby odebrać zmiany w konfiguracji i rozpoczynamy pierwsze skanowanie w poszukiwaniu muzyki:
sudo mopidyctl local scan
Teraz ulubiona muzyka powinna być widoczna w Iris. Uruchamiamy ulubiony utwór i sprawdzamy, jak to nam gra.
Kiosk mode
Aby uruchomić Iris na ekranie dotykowym, możemy sprawić, że Chromium będzie działał w trybie ‘kiosku’ i żadne inne elementy Raspberry Pi OS Desktop nie będą widoczne. Pierwszym krokiem jest zainstalowanie “unclutter'” – to poręczna aplikacja do ukrywania wskaźnika myszy, gdy nie jest używany.
sudo apt install unclutter
Teraz skrypt, który uruchomi Chromium z odpowiednimi ustawieniami:
nano ~/kiosk.sh
Dodajemy kod. Po uruchomieniu umożliwi to ukrywanie kursora, zapobiegnie wyświetlaniu niektórych komunikatów o błędach Chromium, a następnie uruchomi Chromium w trybie kiosku, przechodząc bezpośrednio do strony Iris na pełnym ekranie
Wdrożenie skryptu kiosku
Zanim będziemy mogli użyć skryptu, musi on zostać oznaczony jako wykonywalny:
chmod +x ~/kiosk.sh
Wypróbujemy go uruchamiając ~/kiosk.sh. Jeśli wprowadzamy polecenia przez SSH, używamy zamiast tego tej komendy:
DISPLAY=:0 ~/kiosk.sh
Wszystko jest w porządku, Iris powinien rozpocząć się na pełnym ekranie i być sterowany za pomocą dotyku. Zalecamy, aby przejść do ustawień i włączyć “Szerokie paski przewijania”, aby ułatwić kontrolę za pomocą palców. Możesz również wybrać pomiędzy jasnym i ciemnym motywem, ciemniejszy motyw jest nieco bardziej przyjazny dla oczu, gdy używasz ekranu dotykowego.
Run on boot
Ostatnim krokiem do stworzenia systemu muzycznego jest uruchomienie go przy starcie i przejście od razu w tryb kiosku. Poprosimy o to sam Desktop. Wpisujemy następujące polecenie w wierszu poleceń:
sudo nano /etc/xdg/lxsession/LXDE-pi/autostart
Dodajemy tę linię łącznie ze znakiem ‘@’:
@/home/pi/kiosk.sh
Zapisz plik i uruchom ponownie system. Pojawi się pulpit, a następnie Iris uruchomi się na pełnym ekranie. Twój system muzyczny z ekranem dotykowym jest teraz gotowy do użycia. Możesz kontrolować wszystko za pomocą ekranu dotykowego, przeglądarki internetowej na dowolnym urządzeniu lub smartfonie.
#!/bin/bashunclutter -idle 0.5 -root &
sed -i 's/"exited_cleanly":false/"exited_cleanly":true/' /home/pi/.config/chromium/Default/Preferences
sed -i 's/"exit_type":"Crashed"/"exit_type":"Normal"/' /home/pi/.config/chromium/Default/Preferences
/usr/bin/chromium-browser --noerrdialogs --disable-infobars --kiosk http://127.0.0.1:6680/iris &
Ładujemy muzykę
Jeśli chcesz jeszcze wzbogacić swoją kolekcję, możesz użyć swojego komputera Raspberry Pi do zgrywania płyt CD do formatu FLAC, systemu kompresji bezstratnej. Pliki są duże, ale nie tracą na drobnych szczegółach, które wychwyci czuły słuch. Bardzo łatwy w użyciu ripper to “A Better CD Encoder”, inaczej “abcde”.
sudo apt install abcde
Podłącz napęd CD do portu USB, włóż płytę CD i wprowadź:
abcde -o flac
Abcde przeprowadzi przez cały proces włączając w to automatyczne nadawanie nazw utworom. Umieszczamy katalog wynikowy w katalogu Music i przechodzimy do sekcji Settings w Iris, aby zainicjować ponowne skanowanie.
Jak oceniasz ten wpis blogowy?
Kliknij gwiazdkę, aby go ocenić!
Średnia ocena: 5 / 5. Liczba głosów: 2
Jak dotąd brak głosów! Bądź pierwszą osobą, która oceni ten wpis.
Jedna odpowiedź
Wole logitech media server. Bardziej mnie przekonał