Reloj con control remoto

Desarrollo de un nuevo firmware para el kit EC1204B, reloj LED con esfera rotante. Con esta actualización es posible controlar todas las funciones del reloj a distancia, utilizando un interface serie RS-232, USB o Bluetooth.

Reloj controlado por Bluetooth

Configuración manual del reloj

El reloj FC-209 se puede configurar en modo manual, utilizando los 3 pulsadores que lleva en su parte trasera. A continuación se muestra el diagrama de configuración, válido para este kit (FC-209) como para el reloj de pared, mediante el uso de sus 3 pulsadores.

Diagrama de programación
Diagrama de programación

Tipos de interface serie

Con esta última actualización del firmware (5.1), es posible controlar y programar el reloj a distancia. Lo único que se necesita es conectar un interface serie con el reloj, ya sea por cable (RS-232/USB) o inalámbrico (Bluetooth). En la siguiente imagen se muestran las conexiones necesarias, para conectar un interface RS-232 con el reloj.

Interface RS-232 básico

En la siguiente imagen se muestran las conexiones entre el reloj y el interface serie, utilizando uno de tipo USB y otro Bluetooth
Conexión del interface BT con el reloj

Interface serie Bluetooth

Antes de conectar un interface de tipo Bluetooth con el reloj, es necesario configurar como mínimo su velocidad. El sistema Bluetooth permite la comunicación inalámbrica entre dispositivos, transmitiendo la información a la máxima velocidad que le permita el sistema. El terminal BT receptor dispone de un buffer en el que almacena los datos recibidos, y los entrega al equipo remoto con la velocidad (bps) a la que haya sido programado. En este caso, el reloj espera recibir los datos  a 4800 bps (4800,N,8,1)

Configuración del interface Bluetooth

Configuración remota del reloj

A través del interface serie y mediante una aplicación instalada en un PC o dispositivo móvil, es posible configurar y controlar el reloj en modo remoto. Los datos que espera recibir el reloj son siempre caracteres de texto, facilitando así el uso de cualquier software ‘Terminal’ y tecleando las cadenas de texto en su editor.

Lista de comandos serie (4800,N,8,1)

En caso de recibir información serie, el reloj enviará una respuesta indicando si ha recibido información correcta o ha detectado algún error. Pero siempre hay que tener la precaución de enviar los valores correctos, porque el reloj no analiza los datos que recibe, solamente comprueba los caracteres de control de inicio (color rojo) y los comandos (color verde y negro) que le indican lo que debe hacer con la información que recibe y guarda en memoria (color azul).

Actualizar el firmware del reloj

Para programar el micro-controlador de este kit de reloj, podemos utilizar un interface serie (ISP: In-system programming / ICSP : In-Circuit Serial Programming) . En la imagen siguiente podemos ver el conexionado que se debería utilizar entre el programador TL866A y el reloj.

Lo ideal sería utilizar un programador que tuviera dicho interface, o desmontar el chip y programarlo fuera.  En caso de que no dispongas de un programador, podrías hacerlo por ICSP con ARDUINO.

El archivo que necesitas para programar este reloj (firmware), lo puedes descargar de forma gratuita desde el siguiente enlace:

J_RPM_v5.1_EC1204B.HEX

Circuitos impresos

PCBWay es un fabricante de circuitos impresos para electrónica, especializado en la fabricación de prototipos de calidad profesional a un precio muy reducido. Por ejemplo, ahora puedes encargar 10 circuitos impresos de 10×10 cms, a doble cara y con serigrafía, por tan sólo 5 dólares.

Logo: PCBWay

https://www.pcbway.es/

 

Reloj LED con 2 alarmas

Kit Reloj LED (FC-209)
Kit Reloj LED (FC-209)

Incorporación de una segunda alarma horaria, en el firmware para el reloj LED de esfera rotante. Esta es la versión v5c para el kit FC-209 y la v6C para el reloj de pared. En esta versión también se cambia el menú de configuración, con el fin de facilitar el ajuste de las dos alarmas horarias. Antes estaba dentro del menú de configuración, pero este menú ha ido creciendo de tamaño poco a poco a medida que se han ido incorporando  nuevas funciones al reloj. Al final  se hacía muy incómodo cambiar la hora de la alarma, ya que era necesario pasar a través de todos los parámetros de configuración del reloj.

A continuación se muestran un diagrama, válido tanto para el kit de reloj FC-209 como para el reloj de pared, una con la versión de los textos en español y la otra en inglés.

Diagrama de programación
Diagrama de programación
Programming in English
Programming in English

Gestión de las 2 alarmas horarias

Con esta versión se podrían configurar 2 alarmas horarias, sin prioridad entre ellas pero siguiendo este criterio:  Cuando una de las dos alarmas se dispara, mientras permanezca en su periodo activo, la otra alarma nunca podrá dispararse. (ver el diagrama que se muestra a continuación)

Gestión de alarmas
Gestión de alarmas

 

 

Programador ICSP con ARDUINO

Construcción de un programador serie (ICSP) utilizando Arduino. Si no disponemos de un programador, esta es la solución más barata. Sin embargo, tanto el código de Arduino como el software de programación, son específicos para programar el micro-controlador AT89S51/AT89S52… y no sirven para programar cualquier otro modelo.

AT89S52
AT89S52

FICHEROS

En la página del autor del proyecto: TIKTAK’S PROJECTS , encontrarás además de la información de este proyecto, el link de acceso directo a la descarga de los archivos que necesitas. El fichero que debes cargar a tu Arduino para que funcione como programador, y el programa que necesitarás para exportar el archivo hexadecimal (firmware) hacia el micro-controlador AT89S51/AT89S52.

3 de Marzo de 2020

