Temat wyeksploatowany chyba już do granic możliwości, więc czemu nie jeszcze jeden...
Zwykle mamy router, który działa non-stop, więc można do przekształcić w radio internetowe. Oczywiście można zastosować całkowicie niezależną jednostkę, dzięki czemu będzie możliwe postawienie go w dowolnym miejscu.
SprzętDo wykonania takiego radia niezbędne będą:
- router ze złączem USB.
Może być o dowolnej architekturze, byle by dało się na nim uruchomić OpenWrt. To tych celów wykorzystano nieużywany już USR9108 (platforma brcm63xx). Prezentowane rozwiązanie zmieści się bez problemu w routerach z 4MB pamięci flash.
- karta muzyczna na USB
Dostępna jest za niewielką cenę w serwisach aukcyjnych. Ponieważ strumienie audio dostępne w internecie są zwykle dość niskiej jakości, więc wystarczy dowolna, najtańsza jaką znajdziemy.
- głośniki
Podłączenie całości oczywiście nie sprawia problemu - kartę muzyczną podłączamy do USB, głośniki odpowiednio do karty muzycznej.
OprogramowanieNa routerze powinno znaleźć się OpenWrt oraz powinno istnieć połączenie do internetu. Instalacja OpenWrt jest w większości przypadków identyczna - należy odpowiedni obraz wgrać przez wykonanie aktualizacji oprogramowania z GUI. Jednakże niektóre routery mogą wymagać innej lub specjalnej procedury - należy w takich przypadkach sprawić opis dla danej platformy.
Połączenie z internetem konfigurujemy w standardowy sposób - przewodowo lub bezprzewodowo, w zależności od możliwości i przeznaczenia.
Karta muzyczna wymaga odpowiednich sterowników, zarówno do interfejsu USB jak i samej karty. Zainstalują się one automatycznie po wydaniu polecenia
opkg update
opkg install kmod-usb-sound
Wymagane jest także program do odtwarzania muzyki. W tym przypadku wykorzystano program
madplay pozwalający na odtwarzanie strumienia mp3.
opkg install madplay
Do rozwiązania zostają jeszcze dwa problemy: sam skrypt odtwarzający oraz jakaś procedura do włączenia/wyłączenia radia.
Pierwszy problem rozwiązuje prosty skrypt - odtwarzamy strumień jeżeli jest on dostępny. W przypadku zerwania połączenia następuje 10s odczekanie i ponownie próby odtworzenia strumienia. Poniższą zawartość umieszczamy w pliku
/bin/player.sh:
#!/bin/sh
S="http://files.kusmierz.be/rmf/rmffm.mp3"
while true; do
if wget -s -q $S 2> /dev/null; then
wget -q $S -O - | madplay -q -
fi
sleep 10
done
(strumień to RMF FM). Następnie nadajemy odpowiednie uprawnienia:
chmod 755 /bin/player.sh
Drugi problem łatwo opanujemy wykorzystując przyciski routera. Jeżeli dostępny jest przycisk można łatwo napisać skrypt włączający lub wyłączający odtwarzanie. Jeżeli w systemie mamy przycisk pod nazwą BTN_1 to w pliku /etc/hotplug.d/button/80-radio umieszczamy następujący kod:
#!/bin/sh
if [ $ACTION = "pressed" -a $BUTTON = "BTN_1" ]; then
if pidof player.sh > /dev/null; then
killall player.sh; killall madplay
else
/bin/player.sh &
fi
fi
Całość wizualnie obecnie nie przedstawia się imponująco, ale miało działać i złożone zostało z tego co było pod ręką:
Modyfikacje- mpd
Zamiast prostego
madplay można użyć użyć
mpd. Dzięki temu istnieje możliwość zdalnego sterowania (np. telefonem czy aplikacją na komputer), utworzenie playlisty, odtwarzania lokalnych mp3 itd.
- klawiatura
Wykorzystując więcej klawiszy lub podłączając np. klawiaturę numeryczną na USB możliwe jest jej oprogramowanie pozwalające na sterownie radem - wybór następnej stacji, głośność, włącz/wyłącz. Lepszym rozwiązaniem jest podłączenie pilota z odbiornikiem na USB (obsługiwany przez LIRC), dzięki czemu możliwe jest zdalne sterowanie większością funkcji. Więcej informacji np. w
tym wątku.
- wyświetlacz LCD
wykorzystując wyświetlacz LCD w postaci breloka USB lub dedykowanego wyświetlacza możliwe jest wyświetlanie stanu radia, informacje o nadawanej audycji itd. Więcej informacji:
http://eko.one.pl/?p=openwrt-audio#lcd