Skip to content

RemIO

Introducción

RemIO es un módulo de python destinado al desarrollo de dispositivos IoT, basados en comunicación serial, comunicación socketIO y procesamiento de imágenes, que permite integrar hardware y software vario, con interfaces gráficas, control remoto y transmisión de video, empleando para ello, librerías tan comunes como:
  • OpenCV
  • PySerial
  • SocketIO

Arquitectura

En el presente contexto, este software pretende agilizar la producción de dispositvos electrónicos cuya arquitectura sea afin a la siguiente propuesta:


arch-1

Figura. Arquitectura propuesta para el uso de la librería.


`COMPUTADOR`: Se encarga de manejar la complejidad que pueda acarrear un cierto proyecto, como pueden ser sus algoritmos de procesamiento, o la comunicación con servidores en internet.

`MICROCONTROLADOR`: Interactúa con dipositivos de control, como pueden ser actuadores.

`INTERFAZ GRÁFICA`: Es un apartado visual que se puede desarrollar con varios frameworks como son PyQt5, Tkinter, Kivy.

`PERIFÉRICOS`: Son diversos dispositivos que se pueden conectar directamente al computador.

`SERVIDORES`: Para el manejo de comunicación entre diferentes clientes.
Esta distribución de componentes es práctica para el desarrollo de prototipos que demandan cierta complejidad de procesamiento, como puede ser el caso de un robot, un algoritmo de IA y cualquier otra posibilidad que este al alcance de esta combinación.

Módulos

Para la gestión de los diversos procesos y el manejo de eventos, REMIO implementa el siguiente esquema: modules

Figura. Módulos.


SERIAL MANAGER: Se encarga de gestionar los diversos eventos que acontecen en los puertos seriales. Maneja callbacks de conexión y lectura, y también permite la escritura de datos. Su documentación y uso se pueden encontrar AQUÍ.

SOCKETIO MANAGER: Se encarga de gestionar comunicaciones en tiempo real por medio del protocolo SocketIO. Su documentación y uso se pueden encontrar AQUÍ.

CAMERA MANAGER: Se encarga de gestionar video e imágenes provenientes de cámaras, emplenado para ello el API de OpenCV. Su documentació y uso se pueden encontrar AQUÍ.

Características

Las principales características de REMIO son:

  • Manejo de múltiples cámaras a través de hilos.
  • Uso de callbacks y eventos.
  • API para incluir funciones de procesamiento de video.
  • Manejo de múltiples dispositivos seriales a través de hilos.
  • Manejo síncrono y asíncrono de SocketIO.
  • Transmisión de video MJPEG a través de SocketIO.

Instalación

Cree un entorno virutal:

python3 -m venv venv

source venv/bin/activate
Use pip:
pip install remio
O clone el repositorio:
git clone https://github.com/Hikki12/remio

cd remio

pip install .

Primeros Pasos

Realizada la instalación del presente módulo, te sugerimos revisar alguno de los siguientes apartados: