Tenacitas, nuestro robot colaborativo
Un breve resumen
Un breve resumen
Hasta ahora tenacitas solo le hemos conocido en nuestros videos de LinkedIn, así que en este post nos toca explicar cómo funciona nuestro becario y los proyectos de futuro que tenemos pensado para él.
Resumiendo para los expertos, y a modo de índice para los iniciados, un pequeño esquema del funcionamiento, el cual es igual al que se utilizaría en aplicaciones reales dentro de IIoT.
Tenacitas por partes
Primero, una breve presentación del equipo usado en nuestro proyecto:
Arduino Uno , el ESP01 y la sensor shield V5.0 para la alimentación de los servomotores, que en nuestro caso es de 6,6, una tensión superior a la que puede proporcionar Arduino Uno.
El Arduino Uno es una de las placas programables más conocidas dentro del mundo DIY. Está basada en el microcontrolador ATmega38P con salidas y entradas digitales y analógicas.
Una shield muy útil para nuestros proyectos al permitir tener organizados nuestros cables. Además, posee una entrada de alimentación independiente para alimentar los servomotores con una tensión y corriente superior al que puede proporcionar Arduino.
La ESP01 es una placa ideal para nuestros proyectos de IoT, se puede programar directamente con un Arduino Uno y posee 2 GPIO para añadir sensores integrados en la misma.
Por otro lado tenemos nuestro servidor, un HP ProLiant, donde tenemos instalado el NodeRed y donde almacenamos los logs.
Y por supuesto Tenacitas, nuestro robot colaborativo. En nuestro caso tenacitas usa unos servomotores KS-3620, estos proporcionan una fuerza de torque de 20Kga una tensión nominal de 6,6v. En nuestro caso estamos usando una fuente de ordenador antigua, conectado a la tensión de 5v. Debido al uso de una tensión inferior a la nominal, combinado con las posibles ineficiencias de los motores, estimamos que nuestros servomotores estén realizando una fuerza de torque de unos 10 Kg, suficiente para nuestras pruebas.
El flujo de la información
El Arduino, con la Sensor Shield V5, lo hemos usado para alimentar los servomotores y para sincronizar los movimientos de los mismos. Hemos desarrollado un código usando el Arduino IDE, para ser más ágiles y mientras esperamos la llegada de nuestro PLC de Siemens, esto hace las funciones de cerebro de Tenacitas, al gestionar la información de la siguiente manera.
Se define la posición que debe tener cada servomotor, en un margen de entre 0 y 180 grados, para alcanzar la posición deseada usando un sistema de coordenadas cartesianas estimadas, obtenidas tras pruebas ensayo-error. Después se envía la orden a cada servomotor, junto a la velocidad deseada y seguido se hace una lectura de la posición para confirmar que ha sido alcanzada y se envía la lectura por monitor Serial al ESP01.
Para enviar la información generada por los motores, y futuros sensores, al servidor, usando la red WiFi de la oficina, hemos usado un ESP 8266, que para los nos versados es un Arduino con conectividad inalámbrica. Con este enviamos la información usado MQTT, que explicamos en detalle en otro post.
Para la gestión de la información inalámbrica, elegimos usar Node-Red, un software fundamental para el IoT, dada su facilidad de uso y la enorme comunidad detrás del software.
Con un sencillo flujo como el de la imagen realizamos la captura de los datos por MQTT y posteriormente los almacenamos en un .csv en nuestro servidor. En la parte de la derecha de la imagen se puede ver los registros, un timestamp y la posición alcanzada por cada servo motor.
Ahora que ya tenemos los datos registrados en nuestro servidor, podemos empezar a desarrollar algortirmos de analitica avanzada que aporten inteligencia a nuestro robot. Para ello, en futuros pasos, añadiremos sensores de temperatura a los servomotores, así como controles de presión en a pinza y sensores de ultrasonidos en los rodamientos con el objetivo de realizar procesos de mantenimiento predictivo, y búsqueda de correlaciones.