2017/09/26 20:04

Radio FM

.

RADIO FM

Poste de radio FM avec un Arduino

réalisation  :  Yves Le Chevalier – Mai 2017

Ce projet consiste à créer un poste récepteur de radio dans la bande FM à l’aide d’un module RDA5807 piloté par un arduino.  Disposant d’une carte-écran LCD équipée d’un lecteur de carte SD et d’un bouton encodeur rotatif destiné normalement à une imprimante 3D et appelé « Full graphic smart LCD controller », j’ai pu utiliser tous ces dispositifs pour faire fonctionner la radio.

p1010792

Fonctionnement :

A la mise sous tension, la radio se connecte automatiquement sur la station de démarrage et se met en « mode auto » permettant de passer d’une station mémorisée à une autre en tournant le bouton encodeur rotatif (bouton de droite). La station de démarrage est la dernière station écoutée plus de 5 minutes.

A la toute première utilisation, si aucune station n’a été mémorisée, ou si on a effacé touts les stations mémorisées, on bascule automatiquement en mode « manuel scan».

Celui-ci permet la recherche de stations en tournant le bouton encodeur rotatif dans un sens ou dans l’autre. C’est le module RDA5807 qui saute alors à la prochaine fréquence disponible à la réception.

On peut passer par un double-appui sur le bouton encodeur en mode « manuel lent » qui explore alors tout les spectre des fréquences dans le bande FM (87,5 – 108 MHz en France) par pas de 100 khz.

Lorsqu’on trouve une fréquence que l’on veut mémoriser, il faut faire un appui long (+2 sec) sur le bouton encodeur. La fréquence est alors mémorisée dans la carte SD et elle s’affiche sur l’écran avec un numéro d’ordre attribué aux stations mémorisées. On peut mémoriser jusqu’à 9 stations différentes. Par défaut la dernière station mémorisée devient la station de démarrage sauf écoute ultérieure d’une autre station pendant plus de 5 minutes.

Les modes manuels “scan” et ” lent” fonctionnent de la même façon, sauf dans la façon d’explorer la bande de fréquence, et permettent toutes les deux de mémoriser des stations.

Si on mémorise une nouvelle station alors qu’il y en a 9 déjà mémorisées, la dernière station prend la place de la première station mémorisée.

Pour passer en « mode auto » il faut faire un nouvel appui double sur le bouton rotatif.  Ainsi les doubles appuis sur le bouton encodeur font passer d’un mode à l’autre selon cette séquence :

« mode auto » => « scan rapide » => « scan lent » => « mode auto » => « scan rapide »   …etc….

Si on veut effacer toutes les fréquences mémorisées, il faut appuyer sur le minuscule bouton du milieu qui déclenche une brève alerte sonore. Il faut alors appuyer une seconde fois sur ce bouton dans un intervalle de moins de 10 secondes pour que l’effacement des stations mémorisées soit effectué.

Une fois l’effacement fait, le système revient en mode « manuel scan » automatiquement.

En mode manuel (scan ou lent) un appui long sur le bouton encodeur provoque la mémorisation de la station en cours d’écoute tandis qu’un appui long en mode auto provoque l’effacement de la dernière station mémorisée.

p1010793

Pour couper le son (mute) il suffit de faire un appui court sur le bouton encodeur quel que soit le mode dans lequel on se trouve. L’indication « muet » apparaît et un rappel des fonctions est simultanément affiché à l’écran.

p10107941

Pour faire varier le volume, on tourne le bouton de gauche dans un sens ou l’autre. Il permet de faire varier le volume dans une plage de 0 à 15.  Le niveau sonore est affiché dans le bas gauche de l’écran sous forme de chiffre et de graphique.

Si la station écoutée envoie des infos par le système RDS, celui-ci est affiché à l’écran sous le nom de la station.

Les stations disponibles dans votre région sont à enregistrer sur la carte SD dans un fichier spécifique que j’ai appelé « FrRennes.txt » en ce qui me concerne puisque c’est la région dans laquelle je me trouve.

Ce fichier comprend pour chaque enregistrement :  (20 car + cr/lf)

-  la fréquence en positions 0 à 4 (fréquence sans virgule en dizaine de KHz)

- le nom de la station correspondante en positions 5 à 20.

Les noms des stations et leur fréquence respectives sont disponibles pour toutes les régions sur internet.

Ce fichier est chargé dans un tableau en mémoire et permet (dans cette version) de charger 30 noms de stations différentes.

L’autre fichier concerne les stations mémorisées lors de l’appui long en mode manuel ou lors de l’enregistrement de la fréquence par défaut au démarrage. Ce fichier nommé « MemoSta.txt » est automatiquement géré par le programme et on n’a pas à y intervenir.

Compte tenu de la petite taille du poste, j’ai choisi de l’utiliser en mode mono. Une version stéréo est tout à fait possible en ajoutant un second haut parleur et un second amplificateur car le RDA5807M  permet la sortie des signaux droite/gauche en stéréo. Il faudra alors modifier le boitier.

Les plans du boitier sont à télécharger sur Thingiverse :               http://www.thingiverse.com/thing:2304756

p1010795

Shéma des branchements :

radio_fm_shema1

Liste des composants utilisés :

• carte Arduino Mega

• Full graphic smart LCD controller (sur Ebay :  3D Printer Graphics 12864 LCD Controller with SD Card Slot for Ramps 1.4 )

• RDA 5807M (sur Ebay : Module FM radio stéréo RDA5807M sans fil RRD-102V2.0 pour Arduino )

• mini amplificateur audio a base de LM386 (en kit pour chosir les composants a souder et pouvoir modifier leur emplacement dans le boitier)

• petit haut parleur de 6 ou 8 ohms d’impédance

• un inter a bascule pour couper l’alimentation sur la phase du 220v.

• un chargeur USB 220v. de récupération pour alimenter le système en 5volts.

NB : la partie alimentation branchée sur 220v est placée dans une boitier fermé solidaire du fond pour l’isoler des autres composants.

Pour les branchements sur la carte « Full graphic smart LCD controller » voir le shéma fourni à cette adresse :

http://yveslechevalier.free.fr/?page_id=3524


radio_img5

Si vous êtes intéressé par cette réalisation et souhaitez prendre connaissance du code du programme, les sources sont [ ICI ]

Retour en haut de la page