Netradio med Raspberrypi og enkelt switch betjening




Raspberrypi kort beskrivelse:


Lille men meget anvendelig (Computer), første version fra 2012 består af en enkelt kerne CPU baseret på ARM, med indbygget grafik kraftig nok til at afspille video, og tilslutninger som HDMI, USB, LAN, lyd ud og PSU, samt internt et antal IO tilslutninger, harddisken er et SD kort. Senere versioner har indbygget WIFI og Bluetooth fra 3 og Zero W, 3A+ mangler LAN og Zero mangler lyd bøsning.  Raspberry Pi  se: https://www.raspberrypi.org/  

Netradio / Internetradio til modtagelse af digitale kanaler, som alternativ til DAB, kan bruges på de fleste radioer med en ledig indgang
:

I mange tilfælde er det kun nogle få kanaler man mangler på FM, efter at DAB er kommet til, derfor er det muligt at udbygge de fleste radioer, med den her beskrevne 9 kanals modtager, for at gøre det meget simpelt, er kanallisten en fil på SD kortet, der bruges som harddisk i Raspberrypi, derfor undgås menu system. Betjeningen er simpel, vælg en ledig indgang hvor Raspberrypi er tilsluttet, og skift kanal med switch.

Forudsætninger for gørdetselv projekt:

Kendskab til Linux og programmering i C eller python, der vil være program eksempler sidst i artiklen, men det er ikke færdige stabile programmer, de kan potentielt også gøre skade!

Software:

Operativsystemet giver næsten sig selv Raspberrypi OS, til en head les installation er lite fint, der er ikke brug for nogen desktop, hentes hos https://www.raspberrypi.org/downloads/raspberry-pi-os/ . der er opskriften på installation også, det er ret nemt, det mindste mikro SD kort du kan få, eller har liggende skulle være nok ca. 4 GB, hvis du vil undgå monitor og keyboard, kan du oprette en tom fil og navngive den ssh, filen skal ligge i boot partitionen, så kan du oprette forbindelse over netværk med f.eks. Putty, der er så lige et problem, hvis du bruger en Raspbeerypi uden LAN eller adapter, skal WIFI opsættes ved hjælp af en wpa_supplicant.conf fil i boot partition, den skal indeholde :

ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev

update_config=1

country=DK

network={

ssid="YOUR_NETWORK_NAME"

psk="YOUR_PASSWORD"

key_mgmt=WPA-PSK

}

Indsæt dit ssid og password, nu kan du indsætte SD kortet i Raspbeerypi, og isæt strømforsyning så starter den, der er ikke nogen tænd knap, brug evt. en IP scanner til at finde adressen.

Bemærk: Password kan ses i wpa_supplicant.conf filen, der findes en procedure for at skjule det, men det er lidt omstændeligt se:  
https://www.raspberrypi.org/documentation/configuration/wireless/wireless-cli.md

Hvis du har mulighed for at tilslutte monitor og keyboard under opsætning, så er det lidt nemmere, du kan også bruge et TV med HDMI. Når du har forbindelse, kan du starte opsætning med: sudo raspi-config der kan du ændre password (en god ide), sætte lyd udgang og WIFI. Som jeg skrev i indledningen, så kræver projektet kendskab til Linux, hvis det ovenstående ikke giver mening, så bliver det nok noget op af bakke.

Som det næste skal vi installere noget software, start med at opdatere styresystem: sudo apt-get update , sudo apt-get upgrade, derefter skal vi bruge en lyd afspiller, jeg bruger mpc mpd, vlc kan også bruges, men det følgende er baseret på mpc mpd, installer med: sudo apt-get install mpc mpd . Nu kan du teste om lyd fungere, og den kan afspille en radiokanal, f.eks. P2 klassisk: mpc add http://live-icy.gslb01.dr.dk:80/A/A04H.mp3  derefter: mpc play 1 . Hvis det fungere, kan vi afspille en kanal, du kan ændre volume med: mpc volume 0-100, eller alsamixer. Hvis du ikke kan få lyd ud af lydbøsning, kan det være pga. problem med lyd ud valg, i maj udgaven af Raspberrypi OS, august udgaven ser ud til at være OK. Vi kunne fortsætte med de øvrige kanaler, men det er ikke så smart, mpd har også en tendens til at smide kanaler efter sluk tænd uden nedlukning, derfor har vi brug for en loader der kaldes efter boot, jeg bruger rc.local til dette, den software jeg arbejder med, kan skifte mellem 9 kanaler, de 9 kanaler har jeg valgt at lægge i en txt fil placeret i boot, derved indlæses de ved boot og det er nemt at udskifte kanaler, en kanal pr. linje, afslut med tom linje, se program eksempel: loader_f2

Bemærk:  December 2021 udgaven giver et problem med -lyd i mpd, i sudo nano /etc/mpd.conf  skal havelåge foran  linje 232 - 235 og  238 - 240 fjernes, samt linje 238: mixer_control  "PCM" , ændres til mixer_control "Headphone" , du kan også bruge legacy udgaven, den skulle fungere.

Kanalskift med switch:

Softwaren er ret simpel, den bruger en input port pin 7, med en switch til stel pin 9, det ser ikke ud til, at det er nødvendigt at bruge en pull-up modstand, men tilføj evt. en 10k til 3,3V. Hvis du eksperimenterer med softwaren, og evt. kommer til at sætte indgangen som udgang, kan det være en god ide, med en serie modstand f.eks. 270 Ohm.
Switch har 2 funktioner, et kort tryk skifter kanal, et langt tryk stopper afspilning, og evt. WIFI hvis man gør 2 linjer aktive, vigtigt hvis Bluetooth bruges, pga. af ustabil Bluetooth når WIFI er aktiv, et kort tryk starter afspilning igen, på sidst benyttede kanal, men det tager ca. 10 - 15 sekunder hvis WIFI sluk benyttes, og et ekstra kort tryk kan være nødvendigt. Hvis du vil have en indikator for skift kanal 9 til 1, kan du forbinde en LED i serie med en 270 Ohm modstand, + pin 37 stel pin 39, se program eksempel: net_radio_b

Kanalskift med switch og 9 LED:

Samme funktion som ovenstående, men udvidet med 9 LED som display, monteret med en fælles katode modstand værdi 270 - 470 Ohm til stel, og anode til de i programmet angivne pin, hvis du ikke har brug for alle 9 kanaler, montere du bare det nødvendige antal, og ændrer 9 tallet i linjen:
if (p_count > 9), se program eksempel: net_radio_bd

Pga. vi bruger en head les konfiguration, og vi skal kunne indlæse evt. ændrede kanaler, skal loader program og hoved program startes ved boot, det klares ret nemt med en fil der hedder rc.local, og er placeret i directory etc, ændringer kan skrives med: sudo nano /etc/rc.local. Indsæt to linnier før exit 0

/home/pi/./loader_f2

/home/pi/./net_radio_b &

Derefter skal Raspberrypi rebootes med: sudo reboot , efter et ½ til 1½ minut skulle den være klar til afprøvning.

Normalt skal en computer nedlukkes, før man afbryder strømmen, med f.eks: sudo shutdown now , det er lidt svært i denne konfiguration, heldigvis ser det ud til at styresystemet er ret stabilt, men igen der er ikke nogen garanti.


Raspberrypi 3 model A+ med switch og LED
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Kurt Nielsen 11-12-2020
Bemærk: Raspberrypi er et varemærke tilhørende Raspberrypi Foundation.
Kilder: Links der henvises til i ovenstående tekst og www.wiringpi.com