Cómo construir un robot micromouse que resuelve un laberinto

Autor: Oscar Gonzalez

Cómo construir un robot micromouse que resuelve un laberinto

Tiempo de lectura: 34 minutos

Aprende todo lo que necesitas para montar tu propio robot resuelve laberintos, seleccionar los componentes y algunos trucos más

Cómo construir un robot micromouse que resuelve un laberinto

  • 35

0 Intermedio

Motores

Imagen: https://medium.com/analytics-vidhya/mm-sensors-and-motors-7fa3a870db67

Imagen: https://medium.com/analytics-vidhya/mm-sensors-and-motors-7fa3a870db67

Una de las partes más importantes de un robot que resuelve un laberinto son los motores. Puede parecer una tarea sencilla, pero ya sabes lo que dicen: el diablo está en los detalles.

Los motores son los que transmitirán la fuerza a las ruedas y hará que el robot se mueva. Deben ser lo suficientemente potentes para soportar el peso del robot, pero también deben ser capaces de acelerar con suficiente fuerza. Además, los motores deben rápidos para mover el robot a una velocidad adecuada.

Por último, y no menos importante, ningún motor servirá de nada sin unas buenas ruedas. La adherencia lo es todo y por mucho que tus motores sean perfectos, si no son capaces de transmitir su fuerza al suelo, no servirán de nada.

Ten en cuenta que al igual que ocurre en la formula 1, si tu robot patina, perderá el norte y no sabrá dónde está. Luego hablaremos de cómo solucionar eso.

¿Cómo elegir el motor ideal para un robot resuelve laberintos?

Bueno, esta es una pregunta muy compleja en la que podemos estar horas debatiendo, ya que depende de tus objetivos.

Digamos que el motor ideal básicamente debe ser controlado con facilidad y precisión en términos de aceleración, velocidad y posición. Debe ser ligero, pequeño y consumir la menor cantidad de energía posible. Un mínimo de componentes electrónicos auxiliares sería bueno y, preferiblemente, debería ser fácil de montar y económico.

Si encuentras un motor con todas estas características, te recomiendo que te pongas a venderlo porque te lo sacarán de las manos y te harás millonario.

Pero antes de que empieces a buscar proveedores, debo decirte que los mundos ideales no existen y siempre hay que llegar a compromisos, sacrificando una cosa por otra.

  • Un motor estupendo y potente, suele ser más caro y/o más complejo
  • Un motor más económico, suele tener peores prestaciones.
  • Un motor que sea muy rápido consumirá más energía

Ya pillas la idea.

Una primera idea sería pensar en utilizar motores paso a paso, que son muy precisos y son muy fáciles de controlar. Sin embargo, son bastante pesados y no pueden girar a mucha velocidad.

Los servomotores podrían ser una opción atractiva, ya que son baratos, fáciles de hacer funcionar y hay modelos que giran de forma continua, aunque también es fácil modificar un servo para eso.

Los servos no van lo suficientemente rápido y los motores que usan no están diseñados para una larga vida útil de funcionamiento continuo. Los motores pueden quemarse después de unas pocas decenas de horas. Sin embargo, si quieres modificar los engranajes y estás dispuesto a aceptar una vida útil potencialmente reducida, son muy interesantes también.

Una de las mejores opciones y desde luego lo que más se utiliza en los robots que resuelven laberintos, son los motores CC (Corriente continua).

En cuanto a rendimiento, los motores CC son excelente en cuanto a su relación voltaje, rendimiento. Pueden ser pequeños y ligeros, la electrónica es bastante simple y los requisitos de energía bastante modestos. 

Al contario que un motor paso a paso, los motores CC no son muy precisos (eso lo veremos más adelante). 

Para solucionar eso, se emplea el uso de encoders (codificadore spor pulsos) para que tu programa pueda saber con exactitud hacia donde y cuanto giran tus motores. Eso implica que necesitarás un software más inteligente y un procesador que pueda hacer cálculos (en particular, multiplicaciones rápidas). Lo mejor que puedes usar es un microcontrolador de 32-bits. Actualmente, por el precio que tienen, no tiene sentido usar uno de 8-bits.

Es obvio también que necesitarás al menos dos motores (uno de cada lado), pero también es cierto que algunos robots utilizan cuatro motores o incluso más.

Motores N20 con reductora

Vale, ahora que sabemos lo que queremos y lo que existe, creo que queda claro que te puedes flipar todo lo que tú quieras con los motores. Pero si están empezando y no quieres tener que hipotecarte para montar tu robot, hay un tipo de motores que son especialmente interesantes.

Me refiero a los motores llamados N20 o también llamados Micro Metal Gear Motors.

Ejemplo de motor de tipo N20

Ejemplo de motor de tipo N20

Son motores que, aunque no son la panacea, son muy pequeños, ligeros y en la mayoría de los casos bastante económicos. Además, tienen una caja reductora que permite cambiar la velocidad de giro del eje de salida. De esa manera podemos tener más potencia sacrificando velocidad y vice versa en función de la reductora elegida.

Su voltaje de funcionamiento más común es de 6V (también existen de 12V) y eso los hace ideal para usar con baterías recargables de 2 celdas y 7.4 V ya que lo aguantan bien.

Una reductora que ofrece un buen compromiso entre velocidad y potencia es la de 60 RPM (Revoluciones por Minuto) y lo puedes ver aquí abajo:

Motor N20 con reductora metálica - 6V (60 RPM)

Motor N20 con reductora metálica - 6V (60 RPM)

Motor miniatura de tipo N20 con diferentes tipos de reductoras para conseguir distintas velocidades de rotación

4,50€

Comprar


Ahora bien, esto es como cuando vas al Mc Donals. Puedes pagar la hamburguesa de 1 Euro, estará rica y cumplirá su función. Pero la Super Big Mac XXL con su salsa especial, es parecida, pero seamos sinceros, es otra cosa.

En los motores de este tipo pasa exactamente lo mismo. Existen motores N20 que valen un poco más, pero que tienen mucha más fuerza y normalmente aguantan mucho más que uno normal. En especial, los motores Micro Metal de Pololu son los que mejor rendimiento y funcionalidad ofrecen.

En especial los de la serie Micro Metal HP de Pololu que tiene un eje extendido y ahora verás por qué eso es importante.

Luego ya tú decides cuáles quieres poner en tu robot.

Motor micro metal 50:1 HP con eje extendido

Motor micro metal 50:1 HP con eje extendido

Motor DC Micro Metal de corriente contínua de alta potencia con reductora 50:1 para uso en robótica. Série HP (High Power)

19,90€

Comprar


Encoders para motor N20, ¿qué son y cómo funcionan?

Como te dije antes, los motores de este tipo son un buen candidato, pero no son muy precisos. Y cuando intentas resolver un laberinto lo más rápido posible, debes siempre mantener el control exacto de desplazamiento de tu robot o de lo contrario, no va a saber dónde se encuentra.

Directamente del motor no lo puedes saber y para esos existen unos sensores llamados Encoders o codificadores por pulsos. 

Esos encoders se montan en la parte trasera del motor, algunos motores los traen integrados. Por eso es importante el eje extendido que te he dicho antes, para poder montar un encoder.

Ejemplo de conexión de un encoder a un motor N20

Ejemplo de conexión de un encoder a un motor N20

El disco negro es un imán que gira al mismo tiempo que el motor y en cada vuelta pasa por unos sensores magnéticos que están fuera de fase. Eso quiere decir que uno llega antes que el otro. De esta forma, se generan unos pulsos que podremos contar con nuestro microcontrolador y saber con exactitud cuánto se ha movido nuestro motor.

¿Y por qué están los sensores fuera de fase?

Eso es una excelente pregunta y tiene una explicación muy sencilla y al mismo tiempo es muy útil.

Los sensores, al estar fuera de fase, uno de ellos va a generar un pulso antes que el otro. Eso es muy interesante, ya que podemos saber no solo cuánto ha girado el motor, sino que también podemos saber en qué sentido ha girado.

Funcionamiento de un encoder magnético

Funcionamiento de un encoder magnético

Como puedes ver, tu microcontrolador no solo tendrá que ir calculando la forma de resolver el laberinto, sino que además tiene que controlar de forma precisa los pulsos de los encoders para saber que el robot se está moviendo exactamente como debe y pueda incluso corregirlo. Eso lo veremos luego en la parte de control PID.

Existen varios tipos de encoders para estos motores y algunos los puedes ver aquí:

Encoders para motores micro metal (12CPR)

Encoders para motores micro metal (12CPR)

Pareja de encoders magnéticos de 12CPR diseñados para los motores micro metal de Pololu

8,50€

Comprar


¿Qué ruedas debo usar para mi robot?

Claro que un robot que tenga motores sin rueda no vale de mucho. Y realmente vale casi cualquier rueda, solo ten en cuenta que no es conveniente que el diámetro de la rueda sea muy grande, porque perderás par motor.

Si te interesa ir muy rápido, te interesa transmitir la fuerza de motor al suelo y eso cuanta más superficie tengas de contacto mejor. También es verdad que una rueda más ancha se llevará peor en curvas cerradas y en ese caso te puede interesar tener una rueda más estrecha.

Algunos ejemplos de ruedas compatibles con los motores N20 son estas:

Rueda de goma 32x7mm (2 und)

Rueda de goma 32x7mm (2 und)

Pareja de ruedas de goma de 32mm de diámetro ideal para robots de pequeño tamaño.

3,95€

Comprar


Rueda Solarbotics RW2i

Rueda Solarbotics RW2i

Rueda de goma de 28mm con alta adherencia

4,90€

Comprar


¿Qué baterías necesito para los motores?

Normalmente, se utiliza una sola batería que alimenta tanto el circuito de control como los motores. Para eso, las reinas son las baterías de Litio o LiPo.

Existen multitud de baterías de diversos tamaños y características y si quieres saber en profundidad cuál es la mejor elección, tengo un artículo que habla específicamente de las baterías LiPo:

Lectura recomendada

Todo lo que necesitas saber sobre las baterías LiPo:

https://lab.bricogeek.com/tutorial/todo-lo-que-debes-saber-sobre-las-baterias-de-litio-lipo