Table des matières:

Radio FM avec RDS (Radio Text), contrôle BT et base de chargement : 5 étapes
Radio FM avec RDS (Radio Text), contrôle BT et base de chargement : 5 étapes

Vidéo: Radio FM avec RDS (Radio Text), contrôle BT et base de chargement : 5 étapes

Vidéo: Radio FM avec RDS (Radio Text), contrôle BT et base de chargement : 5 étapes
Vidéo: "Test" Ce produit ajoute ANDROID AUTO et CARPLAY à n'importe quel autoradio FM 😲 "Carpuride W701" 2024, Novembre
Anonim
Radio FM avec RDS (Radio Text), contrôle BT et base de chargement
Radio FM avec RDS (Radio Text), contrôle BT et base de chargement
Radio FM avec RDS (Radio Text), contrôle BT et base de chargement
Radio FM avec RDS (Radio Text), contrôle BT et base de chargement

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

Image
Image

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

Image
Image

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)

Image
Image

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

La base de chargement
La base de chargement
La base de chargement
La base de chargement
La base de chargement
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

Image
Image

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)

Image
Image

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

La boîte
La boîte
La boîte
La boîte
La boîte
La boîte
La boîte
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é):

Image
Image

Le panneau avant:

Image
Image

La base de chargement:

Image
Image

Les liens vers les fichiers Fritzing:

Carte principale RADIO FR

Panneau avant

Base de chargement

Étape 5: L'application Android

L'application Android
L'application Android
L'application Android
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é: