Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
WIRELESS, SMART CONTROL DEVICE FOR CONTROLLING INFRARED-CONTROLLED DEVICES AND HOME AUTOMATION DEVICES, USING SMARTPHONES
Document Type and Number:
WIPO Patent Application WO/2016/117992
Kind Code:
A1
Abstract:
The invention relates to a wireless, smart control device for controlling infrared-controlled devices and home automation devices, using smartphones. The device of the invention is highly effective, discrete and compact, offering Bluetooth and IR connectivity, and it is linked to an application for mobile devices, from which commands can be sent in order to transmit infrared signals to any IR remote control appliance. In addition, the IR controller device can obtain signals from any universal remote control and translate same into wireless Bluetooth signals in order to use the application.

Inventors:
CASTRO BALDENEBRO BRAYAN GAMANIEL (MX)
VAZQUEZ PALMA OMAR (MX)
PARDO GUZMAN DINO ALEJANDRO (MX)
Application Number:
PCT/MX2015/000007
Publication Date:
July 28, 2016
Filing Date:
January 21, 2015
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
CASTRO BALDENEBRO BRAYAN GAMANIEL (MX)
International Classes:
G05B15/00; H03K17/94
Foreign References:
US20080180228A12008-07-31
Other References:
RAMLEE R. A.; ET AL.: "Smart home system for Disabled People via Wireless Bluetooth.", 2012 INTERNATIONAL CONFERENCE ON SYSTEM ENGINEERING AND TECHNOLOGY (ICSET, 11 September 2012 (2012-09-11), pages 1 - 4, XP032264316, ISBN: 978-1-4673-2375-8
Attorney, Agent or Firm:
LUGO LIZARRAGA, Maria Laura (MX)
Download PDF:
Claims:
REIVINDICACIONES ue se reclama es:

1. Un dispositivo y un método de control demótico para aparatos electrónicos de mando a distancia por medio de luz infrarroja discreto y compacto, que se enlaza a una aplicación diseñada para dispositivos móviles con plataforma android y/o IOS y que está constituido por los siguientes elementos:

a) Un micro controlador multinúcleo programado en uno de sus núcleos con lenguaje de alto nivel Spin para las funciones de comunicación y enlaces, de igual forma es utilizado otro de sus núcleos en lenguaje de bajo nivel [ensamblador) para realizar las operaciones de medición de pulsos y frecuencias.

b) Un Emisor-Receptor Bluetooth que es utilizado para establecer la comunicación serial bidireccional a 1 Mbps entre el micro controlador de la reivindicación la y la aplicación del celular descrita en la reivindicación le, mediante el cual se transmiten comandos u órdenes e información acerca de los protocolos infrarrojos y tiempos de encendido o apagado.

c) Un módulo receptor infrarrojo capaz de realizar el proceso de demodulación de la señal de infrarroja, entregando en su salida una señal digital lista para ingresar al micro controlador multinúcleo descrito en la reivindicación la.

d) Un módulo emisor infrarrojo consistente en un arreglo de transistores en forma de puente H que funciona como amplificador de señal con 2 entradas, un PWM a 40

Khz, y un tren de pulsos con la información del protocolo que se quiere enviar, excita un LED infrarrojo de ángulo abierto que manipula los dispositivos compatibles.

e) Una aplicación diseñada de manera ligera y fácil de instalar en cualquier dispositivo móvil, con menus interactivos modifi cables por el usuario, donde puede establecer la imagen real del dispositivo que desea controlar, así como un canvas de la casa-habitación en donde se encuentran los aparatos.

Description:
DISPOSITIVO DE CONTROL INALÁMBRICO INTELIGENTE PARA

CONTROLAR DISPOSITIVOS DE MANDO INFRARROJO Y DOMÓTICOS POR MEDIO DE TELÉFONOS INTELIGENTES.

CAMPO TÉCNICO DE LA INVENCIÓN La presente invención pertenece al campo de la electrónica y la informática ya que está basada en la creación de un circuito electrónico que se utilizara para controlar aparatos de mando a distancia infrarrojo, utilizando un micro controlador para la recolección de señales de entrada y la determinación de respuestas de salida.

ANTECEDENTES

La revolución tecnológica que el mundo ha venido experimentando durante los últimos 50 años ha impactado cada una de las facetas del diario vivir de los seres humanos. Tras el marcado desarrollo de la electrónica, a partir de la década de los 60 y el desarrollo de nuevas tecnologías orientadas a las comunicaciones y aplicadas a la vida, generaron un cambio en la mayoría de las personas que conviven en un entorno globalizado, donde la conectividad juega un papel preponderante y hasta el más simple elemento como un dispositivo móvil funciona como transición a la dinámica de interconectividad global.

La transformación de los hogares tradicionales en hogares inteligentes, a partir de la incorporación de herramientas de la domótica, trasciende los límites de la comodidad hacia la eficiencia y la sostenibilidad ambiental. La automatización de los ambientes fue considerada por muchos años una frivolidad tecnológica al alcance de los grupos más privilegiados de la sociedad, pero en la actualidad su apropiación masiva es motivo de múltiples investigaciones.

En la actualidad la dinámica productiva enfrenta a las personas e instituciones al desafío de la eficiencia, la velocidad y la ubicuidad; en el mundo moderno cualquier actividad que no pueda ser realizada en forma eficiente mediante herramientas remotas representa una enorme desventaja, tanto competitivamente como de calidad de vida. Dentro de esta perspectiva, la automatización de los espacios y su dinamización con la incorporación de herramientas y tecnologías de la información y las telecomunicaciones, es más que un capricho frivolo, una necesidad inminente. Tareas tan simples como controlar el acceso en entornos con elevados requerimientos de seguridad se convierte en la vertiginosa dinámica global en un problema, para aquellas instituciones y personas que no están preparadas.

Son múltiples los factores que pueden caracterizar las formas de vida de las personas hoy en día, como ejemplo, adultos mayores que viven solos, población con algún tipo de discapacidad y que viven de forma independiente, incluso los mismos avatares de la modernidad que requieren todo con prontitud y ahorro del tiempo que no les permite siquiera descender del vehículo.

Es así como, labores tan comunes como abrir o cerrar una ventana o una puerta se convierten en un problema; pero con la implementación de la domótica en el hogar se disminuye el grado de dificultad para realizar estas tareas. En el mercado actual se cuenta con un gran número de aplicaciones de muy alto nivel sobre el tema, las cuales en su mayoría tienen costos elevados y están pensadas más en generar una experiencia de lujo al cliente que en facilitar el desarrollo de una actividad específica a las personas.

BREVE DESCRIPCIÓN DE FIGURAS

La figura 1 muestra un dibujo esquemático de la comunicación general entre los aparatos a controlar, el dispositivo controlador, el teléfono celular y el control remoto universal.

La figura 2 ilustra un bosquejo de comunicaciones del dispositivo controlador y del dispositivo móvil.

La figura 3 representa un diagrama electrónico del módulo receptor infrarrojo. La figura 4 ilustra el diagrama electrónico del módulo emisor infrarrojo. DESCRIPCIÓN DETALLADA DE LA INVENCIÓN

La gran mayoría de los controles remotos transmiten una señal lumínica en forma de pulsos a 38 KHz, aunque también existen otras frecuencias portadoras de 30KHz, 36KHz y 56KHz. Estas frecuencias suelen traducirse a señales binarias tomando como referencia la presencia de la onda portadora como un 1, y la ausencia como un 0. Para codificar este mecanismo es necesario filtrar el ruido para analizar la cadena binaria e identificar el comienzo y la longitud de dicha cadena.

La presente invención incluye varios módulos acoplados para formar el dispositivo, tales módulos se enuncian a continuación: Sensor IR emisor (36), que permite el envió de señales infrarrojas a cualquier dispositivo que cuente con receptor de mando. De esta forma si el dispositivo se encuentra en la misma habitación que la televisión o que el aire acondicionado, el modulo puede tomar acción sobre estos aparatos ya sea programada o directamente desde la aplicación para teléfono móvil (35].

Sensor IR detector infrarrojo (31), que detecta las señales provenientes de cualquier control remoto para sincronizarse o cambiar el estado de las variables. Con este modulo, el dispositivo puede grabar los comandos enviados desde un control remoto, y reproducirlos mediante software con una aplicación para teléfono móvil (35), o bien puede configurar que las aparatos se enciendan o apaguen con cierto botón del mando infrarrojo de la televisión.

Módulo de acoplamiento para señales de potencia que consiste en un relevador de estado sólido para conmutar cargas de potencia a partir de señales de control de bajo nivel.

Indicador LED que muestra el estado y funciona como indicador nocturno.

Bluetooth, para comunicar el apagador con cualquier dispositivo móvil como tablets o iphones.

El módulo de bluetooth HC-05 es el que ofrece una mejor relación de precio y características, ya que es un módulo Maestro-Esclavo, quiere decir que además de recibir conexiones desde una PC o tablet, también es capaz de generar conexiones hacia otros dispositivos bluetooth. Esto nos permite por ejemplo, conectar dos módulos de bluetooth y formar una conexión punto a punto para transmitir datos entre dos microcontroladores o dispositivos.

