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.
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ć polecenieapt-get install mpdMusimy 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.confAby go zedytować wydajemy polecenie (jako root)nano /etc/mpd.confZmienić 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ść 1audio_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ść anybind_to_address "any"Zapisujemy plik i wychodzimy (ctrl+o, ctrl+x)
Teraz restartujemy demona mpdservice mpd restart

GUI YMPD

Instalacja YMPD wymaga zainstalowania dodatkowej biblioteki libmpdclient w wersji minimum 2.0.apt-get install libmpdclientPo instalacji biblioteki możemy pobrać i rozpakować aplikację

wget http://www.ympd.org/downloads/ympd-1.2.3-armhf.tar.bz2tar -xvf ympd-1.2.3-armhf.tar.bz2Aplikację 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 YMPDchromium-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

0 nowych
Jaro070   15 #1 30.07.2015 17:42

@cyryllo

Gdzie robiłeś obudowę i ile to kosztowało?

cyryllo   16 #2 30.07.2015 17:53

@Jaro070: w pracy. Kupiłem tylko sobie filament (plastik). Ciężko mi powiedzieć ile to kosztować będzie ale myślę że normalna usługa to jakieś ~60zł. sam koszt plastiku to jakieś 5zł. Niestety godzino-druk na drukarce 3d jest drogi.

Autor edytował komentarz.
GBM MODERATOR BLOGA  19 #3 30.07.2015 19:57

Świetny pomysł i wykonanie :-)

Kurczę... już myślałem, że mpd spełni mój wymysł, czyli odpalanie muzyki na lokalnym komputerze ze zdalnego serwera, ale lipton... :P

cyryllo   16 #4 30.07.2015 20:00

@GBM: można użyć zdalnej karty dźwiękowej na zdalnym systemie w mpd ;)

GBM MODERATOR BLOGA  19 #5 30.07.2015 20:03

@cyryllo: Hmm... wolałbym lokalnego klienta korzystającego jedynie z zasobów muzycznych na serwerze, niźli sprzętowych :P

cyryllo   16 #6 30.07.2015 20:11

@GBM: to wtedy Ampache lub ownCloud z aplikacją Music (też oparty o Ampache). Korzystałem z tego kiedyś i będę musiał wrócić niedługo ;) Działo to fajnie.

GBM MODERATOR BLOGA  19 #7 30.07.2015 20:14

@cyryllo: Jeszcze kwestia jak sobie radzi z proxy ;) Ale już wystarczająco pomogłeś, że to jest kwestia wyklikania pewnie. Dzięki! :-)

wojtekadams   18 #8 30.07.2015 20:20

Ostatnio coś twoje wpisy to więcej obrazków niż treści... chyba wakacje robią swoje (-:

cyryllo   16 #9 30.07.2015 20:27

@wojtekadams: a co mam aparat więc szaleje ;)

gowain   18 #10 30.07.2015 20:54

Widzę, że dongle do zdjęcia zniknęły :P

wacek   16 #11 30.07.2015 21:42

Ile ty masz tych Banana Pi/PRO ;P
Dlaczego nie Bananian ?

cyryllo   16 #12 30.07.2015 21:51

@wacek: Nie chciało mi se instalować x-ów ;) choć i tak chcę z niego skorzystać przy ekranie 7"
Ile? Hmm mam ich trochę ;)

gowain niom klawiatura już nie była potrzeb@gowain

DexterI9000   9 #13 30.07.2015 22:29

Jak się komuś chce bawić to czemu nie. A jak się nie chce to można kupić sobie przykładowo Yamaha r-n500...

  #14 30.07.2015 23:45

A myslales nad LogitechMediaServer'em? Z niego w raz z kilkoma modulami raspberry lub banana Pi mozna zrobic domowy multiroom:) ja takowego uzywam zainstalowanego na openmediavaulcie i dziala bardzo fajnie.

lordjahu   19 #15 31.07.2015 07:44

@cyryllo przyjmujesz już zamówienia na Twoje cudeńka ? :D

cyryllo   16 #16 31.07.2015 07:52

@DexterI9000: Pozbyłem się starszego amplitunera yamahy bo za dużo miejsca zajmował ;)
@lordjahu to nie MediaMarkt ;)

Cenobith   3 #17 31.07.2015 08:39

@cyryllo: W kwestii estetyki - czy wydruki 3D zawsze wyglądają tak jakby poszarpane raszplą? Nie da się tego jakoś wypolerować lub chociażby doprowadzić do stanu estetycznego matowego?

cyryllo   16 #18 31.07.2015 08:51

@Cenobith: Da się. Są na to sposoby. https://www.youtube.com/watch?v=bcXLJRIKGuQ
Można tez i lekko wyszlifować i pomalować a potem wylakierować.

Autor edytował komentarz.
  #19 31.07.2015 09:22

Można z tego zrobić elektroniczną szafę grającą - jest tylko potrzebny automat wrzutowy na GPIO (jest taki gotowy z funkcją uczenia się monet dla adurino za ok 30€).

edmun   12 #20 31.07.2015 10:27

Fajnie fajnie, gratuluję zacięcia :)
Sam od chyba 4-ech miesięcy nic nie zrobiłem w swoim RaspberryPi. Jak chodzi tak chodzi, choć wkurzam się że za często jednak coś mi w nim nie działa i pomimo dodania wielu skryptów które miałyby "same" naprawić problemy, to zazwyczaj to nie działa i podczas jazdy samochodem pozostaje mi VxConnectBot, 20 znakowe hasło w ssh i polecenie sudo reboot :/

cyryllo   16 #21 31.07.2015 11:06

@edmun: może problemy z zasilaniem? stabilnością? Przeglądałeś logi? Nie przegrzewa się?

cyryllo   16 #22 31.07.2015 11:10

@Dzak (niezalogowany): muszę sprawdzić ;) Kiedyś tam o tym słyszałem ale jakoś mnie wtedy nie zainteresowało.
Heh jest nawet deb ;)

Autor edytował komentarz.
cyryllo   16 #23 31.07.2015 11:12

@Pawel_war (niezalogowany): jakiś link?

ygyfygy   5 #24 01.08.2015 07:22

format "44100:16:2"

ZABIJĘ

cyryllo   16 #25 01.08.2015 15:58

@ygyfygy: ??

ygyfygy   5 #26 01.08.2015 19:00

@cyryllo: powinno być:

format "96000:32:2"

Lepsiejsza jakość

Autor edytował komentarz.
cyryllo   16 #27 01.08.2015 20:09

@ygyfygy: rzeczywiście. Nie zauważyłem ;)

SpaceM7c5   6 #28 01.08.2015 23:30

Bardzo fajny projekt. Brawo

edmun   12 #29 03.08.2015 11:31

@cyryllo: Nie przegrzewa się. Logi przeglądałem. Na forach przejrzałem już tyle różnych pomysłów i teorii że chyba z 120 czysto roboczo godzin spędziłem nad takimi problemami i wciąż nie doszedłem do żadnego rozwiązania.
Punkt pierwszy:
przy dłuższym i mocniejszym obciążeniu łącza i portów USB, demony lubią mi się wysypać. Nie jest to wina zasilaczy, bo na zasilacze, rozgałęźniki i okablowanie wydałem już trzykrotność Raspberry Pi. (sprawdzałem także stabilność napięcia na czujnikach T1 i T2).
Punkt drugi: po kilku dniach bardzo często zauważam, że zamontowane dyski USB wciąż są zamontowane, ale są puste (wystarczy zrobić unmount i mount). Sprawdziłem wiele i wygląda na jakieś zarządzanie energią wbudowane w "dyski" ????. Nigdy o czymś takim nie słyszałem, a już jestem tak zmęczony poszukiwaniem odpowiedzi na to :/ Ostatnio już się wkurzyłem i napisałem proste skrypty które po prostu sprawdzają czy istnieje folder na dysku, a jeśli nie, to zrób unmount i mount i wyślij mi smsa o zdarzeniu. Przetestowałem to chyba z 40 razy i pięknie działa, a zostawiłem Raspberry na miesiąc, siedzę nagle w Irlandii czy Niemczech, odpalam dyski sieciowe i są puste. Muszę odpalićs ssh, zrobić reboota albo umount/mount i mam z powrotem dostęp. Smsa brak. Logi nie wskazują żeby skrypt zapisał gdziekolwiek wpis że był brak dostępów do folderów. Paranoja jakaś. Ale takie życie geeka czyż nie ? :D

zypolit   3 #30 28.08.2015 14:27

Tutaj była użyta ta wersja - https://www.ematador.pl/pl/c/Banana-Pi/217? Ewentualnie czy istnieją jakieś lepsze?

Glider80   2 #31 17.11.2015 14:33

@cyryllo: Mam pytanie z nieco innej beczki. Czym wzmocnić audio na wyjściu BananaPi? Nie mam gotowego wzmacniacza, jedynie głośniki 2x40W RMS (podobno), 4 Ohm. Czy taki wzmacniacz się nada?
https://sklep.avt.pl/avt1833.html
Nie zależy mi na super jakości dźwięku, aby też nie iść w koszty.

cyryllo   16 #32 17.11.2015 16:00

@Glider80: Powinien dać rady ale ja bym brał np ten https://sklep.avt.pl/avt1594.html
Ja po prostu kupiłem aktywne monitory studyjne i mam do nich podpięty banana pi

Glider80   2 #33 17.11.2015 23:27

@cyryllo: Dzięki, faktycznie ten wzmacniacz zacniejszy :-)
Aaa to teraz zajarzyłem dlaczego nie było wzmianki o wzmacniaczu w projekcie