Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

Stacjonarny odtwarzacz strumieni shoutcast

omen_s 21 Lut 2009 13:12 12301 17
  • Stacjonarny odtwarzacz strumieni shoutcast

    Pewnego wrześniowego wieczoru zrodził się pomysł aby zrobić urządzenie odtwarzające internetowe radia. Jako że w lokalnych rozgłośniach cały czas te same nagrania i nie dało się tego już słuchać, dość szybko zacząłem kompletować potrzebne rzeczy.


    Najpierw zakupiony został terminal firmy Neoware, 128MB RAM i pamięć DOM 1GB zastępującą dysk.Na terminalu zagościł Debian Lenny 5.0, nie obyło się oczywiście bez drobnych komplikacji ale dało radę zmusić terminal i system do współpracy. Reszta elementów była kupowana wraz z postępami w budowie.

    Zdaję sobie sprawę z tego że takie urządzenie można wykonać na wiele sposobów i znacznie prościej ale po przemyśleniach uznałem że to rozwiązanie będzie dla mnie najlepsze. Założenia były takie, że przedni panel będzie wykonany z wygiętej pleksy 3mm i w nim zostaną umieszczone 3 wyświetlacze LCD 2x16 znaków, później doszedł także odbiornik podczerwieni do pilota. Środkowy wyświetlacz miał pokazywać nazwę utworu oraz nazwę stacji, a boczne miały robić jako analizatory widma (którego projekt jest także na elektrodzie). Wszystkie informacje miały być przesyłane poprzez port szeregowy. Co z tego wynikło ? Zapraszam do obejrzenia zdjęć:

    Przy pomocy wiertarki i tarników zaczął powstawać przedni panel:
    Stacjonarny odtwarzacz strumieni shoutcastStacjonarny odtwarzacz strumieni shoutcastStacjonarny odtwarzacz strumieni shoutcastStacjonarny odtwarzacz strumieni shoutcast





    Następnie było kilka podejść do przedniego panelu z pleksy jakąś giętarką made by allegro :wink: , W końcu wynik był do zaakceptowania.
    Stacjonarny odtwarzacz strumieni shoutcastStacjonarny odtwarzacz strumieni shoutcastStacjonarny odtwarzacz strumieni shoutcastStacjonarny odtwarzacz strumieni shoutcast

    Nadszedł czas na zaprojektowanie płytki na której miały zmieścić się 2 analizatory widma oraz atmega z MAX202CSE do komunikacji z terminalem i sterowania środkowym wyświetlaczem. Płytki wykonane w firmie Gama.
    Stacjonarny odtwarzacz strumieni shoutcastStacjonarny odtwarzacz strumieni shoutcastStacjonarny odtwarzacz strumieni shoutcastStacjonarny odtwarzacz strumieni shoutcast

    Po skompletowaniu części rozpoczął się montaż przedniego panelu.
    Stacjonarny odtwarzacz strumieni shoutcastStacjonarny odtwarzacz strumieni shoutcastStacjonarny odtwarzacz strumieni shoutcastStacjonarny odtwarzacz strumieni shoutcast
    Stacjonarny odtwarzacz strumieni shoutcastStacjonarny odtwarzacz strumieni shoutcastStacjonarny odtwarzacz strumieni shoutcastStacjonarny odtwarzacz strumieni shoutcast
    Stacjonarny odtwarzacz strumieni shoutcastStacjonarny odtwarzacz strumieni shoutcastStacjonarny odtwarzacz strumieni shoutcastStacjonarny odtwarzacz strumieni shoutcast

    Ponieważ zintegrowana karta muzyczna nie posiadała właściwie żadnych tonów niskich, a średnich też nie było za bardzo słychać, w wolnym gnieździe PCI zagościł Sound Blaster Live 5.1. Karta bije na głowę tą zintegrowaną. Jedno z wyjść owej karty posłużyło do sterowania analizatorów.
    Stacjonarny odtwarzacz strumieni shoutcastStacjonarny odtwarzacz strumieni shoutcastStacjonarny odtwarzacz strumieni shoutcast

    Nie chciałem aby owe radio posiadało coś takiego jak stand-by zamontowałem z tyłu włącznik, pod który trzeba było oczywiście zrobić miejsce wycinając kawałek blaszki na której były wyjścia zintegrowanej karty dźwiękowej. Żeby potem nie było to na trzecim wyprowadzeniu włącznika jest już założona koszulka :wink: widać to potem na innych zdjęciach.
    Stacjonarny odtwarzacz strumieni shoutcastStacjonarny odtwarzacz strumieni shoutcastStacjonarny odtwarzacz strumieni shoutcast

    Przedni panel podczas pisania programów na mikrokontrolerze i na debianie. Oba programy pisane w C (były to moje początki z C ).
    Stacjonarny odtwarzacz strumieni shoutcast

    Testy, testy, testy
    Stacjonarny odtwarzacz strumieni shoutcastStacjonarny odtwarzacz strumieni shoutcast

    Okazało się że porty com nie chcą współpracować więc kupiłem przejściówkę z USB na COM i prace ruszyły z miejsca.
    Stacjonarny odtwarzacz strumieni shoutcastStacjonarny odtwarzacz strumieni shoutcastStacjonarny odtwarzacz strumieni shoutcastStacjonarny odtwarzacz strumieni shoutcast

    Programy zaczynają powoli ze sobą współpracować. Nadal poprawnie nie działa wyświetlanie nazwy utworu i stacji. Dział za to regulacja głośności, tonów wysokich i niskich.
    Stacjonarny odtwarzacz strumieni shoutcastStacjonarny odtwarzacz strumieni shoutcastStacjonarny odtwarzacz strumieni shoutcastStacjonarny odtwarzacz strumieni shoutcast

    Playlista została podzielona na kanały tematyczne. Kanał zmieniamy przyciskami na pilocie (ch-, ch+),a przycisk ch wyświetla nazwę aktualnego kanału. Po zmianie kanału zostają wczytane odpowiednie pozycje do playlisty.
    Stacjonarny odtwarzacz strumieni shoutcastStacjonarny odtwarzacz strumieni shoutcast

    Coś ruszyło :wink:
    Stacjonarny odtwarzacz strumieni shoutcastStacjonarny odtwarzacz strumieni shoutcastStacjonarny odtwarzacz strumieni shoutcastStacjonarny odtwarzacz strumieni shoutcast

    Płytka wielkości płytki od wyświetlacza lcd 2x16 znaków na której są upchnięte 2 analizatory widma, a z drugiej strony kolejna atmega8 z max'em. Całość w SMD (pierwsza moja płytka w SMD) na chwile przed zamontowaniem wewnątrz terminalu.
    Stacjonarny odtwarzacz strumieni shoutcastStacjonarny odtwarzacz strumieni shoutcastStacjonarny odtwarzacz strumieni shoutcastStacjonarny odtwarzacz strumieni shoutcast
    Stacjonarny odtwarzacz strumieni shoutcastStacjonarny odtwarzacz strumieni shoutcastStacjonarny odtwarzacz strumieni shoutcastStacjonarny odtwarzacz strumieni shoutcast

    Obudowa została pomalowana proszkowo na kolor czarny.
    Stacjonarny odtwarzacz strumieni shoutcastStacjonarny odtwarzacz strumieni shoutcastStacjonarny odtwarzacz strumieni shoutcastStacjonarny odtwarzacz strumieni shoutcast

    Jeszcze co do debiana. Jest na nim zainstalowane ssh przez które zmieniam playliste, oraz program MPD+MPC zajmujący się właściwym odtwarzaniem stacji. Głośność regulowana jest poprzez MPC natomiast regulacja tonów poprzez amixer z odpowiednimi parametrami. Reszta ustawiona jest w mikserze alsy.

    Całość spełnia początkowe założenia. Kosztów dokładnie nie liczyłem ale przekraczają koszt gotowego rozwiązania dostępnego w sklepach.


    Fajne!
  • #2 21 Lut 2009 14:56
    lorak17
    Poziom 15  

    Jestem pod dużym wrażeniem, rzadko takie projekty ostatnio się tutaj pojawiają. Wszystko dopracowane do niemalże perfekcji.

    Wiadomo dało by radę to zrobić znacznie prościej ale już bez systemu operacyjnego. Widzę że jesteś zwolennikiem Linux-a pod każdą postacią.

    Jak dla mnie trochę urządzenie się marnuje jak na funkcję tylko radia, no i oczywiście troszkę spore, chyba że pasuje Ci do reszty deck-ów jako dodatkowy segment.

    Swoją drogą radio internetowe w takim wydaniu jest fajną sprawą.

    PS Jak wykonałeś analizatory widma ??? Czy jest to cyfrowa analiza FFT coś jak z projektu Elma Chana ??? Interesował by mnie wykonanie czegoś takiego.

  • #3 21 Lut 2009 15:46
    krzycho123
    Poziom 31  

    Jestem pod ogromnym wrażeniem , normalnie profesjonalna robota no może poza gąszczem kabelków ;)
    Też chętnie bym widział takie urządzonko u siebie , tyle że pastawił bym je na platformie ATOM , dźwięk wypuścił po spdifie lub toslinku , dał jeden EQ a drugi do napisów , a oba podejrzewam że dałoby się opanować dzięki SmartieLCD .
    Tyle że mam HTPC który jest podpięty do sieci a zarządza nim MediaPortal :)

  • #4 21 Lut 2009 18:37
    manekinen
    Poziom 29  

    Oooo stary, piękną rzecz zmajstrowałeś. Gratuluje wytrwałości przy tak dużym i skomplikowanym projekcie. Wykonanie też przednie, szkoda że jakość fotek tragiczna bo chętnie bym pooglądał. Najlepsze jest to że nie trzeba włączać prądożernego PC żeby posłuchać muzyki, a ja bardzo często słucham z shoutcasta i jest to rozwiązanie niemal że idealne (niemal, bo dobry by był duży graficzny wyświetlacz). No i ten znajomo wyglądający analizator :wink:
    Pozdrawiam.

  • #5 21 Lut 2009 18:41
    omen_s
    Poziom 19  

    Wiedziałem że ktoś wypomni te kabelki. Są wykonane ze skrętki komputerowej typu drut więc nie układają się zbyt dobrze a osobiście mi to nie przeszkadza. Wolę żeby były luźno w niż je jakoś ugniatać. Pod kartą dźwiękową jest akurat tyle miejsca że te kabelki się nie przemieszczają.

    Co do analizatora to napisałem że projekt jest na elektrodzie : Link oraz Link

    Wielkość całości mi dopowiada. Jest nie za duże i nie za małe :wink: To samo można uzyskać np na którymś ARM jednak jak na razie dobrze nie zacząłem jeszcze z AVR. Na pamięci DOM jest jeszcze 380MB wolnego miejsca więc niedługo prawdopodobnie zagości tam SAMBA i dysk na USB. W tej chwili całość nie zajmuje więcej niż 42% czasu procesora.

    Lepsze fotki będą za jakiś czas, ale tylko po otwarciu obudowy bo nie będę demontować już nic :wink:

    Manekinen co byś pokazywał na graficznym LCD ? Mi do szczęścia wystarcza pilot ,nazwa utworu i stacji :wink:

  • #6 21 Lut 2009 18:53
    pidpawel
    Red. Komputery FAQ

    Hehe no fajnie ;P A może pokusisz się o serwer audio? Np pulseaudio - działa całkiem spoko - testowałem i można sobie z laptopka, z serwera i wszystkiego co się rusza dźwięk wysyłać, a do tego z każdej jednostki dokonywać regulacji każdego źródła.

  • #7 21 Lut 2009 22:43
    Mamut
    Poziom 17  

    Rozumiem, że ten DOM to Disk On Module? To jest jakiś moduł z pamięcią flash na ATA? Jak rozwiązałeś kwestię zapisu danych (swap, jakieś pliki tymczasowe) na tym dysku?

  • #8 21 Lut 2009 23:04
    omen_s
    Poziom 19  

    Nad serwerem audio nie myślałem ponieważ projekt powstał tak właściwie żeby mieć możliwość odtwarzania radia bez potrzeby ingerencji w to innym komputerem. Jako dodatek mógłby być gdyby nie to, że każdy mój komputer jest podłączony do wzmacniacza więc takie coś w tej chwili nie jest mi za bardzo potrzebne. MPD też jest serwerem, a MPC klientem więc można to wykorzystać :wink:

    Tak jest to Disk On Module Wgląda jak większa wtyczka na ATA. W systemie jest wykrywany jako normalny dysk i nie potrzeba nic z tym kombinować. DOM to nie CF więc swap może być normalnie na dysku. U mnie wynosi on 64MB ale jeszcze nie zauważyłem żeby kiedykolwiek system coś na nim zapisywał. Jest 128MB Ram a system podczas normalnej pracy zajmuje do 15MB (odtwarzanie radia),

  • #9 21 Lut 2009 23:18
    Mamut
    Poziom 17  

    link do wikipedii
    A jednak jest to pamięć flash. Powinieneś pomyśleć nad zminimalizowaniem cykli zapisu. Wbrew pozorom linux zapisuje bardzo dużo, już podczas rozruchu przeprowadza dość dużo operacji (chociażby zapisanie zamount'owanych partycji/dysków do pliku mtab). Bardzo dobrym rozwiązaniem jest system plików JFFS2, stworzony specjalnie do pamięci typu flash.

  • #10 21 Lut 2009 23:57
    DJ Max
    Poziom 30  

    Wszystko fajnie, cenię wkład pracy przy tworzeniu tego urządzenia, a właściwie składaniu go...

    Szkoda że w dzisiejszych czasach DIY to właśnie składanie gotowych klocków - dobrze że składania lego nie nazywa się modelarstwem...

    Pytam, jaka celowość budowy urządzenia? Radia internetowe nadają w niskiej jakości... Tym bardziej nie rozumiem też powodu wsadzenia SB. To i tak nie będzie dobry dźwięk.

    Po co 2 analizatory widma?

    Dlaczego nie pokusiłeś się o wyświetlacze VTD?

    W jaki sposób dostraja się radio?

  • #11 22 Lut 2009 00:18
    omen_s
    Poziom 19  

    Masz rację. Nie wiem dlaczego myślałem, że to to samo co dyski SSD. Skoro czytamy już wikipedie to :

    Cytat:
    Wady

    * Wszystkie węzły muszą być przeskanowane w czasie montowania. Ten proces jest dość wolny, co staje się coraz większym problemem, ponieważ urządzenia flash mają coraz większe pojemności .
    * Zapisywanie wielu małych bloków z danymi może doprowadzić do tego, że zajmą one więcej miejsca na nośniku, niż w przypadku, gdyby algorytmy kompresji nie były stosowane. Programy powinny w związku z tym używać przy zapisie dużych buforów.
    * Nie można stwierdzić, ile dokładnie wolnej przestrzeni znajduje się na urządzeniu; zależy to zarówno od stopnia kompresji danych, jak i kolejności ich zapisu.

    Nie chcę czekać 5 minut od włączenia zanim się uruchomi. W tym momencie i tak trwa to już zbyt długo. Mimo wszystko będę musiał spróbować.

    SB leżał wolny więc go wykorzystałem. Jakośćradia nadającego strumień mp3 128kbps jest dla mnie wystarczająca. AAC już odpada. W radiach internetowych posiadają chociaż większe zbiory muzyki niż wszystkie polskie rozgłośnie, które przez cały dzień puszczają 10 piosenek, których nie idzie słuchać no ale przecież piosenkarze kreowani są usilnie na wielkie gwiazdy. Jakie to wszystko jest sztuczne. Nie lubię tego więc normalnego radia nie słucham. Zawsze podobały mi się analizatory widma więc postanowiłem zrobić osobne dla każdego kanału. Przód bardziej mi się podoba niż gdyby był tylko 1 wyświetlacz. Lubię gdy pewne rzeczy są rozmieszczone symetrycznie więc 1 analizatora bym nie robił. Wiem że one akurat nie mają za dużo wspólnego z dokładnością no ale zawsze jest jakaś namiastka analizatora widma. VFD nie przypadły mi do gustu, chciałem także aby wszystkie wyświetlacze były w tym samym kolorze.
    Co do dostrajania to na dysku znajduje się plik w którym są zapisane poszczególne adresy, po uruchomieniu zostaje on odczytany przez program resztą sterujemy pilotem.

  • #12 22 Lut 2009 00:53
    manekinen
    Poziom 29  

    omen_s napisał:
    Manekinen co byś pokazywał na graficznym LCD ? Mi do szczęścia wystarcza pilot ,nazwa utworu i stacji :wink:

    Jakiś prosty graficzny interfejs, z naciskiem na prosty. A przede wszystkim wygodna lista stacji, na takim wyświetlaczu wszystko jak na dłoni i nie trzeba by się skupiać na przewijaniu, szukaniu ulubionej itp.
    A co do jakości shoutcastów, do zwykłego posłuchania są wystarczające. Wiele z nich nadaje już w 192kbps, a przecież nie będziemy słuchać Vivaldiego w wygodnym fotelu i delektować się dźwiękiem. To ma po prostu grać :)
    DJ Max - chyba chodzi ci o VFD? Wyświetlacze rewelacyjne i prezentowały by się bardzo dobrze w takim urządzeniu... ale ich cena.

  • #13 22 Lut 2009 12:55
    vankonrado
    Poziom 15  

    Witam!
    Ja chciałbym zapytać (sam myślę o stacjonarnym odtwarzaczu mp3 na debianie) w jaki sposób połączyłeś całośc z obsługą pilota i lcd? Czy jest to standard czyli lirc i lcd4linux(lub podobne) czy zająłeś się samodzielnym napisaniem programu obsługującego lcd i odbiornik IR? Czy pozostawiłeś możliwość podłączenia klawiatury i monitora do terminala czy jedynie ssh?

  • #14 23 Lut 2009 00:06
    omen_s
    Poziom 19  

    Obsługą pilota zajmuje się mikrokontroler znajdujący się na płytce z analizatorami i sterujący środkowym wyświetlaczem LCD. Jeśli układ odbierze kod przycisku to wysyła go przez port com do komputera a resztę robi program w systemie. Odbieranie kodu przycisku jest zrobione na przerwaniu więc nie koliduje z wyświetlaniem danych na LCD. Nazwa utworu przesuwa się co ok 1/3 sekundy, a nazwa stacji co ok 2/3 sekundy więc mikroprocesor ma sporo czasu na to. Program powstał w AVR Studio przy użyciu bibliotek sterujących LCD dostępnych w internecie natomiast program do dekodowania sygnału pilota powstał przy pomocy osób z działu mikrokontrolery AVR, gdzie także się okazało że pilot nadaje w standardzie NEC. Z tyłu pozostały wszystkie gniazda więc można bez problemów podłączyć monitor czy klawiaturę, a ssh jest właśnie po to żeby nie trzeba było ich podłączać i za każdym razem przestawiać radio skoro i tak komputery są połączone poprzez LAN.

  • #15 23 Lut 2009 19:45
    BANANvanDYK
    Poziom 38  

    Interesująca konstrukcja.
    Zastanawia mnie jaką moc pobiera cały ten komputer. Jaki ma on procesor?
    Jeszcze jedno. Baza adresów stacji radiowych jest automatycznie akutalizowana z internetu (jak np. Winamp Library) czy musisz edytować plik z adresami i to np. tylko w swoim ulubionym gatunku muzycznym?

  • #16 28 Lut 2009 14:15
    lamator
    Poziom 12  

    Bardzo ladna i zaawansowana konstrukcja :). Do zastapienia skretki polecam kabel tasmowy. Mozna go kupic za stosunkowo niewielkie pieniadze (9zl/metr) z rozstawem żył idealnie pasujacym do wyswietlacza. Elastyczny, latwy do ulozenia i nic sie nie łamie.

  • #17 28 Lut 2009 18:06
    omen_s
    Poziom 19  

    Procesor to Geode x86 300MHz. Jeśli jakaś stacja zmieni serwer to trzeba ręcznie edytować plik z adresami co jednak nie zdarza się często.

  • #18 12 Mar 2009 23:07
    lopr_pol
    Poziom 22  

    Mi też znudziły się reklamy w radiu standardowym i postanowiłem coś z tym zrobić.
    Słuchanie radia z netu na stacjonarnym pc trochę odpada, żre prąd, trochę głośny itd. Ponieważ mam domowy router ze slackiem to co ma się marnować i przerzucać tylko pakiety z netu.
    Uruchomienie wbudowanej karty audio, mplayer, amixer + napisane własne sterowanie przez www + ostatnio kupiony pilot ir na usb i wszystko gra :)

    Sterowanie odtwarzaniem:
    Stacjonarny odtwarzacz strumieni shoutcast

    Edycja listy:
    Stacjonarny odtwarzacz strumieni shoutcast

    Pilot, którym można sterować równolegle ze stronką:
    Stacjonarny odtwarzacz strumieni shoutcast