Para filtrar la señal se utilizó un detector infrarrojo (31) integrado. La salida del receptor queda entonces como una señal cuadrada (32) que varía en sus anchos de pulso dependiendo del protocolo de la marca del control. Así pues le corresponde al microcontrolador multinúcleo (33), realizar los inicios de la señal e identificar gracias a una base de datos principal guardada en el mismo procesador, el comando recibido. Después de que el paquete de datos es recibido y decodificado, se envía el nombre del comando vía dispositivo bluetooth (34) hacia la aplicación en el teléfono móvil (35), por ejemplo, el receptor recoge un código de 32 pulsos, de entre 1.2 ms (0 lógico) y 2.4ms (1 lógico), un pulso de inicio de 4 ms, al analizar la disposición de los bits con una base de datos en memoria Eeprom, determina que ese tren de pulsos corresponde al botón Volumen + de la marca Sony, así que inmediatamente envía mediante señal bluetooth (37) el comando Sony Vol+, indicándole al teléfono que se presionó la tecla Vol+ en el control remoto. Para la simulación de señales infrarrojas este mismo dispositivo cuenta con un emisor (36), que consiste básicamente en un LED infrarrojo (38) de alta potencia, con espectro abierto, que va conectado en una de las terminales del micro controlador multinúcleo (33) a una señal PWM de 40KHz (39) emitida por el mismo microprocesador multinúcleo (33) en uno de sus núcleos. De igual forma, el módulo principal (30) recibe una orden de la aplicación, por ejemplo, Sony Canal+, lo que le indica que debe generar el protocolo Sony, el botón Canal +, para esto el programa dentro del microprocesador multinúcleo (33) toma tanto la longitud como el número de pulsos, y las características del pulso de inicio de una base de datos en memoria, y genera la señal infrarroja a través del LED infrarrojo (38).

Tanto el programa del microprocesador multinúcleo (33) como el programa de la aplicación en el teléfono móvil (35) están diseñados para sincronizar sus bases de datos, con el fin de poder agregar protocolos nuevos, modificar los anteriores, o incluso generar nuevos.

Sería sencillo hacer un bucle monitorizando el pin RB0 y usar un timer para medir los tiempos involucrados en los pulsos ON (abajo) y OFF (arriba). El problema, como siempre, es que con ese enfoque el PIC no podría hacer otra cosa. Lo que haremos es usar la interrupción INT0 (asociada a cambios del pin RBO) para detectar los pulsos. De esta forma mantenemos el PIC libre para otras funciones. El aspecto general de un paquete enviado por el mando puede verse en la figura 5.

Por defecto, la señal está en nivel alto (inactivo). El paquete consiste en una serie de pulsos ON (bajo) y OFF (alto). Obviamente tras bajar/subir varias veces terminaremos arriba. Normalmente suele haber un pulso ON inicial más largo como indicación de START, pero eso depende del protocolo. La sucesión de ON/OFF codifica los bits del mensaje. Hay muchas posibilidades (codificación Manchester, codificación por ancho de pulsos, etc). Es este proyecto no estamos interesados en decodificar, sólo en ver la información sobre la duración de los pulsos ON y OFF. Con estos datos tendríamos una idea del protocolo que usa el mando y podremos modificar el programa para obtener los códigos. Considerando estos objetivos, la idea general a aplicar en nuestro software se basa en:

Empezamos activando la interrupción 1NT0 en modo HIGH to LOW para detectar el inicio de un paquete. Al mismo tiempo se pone a cero el timer 0 y se arranca para medir tiempos. Cada vez que detectemos un cambio en RBO guardaremos valor del timer 0 y volveremos a resetearlo para medir el siguiente pulso.

Con lo anterior mediríamos los tiempos entre bajada y bajada. Como interesa discriminar entre tiempo abajo (ON) y arriba (OFF) lo que haremos es que cada vez que entre la interrupción INTO cambiaremos el sentido de la detección. De esta forma si entramos con una bajada, pondremos la detección a subida y así medimos el tiempo abajo.

El timer 0 se resetea a cada cambio. Usaremos la interrupción del TMRO como indicador de que hace mucho que no hay cambios y que por lo tanto el pulso ha terminado. En ese caso se deja de monitorizar la línea y simplemente volcamos los tiempos (convertidos a milisegundos) de todas las transiciones. Para volcar los tiempos usaremos el puerto serie. Podríamos usar el enfoque de interrupciones explicado antes, pero como no es crítico usaremos en principio las funciones bloqueantes del compilador. A continuación tenemos el código de la interrupción INTO. Está declarada de alta prioridad para asegurarnos de que no perdemos nada. En un principio el programa arranca con un status=WAIT (esperando un paquete). Cuando se detecta el arranque del paquete ponemos en marcha TMRO y habilitamos su interrupción para disponer de una base de tiempos y pasamos a status = SCANNING. Si estamos en modo SCANNING simplemente guardamos el tiempo transcurrido desde la última vez que estuvimos por aquí e incrementamos una variable que lleva la cuenta del número de transiciones. En ambos casos se pone a 0 el timer y se invierte el sentido de la detección de cambios.

Ahora viene el código de la interrupción del TMRO, declarada como de baja prioridad. Como cada vez que detectamos un cambio se hace TMR0L=0, la interrupción no entra mientras haya actividad en la línea. Una vez que la línea se queda en OFF ya no hay cambios y nadie se ocupa de resetear el contador, por lo que terminará rebosando y se provocará la interrupción.

En la interrupción lo primero que se hace es volver al status de esperar inicio de paquete (status=WAIT, parar TMRO y esperar un cambio HIGH2LOW). A continuación se verifica que el número de transiciones no es muy bajo (para evitar "falsos positivos" por alguna transición espúrea en la línea). Todos los protocolos tendrán un mínimo de 12-16 transiciones. Si hay un número suficiente de transiciones se procede a desactivar la interrupción INTO (esto es, dejamos de monitorizar la línea) y volcamos los datos por el puerto serie. Para evitar incluir un código complejo dentro de la interrupción (lo que no es aconsejable) lo que se hace es poner a 1 la bandera ir_detected. En el programa principal detectaremos dicha bandera y volcaremos los resultados.

La siguiente función vuelca los resultados guardamos (los timings de los pulsos). Como obviamente la línea parte de OFF y vuelve a OFF tendremos un número impar de pulsos, empezando con un pulso de start (ON) y luego una sucesión de pares (OFF/ON). Usamos printf para volcar los resultados a la salida standard (puerto serie).

Lo único más críptico es la conversión de los tiempos a microsegundos. Los tiempos guardados (uint8's) están en unidades de ticks de reloj. Con la configuración escogida para el TIMERO, cada paso del contador corresponde a 51.2 microsegundos. Una aproximación con aritmética entera y que evita dividir es multiplicar por 205 y dividir por 4 (»2) lo que corresponde a 205/4 = 51.25, lo suficientemente cerca para la aplicación en curso. Obviamente esta conversión será dependiente de los parámetros elegidos al configurar TMRO.

El programa principal abre el puerto serie [115200 bauds) y configura TMRO (sin arrancarlo). Se habilita la interrupción INT0 (que siempre es de alta prioridad) y la interrupción del TMRO (baja prioridad).

La parte más delicada es escoger los parámetros del Timerl. Hemos escogido usar modo 8 bits porque es suficiente para los tiempos involucrados y nos ahorramos manejar contadores de 16 bits. Se ha escogido un divisor de 1:256 lo que corresponde a 256x0.2 = 51 usec. Ésta será la máxima resolución de los timing hallados (ya que se miden en múltiplos de 51 usec). Es adecuada porque típicamente los pulsos más pequeños en los mandos a distancia son del orden de 400-600 usec, por lo que entran del orden de 10 pasos como mínimo.

La consecuencia inmediata de dicha elección es que el rebosamiento por falta de actividad sucederá al cabo de 256 x 51 = 12.5 msec. Esto determina que los pulsos más largos detectables serán de 12 msec. Si un pulso (ON/OFF) dura más de 12 msec el programa considerará que ya no va a haber más actividad y declarará (erróneamente) un fin de paquete.

Tras habilitar las interrupciones, del grueso del trabajo se encargan ellas. El programa principal simplemente entra en un bucle donde se monitoriza la bandera ir_detected. Si se pone a 1 es señal de que hemos detectado un paquete y llamamos a la función que vuelca la información por el puerto. Tras terminar de volcar los resultados volvemos a habilitar la monitorización de la línea.

Se adjuntan dos volcados del puerto serie al pulsar un par de teclas de un mando SONY, los resultados se observan en la tabla de la figura 6. Vemos que empezamos siempre con un START largo (2400 usec) y luego hay una serie de OFF/ON. La parte OFF es siempre constante (512 usec) pero la parte ON oscila entre 615 y 1230 usec. Claramente los 0/1 están codificados en esta duración. De hecho el protocolo usado por SONY establece un bit de START de 2400 usec, unos pulsos OFF de 600 usec y unos pulsos ON de 600 (0) o 1200 (1) según se observa en la figura 7.