Émetteur FM depuis un Raspberry Pi
Sommaire
Présentation
Ce tutoriel permet de transformer rapidement votre Raspberry Pi en émetteur radio.
Mise en garde : certains aspects du montage sont dangereux ou peuvent être en inadéquation avec la législation, par le présent texte nous déclinons toutes responsabilités… |
---|
Ce montage est présenté à titre expérimental, en effet la sortie du Raspberry n'est pas filtrée et émet plusieurs harmoniques : une émission sur une fréquence de 100MHz s'entendra également sur 200MHz, 300MHz, etc..., l'émission sur ces fréquences pouvant être illégale (certaines sont utilisées par la police, l'armée, etc...) Nous rappelons qu'il est également illégal de transmettre sur la bande FM sans autorisation.
Niveau de difficulté
Outillage nécessaire
Composants nécessaires
- Raspberry Pi
- un bout de fil de quelque centimètres
Schémas
Il suffit de raccorder le bout de fil, qui jouera le rôle d'antenne, sur la broche GPIO4 du raspberry (pin 7).
Schéma des GPIO : (en) http://elinux.org/RPi_Low-level_peripherals#General_Purpose_Input.2FOutput_.28GPIO.29
Étape par étape
Créer un dossier pour le projet
$ mkdir pifm $ cd pifm
Télécharger l'archive pifm grâce à la commande suivante :
$ wget http://omattos.com/pifm.tar.gz
Extraire l'archive
$ tar -xf pifm.tar.gz
Lire le fichier .wav fourni avec la commande suivante (103.3 étant la fréquence d'émission) :
$ sudo ./pifm sound.wav 103.3 22050
Transmission de tout fichier audio : utilisation de ffmpeg
Installer ffmpeg
$ sudo apt-get install ffmpeg
Créer un fichier vide start_radio.sh
$ touch start_radio.sh
Éditer et insérer le texte
#!/bin/bash ffmpeg -i "$1" -f s16le -ar 22.05k -ac 1 - | sudo ./pifm - $2 22050
Rendre exécutable le script
$ chmod a+x start_radio.sh
Démarrer la transmission
$ ./start_radio.sh "NomDuFichierSon" 103.5
NomDuFichierSon = nom du fichier audio à lire
103.5 = la fréquence d'émission
Liens
Page officielle du projet PiFm
http://www.icrobotics.co.uk/wiki/index.php/Turning_the_Raspberry_Pi_Into_an_FM_Transmitter
Schéma des GPIO
(en) http://elinux.org/RPi_Low-level_peripherals#General_Purpose_Input.2FOutput_.28GPIO.29