Je kunt de Raspberry Pi gebruiken voor verschillende geeky-projecten. Maar ik kwam er onlangs achter dat je het kleine apparaatje ook als FM-zender kon gebruiken. En dat doen zonder veel te sleutelen.

Een stel mensen bij Code Club pihack schreef een programma om hardware te gebruiken op de Raspberry Pi die bedoeld is om kloksignalen met gespreid spectrum te genereren om in plaats daarvan FM-radiosignalen uit te zenden.

Achtergrond

Hier is een beetje achtergrond. Naast de bekende audio-, ethernet-, HDMI- en USB-poorten op de Raspberry Pi, heeft het apparaat ook interfaces die zijn ontworpen om directer met andere chips en modules te verbinden.

Deze GPIO-poorten (General Purpose Input / Output) zijn de 26-pins (aangebracht in een strip van 2 × 13) die u op het bord ziet. Deze interfaces zijn niet plug-and-play maar kunnen via software worden beheerd.

Om een ​​verrassend sterk FM-signaal te verzenden, hoeft u alleen maar een draad op de GPIO 4-pin te bevestigen. Zelfs zonder de draad, zal het FM-signaal dat door de Raspberry Pi wordt uitgezonden, worden opgepikt door FM-ontvangers in de buurt.

Een waarschuwing : de wetgeving voor het uitzenden van FM-signalen verschilt van land tot land. Controleer uw lokale voorschriften voordat u dit project probeert.

Zet klaar en gaan

Schakel de Pi in en ga naar de opdrachtregel via SSH of door direct in te loggen op het apparaat.

We pakken nu de code die is geschreven tijdens het Code Club-hackfest en extraheren het:

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

De map bevat nu zes bestanden. Verrassend genoeg is dat alles wat er is. U kunt nu het meegeleverde "sound.wav" -bestand uitzenden:

 sudo ./pifm sound.wav 102.3 

Pak nu een FM-ontvanger en zet deze op FM 102.3 en je zou de Star Wars-themamuziek moeten horen. U kunt de uitzendfrequentie zelfs veranderen van ergens tussen 88 MHz en 108 MHz door simpelweg de kanaalfrequentie aan het einde van het commando toe te voegen.

Zenders uitzenden

U kunt ook andere audiobestanden afspelen, maar deze moeten 16-bits 22050 Hz mono zijn en alleen in het WAV-formaat. Dat lijkt misschien een echte beperking, maar dat is het echt niet. Het enige dat u nodig hebt, is de SoX-geluidsuitwisseling-audiobewerker die uw MP3-bestand verwerkt en het onmiddelijk converteert naar het WAV-bestand.

Installeer de audio-editor en de afhankelijkheden ervan met:

 sudo apt-get install sox libsox-fmt-all 

Als het klaar is, typt u de volgende opdracht en vervangt u 'SomeSong.mp3' door de naam van het MP3-bestand dat u wilt afspelen:

 sox -t mp3 SomeSong.mp3 -t wav -r 22050 -c 1 - | sudo ./pifm - 102.3 

Het eerste deel van het commando vertaalt het MP3-bestand in een WAV-bestand, verandert de sampling-snelheid van het geluid naar 22050 en verkleint de track naar mono. De geconverteerde track wordt vervolgens verzonden naar de standaarduitvoer, aangeduid met het koppelteken (-) en wordt vervolgens doorgesluisd (|) naar de standaardinvoer van de opdracht pifm.

Het enige verschil in de opdracht pifm in het bovenstaande voorbeeld is dat in plaats van het opgeven van de naam van het uit te zenden bestand, we het script vragen om in plaats daarvan de standaardinvoer uit te zenden.

Als je nog steeds je FM-ontvanger hebt afgestemd op de 102.3-frequentie, zou je nu je MP3 moeten horen! Nogmaals, net als het originele voorbeeld, voel je vrij om de frequentie te vervangen door ergens tussen 88 MHz en 108 MHz.

Broadcast-podcasts

Je kunt prachtige dingen doen met SoX. U kunt het bijvoorbeeld gebruiken om uw favoriete streams live van het internet uit te zenden.

Om de Linux Voice-podcast uit te zenden:

 sox -t mp3 http://www.linuxvoice.com/episodes/lv_s02e01.mp3 -t wav -r 22050 -c 1 - | sudo ./pifm - 102.3 

Het enige verschil tussen deze opdracht en het vorige voorbeeld is dat in plaats van naar een lokale MP3 te verwijzen, u nu naar een site verwijst die online is.

Je kunt op dezelfde manier een online radiostation uitzenden. Veel stations publiceren een M3U-bestand en u kunt erop wijzen:

 sox -t mp3 http://www.ndr.de/resources/metadaten/audio/m3u/ndrloop5.m3u -t wav -r 22050 -c 1 - | sudo ./pifm - 102.3 

Niet alle stations zenden MP3-streams uit. Sommigen gebruiken andere formaten zoals OGG. Alles wat u nodig heeft om het type invoerbestand dat u aan het converteren bent met sox te veranderen. Zoals:

 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 

Als u op zoek bent naar online radio's, vindt u hier een enorme lijst met Europese radiostations die online worden gestreamd.

Afbeelding tegoed: Robert Ashworth