Después de muchas entradas dedicadas a electrónica, programación y Arduino, por fin hemos llegado a los proyectos más interesantes. ¡Empezamos con la primera entrada dedicada a construir Robots!
Si sois aficionados a la electrónica, al mundo Geek y estáis introducidos en el mundo de Arduino, seguramente una de vuestras metas será construir robots. Sin embargo, la impresión general es que construir robots es un hobbie difícil y caro.
¿Cuánto cuesta un robot para iniciarnos en el mundo de la robótica? Podemos encontrar Kits de iniciación por 60-150 euros. Pero ¿Realmente hace falta tanto dinero para construir un robot interesante?
¡Para nada! Aunque os sorprenda, podemos conseguir un robot totalmente funcional por menos de 20€. Y no penséis que barato significa simple. Hablamos de un auténtico robot que puede servir de base para muchos proyectos.
De hecho, veréis configuraciones similares a la que veremos en esta serie de entradas en todo tipo de robots, algunos muy “inteligentes” y avanzados. Podemos hacer un seguidor de líneas, resolver laberintos, o seguir rutas pre programadas. Un sin fin de funcionalidades con el mismo robot como base, simplemente cambiando algún módulo y cambiando su programación.
Además, ahora que se acerca la navidad, resulta un regalo estupendo para hacer a los más pequeños de la casa. Con ayuda de un adulto, un robot es una estupenda herramienta docente para introducir a los más pequeños en el mundo de la ciencia y tecnología.
Nuestro primer robot con Arduino
La base del robot que vamos a construir tiene la siguiente pinta. Básicamente es una plataforma con ruedas que vamos a controlar con un procesador como Arduino.
Ha este tipo de robots se les denomina de distintas formas, RoboCar, Robot Car, Smart Car, Robot DC 2W, Coche Robot con Arduino, etc etc… Básicamente como le da la gana a cada uno. También hay robots con nombre propio / marca, proyectos Open Source, o comerciales, en el que cada uno bautiza a su robot como quiere.
Muchos tipos de robots parecidos, que tienen como diferencia los dispositivos (sensores, electrónica, baterías) que van encima, pero en esencia son todos similares.
De hecho, estos son dos de los míos. El que tiene tres sensores fue mi primer robot (ooooh, nostalgia) y el segundo uno para regalar al hijo de un familiar y veréis que, aunque son diferentes tienen una base con dos ruedas común.
Número de ruedas ¿2WD, 4WD, 6WD?
Como decíamos, en ocasiones veréis referiste a este tipo de robots como 2WD, 4WD, 6WD etc. Las siglas WD (Wheel drived) simplemente hacen referencia a la cantidad de ruedas motrices, es decir, con motores acoplados, que tiene un vehículo.
En primer lugar, hay que decir que muchos vendedores usan mal estos términos y, por ejemplo, llaman robot 4WD a cualquier vehículo con 4 ruedas, aunque en ocasiones realmente son dos con motor y dos sin motor (que sería un 2WD+2W).
Los robots más normales son los 2WD, que hemos visto, que cuentan con dos motores. Para que el robot sea estable estáticamente necesitamos al menos tres puntos de apoyo, por lo cual disponen de una o varias ruedas “locas” o ruedas esféricas que pueden rodar en cualquier dirección.
Por otro lado, hay muchos chasis para 4WD y 6WD que son realmente muy llamativos. Por contra, son más caros, y tienen la gran desventaja de que un vehículo que dispone de 4 o 6 ruedas convencionales fijas, al girar necesariamente una o varias ruedas tienen que deslizar. Esto es un pequeño horror a la hora de saber la posición y el ángulo del robot.
Por este motivo, la configuración de 2WD es muy adecuada para realizar robots y es el que usaremos en esta entrada. Sin embargo, el montaje, esquema, y programación para 4WD o 6WD sería prácticamente el mismo.
Componentes esenciales
Para montar nuestra plataforma básica, necesitaremos por lo menos los siguientes elementos.
Chasis de robot: Entendido por el conjunto de piezas mecánicas que sirven de soporte y unen a todos los demás.
Ruedas: Las motoras transmiten el par del motor al suelo y permiten impulsar el vehículo. Las no motoras simplemente estabilizan el robot y permiten el movimiento por rodadura.
Motores: Encargados de proporcionar el movimiento al vehículo. Entre los muchos tipos disponibles, en este robot emplearemos motores DC con reductor incorporado.
Controlador motores DC: Para poder alimentar eléctricamente los motores, controlar su velocidad fácilmente y, sobre todo, para poder invertir el sentido de giro, necesitaremos un controlador de motores DC con puente-H como el L298N o el TB6612FNG.
Baterías: Proporcionan energía al robot para que pueda desplazarse de forma autónoma, sin necesitar una conexión con cable. Entre las muchas alternativas disponibles, para este proyecto emplearemos simples 4 pilas AA.
Interruptor: Muy conveniente para poder apagar el robot cómodamente sin tener que quitar cables.
Electrónica:. Que incluye un procesador como Arduino, cables para realizar las conexiones, y una breadboard para facilitar el montaje.
Presupuesto
Entonces, ¿Cuánto es el presupuesto para poder montarnos una plataforma autónoma barata controlada por Arduino?
Buscando en vendedores internacionales como Ebay o AliExpress vamos a encontrar Kit de robots muy baratos por unos 8-9€, que incluyen el chasis (una base de plástico negro o metacrilato transparente), las ruedas, los motores, y un portapilas.
A esto tenemos que añadir el controlador de motores con puente-H como el L298N (unos 1.5€) y un procesador como el Arduino Nano (2€). Por supuesto, necesitamos una placa mini breadboad (1€), cables (1.5€) y un interruptor (0.5€).
Es decir, por unos 15€ podemos tener nuestro robot básico montado.
Posibles mejoras
Con el motor que hemos montado, tenemos una plataforma con ruedas que podemos mover como queramos, un robot básico y sencillo. Podemos hacer que avance, gire, e intentar seguir un recorrido controlando la velocidad y el avance del robot por tiempo, e incluso llevar una pequeña carga (¡de poco peso!)).
Sin embargo, básicamente nuestro robot está “ciego”, no tiene forma de saber en qué posición está ni actuar con el entorno. Sólo realizar un movimiento durante un cierto tiempo, lo cual sabemos que en seguida hará que el robot tenga desfases.
Para darle más dinamismo y acercarlo más a lo que todos “consideramos un robot” y no a un cochecito de juguete, podemos ponerle más sensores. Aquí os dejo alguna de las mejoras más habituales.
Añadir encoders
Una mejora casi imprescindible es disponer de un control de posición añadiendo encoders ópticos en las ruedas. Los encoders permiten saber el ángulo que ha girado cada rueda, por lo cual es posible tener una buena estimación del ángulo girado y la distancia recorrida.
Está mejora es necesaria para casi cualquier robot “serio”. Con esto, por ejemplo, ya es posible decir que quieres que el robot avance 2 metros, y luego gire 90º a la derecha.
El coste, 2x Fotointerruptores (1x0.75€), unos 1.5€.
Detectores de distancia
Otra mejora muy habitual es añadir sensores de distancia en distinto número y posición. El más evidente es poner uno al frente, para que el robot se pare cuando va a chocar con un obstáculo.
También es interesante disponer de sensores laterales. Esto permite al robot detectar las paredes laterales mientras se desplaza, lo cual es conveniente tanto como para evitar coches, como para detectar “huecos”. Así es como funcionan, por ejemplo, los robots que resuelven laberintos.
Tenemos muchos sensores de distancia disponibles. El más habitual en estos robots sencillos es el sensor de ultrasonidos HC-SR04 que, aunque no tiene una gran precisión, es muy barato. Además, aunque no es un motivo técnico, parecen dos ojitos y les da un aspecto muy gracioso a los robots XD.
En cuanto al coste, dependerá del número de sensores que montemos. Sí solo ponemos uno frontal, el coste es de unos 0.80€. Con un sensor, al llegar a una pared el robot tendrá que girar, medir, girar, medir, hasta que encuentre un hueco por el que proseguir.
Una alternativa es añadir un servo y montar encima el sensor. Esto permite medir en varias direcciones sin girar todo el robot. Venden varios tipos de soportes para unir un servo con un sensor de ultrasonidos, y las plataformas que estamos viendo tienen huecos para sujetar el servo. El coste, un sensor ultrasonidos (unos 0.80€), un soporte del sensor (unos 0.80€), y un servo SG-90 (1.4€). Es decir, unos 2.80€.
Añadir un servo es una opción interesante porque permite medir distancias en cualquier ángulo de -90 a 90º en frente del robot. Además, hay que reconocer que queda muy chulo ver al robot avanzando moviendo la torre de un lado para otro, aunque no sea del todo práctico.
La última opción, que es la que veíais en mi primer robot, es añadir más sensores de ultrasonidos. Aquí veréis de todo, gente que pone uno atrás y 3 delante a -45º, 0º y 45º. Poner 5 delante a -90º, -45º, 0º, 45º y 90º. Uno delante y otro detrás.
A mí la combinación de 3 sensores a -90º, 0º, y 90º me resulta interesante, porque me permite moverme hacia adelante a la vez que detecto obstáculos frontales y rastreo las paredes laterales simultáneamente. El coste de esta opción es de 3 sensores ultrasonidos (3x 0.80 = 2.40€).
Seguidor de líneas
Otra de las mejoras más habituales es poner sensores ópticos reflectivos en la parte inferior para hacer que un robot pueda seguir una línea. Un proyecto muy común, y a la vez interesante y divertido para iniciarse en la robótica.
Estos sensores simplemente detectan la diferencia de reflexión entre una cinta (blanca o negra) que pegamos en el suelo y el suelo a su alrededor. De esta forma el robot puede detectar la línea, y corregir su trayectoria.
Para hacer un robot seguidor de líneas el número mínimo de sensores necesario es 2, y el robot intentará mantener la línea entre ambos sensores. El coste es de 2 sensores reflectivos TCRT5000 (2x0.70€) unos 1.40€.
Con dos sensores, el robot solo puede detectar cuando uno de los mismos está encima de la línea, y asumir que todo va bien el resto del tiempo. De esta forma, el comportamiento no es muy bueno, y tiene que realizar rectificaciones bruscas frecuentemente. Estos son robots que vemos que parecen que van “oscilando” todo el rato encima de la línea.
Para mejorar el sensor es necesario añadir más sensores reflectivos. De esta forma el robot sabe si está “un poco desviado” o “muy desviado” respecto al sensor. Lo normal es tener 5-6 sensores. Pero para esto, es más barato y sencillo comprar una barra de sensores infrarrojos pensada para esto, que tienen un coste de unos 3€, que comprar los sensores de forma individual.
Otras mejoras
Por supuesto, existen muchas otras mejoras y proyectos que podemos hacer en nuestro robot. Podemos sustituir los sensores de distancia por VL53l0X, que tienen una precisión mucho mejor. Podemos añadir un IMU como el MPU-6050 para saber la orientación del robot con precisión.
También podemos añadir actuadores, como una torreta servo, una pinza, un electroimán, un láser, un lanzamisiles… Todo lo que se nos ocurra.
En cuanto controles, podemos usar cualquiera de los muchos que hemos visto en el blog, como el mando de la PS2, un Wiichuck, o una emisora radio control.
En comunicaciones, algo habitual es añadir un módulo bluetooth para recibir órdenes desde el ordenador o móvil. También podemos emplear WiFI con un ESP8266, o cualquier otra forma inalámbrica.
Y en cuanto a la electrónica, podemos emplear un STM32, un ESP8266, un ESP32, o incluso un mini ordenador como Raspberry Pi o Orange Pi. Esto nos permitiría, básicamente, tener un servidor con ruedas al que podemos hasta añadir una cámara para ver lo que ve el robot de forma remota.
Conclusión
Con lo que hemos visto tenemos una plataforma básica controlada por Arduino por unos 15€. Sobre esta base común, podemos añadir tantos dispositivos como queramos, o tengamos interés.
Porejemplo, si añadimos 2 encoders y un sensor de ultrasonidos tenemos un robot muy interesante por unos 18€. Y si queremos una configuración completa, con 3 sensores de ultrasonidos y una barra de infrarrojos para hacer un seguidor de líneas, podemos hacerlo todo por unos 22€.
A partir de ahí, todos los proyectos y posibilidades que se os ocurran. Llegados a ese punto, empezaréis a montar otros robots, probar otros chasis (más grandes, más pequeños) y veréis que en realidad la mayoría son bastante parecidos.
En la próxima entrada de esta serie veremos el montaje del robot y el esquema eléctrico, y en la última entrada de la serie veremos algunos ejemplos de programación.
Consulta el resto de artículos de la serie Robot Car.
Descarga el código
Todo el código de esta entrada está disponible para su descarga en Github.