Transformation d’un ancien récepteur radio par une radio internet
En faisant de l’ordre dans son galetas, mon père a retrouvé quelques vieux postes radios. J’ai alors récupéré un vieux Médiator M111U/16 ; cet appareil était très poussiéreux. Une fois son couvercle arrière démonté, j’ai remarqué que plusieurs pièces étaient manquantes, quelques fils ont été coupés, … En conclusion, plus possibles de le remettre en état d’origine !
Vous pouvez retrouver l’historique de ce poste de radio fabriqué à la Chaux-de-Fonds en 1946 sur le site suivant : https://www.radiomuseum.org/r/mediator_bijou_111a_111u.html
Toutefois, une idée me trottait dans la tête depuis longtemps, pourquoi ne pas garder le boîtier et les boutons et remplacer son contenu par une électronique moderne ? Alors j’ai décidé d’utiliser un Raspberry comme récepteur, une fois connecté à internet, j’ai accès à une panoplie de radios internet. J’ai alors préparé un Raspberry, trouvé un programme qui me permet d’écouter une radio diffusée sur internet. Il me fallait encore un interface entre les divers boutons de la radio Mediator et le Raspberry ; pas possible d’utiliser des encodeurs, car lors de la mise sous tension de la nouvelle radio, il faut savoir exactement la position de l’aiguille de la fréquence ! j’ai donc utilisé un potentiomètre pour connaître cette position, et j’ai utilisé ce même principe pour le bouton de volume. Il y a encore un sélecteur de bandes, 3 positions, ceux-ci peuvent être en on/off. J’aurais pu acheter un convertisseur A/D sur un bus SPI ou I2C pour le connecteur au Raspberry, mais comme j’ai plusieurs microcontrôleurs Atmel en stock, j’ai utilisé un atmega8 que j’ai relié par l’UART sur le Raspberry. Tout cela peut sembler facile, mais voici le détail de chaque étape.
Pot. volume Bouton OFF
Raspberry PI3
AtMega8 ou Arduino
Pot. position fréquence LEDs éclairage
1 Préparation du Raspberry
J’ai téléchargé la dernière version de debian pour Rasberry, la version « buster raspbian with desktop » sans tous les logiciels bureautiques est suffisante : https://www.raspberrypi.org/downloads/raspbian/.
Une fois mon Raspberry configuré, j’ai encore effectué les commandes suivantes :
- sudo apt-get update
- sudo apt-get upgrade
Puis j’ai installé un lecteur de flux audio :
- sudo apt-get install mpd mpc
Pour le tester, j’ai ajouté le flux de radio chablais :
- mpc add http://radiochablais.ice.infomaniak.ch/radiochablais-high.mp3
- mpc play 1
La radio s’est mise en fonction, mais la sortie audio est sur le HDMI du moniteur ! et rien sur mon hautparleur relié à la sortie jack ! Pour modifier ceci, il faut aller configurer le canal de sortie audio dans raspi-config :
- sudo raspi-config
- sélectionner « Advanced options »
- sélectionner « Audio » « Force Audio output HDMI or 3.5mm jack »
- sélectionner « 3.5mm headphone jack »
- save
- sudo reboot now
Et après redémarrage, ma radio diffuse de la musique sur mon hautparleur. Reste à ajuster le volume ! Voici la commande :
- mpc volume 25
La valeur en argument est la position du potentiomètre comprise entre 0 et 100.
Avec « mpc add url », nous pouvons ajouter plusieurs adresses de flux (ou le lien vers un fichier MP3), et les faire diffuser avec le no dans lequel on les a entrées par exemple « mpc play 4 »
2 Trouver les adresses de flux de diverses radios
Je voulais également diffuser certaines radios dont je ne trouvais pas l’adresse du flux !!! par exemple la RTS1 !
Pour résoudre ceci, j’ai utilisé un module complémentaire de Firefox : « Video download helper »
Une fois ce module installé, voici la marche à suivre pour la radio lausanne fm :
- ouvrir le site de la radio rouge fm avec Firefox : https://www.rouge.com/ cliquer sur « écouter » en direct, la radio sera diffusé sur votre PC ! vous verrez que le module download helper est alors coloré !
- cliquer sur l’icone download helper
La fenêtre suivante apparaîtra, pour faire afficher les « … » à droite, placer simplement la souris dans cette zone !
- dans le menu déroulant sélectionner « enregistrer l’URL »
- copier cette adresse dans un éditeur : http://rougefm.ice.infomaniak.ch/rougefm-high.mp3.
Vous pouvez copier cette adresse dans un nouvel onglet de votre navigateur et vous pourrez écouter le flux !
Cette méthode fonctionne bien pour plusieurs radios, mais pas pour la RTS !!! en effet la RTS ne diffuse pas un flux en continu, mais une série de mp3 ! En fouillant sur le Web, j’ai trouvé un site internet qui donne des raccourcis vers les radios suisses : https://swissradioplayer.ch/sender-az/#r. Depuis ce site, j’ai remarqué que la RTS est diffusée via une url fixe ! la méthode ci-dessus est donc applicable également pour la RTS ! http://stream.srg-ssr.ch/m/la-1ere/mp3_128
3 Acquisition des positions des potentiomètres
D’origine, un bouton fixé à un axe entraîne une roue qui est reliée elle-même par un axe à un condensateur variable à air et sur sa périphérie enroule et déroule un câble sur lequel est fixé l’aiguille de la fréquence.
J’ai donc remplacé le condensateur par un nouvel axe qui fait également office de support ; j’ai imprimé en 3d une poulie que j’ai fixée sur ce même axe. J’ai fixé à côté un potentiomètre avec une autre poulie imprimée en 3d. La raison de ne pas avoir fixé l’axe directement sur le potentiomètre est que la poulie ne fait qu’un demi-tour tandis que la plage complète du potentiomètre est de 280 degrés ! le rapport entre les diamètres des poulies est de 1,5 ce qui me permet d’utiliser la plage complète du convertisseur A/D !
Comme le contrôle du volume se fait également par une commande numérique, j’ai prévu un second canal du convertisseur A/D pour sa lecture.
Le sélecteur de bande est en réserve pour le moment, mais je pourrais ainsi multiplier par 3 le nombres de radios sur la plage complète.
Sur une plage complète, j’ai programmé 16 canaux possibles.
Utilisant régulièrement l’atmel atmega8, je l’ai utilisé pour faire l’interface entre le hardware de la radio et le Raspberry ; j’aurais aussi pu utiliser un circuit Arduino. L’UART configurée à 9600 bps permettra la communication entre ces 2 modules. Le protocole sera très simple :
Entête 1 | Entête 2 | Volume | Station | Checksum |
‘R’ | ‘M’ | X | Y | X xor Y |
4 Programmation du Raspberry
Pour automatiser la sélection de la station à écouter et contrôler le volume de sortie, j’ai fait un programme en python.
Le fonctionnement est le suivant :
- décodage de la trame sérielle reçue de la platine atmel
- affectation au player des nouveaux paramètres s’ils sont changés
5 Démarrage automatique de l’application radio
Pour que le fichier python se lance automatiquement au démarrage, il faut donner les droits nécessaires au fichiers python :
- sudo chmod o
- sudo nano /etc/rc-local
- ajouter la ligne : sudo python pgm.py (pgm.py est le nom du programme)
Et après cela ma radio ne démarre plus … pourquoi ? Simplement, une erreur est générée si le wifi n’est pas encore présent ! Il faut donc trouver une parade ! la première est de démarrer le soft après une certain délai, simple et mais très pro ! J’ai trouvé un code qui attend que le wifi soit disponible avant de lancer la radio, mais cela ne fonctionne pas toujours ! Il faut que j’améliore encore ceci.
Conclusions
Il faut que j’améliore encore la transmission entre les deux poulies, car j’ai du glissement, Je vais donc remplacer le système poulies/courroie par 2 pignons dentés. Il faut également que j’ajoute un bouton qui effectuera un shutdown du Raspberry.
Liens utiles :
https://www.davinghiblog.fr/2016/10/13/projet-radio-wifi-etape-1-faire-sortir-de-raspberry/
Exemples de liens vers des flux de diverses radios :
https://swissradioplayer.ch/sender-az/#r
http://stream.srg-ssr.ch/m/option-musique/mp3_128
http://stream.srg-ssr.ch/m/la-1ere/mp3_128
http://stream.srg-ssr.ch/m/espace-2/mp3_128
http://stream.srg-ssr.ch/m/couleur3/mp3_128
https://rtn.ice.infomaniak.ch/rtn-high.mp3
http://rouge-90.ice.infomaniak.ch/rouge-90-128.mp3
http://rouge-80s.ice.infomaniak.ch/rouge-80s-128.mp3 ?????
http://onefm.ice.infomaniak.ch/onefm-high.mp3
http://radiofribourg.ice.infomaniak.ch/radiofribourg-high.aac
https://radiolac.ice.infomaniak.ch/radiolac-high.mp3
http://streams.rro.ch/swissmelody.mp3?usid=0-0-H-M-A-01
https://www.framboise314.fr/une-radio-vintage-avec-le-raspberry-pi/
http://radiochablais.ice.infomaniak.ch/radiochablais-high.mp3
http://stream.radiochablais.ch/chablais-100francais.mp3
http://stream.radiochablais.ch/chablais-folklore.mp3
http://vibration.stream2net.eu:8510/vibra-chfrancaise.mp3
http://rhonefm.ice.infomaniak.ch/rhonefm-high.aac
http://laradioplus.ice.infomaniak.ch/laradioplus-high.mp3
Magnifique réalisation, bravo!!