Resumen: En este artículo se presenta el análisis e implementación de un sistema para el accionamiento de cargas eléctricas de Corriente Directa (DC) o de Corriente Alterna (CA) mediante comandos de voz, basado en una aplicación desarrollada en la plataforma APK inventor® y con la placa Arduino® para la adquisición de datos; utilizando como módulo de comunicación para el enlace entre el dispositivo móvil y la tarjeta, un módulo de Bluetooth tipo esclavo modelo HC-05. Este sistema, permite la activación de cualquier carga eléctrica, ya sea de CD o de CA mediante un teléfono móvil o Smartphone con una cobertura aproximada de diez metros. Se describe el principio del funcionamiento del sistema, las partes esenciales que componen la estructura de éste, la metodología de implementación y algunos resultados de la validación experimental del sistema
Palabras clave:Accionamiento de cargas eléctricasAccionamiento de cargas eléctricas, dispositivo móvil dispositivo móvil, comando de voz comando de voz, procesamiento de voz procesamiento de voz, comunicación inalámbrica comunicación inalámbrica.
Abstract: This paper presents the analysis and implementation of a Direct Current (DC) – Alternating Current (CA) drive system through voice commands based on an application developed on APK inventor® and Arduino ® platform for data acquisition, to be used as a communication module to link a mobile device and the Bluetooth® module (slave type, model HC-05), that features a radial coverage up to 10 meters. The functioning principle is described as well as the main features and the key components comprising the device structure. The methodology used is also shown and finally the results of its implementation are also presented and reviewed in order to show the efficiency of the proposed project.
Keywords: Electric load driving, mobile device, voice command, voice processing, wireless communication.
Artículos
Activación de Cargas Eléctricas a Través de Comandos de Voz vía Módulo HC – 05 y Arduino
Activation of Electric Loads Through Voice Commands via HC – 05 Bluetooth Module and Arduino
Recepción: 23 Noviembre 2018
Aprobación: 17 Diciembre 2018
Los sistemas de accionamiento de cargas eléctricas vía remota usando dispositivos móviles se han vuelto atractivos y de particular interés en los últimos años; el hecho de tener la capacidad de controlar, ya sea un foco, una lámpara, un ventilador o cualquier dispositivo eléctrico desde un dispositivo móvil como un teléfono celular o tableta portátil, brinda una gran comodidad y satisfacción al usuario.
La capacidad de poseer el control de cualquier dispositivo en una casa, departamento o edificio de una manera sencilla y cómoda es de mucho interés para los usuarios que progresivamente buscan estrategias para un mayor control y/o monitoreo de sus inmuebles, lo que hoy en día se llama domótica.
No obstante, en ocasiones los sistemas de domótica, en especial los sistemas de accionamiento suelen ser temas con los que los usuarios no están muy familiarizados y esto los conduce a dificultades en la instalación por cuenta propia o bien a contratar servicios de instalación que por lo general suelen ser costosos.
El estudio que se reporta tiene como objetivo brindar una idea clara y sencilla para cualquier tipo de usuario sobre la implementación de un sistema de accionamiento por voz para la contribución y difusión de la domótica.
Desde hace aproximadamente dos décadas se han venido realizando varios trabajos para facilitar algunas tareas cotidianas del ser humano; en el año 2001 se realizó un trabajo titulado “Control remoto para múltiples electrodomésticos” que consistía en un sistema que automatizaba las persianas de una ventana y el funcionamiento de una cafetera a través de la activación por voz e infrarrojo vía control remoto [1].
Iniciando la segunda década del milenio actual, se iniciaron más trabajos sobre casas inteligentes como la “Implementación de un agente virtual como interfaz para controlar por voz una casa inteligente” donde se describe que la interfaz de voz es una de las tecnologías prometedoras [2].
Más adelante se desarrolló otro trabajo, “Control de electrodomésticos por radiofrecuencia basado en el seguimiento de la cabeza y el control de voz para persona discapacitada”. Debido a los avances en tecnología, particularmente inalámbrica la tecnología el “Hogar del futuro” no es ahora solo una posibilidad; sino es una realidad [3].
Collota y Pau proponen una novedosa forma de administrar la energía para hogares inteligentes, la cual combina una Red inalámbrica, basada en un bluetooth de baja energía (BLE), empleado en la comunicación entre los electrodomésticos para el ahorro y la administración de energía. Esto pone en reserva en las horas picos a los dispositivos de alta potencia y prácticamente se ve un ahorro considerable de energía [4].
Recientemente, muchas investigaciones y empresas están desarrollando aplicaciones para las casas inteligentes. En un hogar inteligente, los dispositivos eléctricos (por ejemplo, enchufes, luces, televisores, etc.) pueden tener la capacidad de comunicaciones inalámbricas. Los usuarios pueden controlar estos dispositivos por smartphones a través de enlaces inalámbricos. No obstante, es notable que los esquemas de control actuales no son fáciles de usar. Más específicamente, los usuarios necesitan cambiar entre diversas aplicaciones para controlar diferentes tipos de dispositivos a lo largo de una lista para encontrar el objetivo. Unos investigadores propusieron un esquema para lograr la moda de control, de modo que cuando un usuario eleva su teléfono inteligente para apuntar a un dispositivo, en la pantalla del teléfono automáticamente aparece el electrodoméstico a manipular en el panel de control del dispositivo, y luego el usuario pueda ingresar los comandos de control directamente [5]. Existen desarrollos en los que se busca generar sistemas generales de control de los electrodomésticos de una casa habitación y en particular como apoyo a las personas con algún tipo de discapacidad o de edad avanzada [6, 7].
La filosofía de control y el entorno visual de estos desarrollos también presentan un espectro amplio de variación. Por ejemplo, Pan y Chen proponen un esquema de control para lograr la función de que aparezca el panel de control de un determinado dispositivo en la pantalla de un teléfono inteligente, cuando el usuario lo apunta hacia un dispositivo en particular [5].
Mientras que [8, 9, 10] los esquemas de control recurren a un diseño más típico que involucra una comunicación remota en conjunto con aplicaciones para el S. O. Android y usando comunicación wi-fi o Bluetooth.
El procesamiento digital de voz es el proceso que analiza el comportamiento de una señal de voz en la cual se evalúa la existencia de posibles patrones que permitan el reconocimiento de palabras u oraciones definidas en la misma señal para ser utilizadas en la ejecución de alguna acción [11]. El procesamiento digital de voz basa su funcionamiento en el reconocimiento de patrones que son un conjunto de algoritmos utilizados para agrupar datos para crear uno o más prototipos de patrones de un conjunto de datos, y para coincidir sobre la base de las medidas características de los patrones [11]. Un sistema de reconocimiento de voz, puede estar formado como el que se muestra en la figura 1.
Esta clase de sistemas de procesamiento se pueden desarrollar a través de algoritmos para procesar y validar los resultados respecto a los parámetros de referencia. Si bien este tipo de sistemas requieren un algoritmo de reconocimiento, también requieren un hardware en donde se procesen estos datos.
Para ello, con fines de aplicación didáctica y aplicaciones sencillas a las que cualquier usuario pueda acceder y llevarlos a cabo, se utiliza la placa Arduino y su entorno de programación para desarrollar esta aplicación. Para que este sistema sea más cómodo para el usuario, la comunicación entre el sistema de reconocimiento de voz y el sistema de adquisición de datos debe ser inalámbrica. La tecnología Bluetooth presenta una solución sencilla, con muchas prestaciones y bajo costo para aplicaciones de baja escala. El Bluetooth está enmarcada dentro de las redes WPAN (Wireless Personal Area Network). Las WPAN utilizan tecnologías tales como IEEE 802.15, HomeRF, e IEEE 802.11 para conectividad a través de espectro disperso o infrarrojo [12].
La topología Bluetooth se compone en su forma más básica por lo que se denomina una Piconet y por una estructura un poco más compleja llamada Scatterne [12]. La Piconet la conforman varios dispositivos (entre dos y ocho) que se encuentran en el mismo radio de cobertura y comparten un mismo canal. Cada dispositivo tiene una dirección única de 48 bits, basada en el estándar IEEE 802.11 para WLAN. La Scatternet está formada por la conexión de una Piconet a otra con un máximo de interconexiones de diez Piconets.
Los datos transmitidos poseen una velocidad de 1 Msimb/s. Se usa una modulación GFSK (Gaussian Frequency Shift Keying), en donde un “1” binario representa una desviación de frecuencia positiva, y un “0” binario representa una desviación de frecuencia negativa. La desviación máxima de frecuencia está entre 140 KHz y 175 KHz [12].
La tabla 1 muestra las características de funcionamiento de los dispositivos que utilizan tecnologías Bluetooth [12].
La comunicación entre el módulo de Bluetooth y el Arduino se enlaza a través del protocolo de comunicación serial.
La comunicación serial es un protocolo muy común (no hay que confundirlo con el Bus Serial de Comunicación, o USB) para comunicación entre dispositivos que se incluye de manera estándar en prácticamente cualquier computadora. La mayoría de las computadoras incluyen dos puertos seriales RS-232. La comunicación serial es también un protocolo común utilizado por varios dispositivos para instrumentación; existen varios dispositivos compatibles con GPIB que incluyen un puerto RS-232. Además, la comunicación serial puede ser utilizada para adquisición de datos si se usa en conjunto con un dispositivo remoto de muestreo [13].
El concepto de comunicación serial es sencillo. El puerto serial envía y recibe bytes de información un bit a la vez. Aun y cuando esto es más lento que la comunicación en paralelo, que permite la transmisión de un byte completo por vez, este método de comunicación es más sencillo y puede alcanzar mayores distancias. Por ejemplo, la especificación IEEE 488 para la comunicación en paralelo determina que el largo del cable para el equipo no puede ser mayor a 20 metros, con no más de 2 metros entre cualesquier dos dispositivos; por el otro lado, utilizando comunicación serial el largo del cable puede llegar a los 1200 metros.
El sistema desarrollado está compuesto principalmente de cinco etapas principales; el teléfono inteligente con la aplicación, el módulo de Bluetooth, el Arduino, el módulo de relevadores y las cargas eléctricas. La figura 2 ilustra el funcionamiento de todo el sistema.
Para el procesamiento de las señales recibidas desde el teléfono inteligente y para el accionamiento de las cargas eléctricas, es indispensable el uso de una tarjeta de adquisición de datos. Por motivos prácticos y considerando que el sistema es de aplicación comercial y de bajo costo, se utiliza la tarjeta Arduino Uno. Arduino es en realidad tres cosas [14]:
· Una placa hardware libre que incorpora un microcontrolador reprogramable y una serie de pines-hembra (los cuales están unidos internamente a las patillas de E/S del microcontrolador) que permiten conectar allí de forma muy sencilla y cómoda diferentes sensores y actuadores [14].
· Un software (más en concreto, un “entorno de desarrollo”) gratis, libre y multiplataforma (ya que funciona en Linux, MacOS y Windows) que se debe instalar en la computadora y que permite escribir, verificar y guardar (“cargar”) en la memoria del microcontrolador de la placa Arduino el conjunto de instrucciones que se desea ejecutar. Es decir, admite programarlo. La manera estándar de conectar el computador con la placa Arduino para poder enviarle y grabarle dichas instrucciones es mediante un simple cable USB, gracias a que la mayoría de placas Arduino incorporan un conector de este tipo [14].
· Un lenguaje de programación libre. Por “lenguaje de programación” se entiende cualquier idioma artificial diseñado para expresar instrucciones (siguiendo unas determinadas reglas sintácticas) que pueden ser llevadas a cabo por máquinas. Concretamente dentro del lenguaje Arduino, se encuentran elementos parecidos a muchos otros lenguajes de programación existentes (como los bloques condicionales, los bloques repetitivos, las variables, etc.), así como también diferentes comandos –asimismo llamados “órdenes” o “funciones” – que permiten especificar de una forma coherente y sin errores las instrucciones exactas que se quieren programar en el microcontrolador de la placa. Estos comandos fueron escritos mediante el entorno de desarrollo Arduino [14].
El módulo de Bluetooth, es crucial en este tipo de aplicación ya que se pretende proporcionar al usuario una manera sencilla y cómoda de utilizar el sistema a través de tecnologías inalámbrica.
El módulo de Bluetooth modelo HC – 05 [15] , es un módulo serie Bluetooth que puede ser utilizado en configuración maestro y en configuración esclavo; es decir, se puede enlazar diferentes módulos o dispositivos Bluetooth entre sí para comunicarse y enviar y recibir información mutuamente.
Las características técnicas del hardware y del software de este módulo son las siguientes:
Características Hardware:
· Compatible con Arduino
· Sensibilidad Típica: -80dBm.
· Hasta +4 dBm de potencia de transmisión RF.
· Fully Qualified Bluetooth V2.0 +modulación EDR 3Mbps.
· Funcionamiento de bajo consumo.
· PIO control.
· Interfaz UART con velocidad de modulación en baudios programable.
· Antena PCB Integrada.
Características del Software:
Velocidad en baudios (Modo comandos AT): 38400, Bits de datos: 8, bits de parada: 1, Paridad: Sin paridad.
Tasa de velocidad de modulación en baudios soportadas: 9600, 19200, 38400, 57600, 115200, 230400, 460800.
Auto-conexión del dispositivo con la última configuración por defecto.
Permiso conectar el dispositivo emparejado de forma predeterminada.
Por defecto PINCODE: "1234".
Reconexión automática en 30 min cuando se desconecta como consecuencia de pérdida de conexión por salirse del rango de alcance.
Para lograr el enlace entre el teléfono inteligente y el módulo de Bluetooth, se utiliza la aplicación de Android “Arduino Control Voice 2”, la cual se puede encontrar en la Play Store de cualquier dispositivo Android. Esta misma aplicación nos permitirá realizar el reconocimiento de los comandos de voz, a través del asistente de voz de Google que nuestro dispositivo ya tiene instalado por defecto. Inicialmente se tiene la plataforma (ver figura 3), en la cual se cuenta con tres botones principales: Select Bluetooth, el cual servirá para seleccionar el módulo de Bluetooth con el cual se tendrá que enlazar para establecer la comunicación; Save que permitirá guardar todos los comandos de voz en una base de datos ya preestablecidos en las casillas de la parte inferior. Grabador de voz, este último botón, permitirá llamar el programa que realiza la grabación para procesar los comandos de voz.
Una vez que ha procesado el comando de voz, la aplicación envía un carácter al módulo de Bluetooth HC -05 para retransmitirlo al Arduino a través de la comunicación serial y poder ejecutar alguna otra instrucción o acción de control.
A continuación, se muestra la lógica utilizada para la recepción de datos del módulo de Bluetooth y procesarla en Arduino. Inicialmente, se declara una variable tipo Char en donde se almacena el dato recibido y se le da un valor inicial de cero. Después se declaran las variables de salida para las cargas eléctricas, en este caso el pin 13, 12 y 11.
Dentro del void setup, se inicializa el monitor serial. Igualmente, se indica la configuración de cómo serán utilizados los pines; ya sea como entradas o como salidas, para este caso se declaran como salidas.
Dentro de void loop, se declara una condición para evaluar si se está recibiendo algún dato en el puerto serial, si es así, ese dato se almacena en la variable “lectura” que inicialmente se declaró.
Dentro de la estructura switch, se evalúa el valor de la variable “lectura, en la cual, dependiendo de su valor (en tipo de caracter), serán las instrucciones que se ejecutarán. En este caso, si se recibe la letra “a”, se enciende la carga eléctrica #1 y así respectivamente con los demás comandos. La figura 4., ilustra el funcionamiento del software del sistema; (a) diagrama a bloques de la lógica de programación, (b) código fuente desarrollado en el entorno de programación de Arduino.
El circuito eléctrico está compuesto por el Arduino, que va conectado directamente al módulo de Bluetooth. Aquí se deben considerar sólo cuatro conexiones; el pin Tx de Arduino va al pin Rx del módulo de Bluetooth y viceversa, el pin Rx de Arduino va conectado al pin Tx del módulo de Bluetooth, es decir, la conexión es cruzada. Las otras dos conexiones son las de alimentación, que en este caso, se utiliza la fuente de alimentación proporcionada por la placa Arduino.
La siguiente conexión es la del Arduino y el módulo de relevadores. Esta conexión sólo consta de tres simples conexiones; la alimentación del módulo de relevadores, ya sea con la misma fuente que proporciona el Arduino o con alguna fuente externa y el pin de salida digital del Arduino hacia el pin de dato del relevador, el cual permitirá energizar o des - energizar la carga eléctrica.
Finalmente, la última conexión es la del módulo de relevadores hacia las cargas eléctricas. Inicialmente se contempla que se tiene una fuente de alimentación en CA, por lo cual, el cable neutro debe ir conectado a todas las cargas eléctricas en paralelo y la fase debe ir conectada al punto común del módulo de relevadores (pin de en medio del relevador) y el retorno a la carga debe ir conectada al pin de la derecha (pin de la derecha del relevador), de esta manera, al enviar un estado HIGH desde el Arduino, el circuito se cierra y la carga eléctrica se enciende. La figura 5 ilustra el circuito eléctrico completo desarrollado en la plataforma de diseño y simulación de circuitos, Fritzing.
Para comprobar la funcionalidad y eficiencia del sistema propuesto se conectaron tres tipos de cargas CA (un ventilador, una lámpara y un foco). Se realizaron pruebas de comunicación para el accionamiento y de medición del tiempo de retardo para determinar la cobertura aproximada que tiene el módulo de Bluetooth, ya sea dentro o fuera de línea de vista, así como el tiempo de respuesta de comunicación y el tiempo de retardo. Los resultados obtenidos en este experimento se aprecian en la tabla 2 y la figura 6.
El accionamiento y control de cargas eléctricas y dispositivos móviles a través de tecnologías inalámbricas como el Bluetooth son de mucha utilidad y brindan un control más adecuado de dispositivos, además de que esto representa una comodidad extra para el usuario. La aplicación para el control de las cargas por voz es de descarga gratuita y probó ser de mucha utilidad, sin embargo, se puede desarrollar una aplicación de acuerdo a las necesidades específicas que cada usuario especifique. El módulo de Bluetooth HC-05 puede ser utilizado como maestro / esclavo para la vinculación y transmisión de datos a otros dispositivos de Bluetooth similares para hacer más eficiente algún proceso de comunicaciones o control. El módulo de conexiones se puede diseñar de la manera que resulte conveniente para el usuario o que cumpla con condiciones estéticas específicas. Al realizar la prueba dentro y fuera de línea de vista, el sistema funcionó adecuadamente, sin embargo, cuando se realizó la prueba a distancia, se pudo apreciar que la cobertura sólo brindaba un radio de aproximadamente 10 metros. Esto podría ser una limitante por la pérdida de datos debido a la limitada cobertura que se tiene, pero podría ser resuelta mediante la implementación de módulos de Bluetooth de mayor potencia. Otro detalle que se puede observar, es el retardo que se produce en la comunicación por dos factores: el procesamiento del comando de voz y la transmisión del dato. Esto podría ser un problema si se requiere un control en el cual la velocidad de respuesta o de reacción sea inmediata.
El sistema de accionamiento puede ser utilizado para cualquier tipo de carga eléctrica, incluso para cargas de alta potencia; el único cambio que requiere hacerse es sustituir los relevadores por contactores de mayor potencia.