Hier gehts jetzt weiter mit meinem Mod des RPI-Tron-Radio.
Mittlerweile bin ich bei Version 6 angelangt, in dieser Version läßt sich nun auch das Wlan konfigurieren. Allerdings erstmal nur als DHCP. Die Konfiguration mit fester IP dauert noch.
Ein paar Infos zum Image. Ich benutze das aktuelle Raspian von hier.Packetmäßig muss python, pygame und der Player mpd und mpc dabei sein. Die Playliste im Anhang dient als Demo damit ihr seht wie der Aufbau ist.
Damit Tron-Radio läuft muss natürlich euer Display samt Touchscreen funktionieren. Wenn ihr Probleme damit habt macht bitte im Display Thread dafür ein Thema auf.
MPD kann natürlich mehr wie nur Internetstation abspielen. Das gehört hier aber auch nicht hin da Tron-Radio nur ein Webradio ist.
Installationsanleitung:
Diese Anleitung gilt für den Raspberry Pi B+ mit Raspbian wheezy vom 05.05.2015 mit EDIMAX EW-7811UN Wlanstick und das WaveShare 3,2" TFT LCD Display
Raspbian wheezy auf eine mindestens 4GB microSd Karte aufspielen und Netzwerk einrichten
System updaten und software installieren
gpio installieren
cd /usr/src
wget https://pypi.python.org/packages/source/R/RPi.GPIO/RPi.GPIO-0.5.11.tar.gz
tar zxf RPi.GPIO-0.5.11.tar.gz
cd RPi.GPIO-0.5.11
python setup.py install
/boot/config.txt anpassen
dtoverlay=ads7846,cs=1,penirq=17,speed=1000000,swapy=0,pmax=255,xohms=60,xmin=200,xmax=3900,ymin=200,ymax=3900
/boot/cmdline.txt anpassen
dwc_otg.lpm_enable=0 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline rootwait fbcon=map:10 fbcon=font:VGA8x8
/etc/modules anpassen
snd-bcm2835
i2c-bcm2708
i2c-dev
fbtft_device name=flexfb gpios=dc:22,reset:27 speed=48000000
flexfb width=320 height=240 buswidth=8 init=-1,0xCB,0x39,0x2C,0x00,0x34,0x02,-1,0xCF,0x00,0XC1,0X30,-1,0xE8,0x85,0x00,0x78,-1,0xEA,0x00,0x00,-1,0xED,0x64,0x03,0X12,0X81,-1,0xF7,0x20,-1,0xC0,0x23,-1,0xC1,0x10,-1,0xC5,0x3e,0x28,-1,0xC7,0x86,-1,0x36,0x28,-1,0x3A,0x55,-1,0xB1,0x00,0x18,-1,0xB6,0x08,0x82,0x27,-1,0xF2,0x00,-1,0x26,0x01,-1,0xE0,0x0F,0x31,0x2B,0x0C,0x0E,0x08,0x4E,0xF1,0x37,0x07,0x10,0x03,0x0E,0x09,0x00,-1,0XE1,0x00,0x0E,0x14,0x03,0x11,0x07,0x31,0xC1,0x48,0x08,0x0F,0x0C,0x31,0x36,0x0F,-1,0x11,-2,120,-1,0x29,-1,0x2c,-3
Energieverwaltung für edimax wlanstick abschalten (alles markieren und als root in eine Konsole kopieren, danach enter drücken)
sh -c 'cat > /etc/modprobe.d/8192cu.conf << EOF
options 8192cu rtw_power_mgnt=0 rtw_enusbss=0
EOF
'
udev regeln anlegen
sh -c 'cat >> /etc/udev/rules.d/95-ads7846.rules << EOF
SUBSYSTEM=="input", KERNEL=="event[0-9]*", ATTRS{name}=="ADS7846*", SYMLINK+="input/touchscreen"
EOF
'
sh -c 'cat >> /etc/udev/rules.d/95-stmpe.rules << EOF
SUBSYSTEM=="input", ATTRS{name}=="stmpe-ts", ENV{DEVNAME}=="*event*", SYMLINK+="input/touchscreen"
EOF
'
sh -c 'cat >> /etc/udev/rules.d/99-input.rules << EOF
SUBSYSTEM=="input", GROUP="input", MODE="0660"
EOF
'
#pointercal erzeugen
tron-radio nach /usr/src kopieren
playlist.m3u nach /var/lib/mpd/playlists kopieren
tron-radio autostart in /etc/rc.local eintragen
Download: tron-radio_v6.1.zip
Download playlist: playlist.zip
Update v6.1: Kleinen Bug behoben.-> Automatischer Rücksprung aus Stationlist nach 30 sek. war fehlerhaft
Update: 05.02.2016
Mittlerweile mochte ich das tron-radio Design nicht mehr leiden und habe es daher ein weniger Schlichter designt.
Neu hinzugekommen ist nun auch noch eine Wetterstation als Screensaver.
Die Wetterdaten kommen von worldweatheronline.com . Um den Service nutzen zu können muss man sich registrieren und eine Apikey erzeugen klick
Weiterhin benötigt ihr dann noch euren Standort (Location). Dazu geht ihr auf die Weathermap klick und notiert euch die Koordinaten Lon & Lat die in dem Fenster angezeigt werden.
Der generierte Apikey und euere Location muss dann in die config.txt datei eingetragen werden.
Damit das Radio läuft muss nun nocht python-dateutil nachinstalliert werden (apt-get install python-dateutil).
Damit die Wochentage in der Wetterstaion in Deutsch angezeigt werden und auch die Umlaute im Radio korrekt angezeigt werden, bitte die Locale auf de_DE.utf8 setzen und de_DE.utf8 auswählen.
Download:
Update 07.02.2016: Wetterlayout angepasst
Update 11.02.2016: Kleinen Fehler im Radio screen behoben, Wetterlayout optimiert
Update 13.02.2016: Damit mit man nicht mehr in der inet-radio.py rumschreiben muss gibt es nun eine config.txt. Bitte hier den apikey und die location eintragen.
Config screen hinzugefüg. Hier lassen sich nun die Lautstärke sowie der Screensaver Ein- und Ausschalten und die Zeit in Sekunden einstellen.
Achtung! Die Einstellungen werden erst in der config.txt gespeichert wenn unten 'zurück' angeklickt wird.
Update 25.02.2016: Absturz behoben beim Wetterscreensaver wenn kein gültiger Apikey eingetragen ist.
Update 07.03.2016: Wlan level und ip anzeige überarbeitet. Sollte jetzt mit Edimax EW-7811UN und RPI3 internes Wlan funktionieren.
Update 16.05.2016: Wetteranbieter gewechselt da worldweatheronline seinen kostenlosen Dienst eingestellt hat. Die Wetterdaten kommen nun von openweathermap.org
Update 18.05.2016: Bug behoben
inet-radio_07.03.2016_2050.zip
inet-radio mit wetterscreensaver, wetterdaten von openweathermap.org
inet-radio_owm_V1.1_18052016.zip
Edit 06.03.2016: Installationsanleitung Raspbian Jessie & Waveshare 3.2" (LCD B)
1. Image '2016-02-26-raspbian-jessie-lite.img' auf microSD karte aufspielen
Monitor und Tastatur an Raspberry anstöpseln und booten
2. Maximalen Speicherplatz auf der micrSD Karte verfügbar machen und locale anpassen
raspi-config
-> Expand filesystem
-> Set locale (de.utf8) und Timezone einstellen
3. Netzwerk einrichten ( Ich mache es per Wlan, hat der RPI3 ja an Board )
folgendes zufügen:
network={
ssid="eure SSID"
psk="euer WlanKey"
key_mgmt=WPA-PSK
}
4. Wlan neu starten
5. root login erlauben:
ändere PermitRootLogin without-password -> PermitRootLogin yes
6. restart ssh
7. root passwort festlegen
sudo su
passwd (dann passwort eingeben)
danach mache ich am PC mit Putty weiter. Einloggen als root
Edit 14.03.2016:
Am ende dieses Post (Anhang 2) befindet sich ein Script das die kommenden Schritte 8 - 11 automatisch abarbeitet.
8. system updaten
9. Packete installieren
apt-get install -y python2.7-dev python-pygame python-dateutil python-pip mpd mpc xinput evtest tslib libts-bin
10. Alte libsdl installieren sonst geht der Touch nicht richtig
wget http://archive.raspbian.org/raspbian/pool/main/libs/libsdl1.2/libsdl1.2debian_1.2.15-5_armhf.deb
dpkg -i ./libsdl1.2debian_1.2.15-5_armhf.deb
apt-mark hold libsdl1.2debian
11. Display einrichten
waveshare32b-overlay.dtb (klick) nach /boot/overlays kopieren geht auch ohne waveshare32.b-overlay
/boot/cmdline.txt anpassen:
sh -c 'cat > /boot/cmdline.txt << EOF
dwc_otg.lpm_enable=0 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait fbcon=map:10 fbcon=font:VGA8x8
EOF
'
/boot/config.txt anpassen:
sh -c 'cat > /boot/config.txt << EOF
#dtoverlay=waveshare32b:rotate=270
dtoverlay=ads7846,cs=1,penirq=17,speed=1000000,swapxy=0,pmax=255,xohms=60,xmin=200,xmax=3900,ymin=200,ymax=3900
dtparam=audio=on
dtparam=spi=on
dtparam=i2c_arm=on
EOF
'
flexfb.conf in /etc/modprobe.d anlegen
sh -c 'cat >> /etc/modprobe.d/flexfb.conf << EOF
options fbtft_device name=flexfb gpios=dc:22,reset:27 speed=48000000
options flexfb width=320 height=240 buswidth=8 init=-1,0xCB,0x39,0x2C,0x00,0x34,0x02,-1,0xCF,0x00,0XC1,0X30,-1,0xE8,0x85,0x00,0x78,-1,0xEA,0x00,0x00,-1,0xED,0x64,0x03,0X12,0X81,-1,0xF7,0x20,-1,0xC0,0x23,-1,0xC1,0x10,-1,0xC5,0x3e,0x28,-1,0xC7,0x86,-1,0x36,0x28,-1,0x3A,0x55,-1,0xB1,0x00,0x18,-1,0xB6,0x08,0x82,0x27,-1,0xF2,0x00,-1,0x26,0x01,-1,0xE0,0x0F,0x31,0x2B,0x0C,0x0E,0x08,0x4E,0xF1,0x37,0x07,0x10,0x03,0x0E,0x09,0x00,-1,0XE1,0x00,0x0E,0x14,0x03,0x11,0x07,0x31,0xC1,0x48,0x08,0x0F,0x0C,0x31,0x36,0x0F,-1,0x11,-2,120,-1,0x29,-1,0x2c,-3
EOF
'
etc/modules anpassen
sh -c 'cat > /etc/modules << EOF
snd-bcm2835
i2c-bcm2708
i2c-dev
spi_bcm2835
flexfb
fbtft_device
EOF
'
udev regeln für Touch anlegen
sh -c 'cat >> /etc/udev/rules.d/95-ads7846.rules << EOF
SUBSYSTEM=="input", KERNEL=="event[0-9]*", ATTRS{name}=="ADS7846*", SYMLINK+="input/touchscreen"
EOF
'
sh -c 'cat >> /etc/udev/rules.d/95-stmpe.rules << EOF
SUBSYSTEM=="input", ATTRS{name}=="stmpe-ts", ENV{DEVNAME}=="*event*", SYMLINK+="input/touchscreen"
EOF
'
sh -c 'cat >> /etc/udev/rules.d/99-input.rules << EOF
SUBSYSTEM=="input", GROUP="input", MODE="0660"
EOF
'
11. rebooten
12. Touchscreen Kalibrieren
13. inet-radio installieren
ordner inet-radio nach /usr/src kopieren
start.sh und inet-radio.py ausführbar machen
14. Playliste erzeugen
sh -c 'cat >> /var/lib/mpd/playlists/playlist.m3u << EOF
Title1=N-JOY
http://ndr-n-joy-mp3.akacast.akamaistream.net/7/665/273752/v1/gnl.akacast.akamaistream.net/ndr_n-joy_mp3
Title2=NDR 2
http://ndr-ndr2-sh-mp3.akacast.akamaistream.net/7/345/273750/v1/gnl.akacast.akamaistream.net/ndr_ndr2_sh_mp3
Title3=NDR 90,3
http://ndr-ndr903-mp3.akacast.akamaistream.net/7/956/273760/v1/gnl.akacast.akamaistream.net/ndr_ndr903_mp3
Title4=R-SH
http://streams.rsh.de/rsh-live/mp3-192/mediaplayerrsh
Title5=FFN
http://player.ffn.de/ffnstream.mp3
Title6=Radio-HH
http://radiohamburg.hoerradar.de/radiohamburg-live-mp3-128?sABC=54q5p6s5%230%23op1o04oo3n29751r435ssq9466565184%23yvaxenqvbunzohetqr&amsparams=playerid:linkradiohamburgde;skey:1423296245
Title7=Radio-Nora
http://streams.radionora.de/nora-live/mp3-192/mediaplayernora
Title8=Energy HH
http://energyradio.de/hamburg
Title9=Alsterradio
http://live96.106acht.de
Title10=Ballermann
http://party.bmr-radio.de:8100
Title11=Delta Radio
http://streams.deltaradio.de/delta-live/mp3-192/vtuner/
Title12=PopSchlager
http://misterpopschlager.de:8000/
Title13=AngelsFox
http://80.237.157.78/
Title14=Musicaplus
http://vtuner.stream.laut.fm/musicaplus
Title15=KissFm
http://stream.kissfm.de/kissfm/mp3-128/internetradio
Title16=FFH Sndtrk
http://mp3.ffh.de/ffhchannels/hqsoundtrack.mp3
Title17=Startrek
http://vtuner.stream.laut.fm/startrek
Title18=Inforadio
http://rbb.ic.llnwd.net/stream/rbb_inforadio_mp3_m_a
EOF
'
Display More
15. Radio starten
Anhang 1:
waveshare32b-overlay.zip
Anhang 2:
1. Script jessie-setup.sh nach /usr/src kopieren
2. Script ausführbar machen: chmod 755 /usr/src/jessie-setup.sh
3. Script starten: /usr/src/jessie-setup.sh
jessie-setup.sh