Mecanum Robot

El robot Mecanum es un robot que se caracteriza por tener ruedas omnidireccionales del modelo Mecanum, este tipo de ruedas presentan unos cilindros o ruedas pasivas por toda la parte curva de su superficie con una orientación de 45º. Esta estructura les permite que, las cuatro ruedas en conjunto, muevan al robot en todas las direcciones, incluso diagonalmente con cualquier ángulo, además de poder girar:

Robot con Mecanum Wheel controlado por Arduino

En este documento se explica de una manera más técnica el funcionamiento de las ruedas: https://www.fing.edu.uy/inco/grupos/mina/pGrado/easyrobots/doc/SOA.pdf

En este vídeo hacen una demostración del movimiento de las ruedas y de el robot:

En este vídeo se explica el movimiento del robot partiendo del movimiento individual de cada rueda, también expone algunas fórmulas matemáticas que no creo que serán necesarias:

https://www.youtube.com/watch?v=Xrc0l4TDnyw&t=470s
Estas son las ruedas elegidas: https://es.aliexpress.com/item/4001084241161.html

Los motores utilizados son 4x12V DC de 330 rpm con encoder magnético por efecto Hall. Para el robot esos son los motores elegidos: https://es.aliexpress.com/item/4001084241161.html

CONTROLADOR DE MOTORES

El controlador de motores utilizado en este proyecto es el L298N. Debido al hecho de que cada uno de los movimientos del robot requiere una combinación específica de velocidades y direcciones es necesario utilizar un controlador por motor, es decir, utilizaremos cuatro L298N, es decir, como se ve en el esquema del apartado de ruedas omnidireccionales, en la mayoría de movimientos que puede realizar el robot: adelante, atrás, derecha, izquierda y diagonales. Los motores se activan formando dos parejas, el de arriba a la izquierda con el de abajo a la derecha y el de arriba a la derecha con el de abajo a la izquierda. Ya que todos esos tipos de desplazamientos requieren el movimiento coordinado de las dos parejas de motores. Si solo se fuesen a dar esos dos tipos de movimientos no tendría sentido el uso de más de dos controladores, debido al hecho de que, cuando el motor de arriba a la izquierda se moviese hacia adelante el de abajo a la derecha también lo haría, sin embargo, el robot también debería ser capaz de realizar movimientos de rotación para los cuales se necesita el movimiento coordinado de dos parejas, pero no las mismas de antes, sino la pareja formada por los dos motores de la izquierda y la pareja formada por los dos motores de la derecha. El movimiento de rotación, por ejemplo hacia la derecha, requiere que las dos ruedas de la izquierda giren hacia adelante y que las dos de la derecha, o bien se paren (si se quiere una rotación que tome como eje la rueda de arriba a la derecha), o bien que se muevan hacia atrás (si se quiere una rotación que tome como eje el centro del robot).

En esta página explican ampliamente el funcionamiento de los controladores de motor:

https://bricolabs.cc/wiki/guias/control_de_motores

Dentro de la página anterior explican lo que es el PWM (Pulse-Width Modulation o Mosapoconcho_fritzing_800.jpg

Enlace al blog de Luis Llamas sobre el controlador L298N, además de ejemplos de código:

https://www.luisllamas.es/arduino-motor-corriente-continua-l298n/dulación por ancho de pulso en español), pero esa información la completan con esta otra página:

https://bricolabs.cc/wiki/guias/control_de_motores

MICROCONTROLADOR

El arduino es el microcontrolador del robot, debido a la necesidad de un gran número de pines (ya que tanto los cuatro controladores de motor como los demás sensores requieren varios pines), utilizaremos el modelo de Arduino Mega

https://es.aliexpress.com/item/4000026702514.html?spm=a2g0s.9042311.0.0.671f63c0tRAW3V

Arduino Pinout (tanto arduino nano como arduino mega):

Actualmente, seguimos trabajando en el desarrollo del robot mecanum, hasta ahora hemos logrado que se mueva, sin embargo necesitamos implementar los encoder magnéticos, después intentaremos controlar su movimiento con un IMU de 9 grados de libertad, a continuación pretendemos incluir un sensor ultrasónico. Finalmente, si tenemos éxito con las anteriores fases, probaremos a actualizar el código del robot mediante OTA (Over The Air), es decir, con Bluetooth o Wifi. Para terminar, el objetivo final es poder hacer una foto y con el móvil trazar la trayectoria, enviarlo al robot y que el realice el recorrido deseado.