Ako spraviť internetové rádio na Raspberry Pi?
Zakladom hardvérovej časti je Raspberry Pi model B+. K nemu som pridal už len enkoder s tlačítkom EC11B15244A7 od firmy ALPS a led diódu, slúžiace na jednoduché ovládanie. Eckóder sĺuži na nastavenie hlasitosti a jeho tlačítko na ovladanie prehrávania stop/play. V stave play ledka svieti inak je zhasnutá. Pri dlhšom pordžaní tlačítka nezačne led blikať a po uvoľnení sa spustí príkaz pre systémové vypnutie Rasberry Pi.
Led dióda a enkóder sú umiestnené na DSP ktorá je ako modul pripojená na GPIO Raspberry Pi. Na DSP je okrem toho niekoľko rezistorov, sĺužiacich ako prúdové obmedzenie. Schéma:
Návrh DSP:
Pri testovaní tohoto zapojenia vyšlo na javo, že GPIO piny kde bol pripojeny enkóder nefungujú ako vstup. Takže som ako vsupy pre enkoder použil iné piny.
Zakládný hardvér som zvolil Raspberry Pi, operačný systém ArchLinux (samozrejme, že podobne sa dá použiť aj
Raspbian, ale mne je z linuxou Arch najsimpatickejší). Postup inštalácie sa nachádza tu.
Vytvorenie základnych užívateľov a nastavenie hesiel.
Inštalácia potrebných softverových balíčkov.
pacman -S screen mc wiringpi gcc mpd mpc libmpdclient samba htop git alsa-utils
Nastavenie časovej zóny koli správne mu generovani časových pečiatok logov. Postup je tu.
Defaultne nastavenie siete v ArchLinuxe pre Paspberry Pi realizeje služba systemd-networkd ktora je konfigurovaná na DHCP. Toto nastavenie nije vyhovujúce pretože pri každom pripojení na sieť dostane Raspberry Pi inú IP adresu. Preto som túto službu vypol.
systemctl disable systemd-networkd
Potom som vytvoril profil pre službu netctl,
pridaním súboru static
do adresára /etc/netctl/
kde sú všetky dostupné profily pre netctl
.
Obsah súboru static
:
Description='A basic static ethernet connection' Interface=eth0 Connection=ethernet IP=static Address=('192.168.1.150/24') Gateway='192.168.1.1' DNS=('192.168.1.1')
Profil sa aplikuje príkazom:
netctl enable static
naprogramovani
odladenie
Enkoder, WiringPi
MPD - Music Player Daemon, libmpdclient
POXIS thread
Samba-share