Adquisición de datos y administración desde ordenador de dispositivos microcontrolados

publicado en: Portada | 0

Objetivo: gestionar sensores y actuadores desde un ordenador

Desde un microcontrolador es sencillo realizar lecturas de información de todo tipo de sensores y controlar dispositivos (actuadores), ya sea directamente o, lo más habitual, por medio de algún tipo de interfaz.

Existen tarjetas que permiten a un ordenador convencional, basado en una placa ATX, por ejemplo, adquirir datos o (menos frecuentemente) controlar dispositivos genéricos (sin un sistema de comunicaciones estándar) pero este tipo de accesorios no tienen mucha presencia en el mercado y resultan caros, probablemente por la flexibilidad que requieren para un uso genérico.

Una alternativa viable, sencilla y muy económica consiste en usar un microcontrolador para la adquisición de datos y el control de dispositivos, que se encargue de facilitar la información a un ordenador, por ejemplo, para realizar un procesado exhaustivo, y acepte sus órdenes para configurar su funcionamiento o manejar dispositivos, con lo que podríamos implementar de manera sencilla una suerte de SCADA a pequeña escala.

esquema conceptual de la conexión del microcontrolador al ordenador

Conexión entre el ordenador y el dispositivo microcontrolado

La forma en la que se realice la comunicación entre el ordenador y el microcontrolador dependerá de las circunstancias que rodeen a la implementación en el conjunto. Cuando se trabaja en un entorno de red seguramente la manera más eficaz de comunicar, a la vez que la más sencilla, será utilizando Ethernet si se dispone de una conexión cableada, o WiFi en caso contrario (el rendimiento-consumo será más desfavorable) Se entiende que la infraestructura de la red tendrá resuelto el cableado y/o los puntos de acceso WiFi que interconecten las distintas máquinas, por lo que es una opción realmente sencilla. Para acceder a la red desde el dispositivo microcontrolado pueden usarse IC especializados en comunicaciones Ethernet como el ENC28J60 o módulos WiFi como el ESP8266, ambos diseñados para trabajar con microcontroladores.

Cuando sea necesario acceder a una red extensa de sensores, seguramente interconectados por alguna implementación del protocolo IEEE 802.15.4 (como ZigBee) se puede optar por dos alternativas: incorporar a la red el ordenador implementando el protocolo de comunicaciones de la red (ZigBee, en nuestro ejemplo) o dotar a un nodo administrativo de la red (a uno de los microcontroladores de la red) de otro tipo de comunicaciones que puedan conectar con el ordenador desde el que se realiza la adquisición de datos.

Si se trata de comunicar el dispositivo microcontrolado con un ordenador dentro de un entorno industrial lo más adecuado será utilizar alguno de los protocolos serie RS, seguramente el RS-485 que es el más presente en ese contexto por sus ventajas (multipunto, 1200 metros a 10 Mbaudios…) frente, por ejemplo, al RS-232, más presente en entornos de oficina. La mayoría de los microcontroladores incluyen hardware de comunicaciones UART (o USART), lo que hace muy sencillo trabajar con este tipo de comunicaciones.

Las placas base de los ordenadores de oficina modernos siguen incluyecndo algún puerto serie, normalmente RS-232, pero está en claro declive en favor de los puertos USB. En una placa base de un ordenador de uso industrial es todavía habitual encontrar cierto número de puertos serie o, como alternativa, existen tarjetas de ampliación (con bus PCI o PCIe, por ejemplo) que añaden puertos serie a las placas base y también conversores de USB (ordenador) a serie RS (dispositivo).

Actualmente los dispositivos de uso doméstico o personal suelen elegir para las comunicaciones el bus USB en el caso de ser cableadas o el protocolo Bluetooth en el caso de las inalámbricas.

Una solución sencilla para conectar por USB un dispositivo microcontrolado a un ordenador puede ser utilizar el protocolo de dispositivo de interfaz humana (HID) de USB ya que la mayoría de los sistemas operativos reconocen y son capaces de usar dispositivos HID sin necesidad de instalar controladores específicos, lo que ahorra, además, la necesidad de obtener una firma válida para el driver en determinados sistemas operativos comerciales, objetivo especialmente costoso. En inconveniente de usar este tipo de protocolo es la velocidad, que se ve seriamente limitada. Aunque para el objetivo de este texto puede ser suficiente, para proyectos de mediana envergadura o con requerimientos exigentes de velocidad y que deban trabajar en tales sistemas operativos se impone el desarrollo (y correspondiente firma) de un controlador de dispositivo específico.

El software

Existen muchas aplicaciones que resuelven el problema que estamos planteando, tanto a pequeña escala como a nivel industrial (para SCADA, como OpenSCADA o EclipseSCADA, que son software libre) tanto listas para usar como para construir con ellas una solución personalizada propia.

En la serie de artículos que empieza con este se elige la alternativa de desarrollar aplicaciones propias para realizar la adquisición de datos y la administración desde ordenador de dispositivos microcontrolados. La idea es explicar el proceso a la vez que se realiza una propuesta de aplicación concreta para eso se opta por un lenguaje sencillo como Python. Una vez expuesto y desarrollada una plantilla como referencia se volverá a recorrer el proceso para desarrollar en C++ una aplicación equivalente.

Para que el uso de las aplicaciones desarrolladas en esta serie de artículos sea más cómodo (especialmente importante para usuarios finales y productos comerciales) se van a construir finalmente sobre entornos gráficos, aunque en las fases más iniciales se trabajará con aplicaciones de consola para poder desarrollar ejemplos sencillos. Como el propósito es la máxima difusión, los entornos gráficos y los compiladores que se utilizarán serán multiplataforma y por supuesto, software libre.

Índice del proyecto

Víctor Ventura

Desarrollando aplicaciones para la web conocí el potencial de internet de las cosas, encontré la excusa perfecta para satisfacer la inquietud de aprender electrónica que había tenido desde siempre. Ahora puedo darme el gusto de programar las cosas que yo mismo diseño y fabrico.

Más entradas - Página web

Sígueme:
TwitterLinkedIn

Seguir Víctor Ventura:

Programador multimedia y web + IoT. Mejor con software libre.

Desarrollando aplicaciones para la web conocí el potencial de internet de las cosas, encontré la excusa perfecta para satisfacer la inquietud de aprender electrónica que había tenido desde siempre. Ahora puedo darme el gusto de programar las cosas que yo mismo diseño y fabrico.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *