Sommario:

Radio FM con RDS (Radio Text), controllo BT e base di ricarica: 5 passaggi
Radio FM con RDS (Radio Text), controllo BT e base di ricarica: 5 passaggi

Video: Radio FM con RDS (Radio Text), controllo BT e base di ricarica: 5 passaggi

Video: Radio FM con RDS (Radio Text), controllo BT e base di ricarica: 5 passaggi
Video: Quando provi a fare un complimento a una ragazza... 2024, Luglio
Anonim
Radio FM con RDS (Radio Text), controllo BT e base di ricarica
Radio FM con RDS (Radio Text), controllo BT e base di ricarica
Radio FM con RDS (Radio Text), controllo BT e base di ricarica
Radio FM con RDS (Radio Text), controllo BT e base di ricarica

Buongiorno, Questo è il mio secondo "Instructables". Dato che mi piace fare cose poco utili, ecco il mio ultimo progetto:

Questa è una radio FM con Radio Text con una base di ricarica e che può essere monitorata tramite Bluetooth e un'APP Android

Pertanto ti presenterò, la parte Arduino, la parte Radio Text e poi la parte dell'inventore dell'app MIT (Questo è l'unico modo in cui sono abbastanza esperto per costruire e APP Android)

Con una tensione di alimentazione di 10,8 volt con alimentazione CA e 9,6 con batteria, la potenza massima è 2x 1,5/1,25 watt RMS che è ampiamente sufficiente

La potenza RMS (root mean square) è la potenza reale non come gli altri grandi numeri che vengono venduti come musica in watt o potenza di picco o qualsiasi altra cosa)

Immagino che 1,5 Watt RMS possano essere venduti come 8 Watt in alcuni negozi!!!!!!

Innanzitutto i componenti necessari:

Scheda principale:

1x Arduino Nano

1x modulo radio FM SI4703 di Sparkfun o equivalente (alimentato da 5 V e I2C da 3,3 V con un jack a 3 poli che può essere utilizzato come antenna)

