Artículo redactado por Ademir Bermudez, colaborador de Revista de Robots
Ademir Bermúdez es investigador de la Universidad Gerardo Barrios de El Salvador, imparte conferencias a nivel internacional y CEO de ESROBOTICA
Muchas veces nos hemos preguntado qué software debemos usar para nuestros robots, sin embargo tal vez la pregunta adecuada es ¿qué tipo de robot deseo construir? En base a lo que he aprendido a lo largo de mi carrera, puedo señalar que depende de muchos factores entre los que destacaría la complejidad y el tiempo de ejecución del proyecto, el presupuesto, las metas, el personal que se dispone y los conocimientos que se tengan en la materia.
Para desarrollar cualquier tipo de robot es imprescindible disponer de un plan de trabajo con el que sortear los problemas que se generan y el consiguiente tiempo que se requiere para su resolución. Si bien es cierto que el diseño es muy importante, lo es aún más su funcionamiento. Debemos tener en cuenta el nivel de programación y el tipo de software que vamos a emplear. Este dependerá de si la aplicación se limita a esperar una señal para realizar algún tipo de acción en base a procesos secuenciales o si el mismo robot, mediante su proceso lógico, realiza una o varias acciones según considere él mismo.
Cuando hablamos de procesos secuenciales existente múltiples plataformas que se pueden utilizar, siendo algunas de ellas de uso libre y otras en formato comercial. Habitualmente estas últimas están preparadas para un modelo de robot especifico. En el caso de los softwares de uso libre están listas para descargar, instalar y usar desde internet. Son plataformas de uso general, que tienen por finalidad ser empleados en cualquier tipo de robot.
Ambas plataformas tienen sus ventajas y desventajas, siendo más utilizadas las de software libre, puesto que permiten adaptarse a cualquier proyecto, dando margen a la imaginación, creatividad, diseño y electrónica. Entre las plataformas más conocidas se encuentran Arduino y Raspberry pi. El primero se utiliza más en procesos secuenciales mientras que el segundo favorece tanto programar procesos secuenciales como los que requieren mayor grado de autonomía.
Arduino es una marca de microcontroladores mundialmente conocida por los entusiastas de electrónica, la programación y la robótica. Es un proyecto Open Source que pone a disposición de sus usuarios una amplia gama de dispositivos basados en el microcontrolador, entre todos los más conocidos son el Arduino Uno y mega. El Arduino Uno se basada en un microcontrolador Atmega328. Cuenta con 14 pines de entrada/salida digital (de los cuales 4 pueden ser utilizados para salidas PWM), 6 entradas análogas, un resonador cerámico de 16 MHz, un conector para USB tipo hembra, una fuente de Poder, un conector ICSP y un botón reset. Por otra parte, el Arduino Mega Posee 54 pines digitales que funcionan como entrada/salida; 16 entradas análogas, un cristal oscilador de 16 MHz, una conexión USB, un botón de reset y una entrada para la alimentación de la placa.
La comunicación entre la computadora y Arduino se produce a través del Puerto Serie. Posee un convertidor usb-serie, por lo que sólo se necesita conectar el dispositivo a la computadora utilizando un cable USB similar al que utilizan las impresoras.
En el caso de Raspberry Pi, es un ordenador en forma de una placa que soporta varios componentes necesarios en un ordenador común. Estos puertos permiten conectar el miniordenador a otros dispositivos, teclados, ratones y pantallas, a diferencia de Arduino, Raspberry Pi tiene pocas versiones pero son de mayor capacidad que Arduino, las versiones más extendidas son Raspberry Pi 1 modelo A, Raspberry Pi 1 modelo B, Raspberry Pi 2 modelo B, Raspberry Pi 3 modelo B, Raspberry Pi 3 modelo B+, Raspberry Pi 3 modelo A+ y para el 2019 salió Raspberry Pi 4 modelo B, para este último se cambiaron los puertos HDMI de tamaño completo por dos puertos microHDMI. Cuenta con la capacidad de manejar una pantalla a 4K a 60 Hz, o dos pantallas 4K a 30 Hz. Se ha incluido por primera vez USB 3.0, y el puerto Ethernet ya no está limitado a 300 Mbps. Tiene un procesador Broadcom nuevo hasta tres veces más eficiente que el anterior. Están disponibles tres modelos, en los que varía la cantidad de memoria RAM, de 2GB, 4GB, y de 8GB.
Aunque existen otras opciones de hardware, tanto Arduino y Raspberry pi son los más reconocidos y muchos otros softwares se basan en su tecnología, como es el caso de Snap4Arduino, Ardublockly o Python entre otros.
Hoy en día el hardware de Arduino ofrece numerosas plataformas de uso libre que te permiten trabajar con él. Aunque básicamente se emplea en procesos secuenciales, es muy utilizado y reconocido mundialmente. Por el contrario Rasberry pi puede ser utilizado desde con Python hasta lenguajes avanzados como ROS (Sistema operativo de robots).
Algunas plataformas dependiendo de su finalidad poseen entornos de programación en base a bloques y otras en base a códigos que se adaptan internamente a Arduino y Rasberry pi. Además debemos valorar muchos factores que influyen tanto positiva como negativamente en la construcción y programación de un robot, pero podemos indicar que con los factores mencionados dejamos plasmado en términos generales un manual de ideas que se deben considerar antes de construir un robot.
Por ello podemos resumir en siete preguntas clave que debemos hacernos antes de afrontar un nuevo proyecto:
- ¿Con qué finalidad vas a crear el robot?
- ¿Cuánto tiempo vas a destinar a su creación?
- ¿Cuentas con personal de apoyo?
- ¿De qué materiales dispones para su construcción?
- ¿Dispones de un lugar adecuado para su construcción?
- ¿Será un robot secuencial o un robot con algún grado de autonomía?
- ¿Cuál es el software que debo usar?
Si respondemos estas cuestiones posiblemente detectaremos que hay aspectos en nuestro proyecto que no habíamos valorado en su justa medida, factores que nos condicionarán a la hora de construir y programar un robot.
Revista de Robots te recomienda: