Proyecto RADIO FM con RDS y EXTRAS

Buenas a todos.

Llevo un buen tiempo presentar mi proyecto, sin embargo por lo laborioso del mismo he creído realizarlo por etapas y escribir del desarrollo del mismo.

Quizás sea muy complejo, de aquí que empiece este hilo para que vean a medida de mi tiempo y ocio de la finalización del mismo.

He de comentar que mi amigo Francisco (yo le llamo Tigre) me advirtió que en un bazar Chino hay receptores de FM por 2€… Este proyecto en el cual me he embarcado ya llevo como mas de 200€ invertidos, dolores de cabeza, cientos de horas y problemas de aptitudes y desmoralización, no obstante todo esto me sirve para ir aprendiendo, logrando y/o superandome en muchas de las tecnicas que Arduino puede ofrecer.

No soy de las personas que se rinden, ni tampoco seré la ultima que no se dé por satisfecho con el logro obtenido.

Resumo brevemente de lo que consta mi proyecto que es un Radio de FM con RDS en cuatro bloques, con múltiples controles a modo de su características es;

  • 1 Display LCD 16x2 por definir
  • 1 Dsiplay LCD 20x4 para los menús de control
  • 2 LCD Monocromos para indicadores de Audio Spectruml
  • 1 LCD Monocromo para visualizar toda la información del Radio FMl

Los lcd´s monocromos son basados en el chip ST7920 (muy buenos y económicos.
Unas de las características del son estas;

  • Control vía teclado
  • Control por Mando a distancia
  • Sintonia fina
  • Control del brillo a todos los LCD´s
  • Control de contraste a todos los LCD´s
  • Función Reloj

Y algunas mas sobre la marcha…

Para ello he usado 2 Arduino Modelo UNO y un Arduino Modelo MEGA, He realizado Shields (placas) a medida como por ejemplo la salida de BF, el control analógico con motor para los Spectrum de Audio, la Shield de la EEPROM exterior etc…, la fuente de alimentación, las placas de relés que uso y un sinfín de cosas que le quiero añadir sobre el momento y la decisión aunque esta sea en un modo con fluidez de mejoras.

Os comento desde ya, todas las placas, códigos los iré poniendo en la medida que voy avanzando, de hecho ya tengo el 55% en funcionalidad, es decir el Radio FM ya funciona correctamente,.

Pero como escribí anteriormente es muy pesado escribirlo en todo un mensaje. Aportaré esquemas, códigos fuente del mismo a su medida.

He de comentar y lo realizo muy a gusto, este proyecto no hubiese sido realizado sin la ayuda de este foro, y tengo que darle las gracias a surbyte por darme unas ayudas en algunos códigos del cual no supe como adaptarlos, soy consciente que este 45% que me queda será a la medida me he aprendido mucho y por ello me animo a presentaros este pequeño proyecto.

Cada x días les pondré (a mi tiempo posible) unas capturas, esquemas, y cuando todo este realizado, les prometo todo el código fuente del mismo.

Espero criticas, ayudas y si es posible algunas mejoras del mismo, todo se tendrá en consideración
Saludos y hasta el próximo mensaje.

P.S. Es la forma que he encontrado de realizar mi proyecto, presentarlo e ir añadiendo todo. Lo comenté por la terrible funcionalidad del mismo.

Descargar la versión beta 2.5b

Actualizado a 19 de Julio de 2016; incluido ficheros adjuntos del RadioFM

RadioFM_RDS by lightcalamar.zip (44.7 KB)

Bueno no tengo mas que agradecerte por la mención que haces pero mas lo hago por la forma en que has presentado tu proyecto. Ojalá que esta manera de hacerlo sea copiada porque es la forma en que un profesional o un novato debe hacerlo. Se contextualiza una idea, se presenta debidamente, se enumeran los elementos a utilizar y se van desarrollando y cumpliendo los objetivos propuestos. Estaré como siempre muy gustoso de colaborar en lo que haga falta, como me imagino tantos otros foreros que siempre brindan su apoyo a cada consulta.

Gracias y espero tu ayuda en la medida que tenga problemas, surbyte.
Paso a lo primero que es la ;

Fuente de Alimentación

Aquí el esquema;

Se obtiene de salida en 3 conectores USB hembras los +5VCC para alimentar los tres Arduino (2 Modelos UNO y 1 modelo MEGA), tiene una salida de +9VCC para alimentar dos relés y posibles circuitos mayores de 5 voltios. El transformador es reciclado de un “ojo de buey” (aquellas bombillas halogenas a 12VAC de hace unos años) la corriente que suministra el transformador es de 1200 mili-amperios o 1,2 Amperios.

El circuito impreso es de doble cara comprado en esta tienda, bueno gran parte de todo el material lo realice en ella, por lo cual iré poniendo los enlaces.
Le he puesto 3 salidas de +5VCC en USB y en dos conectores tornillo también para los 5 Voltios, a igual un conector para la salida de +9VCC;

Quedando todo ya montado de esta forma;

Adjunto todas las imágenes en un zip. Nota para los esquemas he usado el CAD llamado FidoCADJ,construyéndome mis propias librerías de componentes.

Seguiremos…

FUENTE ALIMENTACION.zip (1.15 MB)

El 7805 es el del disipador más grande, cierto? Pregunto porque como ambos son reguladores lineales y se someten al mismo voltaje de entrada, el de menor voltaje de salida es que tenderá a producir más calor.

Hola Lucario448

Los radiadores son los dos iguales a los dos IC reguladores. El 7809 se usara aleatoriamente dentro del montaje y muy puntual. Como bien saber estos IC para su correcto funcionamiento o mejor dicho su salida será exactamente igual si su entrada tiene 3 Voltios mas de entrada de su salida, es decir el 7809 a de tener 12 voltios a su entrada y el 7805 no hay problema ya que supera la entrada los 3 voltios.

El 7805 y 7809 ofrecen hasta una corriente de 1,5 Amperios pero no es necesario ya que en pleno rendimiento leií lecturas de 800 ~ 900 miliamperios por lo tanto no hay problema.

Si que es verdad realizando pruebas el 7805 se calienta pero bueno es su trabajo, el radiador que le busqué aparte de su silicona térmica lo estuve funcionando unas 48 horas y su temperatura es aceptable.

Gracias por tu sugerencia!

Seguimos…

Este mensaje es del control para el Brillo y Contraste de los tres LCD´s gráficos. Como comenté son 128x64 y es el chip ST7920 comprados aquí un LCD es el que representa el Radio en sí donde muestra;

  • Frecuencia en MHz
  • El nivel de la emisora (S/R)
  • Nivel del volumen
  • Los datos RDS de la emisora
  • Control de Muting
  • Indicación STEREO / MONO
  • Información

y no hay para poner mas cosas que es un poco “pequeño”. Los otros dos LCD´s también gráficos son los que muestran las 7 u 14 (según otra función para ellos) el nivel de audio en función barras spectrum del cual al principio me decanté por LCD´s 20 x 4 pero hubo problemas… Por lo tanto uno será para el canal derecho y el segundo para el canal izquierdo.

Este es el esquema de un LCD (y como dije son 3) osea el esquema se convierte en 3 veces;

Si observan el circuito integrado U103 y U104 son dos Potenciómetros Digital de Xicor el X9C103P donde su salida “del pote” es de 10KOhmios, los hay de otros valores pero eleji este porque se ajusta a mi test que realice en su día.

Bien y preguntarán porque no haber usado los pines PWM de las salidas digitales?. Buena pregunta, y esta es la respuesta:

Cuando estuve realizando pruebas me dí cuenta que había un problema con el control del contraste el pin del LCD mascado como VO y resulta cuando esta esta el 75% de la regulación observé una interpolación sobre el LCD, vamos como un “batido” de corriente alterna, pensé que era problemas de filtrado, realice muchas pruebas y ninguna doy satisfacción. Leí que era por la frecuencia cuando se variaba la modulación del ancho de impulso de las salidas digitales de Arduino, lo realice en varios modelos y todos con el mismo síntoma, llegue a pensar sería problema de los LCD´s pero 5 no pueden hacer lo mismo, revisé las DataSheet del LCD y nada no hubo forma.

Total me incliné con los potenciómetros digitales como el X9C103P donde es fácil su montaje ademas de obtener una librería a la hora de compilar que funciona correctamente. Es esta librería

Pero claro hay un problema… No la librería sino el X9C103P, este usa 3 pin de control para su correcto funcionamiento sea en librería o no y claro para el control de un LCD se necesitan dos circuitos integrados, que son 6 pines de control y como son tres LCD´s son 18 pines digitales de control, por lo tanto Arduino MEGA al canto, bueno ya lo tenia por el tema de controlar el LCD de los menús que es alfanumérico pero así es como he solucionado el “rizado” molesto de los LCD´s gráficos.

Dejo capturas de los potenciómetros y adjunto esquemas y capturas.

Hasta la próxima!

esquemas.zip (1.14 MB)

Dejo el primer vídeo del Radio.

Ver vídeo

Muy buen trabajo Tomas!! Solo un comentario: Los chinos te van a llamar para ver como haces para fabricar todo eso por 10 euros.. jajaja. Ahora Maravilloso!!!

Gracias a ti Ricardo!

A todo ello llevo toda la semana estancado en los controles de brillo y contraste de cada uno de os 3 LCD´s gráficos y ya lo he solucionado. Los 6 circuitos integrados X9C103P que se van a usar vía librería ya están completamente adaptados. Este es el enlace .

Ya tengo realizado el modulo de la EEPROM exterior, y tengo que realizar los dos amplificadores de BF para la entrada de cada Audio Spectrum, he usado un amplificador operacional y el nivel de salida satura en exceso y funciona mal, como no se tiene que tener gran ganacia usaré un amplificador tipo BC547 en salida de emisor común y dependiendo lo mismo lo monto en circuito Darlington si me faltase ganancia.

En este fin de semana compondré los esquemas de los mismos.

P.S. A todo ello yo añadiría un 0 (cero) mas si los chinos me contratan... jejejeje :)

