Chytré rádio postavené z Raspberry Pi: probuďte starý kazeťák k životu

9. 2. 2021
Doba čtení: 5 minut

Sdílet

Ilustrační obrázek
Autor: Depositphotos – stori
Ilustrační obrázek
Pracuji hlavně s počítačem, ale občas kutím něco i na zahradě, v garáži, v dílně nebo při různých přestavbách a úpravách doma. Při práci rád něco poslouchám. V poslední době poslouchám většinou z on-line zdrojů.

Donedávna jsem situaci řešil tak, že když jsem pracoval v kanceláři, používal jsem jako přehrávač počítač. To s sebou neslo následující úskalí:

  • V task baru nebo v záložce v prohlížeči jsem měl neustále jednu pozici obsazenou nějakým přehrávačem
  • Pokud jsem chtěl resetovat PC, musel jsem přerušit poslech
  • Stolní PC nemá reproduktory, takže jsem musel využívat sluchátka
  • Zvuk z notebooku není žádný zázrak

Přehrávání z počítače bylo navíc naprosto nevhodné v případě, že jsem chtěl poslouchat například při svařování v dílně. Při takových příležitostech jsem používal telefon, který tím ovšem dost trpěl a navíc kvalita zvukového přednesu byla tristní.

… a pak, jednoho krásného dne, jsem při úklidu sklepa narazil na starý, 20 let nepoužívaný a dost poškozený CD/radio/kazetofon, na kterém už fungoval pouze přijímač FM rádia. Rozhodl jsem se tento odpad zkusit přetvořit na zařízení, které by splňovalo moje požadavky na přehrávač on-line audia. Ve skříni se mi válelo Raspberry Pi, pro které jsem momentálně neměl využití, a tak jsem začal bastlit.

Příprava Hardware

Začal jsem s přípravou „železa“. Článek píšu až zpětně a nehodlám svoje rádio, které mi tady pěkně vyhrává, rozebrat jen proto, abych mohl zevrubně dokumentovat způsob a úroveň vnitřní montáže, která beztak není nijak úctyhodná. Omezím se na fotografie vnějšího charakteru.

„Chytrý“ přehrávač

Autor:

Montáž Raspberry Pi

Autor:

Postupoval jsem tedy následovně:

  • Rozebral jsem přehrávač
  • Identifikoval jsem modul koncového zesilovače, který jsem, spolu s napájecím zdrojem, jako jediný ponechal tam, kde byl
  • Ostatní, teď už nepotřebné části, tj. kazetovou mechaniku, FM modul a CD mechaniku s ovládací elektronikou, jsem odstranil.
  • Do prostoru po CD mechanice jsem upevnil Raspberry Pi,
  • Další část volného prostoru jsem využil pro umístění 5V napájecího adaptéru.
  • Navíc jsem na přístroj osadil dva vypínací konektory JACK 6.3mm, které mi umožňují k přehrávači připojit externí reproduktory.

Zapojení

Zapojení je triviální. Musí se zajistit napájení Raspberry Pi a propojit jeho audio výstup s koncovým zesilovačem.

5V napájecí adaptér jsem za pojistkou(!) připojil ke svorkám přívodu síťového napětí na napájecím zdroji přehrávače. Napojení jsem provedl odborně, izolovanými vodiči, které jsem přiletoval na vidlici adaptéru a zaizoloval smršťovacími dutinkami.

Propojení audio výstupu jsem provedl s využitím stíněného kabelu, který jsem i s 3,5mm konektorem jack odstřihl ze starých sluchátek, kterých se mi v zásuvce u stolu povaluje hned několik. Aby bylo možné komfortně řídit hlasitost, zařadil jsem mezi Raspberry Pi a zesilovač potenciometr. Použil jsem logaritmický stereo 1KΩ. Doporučuji koupit co nejdražší a nejkvalitnější kus.

Správný potenciometr

Autor:

Původně jsem se domníval, že na tom nesejde. Koupil jsem „klasiku“, kterou jsem si pamatoval ze svých dětských let, ale výsledek byl otřesný. Chrastění, bručení 50 Hz a šum, to byla daň za ušetřených 50 Kč. Po rozebrání už hotového přístroje a výměně potenciometru za kvalitní kus, během které jsem sebe a všechno okolo vydatně častoval nadávkami všeho druhu, už bylo všechno v pořádku.

Pro oddělení případných stejnosměrných složek jsem za potenciometr zařadil svitkové kondenzátory s kapacitou 1000 nF. Pro úplnost uvádím schéma zapojení, které jsem pracně vymaloval v Gimpu. Doufám, že si z dob svého elektrotechnického období pamatuji správně schematické značky.

Schema připojení Raspberry Pi k zesilovači

