Comment fabriquer une radio basée sur un Raspberry Pi
La radio peut sembler une technologie « vieille », mais c’est précisément ce qui fait son charme : sa simplicité, sa fiabilité et sa pertinence toujours actuelle, tant pour le divertissement que pour les projets éducatifs. Avec un Raspberry Pi, vous pouvez créer une radio moderne et flexible : radio en streaming sur Internet, lecteur de musique local, ou même (avec un module supplémentaire) radio FM. Cet article explique comment construire une radio basée sur un Raspberry Pi de manière pratique, de l’installation matérielle à la configuration logicielle.
-
1. Concept de radio basé sur Raspberry Pi
De manière générale, il existe deux approches principales :
1. Radio Internet (Streaming)
Le Raspberry Pi diffuse des émissions radio depuis Internet via Wi-Fi ou Ethernet. C'est la méthode la plus simple et la plus courante, car elle ne nécessite aucun équipement RF spécifique.
2. Radio FM/AM (avec dispositif en option)
Nécessite un module tuner (par exemple, un récepteur FM via I2C/SPI) ou un périphérique radio logicielle (SDR). La configuration est plus complexe et dépend souvent du périphérique utilisé.
Cet article se concentre principalement sur la radio Internet car c'est la solution la plus accessible aux débutants et la plus adaptée à une création rapide.
-
2. Équipement requis
Voici une liste des composants recommandés :
– Raspberry Pi (Pi 3/4/Zero 2 W recommandé)
– Carte microSD de 8 à 16 Go minimum
– Alimentation stable (5 V, courant selon le modèle Pi)
– Connexion Internet (Wi-Fi ou câble LAN)
– Sortie audio :
– Haut-parleurs actifs via prise jack 3.5 mm (sur les modèles compatibles), ou
– Haut-parleur/amplificateur USB, ou
– Carte d'extension audio DAC (en option, meilleure qualité)
– Écran et clavier (pour la configuration initiale) ou accès SSH
– Boîtier/boîte de rangement (facultatif, pour plus de propreté)
Si vous souhaitez une radio avec des commandes physiques, vous pouvez ajouter :
– Bouton-poussoir, encodeur rotatif ou écran OLED/LCD.
-
3. Installation du système d'exploitation Raspberry Pi
1. Téléchargez et installez Raspberry Pi Imager sur votre PC/ordinateur portable.
2. Insérez la carte microSD, puis flashez Raspberry Pi OS Lite (sans bureau) pour une utilisation économe en ressources, ou la version Desktop si vous souhaitez une interface graphique.
3. Avant d'écrire l'image, vous pouvez définir :
– Wi-Fi (SSID et mot de passe)
– Nom d'utilisateur et mot de passe
– Activation SSH
4. Démarrez le Raspberry Pi et assurez-vous que la connexion internet fonctionne.
Après vous être connecté au système, mettez à jour les paquets :
"`bash
mise à jour de sudo apt
sudo apt mise à niveau -y
“`
-
4. Configuration audio sur Raspberry Pi
Vérifier les périphériques audio détectés :
"`bash
ajouer -l
“`
Si vous utilisez la sortie audio via HDMI ou une prise jack (selon le modèle), vous pouvez sélectionner la sortie par défaut. Certaines versions de Raspberry Pi OS configurent automatiquement les paramètres audio, mais vous pouvez tester la sortie en procédant comme suit :
"`bash
speaker-test -t wav -c 2
“`
Si vous utilisez une carte son USB ou un DAC HAT, celui-ci apparaîtra généralement comme un nouveau périphérique. Assurez-vous que votre sortie audio est correctement configurée pour écouter la radio.
-
5. Installation du lecteur de radio Internet (MPD + MPC)
L'une des méthodes les plus stables consiste à utiliser MPD (Music Player Daemon) pour lire l'audio et MPC comme contrôleur depuis le terminal.
Installez le paquet :
"`bash
sudo apt install -y mpd mpc
“`
Assurez-vous que MPD est en cours d'exécution :
"`bash
sudo systemctl enable mpd
sudo systemctl start mpd
“`
Vérifier le statut :
"`bash
systemctl status mpd
“`
-
6. Ajout d'une liste de stations de radio
MPD peut lire les flux URL. Vous pouvez ajouter des stations de radio aux listes de lecture MPD.
Exemple d'ajout d'un flux radio :
"`bash
mpc ajouter http://streamurl-radio-anda:8000/stream
“`
Ensuite, jouez :
"`bash
mpc jouer
“`
Pour consulter la liste :
"`bash
playlist mpc
“`
Créer une liste de lecture de station favorite
Vous pouvez créer un fichier de liste de lecture `.m3u` :
1. Créez un dossier de playlist (s'il n'existe pas encore) :
"`bash
mkdir -p ~/playlists
“`
2. Créez un fichier :
"`bash
nano ~/playlists/radio.m3u
“`
3. Renseignez quelques URL de streaming, par exemple :
“`
http://example.com/stream1
http://example.com/stream2
http://example.com/stream3
“`
Ajoutez-les à MPD en les chargeant individuellement ou en configurant votre répertoire de musique/listes de lecture MPD. Méthode rapide : ajoutez-les directement depuis un fichier (optionnel selon votre configuration MPD), ou copiez la liste de lecture dans votre dossier de listes de lecture MPD (généralement `/var/lib/mpd/playlists/`).
-
7. Configuration MPD pour une meilleure adaptation à la radio
Modifier la configuration MPD :
"`bash
sudo nano /etc/mpd.conf
“`
Quelques points importants :
– Vérifiez que la sortie audio est correcte. Exemples courants :
« `conf »
sortie audio {
tapez « alsa »
nom « Sortie ALSA »
type_mixeur « logiciel »
}
“`
– Vous pouvez configurer la mémoire tampon pour rendre la diffusion plus stable (optionnel, en fonction des conditions du réseau).
Une fois terminé, redémarrez MPD :
"`bash
sudo systemctl restart mpd
“`
-
8. Configurer l'allumage automatique de la radio au démarrage.
Pour que le Raspberry Pi diffuse la radio immédiatement après sa mise sous tension :
1. Créez un script simple, par exemple :
"`bash
nano ~/start-radio.sh
“`
Isi:
"`bash
!/bin/bash
sommeil 5
mpc clair
mpc ajouter http://streamurl-radio-anda:8000/stream
mpc volume 70
mpc jouer
“`
Enregistrez puis accordez l'autorisation d'exécution :
"`bash
chmod +x ~/start-radio.sh
“`
2. Créez un service systemd :
"`bash
sudo nano /etc/systemd/system/radio.service
“`
Isi:
"`ini
[Unité]
Description=Lecture automatique de la radio
Après=network-online.target mpd.service
Wants=réseau-en ligne.target
[Un service]
Utilisateur=pi
ExecStart=/home/pi/start-radio.sh
Redémarrage = en cas d'échec
[Installer]
WantedBy = multi-utilisateur.target
“`
Activer:
"`bash
sudo systemctl démon-recharger
sudo systemctl activer radio.service
sudo systemctl démarrer radio.service
“`
Remarque : si le nom d'utilisateur n'est pas `pi`, ajustez le chemin et `User=`.
-
9. Ajout de commandes (facultatif)
Pour lui donner l'apparence d'une vraie radio, vous pouvez ajouter des commandes physiques :
– Bouton Suivant/Précédent pour changer de station :
– `mpc suivant`
– `mpc précédent`
– Bouton Lecture/Arrêt :
– `mpc toggle`
– `mpc stop`
– Encodeur rotatif pour le volume :
– `mpc volume +5`
– `mpc volume -5`
Pour implémenter les boutons, vous pouvez utiliser Python (GPIO) et appeler la commande `mpc`. Cette combinaison est très populaire car elle est simple et facile à mettre en œuvre.
-
10. Conseils de développement et dépannage
Quelques problèmes courants et leurs solutions :
1. Aucun son
– Assurez-vous que la sortie audio est correcte (périphérique ALSA).
– Essayez de changer le haut-parleur/la carte son USB.
– Assurez-vous que le volume n'est pas à 0 : `mpc volume 80`
2. La diffusion en continu est intermittente.
– Utilisez une connexion LAN si possible.
– Ajouter un délai avant de jouer au démarrage (`sleep 5` ou `sleep 10`).
– Sélectionnez un flux à débit binaire inférieur.
3. MPD ne peut pas lire l'URL
– Vérifiez que l’URL est correcte et qu’elle peut être ouverte depuis le même réseau.
– Assurez-vous que les packages de support sont disponibles (généralement suffisants sur la dernière version de Raspberry Pi OS).
4. Je souhaite une interface plus « radio ».
– Installez une interface utilisateur comme ncmpcpp (interface utilisateur en mode terminal), ou créez une interface utilisateur Web simple.
-
Clôture
Construire une radio basée sur un Raspberry Pi est un projet à la fois amusant et gratifiant. En combinant MPD et MPC, vous pouvez créer une radio internet stable qui démarre automatiquement au démarrage du système et qui est facilement extensible pour inclure des périphériques avec des boutons physiques, un petit écran, voire un boîtier personnalisé. Une fois la version de base maîtrisée, vous pouvez aller plus loin : ajouter un écran OLED pour afficher les noms des stations, créer un menu de présélections, ou même ajouter un module tuner pour la radio FM.
Si vous le souhaitez, je peux continuer avec des versions plus spécifiques : par exemple une liste de stations de radio indonésiennes prêtes à l’emploi (URL), un exemple de code Python pour un commutateur GPIO, ou un guide d’utilisation d’un DAC HAT pour une bien meilleure qualité sonore.