1x modulo Bluetooth HC-06 (attenzione che la nuova versione software 3.0 ha un set di comandi completamente diverso (ho inserito alcuni commenti nel codice).

1x traslatore di livello a 4 canali 3.3 5 V

1x convertitore MC7805 5v CC

1x condensatore da 2200 µF 25 V

2x 1N5404 diodi da 3 Amp

2x transistor 2N2222

1x resistenza da 1Kohm

1x resistenza da 47 Ohm

2 resistenze da 3,3 KOhm (per pull-up bus I2C)

3 resistenze da 330 Ohm (per i led)

2 resistenze da 6,8 KOhm

1x resistenza da 3,9 KOhm

Pannello frontale

1x 20X4 LCD bus I2C

Resistori 10x 680 Ohm

1x LED rosso (non avevo più verde!!) per l'alimentatore

1x LED giallo per la modalità batteria

1x LED blu per la connessione BT

Interruttori 4x (ON)-OFF-(ON) (come per un finestrino elettrico)

2x pulsanti

1x interruttore ON/OFF

Altri componenti per la Radio:

2x 100W 10CM 8 Ohm HP

1x antenna estensibile da 1 m (circa 75 cm è la lunghezza buona per FM in Europa e negli Stati Uniti)

1x presa telefonica che ho usato per fare i contatti per la base di ricarica

1x 1N5404 diodo 3 Amp (sul contatto della batteria per evitare fumo in caso di pasticcio con la terra o contatto 12V)

1x Amplificatore di potenza 2X20 watt (qualsiasi amplificatore stereo si adatta finché è 12V) basato su TDA2020 acquistato per 4 Euro

1x accoppiatore batteria 8XAA (per avere min 9.6V)

Alcuni compensato da 10 mm e 4 mm per la scatola

Base di ricarica:

1x alimentatore 12V 3Amp

1x voltmetro piccolo a 3 cifre/3 fili

3 contatti (realizzati con presa telefonica)

1x 1N5404 diodo 3 Amp (sul contatto 12V)

2 interruttori a leva (per alimentare l'alimentazione AC quando la radio è sulla base di ricarica)

1x interruttore ON/OFF (per spegnere la base di ricarica se necessario)

Alcuni compensato da 10 mm e 4 mm per la base

Complessivamente, compreso il compensato non è più di 70€

Passaggio 1: la parte radio 4703

Innanzitutto, una modifica:

Il modulo dovrebbe utilizzare il cavo dell'auricolare come antenna, nel mio progetto non è utile, quindi dovremo prima fare una piccola modifica per collegare un'antenna esterna

In questo modulo la terra del jack a 3 poli non è collegata direttamente a terra ma tramite un'induttanza (per fermare le frequenze FM) e un condensatore per collegare le frequenze FM all'ingresso dell'antenna dell'SI4703.

Quindi il modo migliore è collegare direttamente l'antenna al pin di terra del jack e saldare due cavi per l'uscita audio

Immagine
Immagine

Per prevenire eventuali rumori nell'audio (soprattutto da Bluetooth), ho messo il modulo FM in una piccola scatola di plastica schermata con nastro di rame collegato a terra

Immagine
Immagine

Il protocollo RDS/Radio Text:

Innanzitutto, voglio ringraziare Nathan Seidle perché sono stato completamente ispirato dal suo programma "TEST_FM" di giugno 2011

E, come d'accordo, sarò ben lieto di dargli una birra, se uno di questi giorni si perderà nel mio paesino nel profondo della Bretagna!!

Ho usato molto il suo programma perché non volevo usare le librerie esistenti che sono un po' grandi per lo scarso spazio di memoria Nano e anche perché è sempre meglio approfondire le possibilità di un componente immergendosi direttamente i registri

La modifica principale che ho apportato riguarda il polling RDS

Ho sfruttato la possibilità di attivare un interrupt sul pin GPI02 impostando il bit RDSIEN e il valore GPIO2 su 01

Questo attiverà un interrupt sul pin 3 del nano

Ciò impedisce il polling del registro RDS in quanto attiverà il programma Radio Text solo quando il gruppo di 4 caratteri del radiotext è disponibile senza errori (modalità non verbose)

Per avere un radiotext completo, dobbiamo raccogliere al massimo 16 blocchi di 4 caratteri (registri RDSC/RDSB del gruppo 2A o 2B). Ho inserito molte informazioni nel programma per spiegare cosa ho fatto.

Ecco una descrizione dei Registri dati per il testo radio (RDSSA/RDSC)

Immagine
Immagine

nel registro RDSSB (blocco 2)

Il valore 4 in A3/0 indica (gruppo di testo)

B0 indica il testo A (64 caratteri) o B (32 caratteri) (non ho mai visto il testo B in uso………..)

Da PT0 a PT4 è l'indice del gruppo di 4 caratteri (da 0 a 15)

PT5 dovrebbe essere usato come indicatore di testo A/B (che significa "questo è un nuovo testo") ma non è sempre usato in questo modo a seconda della stazione radio, quindi non è utilizzabile per il programma di testo radio.

4 caratteri del testo radio sono in RDSSC e RDSSD (blocco 3 e 4)

Ti consiglio di leggere l'interessantissimo documento riguardante il protocollo RDS in SI4703 =>AN243 di Silicon labs

Ho anche resettato il bit SKMODE nel registro POWERCFG (vedi scheda tecnica SI4703) per rimanere nel range di frequenza durante la ricerca dei canali

Leggere datashhet aiuterà molto a capire il codice e tutte le manipolazioni dei registri

Passaggio 2: la base di ricarica

La base di ricarica
La base di ricarica
La base di ricarica
La base di ricarica
La base di ricarica
La base di ricarica

Non ci sono molte cose da aggiungere

Le immagini possono parlare meglio.

Ho appena aggiunto un diodo 1N5404 sul contatto da 12 volt

1) per evitare problemi nel caso in cui il contatto della batteria tocchi il contatto a 12 volt quando si mette la radio sulla base (ma non è mai successo)

2) abbassare il livello di tensione a 10,8 volt (c'è anche un diodo sulla scheda madre) in quanto l'MC7805 può diventare un po' caldo quando si passa da 12V a 5 volt con 1 Amp di corrente (ho avvitato un pezzo di ferro come dissipatore il 7805)

Ho aggiunto un piccolo voltmetro a 3 x 7 segmenti per indicare il carico della batteria

Questo dispositivo è a 3 fili per abbassare il consumo (più di 1 Mega Ohm sul filo di misura) che permette di mantenere la radio sulla base spenta a lungo senza scaricare la batteria

Immagine
Immagine

2 interruttori a leva sono utilizzati per spegnere l'alimentazione AC quando la radio è spenta dalla base (per evitare di avere 12V sui contatti)

Immagine
Immagine

La scatola è realizzata in compensato (prima di dipingere sulla foto) vi lascio immaginare come realizzare una bella scatola visto che la mia non è molto sexy!!!!!

Sono rimasto molto sbalordito ma la base di ricarica funziona bene e non ho mai fumato durante l'atterraggio della radio………….

Passaggio 3: la scatola

La scatola
La scatola
La scatola
La scatola
La scatola
La scatola
La scatola
La scatola

Immagino che chiunque dovrebbe voler fare come vuole seguendo le sue capacità artistiche!!!!!

Ad ogni modo ti spiegherò a breve come potrei costruire qualcosa che assomigli terribilmente a una cassetta degli attrezzi

Anteriore e posteriore sono tagliati in compensato da 4 mm 15x45 cm

la parte superiore e inferiore sono in compensato da 10 mm 15x45 cm

I fianchi e le 2 pareti divisorie interne (2 2 posti per HP e i componenti in quello centrale) sono in multistrato 10 mm 13x13 cm

Sul pannello frontale ho fatto dei fori 2x10 cm per l'HP e un foro quadrato 14x14 per inserire il vetro organico 15x15 2mm che ho dipinto di nero (aggiungendo dopo aver dipinto un adesivo stampato trasparente, ma non è così leggibile a causa del nero colore dietro)

Ho fatto 2 fori sulla parte superiore:

uno per il potenziometro del Power Amp (per regolare il livello se necessario) e anche come potenza termica

un altro per l'antenna

sul pannello posteriore ho fatto 2 fori:

Uno per la presa USB (collegare direttamente il nano)

Uno da 16 mm per il raffreddamento ad aria (il foro da 14 mm del potenziometro dell'amplificatore di potenza è l'uscita di raffreddamento ad aria superiore)

il manico è costituito da un tubo di rame da 12 mm verniciato in nero

Tutti i componenti della foto sopra trovano posto nel vano centrale (poi ho dovuto mettere le batterie nel vano HP sinistro perché era troppo vicino al modulo HC06 BT nel vano principale)

Questo è tutto

Ovviamente ci deve essere qualcosa di più sexy!!!!!

Passaggio 4: la parte Arduino (schemi e codice)

Ho cercato di inserire più informazioni possibili nei commenti del programma.

Qualche informazione in più

La procedura Decode_TXT viene utilizzata sia dalla procedura Bluetooth che dalla procedura switch

alcune parole chiave sono usate da entrambe le procedure

v+ => per aumentare il volume

v- => abbassare

f+ => per aumentare la frequenza di un passo di 100 Khz

f- => diminuire

su+=> cerca su

sd-=> cerca in basso

prefu => aumentare il numero del canale preselezionato

prefd => diminuire

ciao => inviato dall'APP Android durante la connessione bluetooth, il codice restituisce lo stato della radio

bye => inviato dall'APP quando BT si disconnette

pow => inviato dalla radio all'App in modalità alimentazione (sulla base di ricarica)

bat => in modalità batteria

lb => inviato quando il livello della batteria è troppo basso (circa 8 volt)

La comunicazione Bluetooth è protetta da un circuito di controllo:

Ogni volta che la radio FM invia un'informazione, viene avviato un timer in attesa della risposta "ok" da parte dell'APP Android

in caso di 3 errori (timer scaduto) il collegamento BT viene interrotto dalla Radio. (questo taglia anche il collegamento lato Android)

Dall'altro lato

Quando l'App invia un comando, attende la risposta dalla radio per inviare un altro comando.

La procedura get_RT viene lanciata quando il flag RDS è impostato (dopo un interrupt sul pin 3)

ecco il codice (link a GITHUB)

Gli schemi:

La scheda madre della radio FM (infatti la SI4703 è a parte in una scatola schermata):

Immagine
Immagine

Il pannello frontale:

Immagine
Immagine

La base di ricarica:

Immagine
Immagine

I collegamenti ai file Fritzing:

Scheda principale RADIO FR

Pannello frontale

Base di ricarica

Passaggio 5: l'app per Android

L'app per Android
L'app per Android
L'app per Android
L'app per Android

Realizzato con l'inventore dell'APP

ecco i link a GitHub

Radio FM aia

APK Android

L'app utilizza 2 timer:

1) per la comunicazione bluetooth (100ms)

2) per il lampeggio del led della batteria quando il carico è di circa 8 v (1000ms)

Per la prima volta dovrai associare il modulo HC06 al tuo smartphone o tablet.

Uso TinyDB per salvare l'indirizzo BT del modulo HC06, alla prima connessione verrà abilitato il pulsante BT address e dovrai scegliere l'HC06 nella lista (da parte mia, ho rinominato il modulo HC06 in FM_RADIO)

Nell'App non ho sempre usato la percentuale per la dimensione dell'elemento, quindi potrebbero esserci problemi di visualizzazione a seconda dello smartphone

Il mio è un Galaxy note 3 quindi schermo piuttosto grande……..

Così mi sono divertito a scoprire questo SI4703 piccolo ma molto efficiente.

E mi è piaciuto molto scrivere questo tutorial

Fino al mio prossimo progetto

Arrivederci!!!

Consigliato: