SciELO - Scientific Electronic Library Online

 
vol.25 issue42Thermal fatigue behavior of new ceramic thermal barrier coatings obtained by the atmospheric plasma spray processMagnetic nanoparticles of zinc and calcium for magnetic hyperthermia application author indexsubject indexarticles search
Home Pagealphabetic serial listing  

Services on Demand

Article

Indicators

Related links

  • On index processCited by Google
  • Have no similar articlesSimilars in SciELO
  • On index processSimilars in Google

Share


Revista Facultad de Ingeniería

Print version ISSN 0121-1129

Rev. Fac. ing. vol.25 no.42 Tunja May/Aug. 2016

 

Planeación y ejecución de trayectorias en el espacio de trabajo para un robot Delta

Trajectory planning and execution in the workspace for a Delta robot

Planejamento e execução de trajetórias no espaço de trabalho para um robô Delta

Diego Edissón Flórez-Vergara*, Fabián Camilo Castro-Riveros**, Ricardo Andrés Castillo-Estepa***

* Universidad Militar Nueva Granada (Bogotá-Distrito Capital, Colombia). u1801272@unimilitar.edu.co.
** Universidad Militar Nueva Granada (Bogotá-Distrito Capital, Colombia).
*** Ph.D. Universidad Militar Nueva Granada (Bogotá-Distrito Capital, Colombia). ricardo.castillo@unimilitar.edu.co.

Cómo citar este artículo: [1] D. E. Flórez-Vergara, F. C. Castro-Riveros and R. A. Castillo-Estepa, "Planeación y ejecución de trayectorias en el espacio de trabajo para un robot Delta", Fac. Ing., vol. 25 (42), pp. 75–88, may.-ago. 2016.

Fecha de recepción: 11 de mayo de 2015 Fecha de aprobación: 20 de marzo de 2016


Resumen

En este artículo se expone una técnica de planeación y ejecución de trayectorias en el espacio cartesiano para ser aplicada en un robot delta. Con el fin de configurar y generar la trayectoria deseada, se diseña un software con interfaz gráfica (GUI), en el cual se implementa el algoritmo para calcular y visualizar los puntos intermedios de movimiento del robot en el espacio de trabajo. Para validar la trayectoria generada es utilizado un robot delta, diseñado y construido en el laboratorio de Robótica de la Universidad Militar Nueva Granada, el cual es controlado por medio de un circuito electrónico que permite la implementación adecuada de la técnica propuesta. De esta manera, es posible validar sobre el robot real las trayectorias calculadas por el algoritmo y visualizadas con el software de simulación.

Palabras clave: espacio de articulaciones, Jacobiano, robot Delta, singularidades.


Abstract

This paper describes a technique for trajectory planning and execution in Cartesian Space to be applied in a delta robot. In order to configure and generate the desired path, is designed a software with Graphical User Interface (GUI), in which, the proposed algorithm is implemented to calculate and display the robot movement through midpoints in the workspace.

To validate the generated path is used a Delta robot designed and built in the Colombian Robotics Laboratory at Nueva Granada Military University. This robot is controlled by an electronic circuit that enables the proper implementation of the proposed technique. That makes it possible to validate the trajectories calculated by the algorithm and displayed in the simulation software, using a real robot.

Key Words: Delta robot, Jacobian, joint space, singularities.


Resumo

No artigo se expõe uma técnica de planejamento e execução de trajetórias no espaço cartesiano para ser aplicada em um robô Delta. Com a finalidade de configurar e gerar a trajetória desejada se desenha um software com interface gráfica (GUI), no qual se implementa o algoritmo para calcular e visualizar os pontos intermédios de movimento do robô no espaço de trabalho. Para validar a trajetória gerada é utilizado um robô Delta, desenhado e construído no laboratório de Robótica da Universidad Militar Nueva Granada, o qual é controlado por meio de um circuito eletrônico que permite a implementação adequada da técnica proposta. Desta maneira, é possível validar sobre o robô real as trajetórias calculadas pelo algoritmo e visualizadas com o software de simulação.

Palavras chave: espaço de articulações, Jacobiano, robô Delta, singularidades.


I. Introducción

Desde sus primeros modelos hasta los más influyentes en la actualidad, se han generado diversas definiciones sobre qué es un robot industrial; a continuación, se presentan dos de las más significativas [1].

- RIA (Robotic Industries Association): Manipulador multifuncional reprogramable, capaz de mover materias, piezas, herramientas o dispositivos especiales, según trayectorias variables programadas para realizar tareas diversas.

- ISO (International Organization for Standardization): Manipulador de tres ejes o más, con control automático, reprogramable, multiplicación, móvil o no, destinado a ser utilizado en aplicaciones de automatización industrial. Incluye el manipulador (sistema mecánico y accionadores) y el sistema de control (software y hardware de control y potencia).

Los diferentes robots industriales se pueden clasificar así [2]:

  1. Temporalmente, es decir, de acuerdo con su fecha de fabricación

  2. Por su grado de inteligencia

  3. Por su funcionalidad

  4. Por el tipo de control; la Asociación Francesa de Robótica Industrial (AFRI) clasifica los robots según el tipo de control utilizado en cuatro categorías:
  5. 4.1 Tipo A o tele-manipulado, que tiene un control manual o telemando.

    4.2. Tipo B o secuencial: automático, es decir, que tiene ciclos preajustados, regulación mediante fines de carrera o topes, control por PLC y accionamientos, ya sean neumáticos, eléctricos o hidráulicos.

    4.3. Tipo C o de trayectoria controlable, que es programable, ya sea con trayectorias continuas o punto a punto, pero que carece de conocimientos sobre su entorno.

    4.4. Tipo D o adaptativo, que es capaz de adquirir datos de su entorno, readaptando así sus tareas en función de dichos datos.

  6. Por su geometría o configuración.

5.5. Robot industrial manipulador

5.6. Robot industrial móvil

Un robot paralelo está compuesto por un efector final con n grados de libertad y una base fija, unidos entre sí por, al menos, dos cadenas cinemáticas independientes, el cual puede ser accionado por n actuadores simples [3].

El robot Delta (Fig. 1) es un manipulador paralelo que consta de tres cadenas cinemáticas cerradas de configuración PR(Ps), donde (Ps) representa el espacio paralelogramo de cuatro barras con cuatro articulaciones esféricas, y PR representa que cada una de las cadenas cinemáticas se compone de una articulación prismática pasiva y una articulación de rotación activa que conectan una base fija de mayor tamaño a una base móvil de menor tamaño [4].

Algunas de las principales ventajas y desventajas del robot Delta, como también de muchas plataformas tipo paralelo se aprecian en la Tabla 1.

El robot Delta, como la mayoría de los robots industriales que son diseñados, construidos e implementados en la actualidad, tiene como principal objetivo aumentar la productividad y calidad de los trabajos realizados por el ser humano en las diversas tareas complejas o riesgosas, en las cuales se pueden desempeñar de mejor manera; dichas tareas requieren de movimientos coordinados y precisos del robot para poder llevarlas a cabo de forma eficiente; por lo cual es de suma importancia entender las propiedades cinemáticas y dinámicas de los robots, para así comprender y analizar su capacidad de movimiento proyectado hacia la planificación y generación de trayectorias en la elaboración de cualquier actividad.

Debido al continuo crecimiento de la robótica en la industria, se hace cada vez más necesario que los estudiantes afines a esta ciencia adquieran mayor conocimiento sobre los distintos robots y sus aplicaciones que rigen actualmente la industria mundial; entre los cuales hay un gran porcentaje de manipuladores tipo paralelo. Por lo tanto, el principal objetivo de este artículo se enfoca en la planeación y ejecución de trayectorias en el prototipo mecánico de un robot Delta diseñado e implementado en la Universidad Militar Nueva Granada (Fig. 2), a través de una interfaz gráfica de usuario que pueda interactuar con el prototipo mecánico, permitiéndole simular y ejecutar trayectorias tanto en el espacio cartesiano como en el espacio de articulaciones, asemejando tareas reales implementadas en la industria actual.

II. Robot delta

. Espacio de trabajo

El espacio de trabajo está definido por el conjunto de puntos que puede alcanzar el robot alrededor de sí mismo, con base en su configuración y el tamaño de sus vínculos y articulaciones de la muñeca. La forma del espacio de trabajo para cada robot es exclusiva, ya que depende de su diseño [7].

El espacio de trabajo se puede subdividir en dos categorías así [8]:

  • Espacio de trabajo alcanzable: Está compuesto por el conjunto de puntos alcanzables por el manipulador.

  • Espacio de trabajo diestro: Está compuesto por el conjunto de puntos que el manipulador puede alcanzar con una orientación arbitraria de su efector final.

Para una adecuada planeación de trayectorias tanto en el robot Delta como en cualquier otro robot industrial, es indispensable conocer cuál es el espacio de trabajo en que dicho robot tendrá que ejecutar sus diversas tareas, que pueden ser un movimiento simple hasta movimientos coordinados con otros robots en algún proceso industrial.

El espacio de trabajo del robot Delta con el cual se van a diseñar las diferentes trayectorias tiene como principales propiedades las expuestas en la Tabla 2 [6].

B. Cinemática inversa

El principal objetivo de la cinemática inversa radica en encontrar los ángulos de las articulaciones, conociendo la configuración (posición y orientación) del efector final del robot [9].

Aprovechando la simetría del robot Delta, el análisis cinemático inverso se desarrolla para cada una de las cadenas cinemáticas de forma independiente, dando como resultado un modelo matemático que describe cada articulación como se puede encontrar en [6].

C. Cinemática directa

El principal objetivo de la cinemática directa radica en encontrar la configuración (posición y orientación) en la que se encuentra el efector final del manipulador, ya que en este análisis las variables de articulación se encuentran ya definidas [9].

El análisis cinemático directo del robot Delta se desarrolla partiendo de un sistema de ecuaciones no lineales que relaciona la posición de la plataforma móvil con los ángulos de sus eslabones, generando un modelo matemático que describe cada coordenada cartesiana como se puede encontrar en [6].

III. Planeación trayectorias

A. Espacio cartesiano

La descripción de movimientos en el espacio cartesiano considera métodos de generación de rutas en los cuales las formas de estas se especifican en términos de funciones que calculan la posición y la orientación cartesianas como funciones del tiempo (Fig. 3); generalmente se prefiere en planificación de movimientos donde no se incluyan obstáculos en el entorno y en los cuales la dinámica del robot no tenga mayor relevancia [10, 11].

La planeación de trayectorias en el espacio cartesiano se desarrollará, principalmente, a través del jacobiano o matriz jacobiana del manipulador en el cual se van a implementar dichas trayectorias. Esta matriz es una representación geométrica de los elementos que componen un mecanismo en función del tiempo, y permite la conversión de movimientos diferenciales o velocidades de las articulaciones individuales en movimientos diferenciales o velocidades en puntos de interés, como puede ser el efector final [7].

El jacobiano o matriz jacobiana constituye una de las más importantes herramientas para la caracterización de un manipulador, ya que es bastante útil para problemas como [13]:

  • Encontrar singularidades

  • Análisis de redundancias

  • Determinación del algoritmo de cinemática inversa

  • Descripción del mapeo entre las fuerzas aplicadas al efector final y los torques resultantes en las articulaciones.

La matriz jacobiana relaciona las velocidades de las articulaciones con la velocidad del sistema de referencia cartesiano, como se aprecia en (1):

Así, la matriz jacobiana del robot Delta es planteada de la forma (2) [6]:

Planteándose así el siguiente sistema de ecuaciones, que se puede ver representado en (3).

Que generará de forma definitiva la estructura para la matriz jacobiana del robot Delta, como se aprecia en (4) y (5).

Dependiendo de qué matriz, de las planteadas anteriormente, sea singular, un mecanismo de lazo cerrado podría tener una configuración singular de cinemática directa, una de cinemática inversa o ambas. Así, la planeación de trayectorias se desarrollará por medio del algoritmo de cinemática inversa, el cual puede ser usado para obtener un modelo matemático que represente un movimiento diferencial, el cual se ve representado en (6).

Esta ecuación puede ser desarrollada fácilmente por un computador, ya que es un proceso iterativo que va calculando en cada muestra la salida q (k).

B. Espacio de articulaciones

La descripción de movimientos en el espacio de articulación considera métodos de generación de rutas en los cuales las formas de estas (en espacio y tiempo) se especifican en términos de funciones de sus ángulos de articulación (Fig. 4) [10], [14].

El tiempo requerido por cada segmento de la ruta debe ser el mismo para cada articulación, de manera que todas las articulaciones involucradas lleguen al punto vía al mismo tiempo [10].

La cinemática inversa permite el cálculo de un conjunto de ángulos de articulación que corresponderá a la configuración (posición y orientación) de destino; conociendo un punto inicial y un punto final, se desea encontrar una función que para un t° determine el valor inicial de la configuración, y para un tƒ, un valor final de la configuración.

Para crear una función uniforme son necesarias al menos, cuatro restricciones sobre θ (t), de las cuales dos serán para el valor inicial y final de la posición, mientras las otras dos corresponderán a condiciones en la velocidad inicial y final.

Estas restricciones satisfacen así un polinomio mínimo de grado 3 (polinomio cúbico), que será descrito para su posición, velocidad y aceleración en (7), (8) y (9), respectivamente.

De manera que combinando las restricciones mencionadas con las representaciones matemáticas dadas en (7), (8) y (9) se pueden encontrar fácilmente las constantes α0, α1, α2, α3, donde

Una vez halladas todas las constantes del polinomio, se puede conectar cualquier ángulo de articulación desde una posición inicial a una posición final deseada; este caso es para una velocidad inicial y final cero, pero, si se desea, se puede aumentar el número de restricciones y aumentar el grado del polinomio, con el fin de obtener un mayor control a la hora de generar la trayectoria, como, por ejemplo, dar restricciones a la velocidad y aceleración en cada punto que se analice; así, para mayor rendimiento computacional se prefiere llevar las ecuaciones a una forma matricial vectorial [15] observada en (10) y (11).

Obteniendo, finalmente, a (12)

IV. Ejecución trayectorias

Esta sección está dedicada al análisis y ejecución de las trayectorias que se implementarán en el robot Delta, con el objetivo de probar el comportamiento del robot frente al algoritmo de cinemática inversa en una trayectoria punto a punto.

A. Algoritmo de ejecución

El algoritmo que se plantea y ejecuta para la planeación y ejecución de las trayectorias tiene como estructura de desarrollo:

  1. Cálculo de la cinemática inversa en los puntos vías

  2. Cálculo de la velocidad entre puntos vía

  3. Cálculo de la matriz Jacobiana

  4. Implementación de (6)

  5. Envió de los ángulos entregados en el literal D al circuito electrónico

  6. Cinemática directa de los ángulos entregados en el literal D

1) Trayectoria 1: La primera trayectoria por implementar se diseñará para formar un triángulo equilátero; dicha trayectoria se planeará en el plano XY, manteniendo un valor constante en la coordenada Z, ejecutándose a través de cinco puntos en total, de los cuales, tres son puntos vías y dos son los puntos inicial y final de la trayectoria. Las coordenadas de los puntos se observan en la Tabla 3.

El comportamiento simultáneo de las tres articulaciones del robot Delta en el seguimiento de los puntos que conforman la trayectoria, se puede apreciar en la Fig. 5, Fig. 6 y Fig. 7.

De igual manera, el comportamiento del robot Delta en el seguimiento de los puntos que conforman la trayectoria en el espacio cartesiano se puede apreciar en la Fig. 8, Fig. 9 y Fig. 10.

En la planeación de esta trayectoria se eligió una velocidad constante entre los puntos vía, la cual describe un comportamiento lineal entre estos, como se observó en las gráficas que describen la trayectoria en el espacio de articulaciones. Sin embargo, el seguimiento por el robot Delta de cualquier trayectoria que se planee y ejecute cuenta con un proceso iterativo del algoritmo de cinemática inversa, el cual es de gran importancia, ya que, de acuerdo con el número de iteraciones, las trayectorias serán de:

  • Interpolación: Con un número de iteraciones elevado y una velocidad de ejecución baja.

  • Aproximación: Con un número de iteraciones bajo y una velocidad de ejecución alta.

El número de iteraciones o puntos vía permisibles para un adecuado costo computacional se determinó en el rango de 10-6000; por lo tanto, para un adecuado seguimiento por parte del robot Delta de la trayectoria1 se implementaron 4800 iteraciones, que permiten apreciar la línea recta formada por los 3 actuadores a una velocidad y tiempo convenientes. De igual manera, se puede observar que los ángulos siempre están entre el intervalo (0° a 180°), lo que garantiza una no singularidad en el robot Delta; si, dado el caso, los ángulos fueran mayores a 180° o menores a 0° se produciría una singularidad en el robot, lo cual generaría un punto en el espacio de trabajo que el robot no podría alcanzar.

Se aprecia, entonces, el comportamiento del robot Delta durante la ejecución de la trayectoria 1 tanto en el plano XY (Fig. 11) como en el espacio cartesiano en cada eje coordenado (Fig. 12).

Al realizar un análisis de la trayectoria variando los puntos vía (Tabla 4), la velocidad (Tabla 5) y el tiempo (Tabla 6) de ejecución, se puede observar el error que genera la variación de los distintos parámetros, así como la incidencia que tiene cada parámetro en el algoritmo de cinemática inversa.

Se plantea también un análisis por medio del polinomio característico de orden tres con sus respectivas restricciones de posición y velocidad, para corroborar que se esté alcanzando la posición deseada en cada uno de los puntos vía por parte de los actuadores.

Dichos polinomios describen el comportamiento de cada uno de los actuadores, servomotor1 (Fig.13-15), servomotor2 (Fig.16-18) y servomotor3 (Fig.19-21), donde se especifican las restricciones de posicionamiento que se deben cumplir en los diferentes puntos vía que componen la trayectoria, con el fin de obtener un movimiento continuo y preciso del efector final.

2. Trayectoria 2: La segunda trayectoria por implementar se diseñará para formar una trayectoria curva, más específicamente, una semicircunferencia en el espacio XYZ, manteniendo un valor constante en la coordenada Z, con el objetivo de unir dos puntos coordenados especificados por el usuario, que se pueden evidenciar en la Tabla 7.

En esta trayectoria el componente de velocidad del algoritmo de cinemática inversa se especifica en función del seno, el coseno y el radio de una circunferencia; de igual manera, debido al aumento de complejidad en la forma del algoritmo y, por ende, de la trayectoria, se prefiere llevar a cabo por un método más aproximado que el implementado en la trayectoria1, lo cual requiere de un número menor en el proceso iterativo del algoritmo de cinemática inversa y, en consecuencia, un aumento considerable en la velocidad de ejecución y en el error de posición de la trayectoria por parte del robot Delta.

El comportamiento del robot Delta en el espacio cartesiano, en su seguimiento de los puntos vía que describen la trayectoria2, se puede visualizar en las Fig. 22, con un radio de circunferencia de 2.5; Fig. 23, con un radio de circunferencia de 2, y Fig. 24, con un radio de circunferencia de 0.5.

B. Interfaz gráfica de usuario (GUI)

El entorno virtual (Fig. 27) con el cual el usuario interactúa para simular y ejecutar una trayectoria incorpora una simulación en un entorno 3D para sistemas mecánicos, conocido como SimmechanicsTM [16], dentro del cual se corrobora el posicionamiento de los eslabones en la planeación de los puntos vía que conforman la trayectoria que se pretende ejecutar; esto con el fin de visualizar y comprender el comportamiento del robot Delta durante el seguimiento de una trayectoria, previniendo que este no entre en una configuración singular, que podría llegar a dañar seriamente el prototipo mecánico real una vez se le ordene empezar la ejecución de la trayectoria. En la Fig. 25 y Fig. 26 se observan, respectivamente, las simulaciones para el punto inicial y el punto vía 1 que componen la trayectoria2.

C. Circuito electrónico

El diseño y construcción de un nuevo circuito electrónico pretende mejorar algunas propiedades del diseño electrónico original (Fig. 28), que permitan un comportamiento más real e idóneo, en aspectos como:

  • Disminución del tamaño
  • Portabilidad
  • Facilidad de uso
  • Avance en dispositivos electrónicos

La implementación de un ARDUINO® Leonardo [17] en lugar del piC 18f4550 tiene como principal ventaja brindar la capacidad de programar el robot online, es decir, sin la necesidad de estar retirando el microcontrolador del circuito para reprogramarlo cada vez que se requiera efectuar un cambio en el código. Por otra parte, se utilizará la salida de alimentación de 3.3V del ARDUINO® Leonardo para alimentar directamente el dispositivo de comunicación inalámbrica Xbee, reduciendo el número de componentes electrónicos por manipular y, por consiguiente, el tamaño del PCB. Finalmente, se utilizará directamente el Jack de alimentación AC del ARDUINO® Leonardo, lo cual permitirá mayor portabilidad del robot Delta, al no depender exclusivamente de una fuente de alimentación del laboratorio para su adecuado funcionamiento; el circuito mejorado se ve en la Fig. 29.

IV. Conclusiones

Al considerarse el criterio de velocidad y tiempo constante, en la implementación del algoritmo de cinemática inversa, se logró la obtención de movimientos con mayor precisión y con un error de posición reducido, los cuales permitieron el seguimiento de las trayectorias por un proceso de interpolación y no de aproximación.

La implementación de una trayectoria por medio del algoritmo de cinemática inversa requiere de un alto costo computacional, al tratarse de un algoritmo iterativo, teniendo como factores importantes el consumo de tiempo y de espacio adicional en memoria.

Debido al diseño del prototipo mecánico del robot Delta en la Universidad Militar Nueva Granada, los eslabones tienen pequeños problemas de respuesta al variar su rango de velocidad, por lo cual se prefirió la ejecución de las trayectorias a velocidades bajas, reduciendo las vibraciones del mecanismo durante la ejecución de las trayectorias.

Agradecimientos

A la Universidad Militar, por el apoyo y financiamiento por medio del proyecto de investigación ING-1764.


Referencias

[1] A. Barrientos, L. F. peñín, C. Balaguer and R. Aracil, Fundamentos de robótica, 2nd ed. Madrid, España: Mc Graw Hill, 2007.         [ Links ]

[2] M. mellado-Arteche. Robótica. Valencia. España: Universidad Politécnica de Valencia, 2011.         [ Links ]

[3] J. P. merlet, Parallel Robots, 2nd ed. Dordrecht, Netherlands: Springer, 2006.         [ Links ]

[4] X-J. Liu and J. Wang, Parallel Kinematics: Type, Kinematics, and Optimal Design. Heidelberg, Germany: Springer Berlin Heidelberg, 2014. DOI: http://dx.doi.org/10.1007/978-3-64236929-2.         [ Links ]

[5] R. Clavel, "Device for the movement and positioning of an element in space," U.S. Patent 4976582, Dec. 1990.         [ Links ]

[6] L. Urrea and S. medina, "Diseño e implementación de una plataforma robótica tipo Delta". Trabajo de Grado, Ingeniería en mecatrónica, Facultad de Ingeniería, Universidad Militar Nueva Granada, Bogotá D.C., Colombia, Sep. 2012.         [ Links ]

[7] S. B. Niku, Introduction to Robotics: Analysis, Control, Applications, 2nd ed. Hoboken, USA: John Wiley & Sons Inc., 2010.         [ Links ]

[8] M. W. Spong, S. Hutchinson and M. Vidyasagar, Robot Modeling and Control. USA: John Wiley & Sons, 2005.         [ Links ]

[9] S. K. Saha, Introducción a la robótica. Noida, India: McGraw-Hill, 2010.         [ Links ]

[10] J. J. Craig, Robótica, 3rd ed. Atlacomulco, México: Pearson Educación, 2006.         [ Links ]

[11] S. Y. Nof, Handbook of Industrial Robotics, 2nd ed. USA: John Wiley & Sons, 1999. DOI: http://dx.doi.org/10.1002/9780470172506.         [ Links ]

[12] L. Biagiotti and C. melchiorri, Trajectory Planning for Automatic Machines and Robots. Heidelberg, Germany: Springer, 2008.         [ Links ]

[13] B. Siciliano, L. Sciavicco, L. Villani and G. Oriolo, Robotics: Modeling, Planning and Control. London, United Kingdom: Springer, 2009. DOI: http://dx.doi.org/10.1007/978-184628-642-1.         [ Links ]

[14] R. N. Jazar, Theory of Applied Robotics: Kinematics, Dynamics and Control, 2nd ed. Boston, USA: Springer US, 2010. DOI: http://dx.doi.org/10.1007/978-1-4419-1750-8.         [ Links ]

[15] P. Corke, Robotics, Vision and Control: Fundamental algorithms in MATLAB®. Heidelberg, Germany: Springer, 2011. DOI: http://dx.doi.org/10.1007/978-3-642-20144-8.         [ Links ]

[16] MathWorks Simmechanics. [Online]. Available: http://www.mathworks.com/products/simmechanics/.         [ Links ]

[17] ARDUINO® Leonardo. [Online] Available: https://www.arduino.cc/en/Main/arduinoBoardLeonardo.         [ Links ]

Creative Commons License All the contents of this journal, except where otherwise noted, is licensed under a Creative Commons Attribution License