Kør din helt egen radiostation med Raspberry Pi
Du kan bruge Raspberry Pi til en række geeky projekter. Men jeg fandt for nylig ud af, at du også kunne bruge den dårlige lille enhed som en FM-sender. Og det gør uden meget tinkering.
En flok folk over på Code Club pihack skrev et program til at bruge hardware på Raspberry Pi, der er beregnet til at generere spread spectrum kloksignaler til at udstede FM radio signaler.
Baggrund
Her er lidt baggrund. Ud over de velkendte lyd-, Ethernet-, HDMI- og USB-porte på Raspberry Pi har enheden også grænseflader, der er designet til at forbinde mere direkte med andre chips og moduler.
Disse GP-porte (General Purpose Input / Output) er de 26 stifter (arrangeret i en 2 × 13 strimmel), du ser på tavlen. Disse grænseflader er ikke plug-and-play, men kan styres via software.
For at overføre et overraskende stærkt FM-signal er alt, hvad du behøver, at fastgøre en ledning til GPIO 4-pin. Selv uden ledningen vil FM-signalet, der udsendes af Raspberry Pi, blive hentet af nærliggende FM-modtagere.
Et forsigtighedsord : Lovene for udsendelse af FM-signaler varierer fra land til land. Se venligst dine lokale regler, inden du forsøger dette projekt.
Få, sæt, gå
Tænd Pi og hovedet til kommandolinjen enten via SSH eller ved at logge direkte ind på enheden.
Vi tager nu koden skrevet på Code Club hackfest og trækker den ud:
mkdir ~ / pifm cd pifm wget http://omattos.com/pifm.tar.gz tar zxvf pifm.tar.gz
Mappen indeholder nu seks filer. Overraskende er alt, hvad der er til det. Du kan nu sende den medfølgende "sound.wav" -fil:
sudo ./pifm sound.wav 102.3
Tag nu en FM-modtager og indstil den til FM 102.3, og du bør høre stilkunstens Star Wars-musik. Du kan faktisk ændre udsendelsesfrekvensen fra hvor som helst mellem 88 MHz og 108 MHz ved blot at tilføje kanalfrekvensen i slutningen af kommandoen.
Broadcast spor
Du kan også afspille andre lydfiler, men de skal kun være 16-bit 22050 Hz mono og kun i WAV-format. Det kan virke som en reel begrænsning, men det er det virkelig ikke. Alt du behøver, er SoX Sound Exchange Audio Editor, som vil behandle din MP3-fil og konvertere den til WAV-filen on-the-fly.
Installer lydeditoren og dens afhængigheder med:
sudo apt-get installer sox libsox-fmt-all
Når det er færdigt, skal du skrive følgende kommando og erstatte "SomeSong.mp3" med navnet på den MP3-fil, du ønsker at spille:
sox -t mp3 SomeSong.mp3 -t wav -r 22050 -c 1 - | sudo ./pifm - 102, 3
Den første del af kommandoen oversætter MP3-filen til en WAV-fil, ændrer lydsamplingshastigheden til 22050 og ned-mixer sporet til mono. Det konverterede spor sendes derefter til standardudgangen, angivet ved bindestregstegnet (-) og ledes derefter (|) til standardindgangen til pifm-kommandoen.
Den eneste forskel i pifm
kommandoen i ovenstående eksempel er, at vi i stedet for at angive navnet på den fil, der skal sendes, beder scriptet om at sende standardindgangen i stedet.
Hvis du stadig har fået din FM-modtager indstillet til 102, 3 frekvensen, skal du høre din MP3! Igen, ligesom det originale eksempel, er du velkommen til at erstatte frekvensen til hvor som helst mellem 88 MHz og 108 MHz.
Broadcast podcasts
Du kan gøre nogle vidunderlige ting med SoX. Du kan f.eks. Bruge den til at sende dine yndlingsstrømme live fra internettet.
At udsende Linux Voice podcast:
sox -t mp3 http://www.linuxvoice.com/episodes/lv_s02e01.mp3 -t wav -r 22050 -c 1 - | sudo ./pifm - 102, 3
Den eneste forskel mellem denne kommando og det foregående eksempel er, at i stedet for at pege på en lokal MP3, peger du nu på en, der bor online.
Du kan ligeledes sende en online radiostation. Mange stationer udgiver en M3U-fil, og du kan pege på det:
sox -t mp3 http://www.ndr.de/resources/metadaten/audio/m3u/ndrloop5.m3u -t wav -r 22050 -c 1 - | sudo ./pifm - 102, 3
Ikke alle stationer sender MP3-streams. Nogle bruger andre formater som OGG. Alt hvad du behøver for at ændre typen af inputfilen du konverterer med sox. Såsom:
sox -t ogg http://network.absoluteradio.co.uk/core/audio/ogg/live.pls?service=a6bb -t wav -r 22050 -c 1 - | sudo ./pifm - 102, 3
Hvis du leder efter onlineradioer, her er en enorm liste over europæiske radiostationer, der streamer online.
Billedkredit: Robert Ashworth