Miguel Berezosky me informa en un comentario que los archivos no los puede descargar. Como el autor de este proyecto parece que los ha eliminado en su alojamiento DropBox, los he subido a mi cuenta para que los podáis descargar:

Arduino_ICSP.rar

INFORMACIÓN

He creído conveniente incorporar esta información en el blog, con el fin de ampliar un poco más los detalles de funcionamiento de este programador, y también porque en este canal tenéis otros proyectos en los que se utiliza el mismo tipo de micro-controlador. Si eres aficionado a la electrónica y no dispones de un programador, este montaje te podría ser de mucha utilidad.

Montaje ICSP
Montaje ICSP

Si quieres fabricarte un programador ICSP (In-Circuit Serial Programming) , solo necesitarás una placa de Arduino -no importa el modelo- y montar el circuito que se muestra a continuación:

Esquema ICSP
Esquema ICSP

El ejemplo siguiente muestra cómo puedes programar un circuito, en el que ya existe una entrada para su programación en serie:

  • ISP (In-system programming) 
  • ICSP (In-Circuit Serial Programming)
Programador ICSP
Programador ICSP

INCONVENIENTES

Existen algunas limitaciones y desventajas si comparamos este programador con otro de tipo convencional. La primera y más importante, es que el software NO permite verificar la integridad de lo que se ha grabado. Si existiera algún error durante la escritura, el software no lo detectaría. En estos casos, lo normal es que el dispositivo programado no llegara a funcionar, pero dependiendo del tipo de error, podría funcionar de manera defectuosa.

La segunda no es tan importante, pero ha tardado 4 minutos en programar los 6.813 bytes del fichero con el que he realizado las pruebas. Con un programador convencional  el proceso completo: borrado, escritura y comprobación, se realiza en algo menos de 13 segundos.

Cronómetro LED #5 (FC-209)

Utilizando los mismos componentes  del kit de reloj FC-209 (hardware), podemos convertir el reloj en un cronómetro de precisión… sólo tenemos que reprogramar el micro-controlador AT89S52. Si programamos en el cronómetro las funciones de cuenta hacia delante, cuenta atrás y auto-arranque, podríamos utilizar el cronómetro como marcador de tiempo en eventos deportivos.

Cronómetro de 24 segundos
Cronómetro de 24 segundos

Haciendo unas pequeñas modificaciones en el hardware, sería posible convertir este pequeño reloj en un marcador de gran tamaño, y utilizarlo en un recinto deportivo. Después de sopesar las posibles opciones, decidí incluir la funcionalidad del cronómetro dentro de la última versión del firmware (v4). De esta manera no será necesario sustituir el micro-controlador cuando queramos utilizar este kit de reloj (FC-209) como cronómetro. La versión 5 del firmware, se puede descargar de forma gratuita desde el siguiente enlace: J_RPM_v5_EC1204B.HEX

Como este reloj sólo dispone de dos pulsadores para realizar maniobras, ya que el tercer pulsador es el del Reset del micro-controlador, es necesario definir cuál será su modo de funcionamiento (Reloj/Cronómetro) en la fase de arranque, y mantenerlo fijo hasta un nuevo reinicio. Como la función principal es la de Reloj-Temperatura, definimos este modo como ‘arranque por defecto’. Es decir, si no tocamos ningún pulsador en la fase de conexión, funcionará como Reloj-Temperatura. Para cambiar de modo reloj a cronómetro, realizaremos los siguientes pasos:

  • Pulsaremos el botón ‘RESET’
  • Cuando aparezca el mensaje rotante, mantendremos pulsado el botón ‘MODE’
Configuración del Reloj LED (v5)
Configuración del Reloj LED (v5)

Una vez que que hayamos entrado en el modo ‘cronómetro’, ya podremos configurar sus parámetros de funcionamiento. Estos valores se guardarán en el chip de memoria del reloj (DS1302), y estos serán los nuevos valores de arranque del cronómetro. Al igual que sucede con los parámetros del reloj, tendremos que tener conectada la pila de ‘tampón’ en el chip, si no queremos perder todos los datos cuando falte la alimentación.

Firmware Reloj #4 (Compatible FC-209)

Kit Reloj LED (FC-209)
Kit Reloj LED (FC-209)

La versión 4 del firmware es totalmente compatible con el kit de reloj FC-209 (EC1204B). El funcionamiento y prestaciones son las mismas que las de la versión 3, pero en este caso se ha deshabilitado el límite máximo de temperatura. Como el sensor DS18B20 podría mostrar temperaturas de hasta 125ºC, podríamos sustituir el sensor de temperatura interno –coloreado en amarillo– por otro prolongado y con encapsulado en acero inoxidable. Así sería posible utilizar este reloj como termómetro, para medir con precisión la temperatura de fluidos, calefactores, circuitos electrónicos, frigoríficos, etc.

La versión 4 del firmware, se puede descargar de forma gratuita desde el siguiente enlace: J_RPM_v4_EC1204B.HEX

Sensor de temperatura: DS18B20
Sensor de temperatura: DS18B20

Al sustituir el sensor de temperatura de la placa por otro externo, podremos utilizar este reloj como termómetro para medir temperaturas ambientes y además objetos sólidos o líquidos,  comprendidas entre -10 y +125ºC. Solo tenemos que  fijar el modo de presentación Temperatura,  mediante una breve pulsación del botón [PLUS]. Este reloj dispone de 3 modos de presentación:

Hora  >>> [PLUS] >>> Tempertura >>> [PLUS] >>> Fecha+Temperatura 

Las funcionalidades de la versión 4 son idénticas a la de la versión 3. A continuación se muestra un diagrama con la secuencia de programación de todos los parámetros, válido para  ambas versiones.

Configuración del Reloj LED (v3)
Configuración del Reloj LED (v3-4)