Strona używa cookies (ciasteczek). Dowiedz się więcej o celu ich używania i zmianach ustawień. Korzystając ze strony wyrażasz zgodę na używanie cookies, zgodnie z aktualnymi ustawieniami przeglądarki.    X

Music Box z użyciem Banana Pi — BananaHome

Projekt BananaHome wpadł mi do głowy jakiś czas temu, gdy słuchałem muzyki na komputerze stacjonarnym, a ze względu, że pozbyłem się dużego amplitunera, który mi zawadzał i słuchałem muzyki już tylko na kompie na aktywnych monitorach studyjnych, które podłączone są do miksera USB. Zaczęło mnie to irytować trochę, że aby posłuchać muzyki muszę uruchamiać komputer lub podpinać specjalnie smartfona lub tablet do miksera. Mając 5 calowy ekran LCD z dotykiem i Banana Pi postanowiłem zbudować sobie prosty odtwarzacz muzyki, którym będę mógł sterować za pomocą dotykowego ekranu jak również zdalnie.

Obudowa

Do projektu potrzebowałem obudowę w której mógł bym schować Banana Pi oraz ekran i aby wyglądało to w miarę schludnie. Jako że mam dostęp do drukarki 3d postanowiłem zaprojektować obudowę samemu. Warto też dodać, że projekt tej obudowy był moim pierwszym projektem 3D (warto uczyć się modelowania 3d na konkretnym projekcie), który wykonałem i wydrukowałem sam. Projekt powstał oczywiście w bezpłatnej aplikacji DesignSpark Mechanical.

Pierwsza wersja obudowy była nie do końca przemyślana. Źle wymierzyłem otwory montażowe, nie wyprowadziłem złącza zasilania oraz źle przemyślałem kratkę wentylacyjną odprowadzającą ciepłe powietrze.

r   e   k   l   a   m   a

Po pierwszych przymiarkach jakoś dało się to złożyć w całość. Ale trzeba było dopracować projekt. Po wprowadzeniu usprawnień i kilku testowych wydrukach udał mi się ukończyć obudowę i uznać ją za zakończoną.

W końcowej wersji doszła dodatkowa ramka, która trzyma ekran LCD w obudowie (w pierwszej wersji ekran lekko się ruszał) poprawiłem otwory oraz obniżyłem znacząco obudowę. Dodatkowo dodałem otwory montażowe na ścianę oraz wycięcie z tyłu ściany jeśli chciałbym np. zamontować obudowę na puszkę pod tynkową z elektroniką.

Plik obudowy dla 5" LCD i Banana Pi do wydruku można pobrać z mojego konta na thingiverse.com

System

Jako systemu bazowego użyłem Raspbiana dla Banana Pi aby mieć już zainstalowany pulpit oraz podstawowe narzędzia m.in. do konfiguracji WiFi. Odinstalowałem trochę niepotrzebnych programów oraz dostosowałem sam pulpit i skonfigurowałem wygaszacz ekranu.

Odtwarzacz i nakładka GUI

Jako odtwarzacza użyłem linuksowego MPD oraz nakładki YMPD napisanej w języku C. YMPD pozwala na sterowanie programem MPD z poziomu przeglądarki www.

Instalacja i konfiguracja MPD

Instalacja aplikacji MPD jest prosta i wystarczy wykonać polecenie

apt-get install mpd

Musimy się upewnić czy mamy również zainstalowany pakiet alsa-utils (jest on już domyślnie zainstalowany w Raspbianie)
Po instalacji bierzemy się za konfigurowanie. Plik konfiguracyjny znajduje się w /etc/mpd.conf
Aby go zedytować wydajemy polecenie (jako root)

nano /etc/mpd.conf

Zmienić powinniśmy kilka linijek.
Pierwszą zmienną jest music_directory, która posiada adres katalogu z naszą muzyką. Ja użyłem katalogu udostępnionego przez sambę z mojego serwera NAS zamontowanego na BananaHome.

#music_directory                "/var/lib/mpd/music # domyślna lokalizacja"
music_directory                "/music # zamontowany katalog"

Montowanie odbywa się automatycznie z pliku /etc/fstab

//192.168.1.12/Dokumenty/Muzyka/Cyryl/ /music cifs username=uzytkowniksamby,password=haslo,uid=mpd,file_mode=0644,dir_mode=0755,iocharset=utf8 0 0

Jeśli nie macie plików na zdalnym urządzeniu wystarczy, że skopiujecie swoje pliki muzyczne do katalogu /var/lib/mpd/music

Kolejno musimy skonfigurować nasza kartę muzyczną.
Odszukujemy

audio_output {
        type            "alsa"
        name            "My ALSA Device"

i zmieniamy tylko mixer_index na wartość 1

audio_output {
        type            "alsa"
        name            "My ALSA Device"
        device          "hw:0,0"        # optional
        format          "44100:16:2"    # optional
        mixer_device    "default"       # optional
        mixer_control   "PCM"           # optional
        mixer_index     "1"             # optional

następnie usuwamy # przed wpisem mixer_type

mixer_type                      "software"

na końcu jeśli chcemy sterować MPD np przez klienta na smartfonie musimy ustawic opcję bind_to_address na wartość any

bind_to_address          "any"

Zapisujemy plik i wychodzimy (ctrl+o, ctrl+x)
Teraz restartujemy demona mpd

service mpd restart

GUI YMPD

Instalacja YMPD wymaga zainstalowania dodatkowej biblioteki libmpdclient w wersji minimum 2.0.

apt-get install libmpdclient

Po instalacji biblioteki możemy pobrać i rozpakować aplikację

wget http://www.ympd.org/downloads/ympd-1.2.3-armhf.tar.bz2

tar -xvf ympd-1.2.3-armhf.tar.bz2

Aplikację uruchamiamy jako root za pomocą polecenia
./ympd --webport 8080
Teraz możemy wejść na przeglądarce wpisując adres ip:8080. Naszym oczom ukaże sie interfejs YMPD.

Interfejs aplikacji nie wyróżnia się zbytnio od konkurencji, jest przejrzysty i prosty. Nie ma za dużo możliwości konfiguracyjnych, ale spełnia swoje zadanie w 100%. Jedynie warto było by przystosować nieznacznie interfejs dla mniejszych ekranów głównie przyciski (na szczęście dostępne są źródła programu). Sam interfejs przystosowuje się dynamicznie do wielkości okna co uważam za duży plus. Przy uruchamianiu systemu przeglądarką Chromium uruchamiana jest w trybie kiosku z adresem YMPD

chromium-browser --kiosk http://localhost:8080

Poniżej przedstawiam filmik jak wygląda interfejs YMPD.

Nie tylko muzyka

Jak niektórzy zauważyli na zdjęciu powyżej, projektuję menu z opcjami do wyboru. Zakładam że projekt oprócz odtwarzania muzyki pozwoli na sterowanie zasilaniem oraz wyświetlaniem informacji z czujników aby na końcu stać się inteligentnym kontrolerem domu. Wycięcie w tylnej ściance pozwoli na zamontowanie obudowy np. na puszkę lub otwór w ścianie w której znajdować się będą elementy sterujące.

5" to mało!

Niektórzy mogą powiedzieć, że ekran 5 calowy może być za mały i niewygodny, dlatego przygotowałem również projekt obudowy dla ekranu 7 calowego w którym oprócz samego ekranu i tym razem mikrokomputera Banana PRO będzie można zmieścić kilka modułów a nawet upchać dysk 2,5 calowy.

Sam projekt obudowy jest skończony. Zaprojektować muszę tylko elementy montażowe dla dysku, oraz potrzebnych modułów, które będzie można przykręcić do gotowych otworów w obudowie.

Plik obudowy dla 7" LCD i Banana PRO do wydruku można pobrać z mojego konta na thingiverse.com

Dalsza część pracy nad projektem czyli części inteligentnego domu zamierzam kontynuować po zakończeniu pozostałych projektów (Gimli, maszyny do gier oraz frezarki PCB ). Myślę nad użyciem gotowego oprogramowania domoticz lub napisania swojego panelu. Projekt jest rozwojowy i wszystko wyklaruje się z czasem.
Być może ktoś ma jakiś pomysł co można by było wprowadzić na tego typu urządzenie.

Obecnie projekt spełnia moje potrzeby. W każdej chwili mogę posłuchać sobie muzyki bez uruchamiania dodatkowych urządzeń i o to chodziło ;)
 

linux sprzęt oprogramowanie

Komentarze