Autor:

Software

Základním předpokladem pro jakékoliv využití Raspberry Pi je pochopitelně operační systém. Já používám Raspbian, nicméně jsem si skoro jistý, že na konkrétním systému nesejde. Základní systém jsem doplnil o několik dalších komponent:

  • SSH server
  • VNC server
  • Apache s podporou PHP

Jelikož přehrávač nemá žádný displej, nastavil jsem si do /etc/rc.local akustické hlášení aktuální IP adresy.

# Print the IP address
_IP=$(hostname -I) || true
if [ "$_IP" ]; then
  echo  "My IP address is $_IP" | festival --tts
fi

Nastavení SSH a VNC tady nebudu rozebírat. SSH jsem nastavil v cuku letu, s VNC jsem trochu bojoval, takže jsem se nakonec rozhodl cvičně napsat vlastní software pro vzdálený přístup k ploše. O tom bych možná mohl v budoucnu ještě poreferovat.

Primární přístup pro ovládání svého přehrávače jsem se rozhodl vytvořit jako webovou službu. Apache jsem ponechal ve výchozím nastavení, pouze jsem přesměroval jeho pracovní adresář do /home/pi/http a nastavil web server tak, aby běžel pod uživatelem pi. Celý „site“ jsem pak implementoval v tomto adresáři. Kopii mého http adresáře si můžete pro inspiraci stáhnout: http.zip. V úvoduindex.php je „konfigurace“, což je jednoduché pole s položkami specifikujícími ikonu, jméno a příkaz, který má položka spustit. Položky jsou odděleny svislítkem.

$cmds = array(
    "bbc1.png|Radio BBC1|cvlc http://bbcmedia.ic.llnwd.net/stream/bbcmedia_radio1_mf_p",
    "bbc2.png|Radio BBC2|cvlc http://bbcmedia.ic.llnwd.net/stream/bbcmedia_radio2_mf_p",
    "bbc3.png|Radio BBC2|cvlc http://bbcmedia.ic.llnwd.net/stream/bbcmedia_radio3_mf_p",
    "bbc4.png|Radio BBC4|cvlc http://bbcmedia.ic.llnwd.net/stream/bbcmedia_radio4fm_mf_p",
    "cr1.png|CR 1|cvlc http://icecast8.play.cz/cro1-128.mp3",
    "cr2.png|CR 2|cvlc http://icecast8.play.cz/cro2-128.mp3",
    "jazz.png|Radio JAZZ|cvlc http://ice3.abradio.cz/crojazz128.mp3",
    "orion.png|Radio Orion|cvlc https://playerservices.streamtheworld.com/api/livestream-redirect/HITRADIO_ORION.mp3",
    "majak.png|Majak|cvlc http://icecast.vgtrk.cdnvideo.ru/mayakfm_mp3_192kbps",
    "jazz891.png|JAZZ 89.1|cvlc https://nashe1.hostingradio.ru/jazz-128.mp3",
);

Skript funguje tak, že pokud je zavolán s číselným parametrem, zkusí vyhledat v poli příslušnou položku, spustí příkaz a zároveň uloží číslo volby do souboru number a příkaz do souboru command.sh.

Následně vytvoří odkazy pro aktivaci jednotlivých položek tak, že vytvoří odkaz na sebe sama s číselným parametrem položky, čili například pro 1. položku vytvoří odkaz.

<a href="index.php?1"><img  src="bbc1.png" alt="Radio BBC1"/></a>

Ze souboru number přečte číslo aktuálně aktivní položky, kterou zvýrazní zeleným „světýlkem“.

Výsledná stránka vypadá následovně:

Webové rozhraní přehrávače

Autor:

Souborcommand.sh slouží k aktivaci posledního příkazu po restartu. Poslední příkaz je aktivován pomocí souboru

/home/pi/.config/autostart/radio.desktop

s následujícím obsahem:

Školení Zabbix

[Desktop Entry]
Type=Application
Name=Radio
Icon=radio
Exec=/home/pi/http/command.sh

Funguje to

V tomto bodě jsem byl prakticky spokojen. Měl jsem přehrávač, který po zapnutí nahlásí svoji IP adresu a „naladí“ stanici, kterou jsem naposledy poslouchal. Kromě toho mi umožňuje snadno stanici přepnout z PC nebo z telefonu. Pokud chci, můžu připojit USB nebo pomocí vzdálené plochy přehrávat hudbu z libovolného internetového zdroje.

Jako bonus jsem do přehrávače doplnil ještě skript cron.hourly, který provádí zálohy souborů z mého verzovacího serveru.

Autor článku

Považuji se za fanouška Linuxu a preferuji ho na všech svých osobních i pracovních strojích.