Por fin veo un modulo FM plenamente funcional, a la espera de los avances. Buen proyecto.

PD: si algún día quieres instalarle un TFT, ve directo por uno basado en el chip FT800, el mas económico: gameduino 2, ese TFT le queda tanto al UNO , al MEGA como al Due, hasta en el teensy 3.2 funciona!!,

No pude evitarlo, mientras he visto el avance de tu radio, lo he imaginado con una pantalla a colores jejejeje

Mira su video, esta muy avanzado, TFTLCDyg, falta tu toque!!! jaja

Y a todo ello que todavía no esta acabado...

@TFTLCDCyg al principio usé una pantalla 3,2 TFT concretamente esta pero la librería UTFT tenía problemas de refresco, luego adapté esta otra pantalla y no me agrado como trabajaba porque usaba la misma librería aunque ya tenía la pantalla tactil el cual esto me hacía ilusión.

Recuerdo en un mensaje tuyo me distes apoyo sobre la pantalla que me dices para el Audio Spectrum, le voy a echar un vistazo para el próximo Radio que realice porque he de hacer otro con pantalla a todo color, de ello estoy ahora mismo ya investigando, he visto alguno de tus vídeos sobre estas pantallas y son de guapas que da mucha envidia. Donde las compraste?, puedes escribir el enlace?

El modulo del Radio RDS esta basado en un chip el RDA5807M lo conpré aquí magnifico precio de hecho compré 5 por si acaso.

A seguir trabajando que tengo faena. Saludos!

Buenas.

He añadido dentro del menú principal otras funciones importantes que son;

  • Control entrada Spectrum LCD´s (vía control X9C103P)
  • Cambio visualización Spectrum (4 funciones (*))

A todo ello otras funciones como reset a los dos Arduinos Uno (cada uno para los Spectrum de Audio) y estudiado el tema, creo tendría que sacrificar un Arduino Nano (no hay problema, ya que tengo unos 5 ~ 6)

El problema de usar el nuevo Arduino Nano en el proyecto, es obtener la función principal de Stand-By del radio. Y mi pregunta es la siguiente de que forma lograría controlar los tres Arduinos para quedar en reposo (o Stand-by)?

De hecho no hay problema porque tanto el volumen y la emisora queda guardada en EEPROM y al volver a la "vida" es lo que dejó antes de "apagarse"... Las 4 funciones (*) son;

  • Modo 14 barras reales (dos MSGEQ7)
  • Modo 7 barras
  • Modo invertido LCD
  • Modo llinea

y posiblemente otras mas... Deseo vuestra opinión sobre el sistema de Stand-By porque no lo tengo muy claro.

Saludos.

Vaya, vaya tres arduinos... lo mas que he reunido son dos arduinos MEGA: uno para controlar el servo del domo de ventilación de la PC y el otro para monitorear temperaturas y controlar iluminación general.

¿Que tan complicado sería que la información la guardaras en una SD?, así podrías apagar por completo el radio. Si deseas alguna función como despertador, sería bueno que usaras un DS3231. He usado un par de veces la espera en un par de MEGA´s y no me gustó el resultado, las ili9341 que usé antes, se quedaban en blanco... de todas formas tenía que desconectar y conectar los arduinos, uno de ellos siempre "quedaba despierto".

PD: el FT800 con la libreria GD2, permite controlar la retroiluminación desde la pantalla táctil, e incluso se puede apagar.

Por cierto las pantallas FT800 que tengo son:

FT843+ADAM (4.3", 480x272, resistiva): la conseguí mediante un importador que me apoyó a adquirirla en la página de 4D systems

Gameduino 2 (4.3", 480x272, resistiva): tienda en linea que es distribuidor en México

Riverdi FT813 (5", 800x480, capacitiva) + arduino-shield: la adquirí a través de la pagina de Riverdi (en espera que Riverdi libere la libreria FT81X, para arduino, por el momento solo está disponible la FT80X)

Gracias TFTLCDCyg como bien sabes ya tengo pedido una pantalla FT800 y a ver si llega esta semana para ir experimentando.

A todo esto ya el proyecto va avanzando. Ya tengo los 4 LCD´s en funcionamiento (todavía en pruebas en una caja de cartón) pero lo próximo es realizar la caratula principal para no volverme loco y así, tirar de carpintero unos días.

De momento (y ya funcionando) aunque con muchos retoques que he de realizar, este es el nuevo vídeo del Radio.

Nuevo vídeo Radio FM con RDS

Saludos!. :)

Que buen trabajo!! no me canso de ponerlo en cada post que muestras un avance.

Gracias! :slight_smile:

Hasta lo presente, todo ha sido ir de un lado para otro, improvisando, mejorando y largos dolores de cabeza.

Ya empieza la versión candidatas (osea la fiesta, asegurada). falta poco hasta completar su realización. ahora toda afinar el cableado, el mueble y toda la estética del proyecto. Al final del acabado como prometí, todos los códigos, esquemas del mismo.

Muy liado, hay que acortar cables y conectores…

La caratula del frontal, la base es de una tapa metálica de un receptor de satélite (reciclado)

Bueno y aquí de como queda en el frontal. Heeeeeeeee, pero hay un vídeo nuevo:

Radio FM con RDS v1.5 RC1

Ya tiene forma el radio XD. Ya me imagino la cantidad de lineas de código jejeje. Piensa en la recompensa: luego solo será disfrutarlo.

Gran paso el que has dado de "la caja de ideas a la caja real", esa es la parte que cuesta mas trabajo, ya ni las desveladas programando o "buscando horrores" :D.

PD: estoy intrigado con los analizadores de espectro, ojalá y puedas compartir como los has armado. Por ahora solo he usado las funciones básicas de los MSGEQ7.

Va tomando forma real

Ayer estuve todo el día acortando cables, recomponiendo conectores y como siempre hubo problemas pero los solucioné. La verdad es que me estoy dejando el sudor en ella.

Observé al principio era una tontería ponerle dos spectrum de audio a cada canal de audio, porque no se notaria, pero creo acerté, sino en la captura se obtienen diferentes visualizaciones;

|500x233

Aunque ya es mas elegante modificar los códigos no antes con la jungla de cables, unos se desconectan, no hacen bien contacto, etc...realizaba tropiezos. Ahora ya esta dominado, solo para ir mas avanzando, necesito poner la botonera y el encoder acollado al mueble, que por cierto en la sintonía fina me "patina" dicho encoder, luego a la tarde le realizaré un divisor de tensión para disminuir el rebote de cada pulso.

Lo que respecta a las visualizaciones spectrum usaré el botón del encoder para los dos (L+R) y representar 3 funciones de visualización. Si todo va bien, en dos o tres días estará listo!

Por lo pronto hay errores en el LCD central y lo voy afinar.

Saludos!

Buenas madrugadas amigos!

Nuevos avances. Estos son;

  • Temporizador apagado automático después de 30 o 45 segundos LCD Setup
  • Añadido Efecto 3D cartel SPECTRUM Audio(*)
  • Posibilidad efecto 3D Barras SPECTRUM audio (Solo 7 barras)
  • Solucionado efecto "patin" del control sintonia fina

Estos son los los que he conseguido hoy. He logrado quitar el rebote cada vez que se usa el encoder para sinfonía fina del Radio con pasos (al menos en Europa) 100 KHertz, consiste en un divisor de tensión y filtrado por un condensador de 2,2uF/50v.

He realizado un temporizador para el apagado del LCD principal donde reside las configuraciones del Radio y del cual estuve todo el fin de semana revisando aparte de recortar cables, conectores como dije en el mensaje anterior, pues hoy hinque los codos y ya funciona correctamente. Cuando les publique el código del Radio verán que ya desde hace unos días estoy dentro del código los comentarios de las funciones y un largo etc... Quien lea el código no solo tendrá ayuda sino que podrá usar las funciones a su gusto.

El tema de los carteles en 3D de los SPECTRUM, realizando pruebas me recordó aquellos años de MS-DOS de realizar "efectos" 3D pues con un LCD ST7920 de los cuales estoy usando se puede y queda muy bien... mejor de lo que yo esperaba. (en el próximo vídeo se darán cuenta) pero a todo ello, he pensado que también se podría exportar a las barras gráficas de los MSGEQ7... el único problema es el ST7920 que es de 128x64 y solo si funciona se realizará en 7 barras, no las 14 que poseo actualmente, pero bueno es una función que el Radio ha de tener, solo a disponibilidad de pulsar un botón...

Todos los avances y logros que estoy escribiendo en acabar el proyecto al menos de esta versión del Radio los editaré en el primer mensaje. Si todo va bien para el Sábado-Domingo creo que ya estará casi todo terminado al menos de código...

A todo ello @TFTLCDCyg mañana ya tengo confirmado que tengo las pantallas FT800, y entonces veremos que hay que hacer... :) :) :)

Saludos!