Raspberry Pi wird zum FM Radio Sender

Der Raspberry Pi kann schnell und einfach ohne große Investition oder Aufwand in einen FM Radio Sender umgebaut werden. Das hört sich schon unglaublich an. Noch unglaublicher ist: man braucht nicht mehr als einen einfachen Draht. Was jetzt wie das Drehbuch eines McGyver Folge klingt ist aber wahr und ich zeige euch hier wie das geht.

Raspberry Pi Radio

Vorbereitung

Für dieses Projekt brauchen wir folgendes:

  • Raspberry Pi
    mit installierten Betriebssystem. Idealerweise hast du bereits meinen Artikel über die GPIO Schnittstelle gelesen
  • Draht
    als Draht benutze ich Steckdrähte die eigentlich für das Prototyping verwendet werden. Sie sind ideal für die GPIO Schnittstelle und können sehr einfach aufgesteckt und wieder abgenommen werden.
  • Software
    das Projekt wurde ursprünglich von der Imperial Collage Robotik Society im Zuge eines pihack Wochenendes erstellt. Es ist ein einfaches C Programm, welches über Python aufgerufen wird.
  • Soundfile
    bei diesem Projekt wird ein Soundfile über den UKW-Sender und dem Draht als Antenne ausgestrahlt. Dieses muss im WAV Format, 16bit und mono sein.
  • Radio
    einen handelsüblichen Radio um das Signal auch zu empfangen!

Umsetzung

Was ist zu tun? Ganz einfach. Der erste Schritt: Man steckt einen Draht an die GPIO Pin Nummer 4. Ich erinnere an dieser Stelle wieder an meinen GPIO Schnittstellen Artikel, in dem ich eine nette Grafik mit der Pinbelegung habe.

Der zweite Schritt ist nun etwas komplizierter. Wir installieren die benötigte Software. Diese kann man hier herunterladen. Das tar Archiv entpaken wir am besten im home Ordner:

Das Archiv beinhaltet folgende Dateien:

  • pifm
    das kompilierte Programm
  • pifm.c
    der Source Code des Programms. Ist auf jeden Fall einen Blick wert und verrät wie man einfach eine Audiodatei über ein Schnittstelle ausgeben kann.
  • PiFm.py
    das Python Script welches wir aufrufen werden
  • sound.wav
    der Sound den wir abspielen wollen. Das ist übrigens ein ganz bekannter Sound…na wer erratet was das ist?

Wir senden Radio!

Bevor wir weitermachen eine Warnung. Den Raspberry Pi als Sender zu verwenden ist in den meisten Staaten verboten! Die Radiofrequenzen werden üblicherweise vom Staat ausgeschrieben und teuer gekauft. Also bitte auf eigene Gefahr und wenn ihr das test, denn nur kurz.

Wir starten also unseren Radiosender mit folgendem Aufruf (die Dateien befinden sich im selben Verzeichnis):

und schon läuft der Sender. Nun müsst Ihr nur noch einen Radio in der Nähe auf die Frequenz von 100 MHz einstellen. Und schon erklingt unser Soundfile. Ich habe das auf eine Entfernung von über 10 Meter testen können. Laut einigen Artikeln kann man mit geeigneter Antenne auch mehrere 100 Meter senden.

Radio

Das Programm ist sehr einfach aufgebaut. Als Argumente werden das Soundfile und die MHz angegeben. Wer experimentierfreudig ist, der kann hier mit den Übergabewerten spielen oder sogar selbst Änderungen am Code vornehmen.

Die Theorie

Warum funktioniert das? Das FM Signal wird durch eine Modulation der GPIO Clock erzeugt. Deshalb benötigen wir auch den GPIO Port Nummer 4, denn der Timer liegt dort an. Es ist möglich in einem Bereich von 1 MHz bis zu 250 MHz zu senden.

(Visited 7.312 times, 1 visits today)

Das könnte auch interessant sein...

15 Antworten

  1. Alexander sagt:

    Ich finde es gut, dass hier auch auf die rechtlichen Aspekte eingegangen wurde. Eigene UKW-Sender dürfen in Deutschland max. 50 nW abstrahlen, was mit dem Pi und dem Draht als Antenne weit überschritten werden dürfte.

    • Phillipp Ohlandt sagt:

      Dass sowas nicht ganz legal ist, das wissen wir ja, aber wird das überhaupt jemand mitbekommen? Sagen wir mal jemand macht das zu Hause und sendet auf der Frequenz eines Radiosenders, sodass evtl (je nach Antenne) die 3 umliegenden Häuser nur noch Störgeräusche, oder eine Überlappung reinkriegen. Ich glaube nicht, dass dann auf einmal die Polizei bei dir vor der Tür steht. also ich glaube da kann man schon etwas mit rumtrollen, z.B. PI an Akkupack, Sender starten und dann bissl mit dem Auto durch die Stadt fahren. Solange man es nicht übertreibt kann das ganz witzig sein 😀 So, nun darf ich hoffen, dass ich wegen diesen Kommentars nicht angehalten werde am Montag auf dem Weg zur Schule 😀

      • Alexander sagt:

        Klar, wenn der Sender nicht allzu weit stört, dürfte es vermutlich kein Problem geben. Wenn allerdings die Störung mehrere Straßen weit geht, kann es schon sein, dass ein Messwagen vorbeigeschickt wird – das kann dann schnell teuer werden (ich habe mein Praxissemester bei einer Firma gemacht, die einen Messwagen hatte ;)).

  2. Hallo,
    Hallo Werner,

    wie Alexander schon richtig schrieb, sind im UKW-Bereich max 50nW ~ 1.6 mV zulässig. Der Raspi gibt aber 3,3 Vss ab. Das Ausgangssignal ist außerdem rechteckförmig, erzeugt also zahlreiche Oberwellen, die andere Funkdienste oder Hometechnik stören können. Dagegen kann man sich durch Tiefpassfilter schützen und die Spannung durch einen Spannungsteiler reduzieren. Trotzdem bleibt die Sache illegal und die Bundesnetzagentur freut sich über jeden Euro, den Du spendest.

  3. tom sagt:

    Hey,
    hab das ausprobiert und es klappt super.
    Allerdings wird nach Beenden des Lieds oder stoppen des Prozesses die Frequenz nicht wieder gelösht. der RasPi sendet weiterhin, wenn auch still (muted), aber eben weiter auf dieser Frequenz. Der ursprüngliche Sender ist somit nicht mehr zu hören.
    Wie kann ich den kompletten Prozess stoppen?
    Muss ich dafür die gpio resetten?
    Hat jemand ne Idee?

  4. anonymhelp sagt:

    Zitat:Hey,
    hab das ausprobiert und es klappt super.
    Allerdings wird nach Beenden des Lieds oder stoppen des Prozesses die Frequenz nicht wieder gelösht. der RasPi sendet weiterhin, wenn auch still (muted), aber eben weiter auf dieser Frequenz. Der ursprüngliche Sender ist somit nicht mehr zu hören.
    Wie kann ich den kompletten Prozess stoppen?
    Muss ich dafür die gpio resetten?
    Hat jemand ne Idee?

    Ja einfach reboot

  5. Hallo Zusammen,

    Ich habe eine Frage an Euch, vielleicht kann mir das jemand beantworten. Ich habe lediglich geringfügige Programmierkenntnisse. Nun habe Ich gelesen, dass ein Arduino Object in puredata, ebenfalls auf dem Raspberry Pi läuft. Dazu nur ganz knapp, Ich habe ein photosensor, der über ein Arduino Fio, das mit einem xbee verbunden ist, via einem puredata protokoll(softwareseitig) und einem einfachen Spannungsteiler hardwareseitig, je nach dem Lichteinfall, ein Soundfile schneller oder langsamer abspielt.
    Von Haus aus bin Ich Performer, d.h. Ich würde gerne dieses in Echtzeit durch puredata manipulierte soundfile auf dem raspberry pi, als radio signal abgeben (mikro power radio/temporäre kunstperformance). Wäre das technisch machbar? Worauf müsste Ich achten, bzw. wo könnten Schwierigkeiten auftreten? Ich bedanke mich für mögliche Anhaltspunkte an denen Ich mich weiter orientieren kann. Besten Dank. MFG dm

  6. JRW sagt:

    Zum korrekten Abschalten, füge folgende Zeilen in
    unSetupDMA() ein:

    CLRBIT(GPFSEL0 , 14);
    CLRBIT(GPFSEL0 , 13);
    CLRBIT(GPFSEL0 , 12);

    Damit wird GPIO Pin 4 wieder als Input geschaltet und kann nicht weiter senden. Getestet.

  7. gdb sagt:

    senden abbrechen: ./pifm (frequenz)

  8. JunixX sagt:

    Gibt ne neue version mit stereo

  9. 123Pyrofire sagt:

    Kann man so auch NFC benutzen ohne sich ein Modul kaufen zu müssen ? NFC hat 13.56 mhz

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.