Du kan använda Raspberry Pi för en mängd olika geekyprojekt. Men jag fick nyligen veta att du kan använda den lilla små enheten som en FM-sändare också. Och det gör utan mycket tinkering.

En massa människor över på Code Club pihack skrev ett program för att använda hårdvara på Raspberry Pi som är avsedd att generera spridningsspektrumsignaler för att istället mata FM-radiosignaler.

Bakgrund

Här är lite bakgrund. Förutom de välkända ljud-, Ethernet-, HDMI- och USB-portarna på Raspberry Pi har enheten även gränssnitt som är utformade för att ansluta mer direkt med andra chips och moduler.

Dessa GP-portar (General Purpose Input / Output) är de 26-stiftarna (ordnade i en 2 × 13-remsa) som du ser på brädet. Dessa gränssnitt är inte plug-and-play men kan styras via programvara.

För att överföra en överraskande stark FM-signal, behöver du bara ansluta en kabel till GPIO 4-stiftet. Även utan tråden kommer FM-signalen från Raspberry Pi att hämtas av närliggande FM-mottagare.

Ett försiktighetsspråk : Lagarna för sändning av FM-signaler varierar från land till land. Vänligen kolla dina lokala föreskrifter innan du försöker projektet.

Hämta, sätt, gå

Kör Pi och huvudet till kommandoraden antingen via SSH eller genom att logga in direkt på enheten.

Vi tar nu den kod som skrivits på Code Club hackfest och extraherar den:

 mkdir ~ / pifm cd pifm wget http://omattos.com/pifm.tar.gz tar zxvf pifm.tar.gz 

Katalogen innehåller nu sex filer. Förvånansvärt är det bara det där. Du kan nu sända den medföljande filen "sound.wav":

 sudo ./pifm sound.wav 102.3 

Ta nu en FM-mottagare och sätt den till FM 102.3 och du bör höra Star Wars-teman musik. Du kan faktiskt ändra sändningsfrekvensen var som helst mellan 88 MHz och 108 MHz, helt enkelt genom att lägga till kanalfrekvensen i slutet av kommandot.

Broadcast spår

Du kan också spela andra ljudfiler, men de måste vara 16-bitars 22050 Hz mono och endast i WAV-format. Det kan tyckas som en verklig begränsning men det är det inte. Allt du behöver är SoX ljudutbyte ljudredigerare som kommer att behandla din MP3-fil och konvertera den till WAV-filen on-the-fly.

Installera ljudredigeraren och dess beroenden med:

 sudo apt-get installera sox libsox-fmt-all 

När det är klart skriver du in följande kommando och ersätter "SomeSong.mp3" med namnet på den MP3-fil du vill spela:

 sox -t mp3 SomeSong.mp3 -t wav -r 22050 -c 1 - | sudo ./pifm - 102, 3 

Den första delen av kommandot översätter MP3-filen till en WAV-fil, ändrar ljudsamplingsfrekvensen till 22050 och ned-mixar spåret till mono. Det konverterade spåret skickas sedan till standardutmatningen, betecknad med bindestreckstegnet (-) och pipes därefter (|) till standardinmatningen i pifm-kommandot.

Den enda skillnaden i pifm kommandot i det ovanstående exemplet är att istället för att ange namnet på den fil som ska sändas ber vi skriptet att istället sända standardinmatningen.

Om du fortfarande har FM-mottagaren inställd på 102.3-frekvensen, hör du nu din MP3! Återigen, precis som det ursprungliga exemplet, kan du byta frekvensen till någonstans mellan 88 MHz och 108 MHz.

Broadcast podcasts

Du kan göra några underbara saker med SoX. Du kan till exempel använda den för att sända dina favoritströmmar live från Internet.

Att sända 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 enda skillnaden mellan det här kommandot och det föregående exemplet är att istället för att peka på en lokal MP3, pekar du nu på en som bor online.

Du kan också sända en online-radiostation. Många stationer publicerar en M3U-fil och du kan peka 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 

Inte alla stationer sänder MP3-strömmar. Vissa använder andra format som OGG. Allt du behöver för att ändra typen av inmatningsfilen du konverterar med sox. Som:

 sox -t ochg http://network.absoluteradio.co.uk/core/audio/ogg/live.pls?service=a6bb -t wav -r 22050 -c 1 - | sudo ./pifm - 102, 3 

Om du letar efter onlinetradioer, här är en stor lista över europeiska radiostationer som streamar online.

Bildkredit: Robert Ashworth