Tabla de contenido:

Radio FM con RDS (texto de radio), control BT y base de carga: 5 pasos
Radio FM con RDS (texto de radio), control BT y base de carga: 5 pasos

Video: Radio FM con RDS (texto de radio), control BT y base de carga: 5 pasos

Video: Radio FM con RDS (texto de radio), control BT y base de carga: 5 pasos
Video: Radio Android | Explicación conexiones de Arnés Principal – Arnés de Audio – Cámara de retroceso. 2024, Mes de julio
Anonim
Radio FM con RDS (texto de radio), control BT y base de carga
Radio FM con RDS (texto de radio), control BT y base de carga
Radio FM con RDS (texto de radio), control BT y base de carga
Radio FM con RDS (texto de radio), control BT y base de carga

Bonjour, Este es mi segundo "Instructables". Como me gusta hacer cosas no muy útiles, aquí está mi último proyecto:

Se trata de una radio FM con Radio Text con base de carga y que se puede monitorizar a través de Bluetooth y una APP de Android

Por lo tanto, les presentaré la parte de Arduino, la parte de texto de radio y luego la parte del inventor de la aplicación MIT (esta es la única forma en que soy lo suficientemente hábil para construir una aplicación de Android)

Con un voltaje de suministro de 10; 8 voltios con suministro de CA y 9,6 con batería, la potencia máxima es de 2x 1,5 / 1,25 vatios RMS, que es suficiente

La potencia RMS (raíz cuadrada media) es la potencia real, no como los otros números grandes que se venden como vatios de música o potencia máxima o cualquier otra cosa)

¡Supongo que 1,5 vatios RMS se pueden vender como 8 vatios en algunas tiendas!

Primero los componentes necesarios:

Tablero principal:

1x Arduino Nano

1x módulo de radio FM SI4703 de Sparkfun o equivalente (5v alimentado y 3.3V I2C con un conector de 3 polos que se puede usar como antena)

1x módulo Bluetooth HC-06 (advirtiendo que la nueva versión del software 3.0 tiene un conjunto de comandos totalmente diferentes (pongo algunos comentarios en el código).

1x cambiador de nivel de 4 canales 3,3 5 V

1x convertidor MC7805 5v DC

1x condensador de 2200 µF 25V

2x diodos 1N5404 de 3 amperios

2x transistores 2N2222

1x resistencia de 1Kohm

1x resistencia de 47 ohmios

2x resistencias de 3,3 KOhmios (para pull-up de bus I2C)

3 resistencias de 330 Ohmios (para los leds)

2x resistencias de 6,8 KOhmios

1x resistencia de 3,9 KOhmios

Panel frontal

1x bus I2C LCD 20X4

10 resistencias de 680 ohmios

1x LED rojo (¡¡No tenía más verde !!) para la fuente de alimentación

1x LED amarillo para el modo de batería

1x LED azul para la conexión BT

4x (ON) -OFF- (ON) interruptores (como para una ventana de automóvil eléctrica)

2x pulsadores

1x interruptor de encendido / apagado

Otros componentes de la Radio:

2x 100W 10CM 8 ohmios HP

1 antena extensible de 1 m (alrededor de 75 cm es la longitud adecuada para FM en Europa y EE. UU.)

1x enchufe telefónico que usé para hacer los contactos para la base de carga

1x 1N5404 diodo de 3 amperios (en el contacto de la batería para evitar humo en caso de que se ensucie con el suelo o el contacto de 12 V)

1 amplificador de potencia de 2 x 20 vatios (cualquier amplificador estéreo se ajustará siempre que sea de 12 V) basado en TDA2020 comprado por 4 euros

1 acoplador de batería 8XAA (para tener un mínimo de 9,6 V)

Unos contrachapados de 10 mm y 4 mm para la caja.

Base de carga:

Fuente de alimentación 1x 12V 3Amp

1x voltímetro pequeño de 3 dígitos / 3 cables

3 contactos (hechos con enchufe telefónico)

1x 1N5404 diodo de 3 amperios (en el contacto de 12 V)

2 interruptores de palanca (para encender la fuente de CA cuando la radio está en la base de carga)

1x interruptor de ENCENDIDO / APAGADO (para apagar la base de carga si es necesario)

Unos contrachapados de 10 mm y 4 mm para la base.

En total, incluido el contrachapado, no supera los 70 €.

Paso 1: La parte de radio 4703

Primero, una modificación:

Se supone que el módulo usa el cable de los auriculares como antena, en mi proyecto no es útil, por lo que primero tendremos que hacer una pequeña modificación para poder conectar una antena externa

En este módulo, la toma de tierra de 3 polos no está conectada directamente a tierra sino a través de una inductancia (para detener las frecuencias FM) y un condensador para conectar las frecuencias FM a la entrada de la antena del SI4703.

Entonces, la mejor manera es conectar directamente la antena al pin de tierra del conector y soldar dos cables para la salida de audio.

Imagen
Imagen

Para evitar ruidos en el audio (especialmente de Bluetooth), coloco el módulo FM en una pequeña caja de plástico blindada con cinta de cobre conectada a tierra

Imagen
Imagen

El protocolo RDS / Radio Text:

Primero, quiero agradecer a Nathan Seidle ya que me inspiré completamente en su programa "TEST_FM" de junio de 2011.

Y, según lo acordado, estaré muy feliz de pagarle una cerveza, si, uno de estos días, se pierde en mi pequeño pueblo en el fondo de Bretaña !!

Usé mucho de su programa porque no quería usar las bibliotecas existentes que son un poco demasiado grandes para el escaso espacio de memoria Nano y también porque siempre es mejor profundizar en las posibilidades de un componente buceando directamente en los registros

La principal modificación que hice es para el sondeo RDS

Aproveché la posibilidad de activar una interrupción en el pin GPI02 estableciendo el bit RDSIEN y el valor GPIO2 en 01

Esto activará una interrupción en el pin 3 del nano

Esto evita el sondeo del registro RDS, ya que activará el programa de texto de radio solo cuando el grupo de texto de radio de 4 caracteres esté disponible sin errores (modo no detallado)

Para tener un radio texto completo, debemos reunir como máximo 16 bloques de 4 caracteres (registros RDSC / RDSB del grupo 2A o 2B). Pongo mucha información en el programa para explicar lo que hice.

A continuación se muestra una descripción de los registros de datos para texto de radio (RDSSA / RDSC)

Imagen
Imagen

en registro RDSSB (bloque 2)

El valor 4 en A3 / 0 indica (grupo de texto)

B0 indica texto A (64 caracteres) o B (32 caracteres) (nunca he visto texto B en uso ………..)

PT0 a PT4 es el índice del grupo de 4 caracteres (0 a 15)

PT5 debe usarse como indicador de texto A / B (que significa "este es un texto nuevo") pero no siempre se usa así dependiendo de la estación de radio, por lo que no se puede usar para el programa de texto de radio.

4 caracteres del texto de radio están en RDSSC y RDSSD (bloque 3 y 4)

Te aconsejo que leas el documento muy interesante sobre el protocolo RDS en SI4703 => AN243 de Silicon Labs

También restablezco el bit SKMODE en el registro POWERCFG (consulte la hoja de datos SI4703) para permanecer en el rango de frecuencia mientras busco canales

Leer datashhet ayudará mucho a comprender el código y todos los manejos de registros.

Paso 2: la base de carga

La base de carga
La base de carga
La base de carga
La base de carga
La base de carga
La base de carga

No hay muchas cosas que agregar

Las imágenes pueden hablar mejor.

Acabo de agregar un diodo 1N5404 en el contacto de 12 voltios

1) para evitar problemas en caso de que el contacto de la batería toque el contacto de 12 voltios al colocar la radio en la base (pero nunca sucedió)

2) para bajar el nivel de voltaje a 10.8 voltios (también hay un diodo en la placa base) ya que el MC7805 puede calentarse un poco al pasar de 12V a 5 voltios con 1 amperio de corriente (atornillé un trozo de hierro como disipador de calor en el 7805)

Agregué un pequeño voltímetro de 3 x 7 segmentos para indicar la carga de la batería

Este dispositivo es de 3 cables para disminuir el consumo (más de 1 Mega Ohm en el cable de medición) lo que permite mantener la radio en la base APAGADA durante mucho tiempo sin descargar la batería.

Imagen
Imagen

Se utilizan 2 interruptores de palanca para apagar el suministro de CA cuando la radio está fuera de la base (para evitar tener 12V en los contactos)

Imagen
Imagen

La caja está hecha con madera contrachapada (antes de pintar en la foto) ¡¡¡¡Te dejo imaginar cómo hacer una bonita caja ya que la mía no es muy sexy !!!!!

Estaba muy sorprendido, pero la base de carga está funcionando bien y nunca tuve humo mientras conectaba la radio con ella ………….

Paso 3: la caja

La caja
La caja
La caja
La caja
La caja
La caja
La caja
La caja

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡

De todos modos, explicaré en breve cómo pude construir algo que se parece terriblemente a una caja de herramientas.

La parte delantera y trasera están cortadas en madera contrachapada de 4 mm 15x45 cm

la parte superior e inferior son de madera contrachapada de 10 mm 15x45 cm

Los lados y las 2 particiones internas (2 2 lugares para HP y los componentes en el medio) son de madera contrachapada de 10 mm 13x13 cm

En el panel frontal hice orificios de 2 x 10 cm para el HP y un orificio cuadrado de 14x14 para insertar el vidrio orgánico de 15x15 2 mm que pinté en negro (agregando después de pintar una pegatina impresa transparente, pero no es tan legible debido al negro color detrás)

Hice 2 agujeros en la parte superior:

uno para el potenciómetro del Power Amp (para ajustar el nivel si es necesario) y también, como salida de calor

otro para la antena

en el panel trasero hice 2 agujeros:

Uno para el enchufe USB (enchufe directamente en el nano)

Uno de 16 mm para refrigeración por aire (el orificio de 14 mm del potenciómetro del amplificador de potencia es la salida superior de refrigeración por aire)

el mango está hecho de un tubo de cobre de 12 mm pintado en negro

Todos los componentes de la imagen de arriba se encuentran en el compartimento central (luego tuve que poner las baterías en el compartimento HP izquierdo porque estaba demasiado cerca del módulo HC06 BT en el compartimento principal)

Eso es todo

¡Por supuesto que debe haber algo más sexy!

Paso 4: La parte de Arduino (esquemas y código)

Intenté poner la mayor cantidad de información posible en los comentarios del programa.

Más información

El procedimiento Decode_TXT es utilizado tanto por el procedimiento de Bluetooth como por el procedimiento de conmutación

Algunas palabras clave se utilizan en ambos procedimientos.

v + => para aumentar el volumen

v- => bajar

f + => para aumentar la frecuencia de un paso de 100 Khz

f- => disminuir

su + => buscar

sd - => buscar abajo

prefu => aumentar el número de canal preseleccionado

prefd => disminuir

hola => enviado por la aplicación de Android durante la conexión bluetooth, el código devuelve el estado de la radio

bye => enviado por la APP cuando BT se desconecta

pow => enviado por la radio a la aplicación en modo de fuente de alimentación (en la base de carga)

bat => cuando está en modo batería

lb => enviado cuando el nivel de la batería es demasiado bajo (alrededor de 8 voltios)

La comunicación Bluetooth está asegurada por un bucle de control:

Cada vez que la radio FM envía una información, se inicia un temporizador esperando la respuesta "ok" de la aplicación de Android

en caso de 3 errores (el temporizador expiró), la radio corta el enlace BT. (esto también corta el enlace en el lado de Android)

Por otro lado

Cuando la aplicación envía un comando, espera la respuesta de la radio para enviar otro comando.

El procedimiento get_RT se inicia cuando se establece la bandera RDS (después de una interrupción en el pin 3)

aquí está el código (enlace a GITHUB)

Los esquemas:

La placa principal de la radio FM (de hecho, el SI4703 está aparte en una caja blindada):

Imagen
Imagen

El panel frontal:

Imagen
Imagen

La base de carga:

Imagen
Imagen

Los enlaces a los archivos de Fritzing:

Placa principal FR RADIO

Panel frontal

Base de carga

Paso 5: la aplicación de Android

La aplicación de Android
La aplicación de Android
La aplicación de Android
La aplicación de Android

Hecho con el inventor de la aplicación

aquí están los enlaces a GitHub

Radio FM aia

APK de Android

La aplicación utiliza 2 temporizadores de reloj:

1) para la comunicación bluetooth (100ms)

2) para parpadear el led de la batería cuando la carga es de alrededor de 8 v (1000ms)

Por primera vez, tendrá que emparejar el módulo HC06 con su teléfono inteligente o tableta.

Yo uso TinyDB para guardar la dirección BT del módulo HC06, en la primera conexión se habilitará el botón de dirección BT y tendrás que elegir el HC06 en la lista (por mi parte, renombré el módulo HC06 en FM_RADIO)

En la aplicación, no siempre usé el porcentaje para el tamaño del elemento, por lo que puede haber problemas de visualización dependiendo del teléfono inteligente.

El mío es un Galaxy Note 3, una pantalla bastante grande ……..

Así que pasé un buen rato descubriendo este SI4703 pequeño pero muy eficiente.

Y me gustó mucho escribir este instructivo.

Hasta mi próximo proyecto

¡¡¡Hasta la vista!!!

Recomendado: