Table des matières:
- Étape 1: La partie radio 4703
- Étape 2: la base de chargement
- Étape 3: La boîte
- Étape 4: La partie Arduino (schémas et code)
- Étape 5: L'application Android
Vidéo: Radio FM avec RDS (Radio Text), contrôle BT et base de chargement : 5 étapes
2024 Auteur: John Day | [email protected]. Dernière modifié: 2024-01-30 09:08
Bonjour, C'est mon deuxième "Instructables". Comme j'aime faire des choses pas très utiles, voici mon dernier projet:
Il s'agit d'une radio FM avec Radio Text avec une base de chargement et qui peut être surveillée via Bluetooth et une application Android
Par conséquent, je vais vous présenter la partie Arduino, la partie Radio Text, puis la partie inventeur de l'application MIT (c'est la seule façon dont je suis suffisamment qualifié pour créer une application Android)
Avec une tension d'alimentation de 10,8 volts avec alimentation CA et 9,6 avec batterie, la puissance maximale est de 2x 1,5/1,25 watt RMS, ce qui est largement suffisant
La puissance RMS (root Mean Square) est la puissance réelle, pas comme les autres grands nombres vendus comme la musique en watts ou la puissance de crête ou quoi que ce soit d'autre)
Je suppose que 1,5 Watt RMS peut être vendu comme 8 Watts dans certains magasins !!!!!!
Tout d'abord les composants nécessaires:
Carte principale:
1x Arduino Nano
1x module radio FM SI4703 de Sparkfun ou équivalent (5v alimenté et 3,3V I2C avec un Jack 3 pôles pouvant servir d'antenne)
1x module Bluetooth HC-06 (attention, la nouvelle version du logiciel 3.0 a un jeu de commandes totalement différent (j'ai mis quelques commentaires dans le code).
1x décaleur de niveau 4 canaux 3.3 5 V
1x MC7805 5v DC convertisseur
1x condensateur 2200 µF 25V
2x 1N5404 3 ampères diodes
2x 2N2222 transistors
1x résistance 1Kohm
1x 47 Ohm résistance
2x résistances de 3,3 KOhm (pour le pull-up du bus I2C)
3x résistances 330 Ohm (pour les leds)
2x résistances 6,8 KOhm
1x 3.9 KOhm résistance
Panneau avant
1x bus I2C LCD 20X4
10 résistances 680 Ohm
1x LED rouge (je n'avais plus de vert !!) pour l'alim
1x LED jaune pour le mode batterie
1x LED bleue pour la connexion BT
4x interrupteurs (ON)-OFF-(ON) (comme pour une vitre de voiture électrique)
2x boutons poussoirs
1x interrupteur marche/arrêt
Autres composants pour la Radio:
2x 100W 10CM 8 Ohm HP
1 antenne extensible de 1 m (environ 75 cm est la bonne longueur pour FM en Europe et aux États-Unis)
1x prise téléphonique que j'ai utilisé pour faire les contacts pour la base de charge
1x Diode 1N5404 3 Amp (sur le contact de la batterie pour éviter la fumée en cas de désordre avec la masse ou contact 12V)
1x ampli de puissance 2X20 watts (n'importe quel ampli stéréo s'adaptera tant qu'il est de 12V) basé sur TDA2020 acheté pour 4 euros
1x coupleur de batterie 8XAA (pour avoir min 9.6V)
Du contreplaqué de 10 mm et 4 mm pour la boîte
Base de chargement:
1x alimentation 12V 3Amp
1x petit voltmètre 3 chiffres/3 fils
3 contacts (faits avec la prise téléphonique)
1x Diode 1N5404 3 Amp (sur le contact 12V)
2 interrupteurs à levier (pour allumer l'alimentation secteur lorsque la radio est sur la base de chargement)
1x interrupteur ON/OFF (pour éteindre la base de charge si besoin)
Du contreplaqué de 10 mm et 4 mm pour la base
Au total, y compris le contreplaqué, ce n'est pas plus de 70 €
Étape 1: La partie radio 4703
Tout d'abord une modification:
Le module est censé utiliser le câble du casque comme antenne, dans mon projet, ce n'est pas utile, nous devrons donc d'abord faire une petite modification afin de connecter et antenne externe
Dans ce module la masse jack 3 pôles n'est pas connectée directement à la masse mais via une inductance (pour arrêter les fréquences FM) et un condensateur pour connecter les fréquences FM à l'entrée antenne du SI4703.
Donc le meilleur moyen est de connecter directement l'antenne à la broche de masse de la prise jack et de souder deux câbles pour la sortie audio
Pour éviter tout bruit dans l'audio (notamment du Bluetooth), j'ai mis le module FM dans un petit boitier en plastique blindé avec du ruban de cuivre relié à la masse
Le protocole RDS/Radio Text:
Tout d'abord, je tiens à remercier Nathan Seidle car j'ai été pleinement inspiré par son émission "TEST_FM" de juin 2011
Et, comme convenu, je serai très heureuse de lui payer une bière, si, un de ces jours, il se perd dans mon petit village au fin fond de la Bretagne !!
J'ai beaucoup utilisé son programme car je ne voulais pas utiliser les librairies existantes qui sont un peu trop grosses pour le pauvre espace mémoire Nano et aussi parce qu'il vaut toujours mieux approfondir les possibilités d'un composant en plongeant directement dans les registres
La principale modification que j'ai faite est pour le sondage RDS
J'ai profité de la possibilité de déclencher une interruption sur la broche GPI02 en mettant le bit RDSIEN et la valeur GPIO2 à 01
Cela déclenchera une interruption sur la broche 3 du nano
Cela empêche d'interroger le registre RDS car il déclenchera le programme Radio Text uniquement lorsque le groupe de 4 caractères du texte radio est disponible sans erreur (mode non verbeux)
Pour avoir un texte radio complet, il faut rassembler au maximum 16 blocs de 4 caractères (registres RDSC/RDSB du groupe 2A ou 2B). J'ai mis beaucoup d'informations dans le programme pour expliquer ce que j'ai fait.
Voici une description des registres de données pour le texte radio (RDSSA/RDSC)
dans le registre RDSSB (bloc 2)
La valeur 4 en A3/0 indique (groupe de texte)
B0 indique le texte A (64 caractères) ou B (32 caractères) (je n'ai jamais vu le texte B utilisé………..)
PT0 à PT4 est l'indice du groupe de 4 caractères (0 à 15)
PT5 doit être utilisé comme indicateur de texte A/B (ce qui signifie "ceci est un nouveau texte") mais il n'est pas toujours utilisé comme cela selon la station de radio, il n'est donc pas utilisable pour le programme de texte Radio.
4 caractères du Radio Text sont en RDSSC et RDSSD (bloc 3 et 4)
Je vous conseille de lire le document très intéressant concernant le protocole RDS dans SI4703 =>AN243 de Silicon labs
J'ai également réinitialisé le bit SKMODE dans le registre POWERCFG (voir la fiche technique SI4703) pour rester dans la plage de fréquence lors de la recherche de canaux
La lecture de la fiche de données aidera beaucoup à comprendre le code et toutes les manipulations des registres
Étape 2: la base de chargement
Pas grand chose à ajouter
Les images peuvent mieux parler.
Je viens d'ajouter une diode 1N5404 sur le contact 12 volts
1) pour éviter les problèmes dans le cas où le contact de la batterie touche le contact 12 volts lors de la mise en place de la radio sur la base (mais cela ne s'est jamais produit)
2) pour baisser le niveau de tension à 10,8 volts (il y a aussi une diode sur la carte mère) car le MC7805 peut devenir un peu chaud en passant de 12V à 5 volts avec un courant de 1 Amp (j'ai vissé un morceau de fer comme radiateur dessus le 7805)
J'ai ajouté un petit voltmètre 3 x7 segments pour indiquer la charge de la batterie
Cet appareil est à 3 fils afin de diminuer la consommation (plus de 1 Méga Ohm sur le fil de mesure) ce qui permet de garder la radio sur la base hors tension longtemps sans décharger la batterie
2 interrupteurs à levier permettent de couper l'alimentation secteur lorsque la radio est éteinte de la base (pour éviter d'avoir du 12V sur les contacts)
La boite est en contreplaqué (avant de peindre sur la photo) je vous laisse imaginer comment faire une belle boite car la mienne n'est pas très sexy !!!!!
J'ai été très étonné mais la base de recharge fonctionne bien et je n'ai jamais eu de fumée en déposant la radio dessus………….
Étape 3: La boîte
Je suppose que n'importe qui devrait aimer faire ce qu'il veut en suivant ses capacités artistiques !!!!!
Quoi qu'il en soit, je vais expliquer sous peu comment j'ai pu construire quelque chose qui ressemble terriblement à une boîte à outils
L'avant et l'arrière sont découpés dans du contreplaqué 4 mm 15x45 cm
le haut et le bas sont en contreplaqué de 10 mm 15x45 cm
Les côtés et les 2 cloisons intérieures (2 2 places pour HP et les composants dans celle du milieu) sont en contreplaqué 10 mm 13x13 cm
Sur la face avant j'ai fait 2 trous x10 cm pour le HP et un trou carré 14x14 pour insérer le verre organique 15x15 2mm que j'ai peint en noir (ajout après peinture un autocollant imprimé transparent dessus, mais ce n'est pas si lisible à cause du noir couleur derrière)
J'ai fait 2 trous sur le dessus:
un pour le potentiomètre du Power Amp (pour régler le niveau si besoin) et aussi, comme puissance calorifique
un autre pour l'antenne
sur le panneau arrière j'ai fait 2 trous:
Un pour la prise USB (à brancher directement sur le nano)
Un 16 mm pour le refroidissement par air (le trou de 14 mm du potentiomètre de l'amplificateur de puissance étant la sortie supérieure du refroidissement par air)
la poignée est faite d'un tube de cuivre de 12 mm peint en noir
Tous les composants de la photo ci-dessus trouvent leur place dans le compartiment central (plus tard j'ai dû mettre les piles dans le compartiment HP de gauche car il était trop près du module HC06 BT dans le compartiment principal)
C'est ça
Bien sûr qu'il doit y avoir quelque chose de plus sexy !!!!!
Étape 4: La partie Arduino (schémas et code)
J'ai essayé de mettre le plus d'informations possible dans les commentaires du programme.
Quelques informations supplémentaires
La procédure Decode_TXT est utilisée à la fois par la procédure Bluetooth et la procédure de commutation
certains mots-clés sont utilisés par les deux procédures
v+ => pour augmenter le volume
v- => baisser
f+ => pour augmenter la fréquence d'un pas de 100 Khz
f- => diminuer
su+=> rechercher
sd-=> chercher vers le bas
prefu=> augmenter le numéro de canal présélectionné
prefd=> diminuer
bonjour => envoyé par l'application Android lors de la connexion bluetooth, le code renvoie l'état de la radio
bye => envoyé par l'APP lorsque BT se déconnecte
pow => envoyé par la radio à l'App en mode d'alimentation (sur la base de charge)
bat => en mode batterie
lb => envoyé lorsque le niveau de la batterie est trop faible (environ 8 volts)
La communication Bluetooth est sécurisée par une boucle de contrôle:
Chaque fois que la radio FM envoie une information, une minuterie est lancée en attendant la réponse "ok" de l'application Android
en cas de 3 erreurs (timer expiré) la liaison BT est coupée par la Radio. (cela coupe aussi le lien côté Android)
D'un autre côté
Lorsque l'application envoie une commande, elle attend la réponse de la radio pour envoyer une autre commande.
La procédure get_RT est lancée lorsque le flag RDS est positionné (après une interruption sur la broche 3)
voici le code (lien vers GITHUB)
Les schémas:
La carte mère de la radio FM (en fait la SI4703 est à part dans un boitier blindé):
Le panneau avant:
La base de chargement:
Les liens vers les fichiers Fritzing:
Carte principale RADIO FR
Panneau avant
Base de chargement
Étape 5: L'application Android
Fabriqué avec l'inventeur de l'APP
voici les liens vers GitHub
Radio FM aia
Android APK
L'application utilise 2 minuteries:
1) pour la communication bluetooth (100ms)
2) pour clignoter la led de la batterie lorsque la charge est d'environ 8 v (1000ms)
Pour la première fois, vous devrez coupler le module HC06 avec votre smartphone ou votre tablette.
J'utilise TinyDB pour sauvegarder l'adresse BT du module HC06, la première connexion le bouton adresse BT sera activé et il faudra choisir le HC06 dans la liste (pour ma part, j'ai renommé le module HC06 en FM_RADIO)
Dans l'application, je n'ai pas toujours utilisé le pourcentage pour la taille de l'élément, il peut donc y avoir des problèmes d'affichage en fonction du smartphone.
Le mien est un Galaxy note 3 donc écran plutôt grand……..
J'ai donc passé un bon moment à découvrir ce petit mais très efficace SI4703.
Et a pris beaucoup de plaisir à écrire ce instructables
A mon prochain projet
Au revoir!!!
Conseillé:
Bolt - Horloge de nuit à chargement sans fil bricolage (6 étapes): 6 étapes (avec photos)
Bolt - Horloge de nuit à chargement sans fil DIY (6 étapes): Les chargements inductifs (également appelés chargement sans fil ou chargement sans fil) sont un type de transfert d'énergie sans fil. Il utilise l'induction électromagnétique pour fournir de l'électricité aux appareils portables. L'application la plus courante est la station de charge sans fil Qi
Contrôle de la luminosité Contrôle LED basé sur PWM à l'aide de boutons-poussoirs, Raspberry Pi et Scratch : 8 étapes (avec photos)
Contrôle de la luminosité Contrôle des LED basé sur PWM à l'aide de boutons poussoirs, Raspberry Pi et Scratch : j'essayais de trouver un moyen d'expliquer le fonctionnement du PWM à mes étudiants, alors je me suis fixé pour tâche d'essayer de contrôler la luminosité d'une LED à l'aide de 2 boutons poussoirs - un bouton augmentant la luminosité d'une LED et l'autre la diminuant. Pour programmer
Chargement de la batterie lithium-ion avec cellule solaire : 7 étapes (avec photos)
Charger une batterie lithium-ion avec une cellule solaire : il s'agit d'un projet sur la charge d'une batterie lithium-ion avec une cellule solaire. * quelques corrections que je fais pour améliorer la charge pendant l'hiver.** la cellule solaire doit être de 6 V et le courant (ou la puissance) peut être variable, comme 500 mAh ou 1Ah.*** diode pour protéger TP4056 f
ESP2866 Light Orb avec chargement sans fil : 5 étapes (avec photos)
ESP2866 Light Orb avec chargement sans fil : L'objectif de ce projet est de créer une simple lampe contrôlée par Wi-Fi avec chargement sans fil. L'intention est de faire quelque chose de génial avec peu de composants. Il pourrait par exemple être utilisé comme cadeau ou veilleuse sans fil (ou les deux si vous le souhaitez)
Mise à niveau du multimètre sur batterie Li-ion avec chargement via USB : 4 étapes (avec photos)
Mise à niveau d'un multimètre sur batterie Li-ion avec chargement via USB : comment mettre à niveau un multimètre